Color — светлая тема

Источник: ds-docs/component-contracts/foundations/color-light-mode.md

Источник: коллекция color файла Astra DS, режим light-mode · tokens/color-light-mode.tokens.json · id сверены с tokens/variable-ids.json. Только факты. Находки — в конце. Тёмная тема — color-dark-mode.

Устройство

Цвет — одна коллекция color на 426 переменных с двумя режимами, light-mode и dark-mode. Светлая и тёмная тема — это не два набора имён, а два значения одной переменной: имена и id общие, различаются только значения.

Из 426 переменных 409 ссылаются на примитив, и только 17 держат собственное значение. Примитивы (коллекция primitives, 132 переменные) сами почти целиком алиасы: 129 из 132 ведут в подключённую библиотеку, и настоящие числа лежат там. Своё значение в примитивах только у трёх — white, black, transparent. Значит, hex в файле не хранится вовсе; он приходит из библиотеки, и в экспортах записан уже разрешённым.

Группы

components/components2194913
colors/additional642—
colors/text3222—
colors/background2617—
colors/foreground2214—
other/skeleton105—
other/gradient104—
colors/border95—
other/blur70—
state-layer-colors/select64—
other/shadow60—
state-layer-colors/focus52—
state-layer-colors/dev424
state-layer-colors/hover22—
other/overlay21—
state-layer-colors/press22—

Между темами различаются только 131 переменных из 426. У остальных 295 в обоих режимах стоит одна и та же ссылка — цвет не зависит от темы. Больше всего таких среди components/components (219 переменных, различаются 49): слой компонентных цветов почти целиком одинаков в светлой и тёмной теме.

Код и описания

codeSyntax WEB задан у 399 переменных из 426 — единственная коллекция файла, где имена для кода проставлены почти везде. Описание есть у 110 (26%). Имена уникальны: все 426 имён-листьев различны, двойников внутри коллекции нет.

База ссылается на 56 цветовых токенов из 426.

Примеры (светлая)

text-primary#171A1Ccolors/gray/gray-950
border-brand#1CCB01colors/brand/brand-500

Бренд — brand-500, зелёный #1CCB01.

Находки

  • Две трети палитры не зависят от темы. У 295 переменных из 426 в обоих режимах стоит одна и та же ссылка. Формально коллекция двухрежимная, фактически тему меняет треть.
  • Настоящих значений в файле почти нет. 409 переменных — алиасы в примитивы, а примитивы на 129 из 132 — алиасы в библиотеку. Без библиотеки файл цвета не знает.
  • Семнадцать переменных держат значение сами, и четыре из них — не цвет: state-layer-colors/dev/value-hover и value-pressed хранят строки 4% и 8%, components/basic/theme — слово Light/Dark. Это настройки, лежащие в коллекции цвета.

См. также: color-dark-mode, README.