Пропсы
Данные
| Проп | Тип | По умолчанию | Описание |
|---|---|---|---|
data | HeatmapData | [] | Данные активности. Принимает массив [{ date, value }] или объект-карту { 'YYYY-MM-DD': значение }. |
Диапазон дат
| Проп | Тип | По умолчанию | Описание |
|---|---|---|---|
range | 'year' | 'month' | '3months' | '6months' | — | Готовый пресет диапазона. Приоритетнее startDate/endDate. |
startDate | string | Date | год назад | Начало видимого диапазона. |
endDate | string | Date | сегодня | Конец видимого диапазона. |
Цвета и шкала
| Проп | Тип | По умолчанию | Описание |
|---|---|---|---|
scaleMode | 'levels' | 'gradient' | 'levels' | Режим цветовой шкалы. |
levels | number | 5 | Количество уровней цвета. Ограничено 2–10. |
colorPreset | 'github' | 'blue' | 'orange' | 'red' | 'purple' | 'teal' | — | Готовая палитра (учитывает светлую/тёмную тему). |
colors | string[] | из темы | Цвета для каждого уровня. Индекс 0 = пустой день. |
colorFrom | string | '#9be9a8' | Начальный цвет градиента (режим gradient). |
colorTo | string | '#216e39' | Конечный цвет градиента / целевой цвет авто-палитры. |
maxValue | number | авто | Максимальное значение для шкалы. Считается из данных, если не задано. |
emptyColor | string | из темы | Цвет фона дней без данных. |
Внешний вид
| Проп | Тип | По умолчанию | Описание |
|---|---|---|---|
theme | 'light' | 'dark' | 'auto' | 'auto' | Встроенная цветовая тема. |
cellSize | number | string | 12 | Размер ячейки в px или CSS-строке ('1rem'). |
cellGap | number | string | 3 | Отступ между ячейками. |
cellRadius | number | string | 2 | Скругление углов ячейки. 50 = круги. |
weekStart | 0–6 | 1 | Первый день недели. 0 = воскресенье, 1 = понедельник. |
orientation | 'horizontal' | 'vertical' | 'horizontal' | Направление раскладки. Вертикальная складывает недели сверху вниз (дни недели сверху, месяцы слева). |
showWeekdays | boolean | true | Показывать подписи дней недели. |
showMonths | boolean | true | Показывать подписи месяцев. |
showLegend | boolean | true | Показывать легенду цветовой шкалы. |
legendLabel | string | '' | Текст рядом с легендой. |
stickyWeekdays | boolean | true | Прилипание подписей дней недели при горизонтальном скролле. |
Подсветка сегодня
| Проп | Тип | По умолчанию | Описание |
|---|---|---|---|
today | boolean | TodayOptions | false | Подсветить сегодняшнюю ячейку. true использует дефолты (ring, синий, 2px). |
Структура TodayOptions
ts
interface TodayOptions {
color?: string // цвет подсветки (по умолчанию '#0969da' / '#58a6ff' в тёмной теме)
style?: 'ring' | 'fill' // стиль (по умолчанию 'ring')
size?: number // толщина в px (по умолчанию 2)
}| Стиль | Описание |
|---|---|
ring | Рамка внутри ячейки |
fill | Заливка ячейки цветом, перекрывает цвет активности |
Тултип
| Проп | Тип | По умолчанию | Описание |
|---|---|---|---|
tooltipEnabled | boolean | true | Включить тултип при наведении. |
tooltipFormatter | (day: HeatmapDay) => string | встроенный | Свой текст тултипа. |
Локализация
| Проп | Тип | По умолчанию | Описание |
|---|---|---|---|
locale | HeatmapLocale | английский | Названия месяцев, дней недели, подписи. |
dateFormat | string | ((date: string) => string) | 'YYYY-MM-DD' | Формат отображения даты. Токены: YYYY, MM, DD. |
Структура HeatmapLocale
ts
interface HeatmapLocale {
months?: [string × 12] // полные названия месяцев
monthsShort?: [string × 12] // сокращённые названия месяцев
weekdays?: [string × 7] // полные названия дней (индекс 0 = воскресенье)
weekdaysShort?: [string × 7] // сокращённые названия дней
noDataLabel?: string // подпись пустых дней в тултипе
formatDate?: (date: string) => string // свой форматтер даты
}