--- title: Theming description: Use Twenty UI theme tokens and scope theme overrides to part of your application. --- Twenty UI components read public CSS custom properties prefixed with `--t-`. Prefer semantic tokens such as `background.secondary` and `font.color.primary` when styling your own components; these values adapt to the active palette. ## Use tokens in styles `themeCssVariables` maps token paths to CSS variable references. Use it for values that CSS resolves: ```tsx import { themeCssVariables } from 'twenty-ui/theme-constants'; export const Summary = () => (
Three tasks are due today.
); ``` The equivalent CSS uses variables directly: ```css .summary { background: var(--t-background-secondary); color: var(--t-font-color-primary); padding: var(--t-spacing-4); border-radius: var(--t-border-radius-md); } ``` ## Read resolved values `useTheme()` reads the active provider's computed tokens. Use it when a component expects a JavaScript number, such as an icon size. The provider needs the theme stylesheet to be loaded in the browser to resolve CSS variables. ```tsx import { IconCheck } from 'twenty-ui/icon'; import { useTheme } from 'twenty-ui/theme-constants'; export const CompleteIcon = () => { const theme = useTheme(); return ; }; ``` Every entry in `themeCssVariables` is a CSS reference string, including numeric tokens. Do not perform arithmetic on those strings. On the server, resolved browser values are unavailable; see [Server rendering](/ui/ssr). ## Scope an override Pass `applyToRoot={false}` to apply a theme to a subtree. Override public CSS variables by their full name: ```tsx import { type ReactNode } from 'react'; import { ThemeProvider } from 'twenty-ui/theme-constants'; export const EmbeddedPanel = ({ children }: { children: ReactNode }) => ( {children} ); ``` A scoped provider adds a wrapper with `display: contents`; it does not create a layout box. It also supplies a container for components that support themed portals. Portals created by other libraries need their own container configuration. Variables prefixed with `--tw-` are private component details. Use public props and `--t-` tokens instead of depending on those variables. See the [token reference](/ui/tokens) for the available names and palette values.