Основы

Визуальный язык как данные: 197 токенов, прочитанных из установленного пакета и сгруппированных так же, как в нём. Каждая страница отвечает на два вопроса — зачем эта шкала и что в ней сегодня.

Разделы

  • Обзор

    Четыре слоя, и каждый из них — данные, а не решение, принятое внутри компонента. Примитивы задают шкалы, роли придают им смысл, производные следуют за ролями по формуле, а покомпонентные токены настраивают один компонент, не трогая остальные.

  • Токены8 токенов

    Полный справочник: все токены, которые публикует пакет, сгруппированные так же, как в источнике. Своя группировка дала бы страницу красивее и бесполезнее — токен не нашёлся бы по имени, увиденному в коде.

  • Цвет96 токенов

    Цвет — то место, где дизайн-систему чаще всего принимают за палитру. Здесь нет цветов, здесь роли: поверхность, текст на ней, заливка, текст на заливке. Одна и та же роль несёт в каждой теме своё значение, и оба стоят в таблице.

  • Типографика37 токенов

    Два семейства, одна шкала кеглей и отдельная шкала для контролов. Вторая существует потому, что у кнопки и абзаца нет общего ритма: текст читают, в контрол целятся, и размеры отвечают на разные вопросы.

  • Отступы17 токенов

    Одна шкала на все зазоры, отступы и смещения системы. Шаг намеренно нелинейный: у нуля глаз различает два пикселя, у сорока — уже нет, и линейная шкала потратила бы половину значений там, где их никто не отличит.

  • Скругления9 токенов

    Девять радиусов, и один из них — радиус контрола: значение, которым кнопка, поле и селект держатся одной семьёй. Меняется оно — меняется весь набор контролов сразу.

  • Тени4 токенов

    Четыре уровня, и они семантические, а не декоративные: тень говорит, что над чем. Выпадающая панель выше карточки, модальное окно выше страницы — уровень следует за слоем, а не за настроением.

  • Движение5 токенов

    Длительности и кривые, и одно правило, которое закрывает остальное: система уважает «уменьшить движение» целиком, одним блоком в базовом слое, а не покомпонентно.

  • Иконки4 токенов

    Шкала размеров, а не набор иконок. Свои иконки — стрелку селекта, крестик очистки, галочку, спиннер — пакет компилирует в сборку; ваши приходят либо Vue-компонентом, либо классом, который порождает ваша сборка.

  • Состояния18 токенов

    Hover, active, disabled, invalid. Ни одно из этих значений не записано: каждое — формула от роли, поэтому перекрашенная роль тянет свои состояния за собой. Таблица ниже показывает формулу и то, во что она превращается в обеих темах.

  • Адаптивность10 токенов

    Точки останова и ширины контейнеров. Система не раскладывает ваши страницы — она даёт одни и те же числа всем компонентам, которым нужно знать, что стало узко, чтобы таблица и боковая панель понимали «узко» одинаково.

  • Слои7 токенов

    Шкала слоёв с шагом пятьдесят. Шаг и есть смысл: между соседними слоями остаётся место чужому виджету, баннеру согласия или чату, которому нужно встать между ними, — и ничего не приходится перенумеровывать.

Значения приходят из @feugene/granularity 0.41.0, tokens/*.json. Ни одно из них не набрано руками.