В библиотеке Chart.js настройка заголовка графика реализуется через
встроенный плагин title, который входит в систему
plugins. Он управляет отображением текста, его стилем,
положением и внутренними отступами. В актуальной архитектуре Chart.js
(версии 3 и выше) все параметры заголовка задаются внутри
конфигурационного объекта options.plugins.title.
Базовая структура настройки выглядит следующим образом:
const config = {
type: 'bar',
data: {
labels: ['Янв', 'Фев', 'Мар', 'Апр'],
datasets: [{
label: 'Продажи',
data: [12, 19, 3, 5]
}]
},
options: {
plugins: {
title: {
display: true,
text: 'Динамика продаж'
}
}
}
};
При отсутствии параметра display: true заголовок не
отображается, даже если задан текст.
Настройка шрифта выполняется через объект font, который
позволяет контролировать семейство шрифтов, толщину, стиль и размер
текста.
options: {
plugins: {
title: {
display: true,
text: 'Финансовые показатели',
font: {
family: 'Arial',
size: 20,
weight: 'bold',
style: 'normal',
lineHeight: 1.2
}
}
}
}
Ключевые параметры font:
family Определяет семейство шрифтов. Может быть строкой с перечислением fallback-шрифтов:
family: "'Roboto', 'Helvetica Neue', sans-serif"
size Размер шрифта в пикселях. Chart.js не использует rem или em, только фиксированное значение.
weight Толщина шрифта. Поддерживаются значения CSS:
normal, bold, а также числовые значения
(400, 600, 700), если шрифт их
поддерживает.
style Стиль текста: normal,
italic, oblique.
lineHeight Высота строки. Особенно важна при многострочных заголовках.
Chart.js позволяет передавать массив строк, формируя многострочный заголовок. Каждая строка получает собственную линию отображения, но общий шрифт применяется ко всем строкам одинаково.
title: {
display: true,
text: [
'Аналитика продаж',
'за первый квартал'
],
font: {
size: 18,
weight: '600'
}
}
В таком случае lineHeight влияет на расстояние между
строками, но не заменяет padding.
Отступы управляют пространством вокруг текста заголовка и играют
ключевую роль в визуальной композиции графика. В Chart.js используется
свойство padding, которое может быть числом или
объектом.
title: {
display: true,
text: 'Статистика пользователей',
padding: 20
}
Значение применяется равномерно ко всем сторонам.
Для точного контроля используется объект:
title: {
display: true,
text: 'Рост аудитории',
padding: {
top: 10,
bottom: 25,
left: 0,
right: 0
}
}
Такой подход позволяет смещать заголовок относительно области графика, не влияя на остальные элементы.
Отступы заголовка напрямую влияют на:
При увеличении padding.bottom заголовок визуально
«отрывается» от графика, создавая более воздушную композицию. При
уменьшении значений элементы становятся плотнее.
В реальных интерфейсах часто требуется согласовать заголовок с остальными компонентами графика. Например, при использовании крупного шрифта необходимо компенсировать визуальную тяжесть увеличением отступов:
title: {
display: true,
text: 'Ключевые метрики',
font: {
size: 24,
weight: '700'
},
padding: {
top: 15,
bottom: 30
}
}
При меньшем шрифте можно сократить отступы:
title: {
display: true,
text: 'Метрики',
font: {
size: 14,
weight: '500'
},
padding: 8
}
Хотя основное управление заголовком происходит через шрифт и padding,
важную роль играет параметр align, определяющий
горизонтальное положение текста:
title: {
display: true,
text: 'Продажи по регионам',
align: 'center'
}
Поддерживаются значения:
startcenterendВыравнивание влияет на визуальный баланс и особенно заметно при широких контейнерах.
Chart.js позволяет задавать глобальные параметры, которые будут применяться ко всем графикам:
Chart.defaults.plugins.title.font = {
family: 'Inter',
size: 16,
weight: '600'
};
Это позволяет унифицировать стиль заголовков без дублирования конфигурации.
Параметры заголовка могут изменяться во время выполнения, что используется в интерактивных интерфейсах:
chart.options.plugins.title.font.size = 22;
chart.options.plugins.title.padding = 18;
chart.update();
Изменения применяются после вызова update(), который
пересчитывает макет графика.
При изменении размеров контейнера Chart.js пересчитывает расположение заголовка. Однако:
font.size остаётся фиксированным в пикселях;padding масштабируется относительно общей геометрии
графика;При использовании веб-шрифтов важно учитывать момент их загрузки. Если шрифт не успел загрузиться до отрисовки графика, Chart.js использует fallback-шрифт, что может изменить размеры заголовка и привести к «прыжку» макета после загрузки.
font: {
family: "'Montserrat', sans-serif",
size: 18
}
После загрузки шрифта рекомендуется обновление графика для корректного пересчёта геометрии.
При работе с несколькими строками текста lineHeight
становится ключевым параметром для контроля плотности:
title: {
display: true,
text: ['Аналитика', 'за 2026 год'],
font: {
size: 18,
lineHeight: 1.4
}
}
Меньшие значения делают строки плотнее, большие — увеличивают вертикальные промежутки.
Заголовок занимает верхнюю часть области canvas и влияет на размещение остальных компонентов:
title.padding и
legend.padding.Эти параметры совместно формируют вертикальную структуру графика, определяя визуальную иерархию.