Tooltip в Chart.js настраиваются через конфигурацию
options.plugins.tooltip, где задаются визуальные параметры
отображения всплывающих подсказок. Цветовая схема влияет на читаемость,
акценты и общее восприятие графика, особенно при плотной визуализации
данных.
Цвета в tooltip разделяются на несколько логических областей: фон, текст, рамки и цветовые маркеры серий данных.
Фон tooltip
Ключевой параметр:
backgroundColor — задаёт цвет фона всего всплывающего
окнаПример логики использования:
Фон должен обеспечивать контраст с текстом и не перекрывать визуально данные на графике.
Цвет текста
Для текста используются отдельные настройки:
titleColor — цвет заголовка tooltipbodyColor — цвет основного текста (значения)footerColor — цвет дополнительной информацииРазделение позволяет задавать иерархию информации, где заголовок визуально выделяется, а тело остаётся нейтральным.
Пример логики:
Цвет рамки
borderColor — цвет границы tooltipborderWidth — толщина границыРамка используется для отделения tooltip от фона графика, особенно при близких по тону цветах.
Шрифты управляются через объект font внутри отдельных
секций: titleFont, bodyFont,
footerFont.
Каждый блок поддерживает одинаковую структуру:
family — семейство шрифтаsize — размер шрифтаstyle — начертание (normal, bold, italic)weight — насыщенностьlineHeight — высота строкиtitleFont: {
family: 'Arial',
size: 14,
weight: 'bold',
lineHeight: 1.2
}
Заголовок обычно используется для отображения метки данных (например, имени категории или точки).
bodyFont: {
family: 'Arial',
size: 12,
weight: 'normal',
lineHeight: 1.4
}
Основной текст содержит значения данных и подписи серий.
footerFont: {
family: 'Arial',
size: 11,
style: 'italic',
weight: 'normal',
lineHeight: 1.2
}
Футер применяется для дополнительной информации: суммарных значений, комментариев или вычисленных показателей.
Грамотная работа с отступами влияет на читаемость tooltip и предотвращает визуальную перегруженность.
padding — внутренние отступы tooltip со всех
сторонМожет задаваться:
Пример:
padding: {
top: 10,
right: 12,
bottom: 10,
left: 12
}
Большие отступы делают tooltip более «воздушным», но увеличивают его размер на экране.
boxPadding — расстояние между цветным квадратом (или
кружком) и текстом значенияЭтот параметр особенно важен при использовании
displayColors: true.
Chart.js позволяет отображать цвет каждого dataset внутри tooltip.
displayColors: true | falseПри включении рядом с каждым значением появляется цветной индикатор, соответствующий линии или столбцу графика.
Дополнительные параметры:
usePointStyle — использование формы точки вместо
квадратаboxWidth — ширина маркераboxHeight — высота маркераПример поведения:
Визуальная форма tooltip задаётся параметром:
cornerRadius — радиус скругления угловЗначение влияет на стиль интерфейса:
Дополнительно влияет:
caretSize — размер стрелки, указывающей на точку
данныхcaretPadding — расстояние стрелки от точки графикаЧасто используется прозрачность для интеграции tooltip с графиком:
backgroundColor: 'rgba(0, 0, 0, 0.7)'
Прозрачность позволяет:
Для светлых интерфейсов:
backgroundColor: 'rgba(255, 255, 255, 0.9)'
borderColor: 'rgba(0, 0, 0, 0.1)'
Пример объединённой настройки цветов, шрифтов и отступов:
options: {
plugins: {
tooltip: {
backgroundColor: 'rgba(20, 20, 20, 0.85)',
titleColor: '#ffffff',
bodyColor: '#e0e0e0',
footerColor: '#b0b0b0',
borderColor: 'rgba(255, 255, 255, 0.1)',
borderWidth: 1,
padding: {
top: 10,
right: 14,
bottom: 10,
left: 14
},
displayColors: true,
boxPadding: 4,
titleFont: {
family: 'Inter',
size: 14,
weight: 'bold'
},
bodyFont: {
family: 'Inter',
size: 12
},
footerFont: {
family: 'Inter',
size: 11,
style: 'italic'
},
cornerRadius: 6,
caretSize: 6,
caretPadding: 8
}
}
}
В многосерийных графиках tooltip становится ключевым элементом различения данных. Цветовая система должна соответствовать цветам datasets:
При динамической смене темы (light/dark) значения
backgroundColor, bodyColor и
borderColor часто переопределяются через функцию:
backgroundColor: function(context) {
return context.tooltip.dataPoints[0].dataset.backgroundColor;
}
Для более сложных сценариев используются callback-функции:
labelColor — управление цветом маркераlabelTextColor — цвет текста конкретной строкиПример:
callbacks: {
labelColor: function(context) {
return {
borderColor: context.dataset.borderColor,
backgroundColor: context.dataset.backgroundColor
};
}
}
Такой подход позволяет синхронизировать tooltip с динамическими цветами графика без ручного дублирования настроек.