Saltar al contenido principal

Resumen

Los componentes de Twenty UI leen propiedades personalizadas públicas de CSS con el prefijo --t-. Prefiere tokens semánticos como background.secondary y font.color.primary al aplicar estilos a tus propios componentes; estos valores se adaptan a la paleta activa.

Usa tokens en los estilos

themeCssVariables asigna rutas de tokens a referencias de variables CSS. Úsalo para valores que CSS resuelve:
El CSS equivalente usa variables directamente:

Lee valores resueltos

useTheme() lee los tokens calculados del proveedor activo. Úsalo cuando un componente espera un número de JavaScript, como el tamaño de un icono. El proveedor necesita que la hoja de estilos del tema se cargue en el navegador para resolver las variables CSS.
Cada entrada de themeCssVariables es una cadena de referencia CSS, incluidos los tokens numéricos. No realices operaciones aritméticas con esas cadenas. En el servidor, los valores resueltos del navegador no están disponibles; consulta Renderizado del servidor.

Limita una anulación

Pasa applyToRoot={false} para aplicar un tema a un subárbol. Anula las variables CSS públicas mediante su nombre completo:
Un proveedor limitado añade un contenedor con display: contents; no crea un cuadro de diseño. También proporciona un contenedor para los componentes que admiten portales con tema. Los portales creados por otras bibliotecas necesitan su propia configuración de contenedor. Las variables con el prefijo --tw- son detalles privados de los componentes. Usa props públicas y tokens --t- en lugar de depender de esas variables. Consulta la referencia de tokens para ver los nombres y valores de paleta disponibles.

Valores explícitos y escala

La prop theme proporciona valores de tema de JavaScript resueltos en lugar de leer estilos calculados. También se transmite a proveedores anidados, a menos que proporcionen otro tema explícito. Esto cambia los valores leídos por los hooks; carga la hoja de estilos adecuada y usa anulaciones de CSS para aplicar estilos a los componentes. scale escribe --t-scale-user en la raíz del documento. Solo afecta a las interfaces cuyo CSS consume esa variable y los proveedores con ámbito la ignoran. className se aplica a un contenedor con ámbito; pasarla por sí sola no crea un contenedor. overrides crea un ámbito incluso cuando applyToRoot permanece en true.

Props de ThemeProvider

boolean
predeterminado:"true"
Applies the color-scheme class to the document root. Set false for a scoped wrapper.
ReactNode
requerido
Components that share this theme.
string
Class applied to a scoped wrapper; no wrapper is created for className alone.
"dark" | "light"
requerido
Explicit light or dark palette; load its stylesheet before rendering.
ThemeOverrides
CSS custom-property overrides. Supplying them creates a scoped wrapper.
number
Root interface scale stored in —t-scale-user. Ignored for scoped providers; application CSS must consume the variable.
ThemeType | typeof THEME_LIGHT
Explicit resolved theme values, bypassing computed-style token resolution.