Главная/Документация/Оформление/Цвета
Оформление

Цвета

Настройка цветов для лейблов, статусов и смарт-лейблов с помощью системы EntityColor. Поддерживаются цвета из дизайн-системы темы и пользовательские значения.

Лейблы, статусы и смарт-лейблы поддерживают настраиваемые цвета через тип EntityColor. Цвета могут ссылаться на дизайн-систему темы (автоматически адаптируясь к светлому/тёмному режиму) или задавать явные пользовательские значения.

Тип EntityColor

Поле color в конфигурациях сущностей принимает две формы:

Системные цвета

Ссылка на одно из 5 цветов дизайн-системы по имени. Они сопоставляются с CSS-переменными, определёнными вашей темой, поэтому автоматически адаптируются к светлому и тёмному режиму.

terminaljson
{
  "color": "accent"
}

Доступные имена системных цветов:

Имя Внешний вид по умолчанию Семантическое назначение
accent Фиолетовый Бренд, основные действия, режим Автономно
info Янтарный Предупреждения, внимание, режим Спрашивай перед правкой
success Зелёный Завершение, подключение, подтверждение
destructive Красный Ошибки, сбои, действия удаления
foreground Цвет текста Нейтральные, приглушённые состояния

Системные цвета с непрозрачностью

Добавьте /{opacity} к любому имени системного цвета, где opacity — значение от 0 до 100:

terminaljson
{
  "color": "foreground/50"
}

Это отобразится как полупрозрачная версия системного цвета. Полезно для приглушённых или вторичных состояний.

Дополнительные примеры:

  • "accent/80" — акцент с 80% непрозрачностью
  • "destructive/60" — красный с 60% непрозрачностью
  • "foreground/30" — очень ненавязчивый цвет текста

Пользовательские цвета

Укажите явные CSS-значения цвета с помощью объекта, содержащего light и необязательно dark:

terminaljson
{
  "color": {
    "light": "#EF4444",
    "dark": "#F87171"
  }
}

Если dark опущен, он автоматически выводится из light:

  • Hex-цвета: Осветляются за счёт смешивания с белым на 30%
  • Другие форматы (OKLCH, RGB, HSL): Используются как есть — укажите dark явно для лучших результатов
terminaljson
{
  "color": {
    "light": "#3B82F6"
  }
}

Форматы цветов

Пользовательские цвета принимают любой допустимый CSS-формат цвета:

Формат Пример
Hex #8b5cf6, #8b5cf6cc (с альфа-каналом)
RGB rgb(139, 92, 246)
HSL hsl(262, 83%, 58%)
OKLCH oklch(0.58 0.22 293)
Рекомендация: Используйте OKLCH для перцептивно равномерных цветов. Для простых случаев hex с автоматически выводимым тёмным вариантом отлично подходит.

Где используются цвета

Лейблы

Лейблы отображаются как цветные круги. Поле color управляет цветом круга:

terminaljson
{
  "id": "bug",
  "name": "Bug",
  "color": "destructive"
}
terminaljson
{
  "id": "feature",
  "name": "Feature",
  "color": {
    "light": "#8B5CF6",
    "dark": "#A78BFA"
  }
}

Лейблы без поля color отображаются как приглушённый круг цвета текста.

Статусы

Статусы используют цвет для своих иконок и визуальных индикаторов:

terminaljson
{
  "id": "in-progress",
  "label": "In Progress",
  "color": "success",
  "category": "open"
}

Цвета статусов по умолчанию (применяются, когда color не указан):

ID статуса Цвет по умолчанию Внешний вид
backlog foreground/50 Приглушённый
todo foreground/50 Приглушённый
in-progress success Зелёный
needs-review info Янтарный
done accent Фиолетовый
cancelled foreground/50 Приглушённый

Смарт-лейблы

Смарт-лейблы поддерживают поле color:

terminaljson
{
  "id": "smart-error",
  "name": "ERROR",
  "color": "destructive",
  "expression": "hasError == true"
}

Связь с темой

Системные цвета (accent, info, success, destructive, foreground) ссылается на те же CSS-переменные, которые определяет ваша тема. Это означает:

  • Цвета сущностей автоматически адаптируются при смене темы
  • Статус с "color": "accent" будет фиолетовым с темой по умолчанию, но синим, если вы переопределите акцент на синий
  • Пользовательские цвета ({ light, dark }) не зависят от темы

Справочник OKLCH

Для пользовательских цветов в формате OKLCH: oklch(lightness chroma hue)

Компонент Диапазон Описание
Lightness 0–1 0 = чёрный, 1 = белый
Chroma 0–0.4 0 = серый, выше = более насыщенный
Hue 0–360 Угол на цветовом колесе

Распространённые оттенки:

  • Красный: ~25
  • Оранжевый: ~70
  • Жёлтый: ~100
  • Зелёный: ~145
  • Циан: ~195
  • Синий: ~250
  • Фиолетовый: ~293
  • Розовый: ~330

Примеры

Минимальный — системный цвет

terminaljson
{ "color": "success" }

Приглушённое состояние

terminaljson
{ "color": "foreground/40" }

Брендовый цвет с явным тёмным вариантом

terminaljson
{
  "color": {
    "light": "oklch(0.55 0.20 250)",
    "dark": "oklch(0.70 0.18 250)"
  }
}

Hex с автоматически выводимым тёмным режимом

terminaljson
{
  "color": {
    "light": "#059669"
  }
}

Советы

Начинайте с системных цветов

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

Используйте непрозрачность для иерархии

foreground/50 и foreground/30 полезны для приглушённых, вторичных или отключённых состояний без введения новых цветов.

Проверяйте в обоих режимах

Если используются пользовательские цвета, всегда проверяйте отображение в светлом и тёмном режимах. Указывайте явные значения dark для лучших результатов с не-hex форматами.

Цвет не применяется?

  • Убедитесь, что поле color находится на верхнем уровне конфигурации сущности (не вложено)
  • Имена системных цветов чувствительны к регистру: используйте "accent", а не "Accent"
  • Непрозрачность должна быть от 0 до 100 (не от 0 до 1): используйте "foreground/50", а не "foreground/0.5"
  • Объекты пользовательских цветов требуют как минимум поля light

Нужен такой агент в вашей компании?

Устанавливаем под ключ: настройка на компьютерах сотрудников, единый аккаунт, интеграция с 1С и внутренними системами, обучение команды. Подробнее о внедрении →