Юлия
Юлия
5 мин. читать
5691 показ
2033 открытия

Токены дизайн системы – чему мы можем научиться у IBM

Когда появился плагин Figma tokens  мы были обескуражены

Когда Figma выпустила последнее обновление токенов дизайна  мы все ликовали

Когда дело дошло до использования  мы сели в лужу

Дизайн система IBM Carbon Design System одна из первых обновилась и выложила в открытый доступ свою структуру токенов, сегодня попробуем ее рассмотреть и понять, как нам применить их опыт у себя.

Проблема

Продуктовые дизайнеры, а в особенности дизайнеры дизайн-систем, историю с токенами обсуждают давно. Многие компании уже активно так работают и есть масса примеров на что ориентироваться при адаптации этого подхода работы с темами к себе. Но, как правило, дизайнеры, которые не работали с токенами самостоятельно, не понимают как строится эта структура и в лучшем случае копируют опыт других. Если мы говорим о российских компаниях, то можно привести в пример Paradigm 2.0 (последнее обновление 1 сентября кажется) собранную с помощью Variables.

Я сама очень долго пыталась разобраться в этой теме, анализировала подходы больших дизайн систем, строила схемы и таблицы, пытаясь понять подходы, и постоянно задавала вопросом «‎Почему они решили делать так, а не по другому..?»‎

Проблема эта связана еще с тем, что не многие знают о конвенции наименования токенов или не ориентируются в ней также хорошо, как более продвинутые коллеги, поэтому обозначим основные тезисы из конвенции.

Базовые принципы такие,

  1. Наименование должно быть однозначным, чтобы его можно было легко интерпретировать
  2. Токены могут находиться в группах, один токен может ссылаться на другой
  3. Токены могут иметь наименования не только места использования, но семантики типа Brand, Alert, но это не должно определять место использования

Что у Carbon Design System

И зачем об этом обновлении стоит рассказать

Спойлер: У них очень простая логика «‎покраски»‎ тем

Так выглядит структура темы в Fima

Система цвета имеет два уровня:

  1. Стили. На этом уровне располагаются основные стили палитры в двух вариантах: Default и Hover.
  2. Токены темы. Поскольку тем в дизайн-системе 4, каждая тема регулируется своим набором, но с общим наименованием (для бесшовного переключения)

Если с уровнем палитры, все более или менее понятно, то на пакете с цветами темы хочется остановиться подробнее.

Структура токенов темы

Достаточно простая, у нас есть 156 единиц цвета в 15 группах. Каждая группа регламентирует место использования, будь то часть интерфейса (заливка/слой/бордюр/текст/иконка) или конкретный компонент (кнопка/ссылка/тег)

Базовые токены

Они применяются ко всем элементам интерфейса, к ним относятся:

  • Background  Страница или основной фон
  • Layer — Фоны компонентов
  • Field — Фон для инпут полей
  • Border — Разделители, обводки, бордюры
  • Text — Шрифт
  • Link  Автономные и встроенные ссылки
  • Icon — Иконки
  • Support  Элементы уведомлений и индикаторы состояния
  • Focus — Состояния фокуса

Каждая из этих групп включает в себя токены состояний элементов:

  • default
  • hover
  • active
  • selected
  • inverse

И в зависимости от компонента или типа элемента эти состояния могут дополняться типами:

  • selected-hover
  • inverse
  • inverse-hover
  • disabled
  • interactive

Можно сравнить две группы токенов Background и Layer, из-за специфики элемента к-во токенов сильно отличается.

В группе, покрывающей слои интерфейса мы видим градацию типа $layer-01 ,$layer-03 ,$layer-04  для каждой из которой предусмотрено состояние: Default, Hover, Active, Selected, Selected-hover.

Это своего рода продолжение традиции использования уровней (Elevation) заложенной в Material Design.

В каждой теме используется максимум 4 уровня: базовый слой, слой 01, слой 02 и слой 03. Слои накладываются один поверх другого в заданном порядке. При создании компонентов дизайнеры используют токены из одного набора.

Вне зависимости от “уровня” используются только токены текста, иконок, тегов, кнопок.

Раскрывающийся список с использованием токенов из четырех наборов слоев: базовый набор (пурпурный), набор слоев 01 (фиолетовый), набор слоев 02 (бирюзовый) и набор слоев 03 (голубой).
  • Базовый фон страницы  $background – область страницы
  • 01  $layer-01  первый элемент поверх страницы (на примере  это заливка контента на выбранной вкладке)
  • 02  $layer-02  вложенный элемент (компонент ввода в области контента  на примере это заливка текстового поля и заливка для контейнера с примерами)
  • 03  $layer-03 — вложенный элемент (элементы внутри контейнера с примерами)
Пример макета с применением токенов из четырех разных наборов слоев: базового набора (пурпурный), набора слоев 01 (фиолетового), набора слоев 02 (бирюзового) и набора слоев 03 (голубого).

Логика окраски базовых компонентов такая:

Схема выбора токена для базового компонента

Токены компонентов

пример использования токенов для кнопки

Под этой группой подразумеваются те компоненты, которые имеют особые свойства или состояния. Они не являются глобальными токенами и функционируют только в рамках компонента.

Тут дизайнеры ограничились тремя

  1. Button
  2. Tag
  3. Notification

Главное в подходе этой дизайн-системы заключается в том, что "наполнение" внутри этих компонентов красится все еще в базовые токены, тем самым количество групп и токенов в дизайн-системе значительно сократилось.

Сами дизайнеры в обзорной статье обновления акцентируют внимание на том, что в новом подходе им удалось значительно сократить количество компонентов и при этом сохранить контролируемость. 

В первую очередь, это связано с тем, что теперь дизайнеры хранят все 4 Темы в одном файле, соответственно и компонентов сократилось в 4-е раза. Но для того, чтобы этого достичь им пришлось сильно пересмотреть свою структуру и поделить ее на базовый уровень и уровень компонентов + выделить состояния этих компонентов.

 

Сравнение группы цветов текста в двух версиях
By unifying all our themes into a single file, we streamline the design process, making it easier for our team to maintain and update components while ensuring the utmost consistency throughout the system. Now, we only have to maintain one set of components instead of four, reducing the number of supported Figma components from 428 to 107.
Нравится 3
5691
0

Подпишитесь на еженедельный
дайджест

Редакция отбирает лучший контент за неделю и отправляет его на вашу почту

Cпасибо за подписку!

Письмо с подтверждением отправлено на адрес . Если вы не можете найти письмо во входящих, проверьте папку спама

Рекомендации

только для зарегистрированных
только для зарегистрированных
Подтвердите действие
Точно?
Сообщение
Текст
Подтвердите действие