Знакомы ли вы с Bootstrap
Что проверяют
Работали ли вы с Bootstrap на уровне кастомизации или только копировали разметку из документации. Следом обычно спрашивают, как вы переопределяли стили и чем Bootstrap отличается от Tailwind.
Как отвечать
Начните с честного уровня: на каких проектах и с какой версией. Опыт с Bootstrap 3 или 4 на легаси и опыт с Bootstrap 5 это разные истории, и интервьюер это знает. Затем покажите, что понимаете устройство фреймворка:
- сетка: 12 колонок на flexbox,
.container,.row,.col-md-6. Брейкпоинтыsm,md,lg,xl,xxlот 576 до 1400 px, подход mobile-first: класс без префикса действует на всех ширинах; - Bootstrap 5: jQuery больше не нужен, скрипты на чистом JavaScript, всплывающие элементы на Popper. Поддержка IE прекращена;
- кастомизация: правильный путь через Sass. Переопределяете переменные вроде
$primaryи$border-radiusдо импорта, подключаете только нужные модули, а не весьbootstrap.css. В рантайме цвета меняются через CSS-переменные--bs-*; - тёмная тема: в 5.3 появились цветовые режимы через атрибут
data-bs-theme="dark"; - утилиты:
d-flex,mt-3,text-centerи Utility API, через который можно добавить свои классы.
В React обычно подключают React-Bootstrap: компоненты там переписаны на React и не трогают DOM в обход него.
Закончите оценкой: Bootstrap хорош для админок и внутренних инструментов, где важна скорость, а продукт со своим дизайном потребует серьёзной переделки. Если с Bootstrap вы не работали, так и скажите, назовите то, с чем работали (Tailwind, CSS Modules, UI-кит компании), и объясните, как быстро перенесёте опыт.
Где спотыкаются
Перебивают стили через !important поверх собранного CSS. Через полгода в проекте война специфичности, хотя достаточно было поменять Sass-переменные.
Смешивают скрипты Bootstrap с React: подключают bootstrap.bundle.js и открывают модалки через него. Скрипт меняет DOM, React об этом не знает, и компоненты ведут себя непредсказуемо.
Ломают сетку вложенностью: кладут .col без .row или контент прямо в .row. Отступы и выравнивание разъезжаются, и это видно сразу на мобильной ширине.