Build faster with Premium Chakra UI Components 💎
Learn moreNovember 18, 2024
Google Fonts are available in Next.js by default. At the top of your
layout.tsx
file, import the font from next/font/google
:
layout.tsx
import { Bricolage_Grotesque } from "next/font/google"
Configure the font by defining the variable and subsets to include:
layout.tsx
const bricolage = Bricolage_Grotesque({
variable: "--font-bricolage",
subsets: ["latin"],
})
Now, attach the font to the <html>
element in your application. This ensures
that the font is available to be used in Chakra UI.
<html className={bricolage.variable} lang="en" suppressHydrationWarning>
<body>
<Provider>{children}</Provider>
</body>
</html>
Use the createSystem
method to define the custom font in Chakra UI's theme
configuration:
components/ui/provider.tsx
"use client"
import { createSystem, defaultConfig } from "@chakra-ui/react"
const system = createSystem(defaultConfig, {
theme: {
tokens: {
fonts: {
heading: { value: "var(--font-bricolage)" },
body: { value: "var(--font-bricolage)" },
},
},
},
})
heading
, body
, or both. In this case, we are setting both the body and
heading fonts to "Bricolage Grotesque".Finally, pass the system
into the ChakraProvider
components/ui/provider.tsx
export function Provider(props: ColorModeProviderProps) {
return (
<ChakraProvider value={system}>
<ColorModeProvider {...props} />
</ChakraProvider>
)
}
This ensures that the custom font is applied across your entire app.
Remember to remove any unused styles from your global.css
and
page.module.css
files to prevent your custom font from being overridden.