Skip to content

Темизация

Встроенные темы

Проп theme переключает светлую, тёмную и авто-тему (следует за prefers-color-scheme):

vue
<CalendarHeatmap :data="data" theme="dark" />
<CalendarHeatmap :data="data" theme="light" />
<CalendarHeatmap :data="data" theme="auto" />  <!-- по умолчанию -->

Свои цвета через пропсы

Передайте массив цветов для каждого уровня (индекс 0 = пустой день):

vue
<CalendarHeatmap
  :data="data"
  :colors="['#f0f0f0', '#c6e7ff', '#82cfff', '#33aaff', '#0066cc']"
/>

Для режима градиента задайте color-from и color-to:

vue
<CalendarHeatmap
  :data="data"
  scale-mode="gradient"
  color-from="#ffecb3"
  color-to="#e65100"
/>

Готовые цветовые пресеты

Проп color-preset даёт готовую палитру (учитывает светлую/тёмную тему):

vue
<CalendarHeatmap :data="data" color-preset="blue" />
<CalendarHeatmap :data="data" color-preset="purple" />

Доступные пресеты: github, blue, orange, red, purple, teal.

Один цвет → авто-палитра

Передайте только color-to — палитра уровней сгенерируется автоматически от светлого оттенка к указанному цвету:

vue
<CalendarHeatmap :data="data" color-to="#9333ea" :levels="6" />

CSS-переменные

Переопределяйте любую CSS-переменную на .calendar-heatmap или своей обёртке:

css
.my-heatmap {
  --ch-color-level-0: #f5f5f5;
  --ch-color-level-1: #ffd6e0;
  --ch-color-level-2: #ffb3c1;
  --ch-color-level-3: #ff85a1;
  --ch-color-level-4: #c9184a;
  --ch-cell-size: 14px;
  --ch-cell-gap: 4px;
  --ch-cell-radius: 50%;   /* круги! */
  --ch-font-color: #333;
}

Все доступные переменные

ПеременнаяПо умолчанию (светлая)Описание
--ch-cell-size12pxШирина и высота ячейки
--ch-cell-gap3pxОтступ между ячейками
--ch-cell-radius2pxСкругление углов ячейки
--ch-font-size11pxРазмер шрифта подписей
--ch-font-color#57606aЦвет текста подписей
--ch-color-level-0#ebedf0Цвет пустого дня
--ch-color-level-1#9be9a8Цвет уровня 1
--ch-color-level-2#40c463Цвет уровня 2
--ch-color-level-3#30a14eЦвет уровня 3
--ch-color-level-4#216e39Цвет уровня 4
--ch-color-gradient-from#9be9a8Начало градиента
--ch-color-gradient-to#216e39Конец градиента
--ch-tooltip-bg#1b1f24Фон тултипа
--ch-tooltip-color#ffffffЦвет текста тултипа

Форма ячейки

vue
<!-- Квадрат (по умолчанию) -->
<CalendarHeatmap :data="data" :cell-radius="2" />

<!-- Полностью круглые -->
<CalendarHeatmap :data="data" :cell-radius="50" />