Нативный журнал проектов Tabler с актуальными переменными темы 1.6, карточками временной шкалы, контекстом таблицы данных, валидацией в модальном окне и композицией для светлой и тёмной тем, в которой можно сохранять локальные контрольные точки.
Скомпилированные CSS версии Tabler 1.6.1 и встроенный модальный компонент JavaScript. Исходное содержимое проекта и варианты обложек. · Справочник по реализации
02
Справочник по дизайн-системе Tabler
Скомпилированные переменные CSS версии 1.6.1. В этой версии используются примитивы OKLCH и light-dark()/color-mix() в семантических ролях; старые примеры Tabler на основе hex не следует считать той же темой. Ниже приведены фактические значения по умолчанию в установленной версии.
Дизайн-система Tabler: используйте тему, соответствующую версии Tabler
Используйте тему, соответствующую версии Tabler
Журнал проекта создан с помощью Tabler 1.6.1. В скомпилированной палитре используются цвета OKLCH, а семантические переменные используют light-dark и color-mix. Поэтому в справочнике приведены фактические выражения, а не скопированные из более раннего руководства Bootstrap или Tabler шестнадцатеричные значения. Основное действие, значки статусов и роли поверхностей взяты из установленной версии.
Tabler расширяет набор компонентов Bootstrap собственными шаблонами компоновки и представления информации. В этом образце используются нативные классы хронологии, заголовка страницы, datagrid и аватара наряду со знакомыми карточками, формами и модальным окном. Благодаря этим деталям перед нами композиция Tabler, а не обычная сетка карточек с другим логотипом.
Режим цвета дизайн-системы Tabler меняет не только текст, но и поверхности
Режим цвета меняет не только текст, но и поверхности
Переключатель темы меняет data-bs-theme на элементе html и обновляет собственное состояние нажатия и текст действия. Семантические выражения Tabler выбирают светлые или тёмные значения. Для этого простого примера с двумя состояниями отдельный менеджер темы JavaScript не нужен, а выбранное предпочтение не сохраняется за пределами страницы.
Для меток «Решение», «Прототип» и «Ревью» используются встроенные классы с синим, фиолетовым и зелёным оттенками. Текстовые подписи сохраняют смысл без опоры только на цвет. Иллюстрации для изучения обложек сохраняют исходную палитру, напоминающую бумагу, в обоих режимах; окружающие карточки, страница и текст используют настоящую тему компонентов.
Дизайн-система Tabler: компактный основной текст и отдельная иерархия заголовков страницы
Компактный размер основного текста и отдельная иерархия страницы
Размер основного текста по умолчанию — 0.875rem, высота строки — около 1.4286; при корневом размере шрифта в шестнадцать пикселей это даёт примерно четырнадцать пикселей. В установленном наборе шрифтов используется системный шрифт без засечек, поэтому для этого предпросмотра не нужен удалённый шрифт. В заголовках карточек и метаданных сохраняются встроенные классы, а для заголовка страницы задан исходный размер в тридцать два пикселя.
Встроенные значения отступов последовательно увеличиваются: 0, 0.25, 0.5, 1, 1.5, 2 и 2.5rem. Это именованные переменные установленного CSS, а не предполагаемая шкала. Внутренние отступы тела карточки по умолчанию равны 1.25rem в обоих направлениях. Узел временной шкалы имеет размер 2.5rem, а соединитель использует переменную отступа страницы, чтобы соединить записи.
Дизайн-система Tabler: временная шкала — это больше, чем вертикальная линия
Хронология — это не просто вертикальная граница
Каждая контрольная точка — это элемент списка timeline-event с timeline-event-icon и timeline-event-card. Встроенный CSS располагает узел, рисует соединитель между всеми записями, кроме последней, и смещает карточку с содержимым на ширину узла плюс отступ страницы. В этом примере линия не имитируется фоновой картинкой, а для каждой карточки не используются абсолютные координаты.
Содержимое карточек различается. В одной зафиксировано структурное решение, в другой размещены три настоящих эскиза обложек, в третьей — результаты ревью источников. Контекст проекта расположен за пределами последовательности: формат и текущий фокус — постоянные характеристики, а не события с датой. На небольших экранах боковая панель следует за временной шкалой в порядке документа.
Дизайн-система Tabler: используйте datagrid для небольших групп меток и значений
Используйте Datagrid для небольших групп меток и значений
В карточке «Контекст проекта» пары datagrid-item, datagrid-title и datagrid-content. Формат, команда, контрольные точки и текущий фокус — равноправные характеристики, поэтому они представлены в виде компактного встроенного datagrid, а не таблицы с повторяющимися заголовками строк. Для аватаров используются инициалы, поэтому удалённые изображения не нужны.
В этом примере изменяется только количество контрольных точек. После добавления локальной записи оно увеличивается с трёх до четырёх, а исходное описание проекта остаётся без изменений. Так исключаются выдуманные метрики панели: число напрямую соответствует видимым записям в списке.
Дизайн-система Tabler: встроенное модальное окно управляет видимостью и фокусом
Встроенный модальный компонент управляет видимостью и фокусом
Кнопка «Добавить контрольную точку» открывает встроенное модальное окно с помощью data-bs-toggle и data-bs-target. Реализацию модального окна обеспечивает входящий в комплект Tabler JavaScript. Обработчик события shown.bs.modal устанавливает фокус на поле заголовка после завершения перехода, когда поле уже видно. Кнопки «Закрыть» и «Отмена» используют data-bs-dismiss и следуют тому же жизненному циклу компонента.
В модальном окне находится настоящая форма. Атрибуты обязательного поля и ограничения длины отклоняют незаполненные поля до запуска обработчика отправки. Обработчик дополнительно проверяет длину после удаления пробелов по краям: строка, состоящая только из пробелов, не может служить осмысленным заголовком или пояснением. При ошибке введённый текст сохраняется, чтобы его можно было исправить; форма очищается только после успешного добавления записи.
Откройте модальное окно и отправьте пустые поля, чтобы проверить первое поле с ошибкой.
Укажите заголовок, выберите тип контрольной точки и объясните причину.
Отправьте форму и убедитесь, что новая запись и количество в контексте обновились вместе.
Дизайн-система Tabler: безопасно добавляйте текст и обозначайте локальный характер записи
Добавляйте безопасный текст и обозначайте границы локальной реализации
Приложение создаёт заготовку карточки известной структуры и вставляет заголовок и пояснение с помощью textContent. Тональный класс выбирается только по фиксированному соответствию трёх типов из списка. Пользовательский текст никогда не подставляется в HTML карточки. Новая запись добавляется в начало списка и явно помечается как ЛОКАЛЬНАЯ ЗАПИСЬ, а не снабжается выдуманной серверной отметкой времени.
После вставки существующий экземпляр модального окна закрывается, а в уведомлении о состоянии называется новая контрольная точка. В уведомлении прямо сказано, что данные службы проекта не обновлялись. Для настоящего совместного журнала потребовались бы сохранение данных, сведения об авторе и гарантии порядка записей; локальное добавление в DOM таких возможностей не обеспечивает.
В основной сетке используются col-lg-8 и col-lg-4. Ниже встроенной большой контрольной точки контекста проекта располагается под журналом. В исходной таблице стилей для небольших экранов сокращён боковой отступ временной шкалы, группам заголовков и значков разрешено переноситься, а эскизы обложек уменьшены; тексты и действия при этом остаются прежними.
Временная шкала может стать тесной, если за ширину одновременно конкурируют столбец со значком, внутренние отступы карточки и длинный заголовок. В мобильном примере узел остаётся стабильным ориентиром, но отступ уменьшен. Исходные эскизы обложек по-прежнему представлены тремя небольшими вариантами сравнения, поскольку важно показать их взаимосвязь; подписи к ним дополняют соседний поясняющий абзац.
Сохраняйте читаемость заголовка и типа контрольной точки при переносе строк.
Сохраняйте текст пояснения, а не обрезайте каждую запись временной шкалы.
На мобильных устройствах размещайте карточку контекста после основного содержимого.
Дизайн-система Tabler: подключите согласованную пару CSS и JavaScript
Подключайте согласованную пару CSS и JavaScript
В настройке используется @tabler/core 1.6.1, а его ресурсы из dist копируются в локальную общедоступную директорию. Подключите tabler.min.css перед таблицей стилей приложения, а tabler.min.js — перед локальным кодом взаимодействия. Второй, не связанный с ними пакет Bootstrap может дважды инициализировать те же атрибуты данных; в этом примере используется только согласованный пакет Tabler.
В текущей таблице стилей используются современные функции работы с цветом. При адаптации для продукта с требованиями к поддержке старых браузеров изучите рекомендации Tabler по совместимости с браузерами. Локальный пример проверен в Chromium: проверялись встроенная валидация модального окна, добавление записи во временную шкалу, тёмный режим и макет шириной 390px. Это не готовое к выпуску решение и не гарантия работы во всех возможных браузерах.
Иллюстрации изображают три вымышленных дизайн-проекта.
Для встраивания используется высота по содержимому документа.
04
Tabler Настройка AI-агента для дизайн-системы
Отправная точка для реализации
Проверено на Tabler 1.6.1. Сохраните приложенные таблицу стилей и модуль приложения как style.css и app.js. Используются атрибуты данных API встроенного модального окна. Обёртка HTML включает всю разметку body; сохраните предоставленные примеры взаимодействия и CSS под указанными здесь именами файлов.
html
<!-- npm install @tabler/[email protected] -->
<!-- Copy node_modules/@tabler/core/dist to public/vendor/tabler. -->
<html lang="en" data-bs-theme="light">
<meta name="viewport" content="width=device-width,initial-scale=1">
<link rel="stylesheet" href="/vendor/tabler/css/tabler.min.css">
<link rel="stylesheet" href="style.css">
<main class="project-log"><header class="page-header d-print-none"><div class="row align-items-center"><div class="col"><div class="page-pretitle">TABLER · PROJECT JOURNAL</div><h1 class="page-title">Atlas field notes</h1><p class="text-secondary mt-2 mb-0">Decisions, prototypes and review checkpoints for a small editorial project.</p></div><div class="col-auto d-flex gap-2"><button id="theme" class="btn" aria-pressed="false">Dark mode</button><button id="add" class="btn btn-primary" data-bs-toggle="modal" data-bs-target="#entry-modal">Add checkpoint</button></div></div></header><div class="row g-4 mt-1"><section class="col-lg-8" aria-label="Project checkpoints"><ul id="timeline" class="timeline"><li class="timeline-event"><div class="timeline-event-icon bg-blue-lt" aria-hidden="true">AM</div><div class="card timeline-event-card"><div class="card-body"><div class="d-flex justify-content-between gap-3"><h2 class="card-title mb-1">A clearer route through the issue</h2><span class="badge bg-blue-lt">Decision</span></div><div class="text-secondary small mb-3">Alex Morgan · 02 OCT</div><p class="mb-0">Group the field essays by landscape rather than author. Each chapter opens with a short map and a single question.</p></div></div></li><li class="timeline-event"><div class="timeline-event-icon bg-purple-lt" aria-hidden="true">JC</div><div class="card timeline-event-card"><div class="card-body"><div class="d-flex justify-content-between gap-3"><h2 class="card-title mb-1">Three cover directions</h2><span class="badge bg-purple-lt">Prototype</span></div><div class="text-secondary small mb-3">Jules Chen · 01 OCT</div><div class="cover-strip" aria-label="Three original cover studies"><div><b>ATLAS</b><i></i><small>RIDGE / 01</small></div><div><b>ATLAS</b><i></i><small>RIVER / 02</small></div><div><b>ATLAS</b><i></i><small>PLAIN / 03</small></div></div><p class="mt-3 mb-0">Compare the quiet title treatment against the stronger geographic silhouette before selecting a direction.</p></div></div></li><li class="timeline-event"><div class="timeline-event-icon bg-green-lt" aria-hidden="true">SR</div><div class="card timeline-event-card"><div class="card-body"><div class="d-flex justify-content-between gap-3"><h2 class="card-title mb-1">Reference package reviewed</h2><span class="badge bg-green-lt">Review</span></div><div class="text-secondary small mb-3">Sam Rivera · 30 SEP</div><p class="mb-0">Image captions, credit lines and print dimensions are recorded alongside each selected reference.</p></div></div></li></ul></section><aside class="col-lg-4"><div class="card"><div class="card-header"><h2 class="card-title">Project context</h2></div><div class="card-body"><div class="datagrid"><div class="datagrid-item"><div class="datagrid-title">Format</div><div class="datagrid-content">Editorial field journal</div></div><div class="datagrid-item"><div class="datagrid-title">Team</div><div class="datagrid-content"><span class="avatar avatar-xs me-1">AM</span><span class="avatar avatar-xs me-1">JC</span><span class="avatar avatar-xs">SR</span></div></div><div class="datagrid-item"><div class="datagrid-title">Checkpoints</div><div id="count" class="datagrid-content">3 recorded</div></div><div class="datagrid-item"><div class="datagrid-title">Current focus</div><div class="datagrid-content">Cover selection</div></div></div></div><div class="card-footer text-secondary">Sample project. New entries stay in this page.</div></div><div class="card mt-4"><div class="card-body"><h2 class="card-title">A useful checkpoint</h2><p class="text-secondary">Record the decision and the reason together. A future reader should understand what changed without reopening the meeting.</p><p class="mb-0 small">Choose Decision, Prototype or Review when adding a local entry.</p></div></div></aside></div><div id="notice" class="alert alert-success mt-3" role="status" hidden></div></main><div id="entry-modal" class="modal modal-blur fade" tabindex="-1" aria-labelledby="entry-title" aria-hidden="true"><div class="modal-dialog modal-dialog-centered"><div class="modal-content"><form id="entry-form"><div class="modal-header"><h2 id="entry-title" class="modal-title">Add a local checkpoint</h2><button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button></div><div class="modal-body"><div class="mb-3"><label for="entry-name" class="form-label">Title</label><input id="entry-name" class="form-control" required minlength="5" maxlength="80" placeholder="What changed?"></div><div class="mb-3"><label for="entry-type" class="form-label">Kind</label><select id="entry-type" class="form-select"><option>Decision</option><option>Prototype</option><option>Review</option></select></div><div><label for="entry-detail" class="form-label">Reason or evidence</label><textarea id="entry-detail" class="form-control" required minlength="15" maxlength="360" rows="4" placeholder="Explain why this checkpoint matters."></textarea></div></div><div class="modal-footer"><button type="button" class="btn" data-bs-dismiss="modal">Cancel</button><button class="btn btn-primary" type="submit">Add to journal</button></div></form></div></div></div>
<script src="/vendor/tabler/js/tabler.min.js"></script>
<script src="app.js"></script>
<!-- The bundle exposes tabler.Modal; no second Bootstrap bundle is needed. -->
</html>
Запрос для вашего проекта
Промпт для AI-агента
Используйте Tabler 1.6.1, чтобы воспроизвести журнал проекта Atlas с временной шкалой, карточками контекста, datagrid и встроенным Modal. Форму проверки контрольной точки держите отдельно от зафиксированной временной шкалы: отмена не меняет журнал, а корректная отправка добавляет введённую контрольную точку в локальные записи. Сохраните атрибуты data-bs, соответствующий пакет Tabler и оформление тем. Оставьте исходные эскизы обложек декоративными, а текст контрольных точек — читаемым на узких экранах. Не создавайте впечатления, будто представлен полный перечень инфраструктуры или выполнена внешняя публикация.
05
Tabler Источники и область применения дизайн-системы
Tabler 1.6.1. Переменные темы и встроенные компоненты отделены от исходного содержания проекта и иллюстраций обложек. Новые контрольные точки остаются локальными.