технологии 14 минут чтения

Шестой выпуск Bootstrap переписал цветовую модель: что это меняет для сайтов, которые живут годами

Оттенки теперь задаются в oklch, двенадцать ступеней каждого цвета рассчитывает сам браузер, а компоненты красятся композицией классов. Разбираем на примерах, где это упростит работу редакции, а где придётся переучиваться.

АС
Айгерим Сапарова
обозреватель · сегодня, 08:40 · обновлено 11:15
Палитра из шестнадцати оттенков в документации фреймворка. Иллюстрация заменена градиентом на токенах ядра.

Когда в 2021 году вышла пятая версия, цвета в ней жили в двух мирах: шестнадцатеричные значения в Sass и их копии в CSS-переменных. Чтобы получить оттенок посветлее, препроцессор смешивал цвет с белым ещё до того, как файл попадал в браузер. Шестая версия отдаёт эту работу самому браузеру: базовый цвет записан в пространстве oklch, а ступени от 025 до 975 рассчитывает функция color-mix().

Почему oklch, а не hex

Слово oklch складывается из трёх координат: l — светлота, c — насыщенность, h — тон в градусах. Приставка «ok» досталась от названия пространства Oklab, которое Бьёрн Оттоссон опубликовал в 2020 году как исправленную версию Lab. Главное свойство: одинаковый шаг светлоты воспринимается глазом одинаково для любого тона. Синий и жёлтый с одной светлотой выглядят одинаково «тяжёлыми», чего в hex и hsl добиться нельзя.

Если раньше дизайнер подбирал двенадцать оттенков руками, теперь он задаёт один — остальные выводятся по правилу, и правило одинаково для всех шестнадцати цветов палитры.

Из описания подхода в документации шестой версии

Композиция вместо вариантов

Во второй половине статьи — самое заметное для верстальщика изменение. Кнопка больше не бывает «синей кнопкой» .btn-primary. Она собирается из двух классов: формы и темы.

Три способа покрасить одну кнопку
пятая версияшестая версиячто происходит
.btn-primary.btn-solid .theme-primaryтема ставит переменные --bs-theme-bg, --bs-theme-fg; кнопка их читает
.btn-outline-danger.btn-outline .theme-dangerта же тема, другая форма
—.btn-subtle .theme-successновая форма: мягкий фон из ступени bg-subtle

Тот же приём работает для значков, оповещений, аккордеонов, таблиц, степперов и аватаров. Девять тем ядра — primary, accent, success, danger, warning, info, inverse, secondary — и свою можно добавить одной записью в карту $theme-colors.

  • оттенок меняется в одном месте — у токена --bs-primary-base;
  • компоненты не знают, какой цвет им достанется: они читают --bs-theme-*;
  • вложенный блок возвращается к значениям по умолчанию классом theme-reset.

Что придётся переучивать

Пороговые версии браузеров выросли сразу на семьдесят выпусков Chrome. Утилиты поменяли место ответственного за ширину экрана: было d-md-none, стало md:d-none. Шкала отступов выросла с шести ступеней до тринадцати, и цифра в классе больше не значит того же, что в пятой версии. Об этих и других порогах — в докладе, который сопровождает этот сайт.

Справка редакции

Этот материал — часть вымышленного издания; факты о фреймворке взяты из документации Bootstrap 6.0.0-alpha.1 и анонса от 8 октября 2026 года, остальное придумано для демонстрации вёрстки.

Вопросы, которые нам задали после публикации

Нужно ли переписывать старые шаблоны?
Да, и это главная цена перехода. Переименованы классы кнопок, модальных окон, выпадающих меню, сетки и утилит. Проект приложил к репозиторию файл-инструкцию для агентов, который проводит миграцию по шагам.
Как устроен этот аккордеон?
На элементах <details> и <summary>. Общий атрибут name делает группу взаимоисключающей — без единой строки JavaScript. Высота анимируется чистым CSS через interpolate-size.
Что с поддержкой браузеров?
Chrome и Edge от 130-й версии, Firefox от 132-й, Safari от 18-й. Ниже порога нет ни полифилов, ни префиксов: страница просто отрисуется неверно.

Обсуждение 3

ДК
Дана Касымова · 2 часа назад

Таблица в середине текста — лучшее объяснение композиции, которое я видела.

МЖ
Марат Жаксыбеков · час назад

Интересно, выдержит ли старый парк планшетов в редакции новый порог браузеров.

Модератор читает комментарии в рабочие часы.
Пустой комментарий отправить нельзя.

Поделиться материалом

Нативный элемент <dialog>: подложку, ловушку фокуса и закрытие по Escape даёт браузер, а не плагин.