Компонент QTimeline библиотеки Quasar предназначен для визуального представления последовательности событий во времени. Он идеально подходит для отображения процессов, этапов проекта, истории действий пользователя или любых других данных, связанных с хронологическим порядком. QTimeline реализован с возможностью гибкой кастомизации, поддерживает вертикальную и горизонтальную ориентацию, а также адаптивен под мобильные устройства.
Ключевые свойства QTimeline:
dense — уменьшает размеры элементов для компактного
отображения.reverse — инвертирует порядок элементов.align — выравнивание содержимого, может быть
left, right или alternate.side — определяет, с какой стороны располагается
контент относительно линии таймлайна.color — цвет линии таймлайна.line-width — толщина линии.no-line — убирает саму линию, оставляя только точки
событий.Для начала создаётся контейнер QTimeline, внутри которого размещаются отдельные события с помощью компонента QTimelineEntry. Простейший пример:
<template>
<q-timeline>
<q-timeline-entry
title="Начало проекта"
subtitle="01.01.2026"
body="Сбор требований и анализ требований заказчика."
/>
<q-timeline-entry
title="Разработка"
subtitle="15.01.2026"
body="Начало реализации основных модулей приложения."
/>
<q-timeline-entry
title="Тестирование"
subtitle="01.02.2026"
body="Проверка корректности работы всех компонентов."
/>
</q-timeline>
</template>
Особенности структуры:
title — заголовок события.subtitle — дополнительная информация (дата или краткий
комментарий).body — основной текст описания события.icon — иконка, которая визуально маркирует
событие.color — индивидуальный цвет для точки события.QTimeline позволяет задавать разные цвета и иконки для каждой записи:
<q-timeline>
<q-timeline-entry
title="Запуск MVP"
subtitle="05.02.2026"
icon="rocket_launch"
color="green"
body="Публикация минимально жизнеспособного продукта."
/>
<q-timeline-entry
title="Обратная связь"
subtitle="10.02.2026"
icon="feedback"
color="blue"
body="Сбор отзывов от пользователей."
/>
</q-timeline>
Рекомендации по визуальному восприятию:
По умолчанию таймлайн вертикальный. Для горизонтальной ориентации
используется параметр horizontal:
<q-timeline horizontal>
<q-timeline-entry
title="Старт"
subtitle="01.03.2026"
body="Начало проекта."
/>
<q-timeline-entry
title="Релиз"
subtitle="15.03.2026"
body="Выход первой версии продукта."
/>
</q-timeline>
При горизонтальной ориентации также можно управлять
выравниванием контента с помощью свойства
align, например top или
bottom.
QTimelineEntry поддерживает слоты, что позволяет полностью кастомизировать отображение:
<q-timeline>
<q-timeline-entry>
<template v-slot:title>
<div style="font-weight: bold; color: red;">Критический этап</div>
</template>
<template v-slot:body>
<p>Проверка безопасности и интеграционных тестов.</p>
<q-btn label="Подробнее" color="primary" size="sm" />
</template>
</q-timeline-entry>
</q-timeline>
Слоты доступны для:
icon — кастомная иконка.title — заголовок события.subtitle — подзаголовок.body — основное содержимое записи.Свойство reverse позволяет отображать события в обратном
порядке:
<q-timeline :reverse="true">
<q-timeline-entry title="Финал" />
<q-timeline-entry title="Начало" />
</q-timeline>
Для динамических таймлайнов часто используется привязка к массиву объектов и фильтрация:
<q-timeline>
<q-timeline-entry
v-for="event in events.filter(e => e.active)"
:key="event.id"
:title="event.title"
:subtitle="event.date"
:body="event.description"
/>
</q-timeline>
Такой подход упрощает интеграцию с Vuex, Pinia или любыми другими источниками данных.
QTimelineEntry поддерживает события клика и ховера:
<q-timeline-entry
title="Обновление версии"
@click="onEntryClick"
@mouseover="onEntryHover"
/>
Можно использовать для:
Линия, соединяющая события, также поддается кастомизации:
color — основной цвет линии.line-width — толщина линии.no-line — полностью скрывает линию, оставляя только
точки событий.Пример:
<q-timeline color="deep-purple" line-width="4px">
<q-timeline-entry title="Этап 1" color="purple" />
<q-timeline-entry title="Этап 2" color="indigo" />
</q-timeline>
Свойство align="alternate" позволяет чередовать события
слева и справа, создавая визуально динамичную структуру:
<q-timeline align="alternate">
<q-timeline-entry title="Этап A" />
<q-timeline-entry title="Этап B" />
<q-timeline-entry title="Этап C" />
</q-timeline>
Это особенно удобно для длинных временных линий, где важно избежать визуальной монотонности.
QTimeline в Quasar сочетает:
Комбинация этих возможностей позволяет создавать как простые, информативные линии времени, так и сложные интерактивные визуализации этапов проекта, истории событий или пользовательских действий.