apps/www/content/docs/theming/customization/global-css.mdx
:::info
Please read the overview first to learn how to properly customize the styling engine, and get type safety.
:::
Here's an example of how to customize the global CSS in Chakra UI.
import { createSystem, defaultConfig, defineConfig } from "@chakra-ui/react"
const customConfig = defineConfig({
globalCss: {
"*::placeholder": {
opacity: 1,
color: "fg.subtle",
},
"*::selection": {
bg: "green.200",
},
},
})
export const system = createSystem(defaultConfig, customConfig)
To change the font family globally, set it on the html element in globalCss:
const customConfig = defineConfig({
globalCss: {
html: {
fontFamily: "Roboto, sans-serif",
},
},
})
Alternatively, define custom font tokens:
const customConfig = defineConfig({
theme: {
tokens: {
fonts: {
body: { value: "Roboto, sans-serif" },
heading: { value: "Poppins, sans-serif" },
mono: { value: "Fira Code, monospace" },
},
},
},
})
If you don't need global CSS, you can remove it by destructuring the globalCss
property from the default config.
import { createSystem, defaultConfig } from "@chakra-ui/react"
const { globalCss: _, ...restConfig } = defaultConfig
export const system = createSystem(restConfig)
After customizing the global CSS, make sure to update your provider component to use the new system.
"use client"
import { system } from "@/components/theme"
import {
ColorModeProvider,
type ColorModeProviderProps,
} from "@/components/ui/color-mode"
import { ChakraProvider } from "@chakra-ui/react"
export function Provider(props: ColorModeProviderProps) {
return (
<ChakraProvider value={system}>
<ColorModeProvider {...props} />
</ChakraProvider>
)
}