Перейти к основному содержанию

Обзор

Компоненты Twenty UI считывают публичные пользовательские свойства CSS с префиксом --t-. При стилизации собственных компонентов отдавайте предпочтение семантическим токенам, таким как background.secondary и font.color.primary; эти значения адаптируются к активной палитре.

Использование токенов в стилях

themeCssVariables сопоставляет пути токенов со ссылками на переменные CSS. Используйте его для значений, которые разрешает CSS:
Эквивалентный CSS использует переменные напрямую:

Получение разрешённых значений

useTheme() считывает вычисленные токены активного провайдера. Используйте его, когда компонент ожидает число JavaScript, например размер значка. Чтобы разрешать переменные CSS, провайдеру необходимо, чтобы таблица стилей темы была загружена в браузере.
Каждая запись в themeCssVariables представляет собой строку ссылки CSS, включая числовые токены. Не выполняйте арифметические операции с этими строками. На сервере разрешённые значения браузера недоступны; см. Рендеринг на сервере.

Ограничение области переопределения

Передайте applyToRoot={false}, чтобы применить тему к поддереву. Переопределяйте публичные переменные CSS по их полному имени:
Провайдер с ограниченной областью добавляет обёртку с display: contents; она не создаёт блок макета. Он также предоставляет контейнер для компонентов, поддерживающих порталы с темой. Порталам, созданным другими библиотеками, требуется собственная настройка контейнера. Переменные с префиксом --tw- являются внутренними деталями компонентов. Используйте публичные свойства и токены --t- вместо зависимости от этих переменных. Доступные имена и значения палитры см. в справочнике токенов.

Явные значения и масштаб

Свойство theme предоставляет итоговые значения темы JavaScript вместо чтения вычисленных стилей. Оно также передается вложенным провайдерам, если они не предоставляют другую явную тему. Это изменяет значения, считываемые хуками; загрузите соответствующую таблицу стилей и используйте переопределения CSS для стилизации компонентов. scale записывает --t-scale-user в корневой элемент документа. Это влияет только на интерфейсы, CSS которых использует эту переменную, и игнорируется провайдерами с ограниченной областью действия. className применяется к обертке с ограниченной областью действия; передача только его не создает обертку. overrides создает область действия, даже если applyToRoot остается равным true.

Свойства ThemeProvider

boolean
по умолчанию:"true"
Applies the color-scheme class to the document root. Set false for a scoped wrapper.
ReactNode
обязательно
Components that share this theme.
string
Class applied to a scoped wrapper; no wrapper is created for className alone.
"dark" | "light"
обязательно
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.