Предложить кейс

Hexa UI

Формат: кейс по публичным материалам (Storybook + GitHub + npm, Apache-2.0). Дата обращения: апрель 2026.

  1. Компания/продукт: Kaspersky
  2. корпоративные B2B продукты.

Главное

  1. Компания/продукт: Kaspersky
  2. корпоративные B2B продукты.
  3. Уровень открытости: полный инженерный слой (GitHub + npm + Storybook), лицензия Apache-2.0.
  4. Платформа: React + TypeScript; стек styled-components; частичная опора на antd; ESM + CommonJS.
  5. Контекст: Hexa UI — слой в составе UIF (User Interface Framework) внутри OSMP (Open Single Management Platform).
  6. Фокус кейса: лучшие практики инженерной зрелости: Definition of Done, архитектура компонентов, типизация, гранулярные токены и тестируемость.

Контекст

Позиционирование: унификация дизайна и разработки как организационная цель

Hexa UI позиционируется как инструмент унификации не только визуального языка, но и процесса проектирования и разработки. Для исследования это важный сигнал: дизайн-система описана как организационная инфраструктура, где дизайн и разработка — две равноправные части системы. В документации явно разделены зоны ответственности, а также указаны контакты ответственных — это редкий маркер зрелого governance.

Состав системы

Foundations: токены как отдельный продуктовый слой (@kaspersky/hexa-ui-core)

3.1 Разделение токенов по контексту использования

Токены вынесены в отдельный пакет @kaspersky/hexa-ui-core, и это не просто «палитра». Цвета разделены на несколько доменов: staticColors (база), productColors (для продуктовых команд), componentColors (для компонентов библиотеки). Это архитектурный приём: продуктовые цвета и библиотечные цвета не смешиваются, что снижает риск регрессий при обновлениях и упрощает поддержку.

3.2 Уникальная практика: гранулярный импорт токенов по компоненту

Можно подключать CSS-переменные только для нужных компонентов (например, button), а не весь набор переменных. Практический эффект: снижается размер бандла и ускоряется загрузка — критично для enterprise B2B приложений с большим количеством интерфейсов.

3.3 Автоматизированная синхронизация Figma → JSON → CSS → npm

В репозитории описаны команды обновления токенов (например, update-colors и update-typography), которые импортируют значения из Figma в JSON и генерируют CSS-переменные. Это снимает ручной перенос значений и снижает рассинхронизацию дизайн↔код на уровне foundations.
Компоненты как система: стандарт документации, версии и типобезопасный API

Каждый компонент в Storybook имеет Docs и Stories (интерактивные примеры), а в шапке есть кнопки Versions (история изменений) и All Props. Отдельный сильный маркер — публичный «Шаблон документации компонентов»: компоненты документируются по единому стандарту, а не «как получится».

Типизация — часть продуктового контракта: отдельные страницы в DOCS объясняют подход к TypeScript, что снижает количество ошибок при интеграции.

Процессы развития

Управление изменениями: open-source workflow вместо закрытых релизов

Hexa UI — полноценный open-source репозиторий: исходники, Issues, Pull Requests, релизы и теги. История изменений видна в git, а не только в «красивом» changelog. В Storybook дополнительно подсвечиваются версии на уровне каждого компонента.

Документация

Карта документации: сначала правила и процессы, потом компоненты

Документация живёт в Storybook и разделена на блоки DOCS и DESIGN. В DOCS вынесены процессные и архитектурные страницы: установка, архитектура компонентов, типизация, разработка, Definition of Done, шаблон документации компонентов, настройка THEME_CONFIG, useThemedComponent, тестовые атрибуты (testId/klId). Только после этого идут компоненты (в алфавите) с историей версий и быстрым просмотром пропсов.

Это явная структура приоритетов: сначала стандарты и качество, потом витрина компонентов. Для анализа подхода это ключевой плюс кейса.

Контроль качества

Тестируемость как часть API: testId / klId

Hexa UI встроила E2E-тестируемость в публичный API компонентов: testId/klId и утилиты для тестовых атрибутов описаны как отдельный раздел документации. Это значит, что DS проектируется под реальные enterprise-процессы QA, а не только под визуальную консистентность.

Уникальные практики и «фишки» кейса

Уникальные практики (в логике исследования)

  1. Публичный Definition of Done: стандарт качества видим внешним пользователям.
  2. Шаблон документации компонентов как обязательный стандарт оформления.
  3. Разделение токенов productColors vs componentColors vs staticColors — защита от смешения уровней.
  4. Гранулярный импорт токенов по компоненту — контроль размера бандла.
  5. Тестовые атрибуты как первоклассная часть API (testId/klId) — DS рассчитана на enterprise QA.
  6. Полный open-source от корпорации (Apache-2.0) — редкость среди российских DS.

Выводы и принципы

Ограничения кейса

  1. Визуальный язык специфичен для кибербезопасности и enterprise: для другой сферы потребуется глубокая перетемизация.
  2. Нет публичного UX patterns / do-don’t слоя: акцент на инженерной документации и API.
  3. Accessibility (WCAG) не выделена публично как отдельная ценность — её нужно проверять по репозиторию/кодовой базе.

Источники

  1. kasperskylab.github.io/uif/hexa-ui/ — Storybook
  2. github.com/KasperskyLab/uif — исходники (Apache-2.0)
  3. npm: @kaspersky/hexa-ui и @kaspersky/hexa-ui-core

Хотите поделиться
своим кейсом?