WR Design System

Построенная дизайн-система, которая используется для внутренних и B2B продуктов WhiteRock.

Год

июнь, 2023 – по настоящее время.

Платформа

Дизайн-система

Задача

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

Оптимизация

При создании больших количеств компонентов в одном варианте — происходит проблема с оптимизацией: «кушает» много памяти. По этой причине долгая загрузка макетов, двигаться по макету с лагами. Один из вариантов оптимизаций — создавать разные варианты. Как на примере с кнопками ниже, вариантов может быть много: primary, secondary, ghost, danger, success и т.д.

Для проверки можно увидеть количество слоём: если добавили компонент, в котором кнопки в одном варианте = 1280 слоём. Если компонент разбит на несколько вариантов, то в моём случае 176 слоём. На 86% меньше слоём, тем самым оптимизировав проектирование макеты.

Детектирование сессии с высоким уровнем риска. Детектирование сессии с высоким уровнем риска.

Идея

При создании компонента Text Fields хотелось быстро управлять элементами. Добавление и изменение происходило через Items: я их назвал Prefix и Suffix, которые отвечают за переднюю и заднюю часть компонента.

Если рассматривать новый тип данных в переднюю часть, мне его нужно только добавить в Prefix, не трогая все варианты компонента: size, states.

Детектирование сессии с высоким уровнем риска.

Токены

Основная иерархия токенизации разбиты между Примитивами и Семантикой. Ничего сверхъестественного и нового, такой принцип используется в большинстве дизайн-систем.

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

Семантика содержит большое количество групп:

  • background(bg). Основной фон интерфейса и кнопки для каждого варианта;
  • foreiground(fg). Дополнительный фон для элементов Banner, Alert, Notify;
  • surface. Градация поверхности в интерфейсе и их интерактивность;
  • text. Общий цвет текста, в компонентах, состояния;
  • icon. Общий цвет иконок, в компонентах, состояния;
  • border. Общий цвет границ, в компонентах, состояния;
  • input. Выделил отдельно для компонента с Input;
  • badge. Управление с каждым цветом бейджиков;
  • misc. Внутри деление на разные компоненты: loader, skeleton, code, tooltip. Список неограничен и в зависимости от работы компоненто можно добавлять.
  • chart. Работа с визуализацией данных.
Детектирование сессии с высоким уровнем риска. Детектирование сессии с высоким уровнем риска.

Результат и планы развития

Спроектированы два интерфейса продукта. Сделаны 192 переменные в семантике и 232 в примитивах.

Построить брейкпоинты, отступы и закругления на основе переменных в зависимости от Фрейма. Это поможет быстро адаптировать как компоненты, так и сами макеты.