Merge pull request #174 from doug-andrade/fonts
loading fonts with next/font for no layout shift
This commit is contained in:
@@ -3,11 +3,11 @@ import Link from "next/link";
|
|||||||
import { useRouter } from "next/router";
|
import { useRouter } from "next/router";
|
||||||
import { NEXT_PUBLIC_WEBAPP_URL } from "@documenso/lib/constants";
|
import { NEXT_PUBLIC_WEBAPP_URL } from "@documenso/lib/constants";
|
||||||
import { useSubscription } from "@documenso/lib/stripe";
|
import { useSubscription } from "@documenso/lib/stripe";
|
||||||
|
import { BillingWarning } from "./billing-warning";
|
||||||
import Navigation from "./navigation";
|
import Navigation from "./navigation";
|
||||||
import { PaperAirplaneIcon } from "@heroicons/react/24/outline";
|
import { PaperAirplaneIcon } from "@heroicons/react/24/outline";
|
||||||
import { SubscriptionStatus } from "@prisma/client";
|
import { SubscriptionStatus } from "@prisma/client";
|
||||||
import { useSession } from "next-auth/react";
|
import { useSession } from "next-auth/react";
|
||||||
import { BillingWarning } from "./billing-warning";
|
|
||||||
|
|
||||||
function useRedirectToLoginIfUnauthenticated() {
|
function useRedirectToLoginIfUnauthenticated() {
|
||||||
const { data: session, status } = useSession();
|
const { data: session, status } = useSession();
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
import { ReactElement, ReactNode } from "react";
|
import { ReactElement, ReactNode } from "react";
|
||||||
import { NextPage } from "next";
|
import { NextPage } from "next";
|
||||||
import type { AppProps } from "next/app";
|
import type { AppProps } from "next/app";
|
||||||
|
import { Montserrat, Qwigley } from "next/font/google";
|
||||||
import { SubscriptionProvider } from "@documenso/lib/stripe/providers/subscription-provider";
|
import { SubscriptionProvider } from "@documenso/lib/stripe/providers/subscription-provider";
|
||||||
import "../../../node_modules/placeholder-loading/src/scss/placeholder-loading.scss";
|
import "../../../node_modules/placeholder-loading/src/scss/placeholder-loading.scss";
|
||||||
import "../../../node_modules/react-resizable/css/styles.css";
|
import "../../../node_modules/react-resizable/css/styles.css";
|
||||||
@@ -11,6 +12,20 @@ import "react-tooltip/dist/react-tooltip.css";
|
|||||||
|
|
||||||
export { coloredConsole } from "@documenso/lib";
|
export { coloredConsole } from "@documenso/lib";
|
||||||
|
|
||||||
|
const montserrat = Montserrat({
|
||||||
|
subsets: ["latin"],
|
||||||
|
weight: ["400", "700"],
|
||||||
|
display: "swap",
|
||||||
|
variable: "--font-sans",
|
||||||
|
});
|
||||||
|
|
||||||
|
const qwigley = Qwigley({
|
||||||
|
subsets: ["latin"],
|
||||||
|
weight: ["400"],
|
||||||
|
display: "swap",
|
||||||
|
variable: "--font-qwigley",
|
||||||
|
});
|
||||||
|
|
||||||
export type NextPageWithLayout<P = {}, IP = P> = NextPage<P, IP> & {
|
export type NextPageWithLayout<P = {}, IP = P> = NextPage<P, IP> & {
|
||||||
getLayout?: (page: ReactElement) => ReactNode;
|
getLayout?: (page: ReactElement) => ReactNode;
|
||||||
};
|
};
|
||||||
@@ -27,8 +42,10 @@ export default function App({
|
|||||||
return (
|
return (
|
||||||
<SessionProvider session={session}>
|
<SessionProvider session={session}>
|
||||||
<SubscriptionProvider initialSubscription={initialSubscription}>
|
<SubscriptionProvider initialSubscription={initialSubscription}>
|
||||||
|
<main className={`${montserrat.variable} h-full font-sans`}>
|
||||||
<Toaster position="top-center" />
|
<Toaster position="top-center" />
|
||||||
{getLayout(<Component {...pageProps} />)}
|
{getLayout(<Component {...pageProps} />)}
|
||||||
|
</main>
|
||||||
</SubscriptionProvider>
|
</SubscriptionProvider>
|
||||||
</SessionProvider>
|
</SessionProvider>
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -6,35 +6,3 @@
|
|||||||
min-height: 100%;
|
min-height: 100%;
|
||||||
}
|
}
|
||||||
|
|
||||||
html,
|
|
||||||
body,
|
|
||||||
:host {
|
|
||||||
font-family: montserrat;
|
|
||||||
}
|
|
||||||
|
|
||||||
@font-face {
|
|
||||||
font-family: "Qwigley";
|
|
||||||
src: url("/fonts/Qwigley-Regular.ttf");
|
|
||||||
}
|
|
||||||
|
|
||||||
/* latin */
|
|
||||||
@font-face {
|
|
||||||
font-family: "Montserrat";
|
|
||||||
font-style: normal;
|
|
||||||
font-weight: 400;
|
|
||||||
font-display: swap;
|
|
||||||
src: url("/fonts/montserrat.woff2") format("woff2");
|
|
||||||
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F,
|
|
||||||
U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* latin */
|
|
||||||
@font-face {
|
|
||||||
font-family: "Montserrat";
|
|
||||||
font-style: normal;
|
|
||||||
font-weight: 700;
|
|
||||||
font-display: swap;
|
|
||||||
src: url("/fonts/montserrat.woff2") format("woff2");
|
|
||||||
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F,
|
|
||||||
U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
|
|
||||||
}
|
|
||||||
|
|||||||
@@ -12,8 +12,8 @@ module.exports = {
|
|||||||
theme: {
|
theme: {
|
||||||
extend: {
|
extend: {
|
||||||
fontFamily: {
|
fontFamily: {
|
||||||
monteserrat: ["Monteserrat", "serif"],
|
sans: ["var(--font-sans)", ...defaultTheme.fontFamily.sans],
|
||||||
qwigley: ["Qwigley", "serif"],
|
qwigley: ["var(--font-qwigley)", "serif"],
|
||||||
},
|
},
|
||||||
colors: {
|
colors: {
|
||||||
neon: {
|
neon: {
|
||||||
|
|||||||
Reference in New Issue
Block a user