Bootstrap Sass

Используйте наши исходные файлы Sass, чтобы воспользоваться преимуществами переменных, карт, миксинов и функций, которые помогут вам быстрее создавать и настраивать свой проект.

Файловая структура

По возможности избегайте изменения основных файлов Bootstrap. Для Sass это означает создание собственной таблицы стилей, которая импортирует Bootstrap, чтобы вы могли изменять и расширять ее. Предполагая, что вы используете менеджер пакетов, такой как npm, у вас будет файловая структура, которая выглядит следующим образом:

your-project/
├── scss/
│   └── custom.scss
└── node_modules/
│   └── bootstrap/
│       ├── js/
│       └── scss/
└── index.html

Если вы загрузили исходные файлы и не используете менеджер пакетов, вам захочется вручную создать что-то похожее на эту структуру, сохранив исходные файлы Bootstrap отдельно от ваших собственных.

your-project/
├── scss/
│   └── custom.scss
├── bootstrap/
│   ├── js/
│   └── scss/
└── index.html

Импорт

В вашем custom.scss вы импортируете исходные файлы Sass Bootstrap. У вас есть два варианта: включить все файлы Bootstrap или выбрать нужные вам части. Мы рекомендуем последнее, хотя имейте в виду, что у наших компонентов есть некоторые требования и зависимости. Вам также потребуется включить некоторый JavaScript для наших плагинов.

// Custom.scss
// Вариант А: включить весь Bootstrap

// Включите сюда любые переопределения переменных по умолчанию (хотя функции будут недоступны)

@import "../node_modules/bootstrap/scss/bootstrap";

// Затем добавьте сюда дополнительный пользовательский код
// Custom.scss
// Вариант Б: включить часть Bootstrap

// 1. Сначала подключите функции (чтобы вы могли манипулировать цветами, SVG, вычислениями и т. д.)
@import "../node_modules/bootstrap/scss/functions";

// 2. Включите сюда любые переопределения переменных по умолчанию

// 3. Включите остальные необходимые таблицы стилей Bootstrap (включая любые отдельные таблицы стилей цветового режима)
@import "../node_modules/bootstrap/scss/variables";
@import "../node_modules/bootstrap/scss/variables-dark";

// 4. Включите сюда любые переопределения карты по умолчанию

// 5. Включаем оставшиеся необходимые части
@import "../node_modules/bootstrap/scss/maps";
@import "../node_modules/bootstrap/scss/mixins";
@import "../node_modules/bootstrap/scss/root";

// 6. При необходимости включите любые другие части по мере необходимости
@import "../node_modules/bootstrap/scss/utilities";
@import "../node_modules/bootstrap/scss/reboot";
@import "../node_modules/bootstrap/scss/type";
@import "../node_modules/bootstrap/scss/images";
@import "../node_modules/bootstrap/scss/containers";
@import "../node_modules/bootstrap/scss/grid";
@import "../node_modules/bootstrap/scss/helpers";

// 7. При необходимости включите API утилит последним для создания классов на основе карты Sass в `_utilities.scss`
@import "../node_modules/bootstrap/scss/utilities/api";

// 8. Добавьте сюда дополнительный пользовательский код

Установив эту настройку, вы можете начать изменять любые переменные и карты Sass в вашем custom.scss. Вы также можете начать добавлять части Bootstrap в // Optional раздел по мере необходимости. Мы рекомендуем использовать полный стек импорта из нашего bootstrap.scss файла в качестве отправной точки.

Компиляция

Чтобы использовать ваш пользовательский код Sass в качестве CSS в браузере, вам нужен компилятор Sass. Sass поставляется в виде пакета CLI, но вы также можете скомпилировать его с помощью других инструментов сборки, таких как Gulp или Webpack, или с помощью приложений с графическим интерфейсом. Некоторые IDE также имеют встроенные компиляторы Sass или загружаемые расширения.

Нам нравится использовать CLI для компиляции нашего Sass, но вы можете использовать любой метод, который вам больше нравится. Из командной строки выполните следующее:

# Установите Sass глобально
npm install -g sass

# Следите за изменениями в своем пользовательском Sass и скомпилируйте его в CSS.
sass --watch ./scss/custom.scss ./css/custom.css

Узнайте больше о ваших возможностях на sass-lang.com/install и компиляции с помощью VS Code.

Используете Bootstrap с другим инструментом сборки? Ознакомьтесь с руководствами по компиляции с помощью Webpack, Parcel или Vite. У нас также есть готовые демоверсии в репозитории примеров на GitHub.

Включая

После того, как ваш CSS будет скомпилирован, вы можете включить его в свои HTML-файлы. Внутри вашего index.html вы захотите включить свой скомпилированный CSS-файл. Обязательно обновите путь к вашему скомпилированному CSS-файлу, если вы его изменили.

Переменные по умолчанию

Каждая переменная Sass в Bootstrap включает флаг !default, позволяющий переопределять значение переменной по умолчанию в вашем собственном Sass без изменения исходного кода Bootstrap. Скопируйте и вставьте переменные по мере необходимости, измените их значения и снимите флаг !default. Если переменной уже присвоены значения по умолчанию в Bootstrap, они не будут переназначены.

Полный список переменных Bootstrap вы найдете в scss/_variables.scss. Для некоторых переменных установлено значение null, эти переменные не выводят свойство, если они не переопределены в вашей конфигурации.

Переопределения переменных должны выполняться после импорта наших функций, но перед остальным импортом.

Вот пример, который изменяет background-color и color на <body> при импорте и компиляции Bootstrap через npm:

При необходимости повторите для любой переменной в Bootstrap, включая приведенные ниже глобальные параметры.

Начните работу с Bootstrap через npm в нашем стартовом проекте! Перейдите к репозиторию шаблонов примеров Sass и JS, чтобы узнать, как создать и настроить Bootstrap в вашем собственном проекте npm. Включает компилятор Sass, средство автоматической настройки, Stylelint, PurgeCSS и значки начальной загрузки.

Карты и циклы

Bootstrap включает в себя несколько карт Sass, пар ключ-значение, которые упрощают создание семейств связанных CSS. Мы используем карты Sass для наших цветов, точек останова сетки и многого другого. Как и переменные Sass, все сопоставления Sass включают флаг !default и могут быть переопределены и расширены.

Некоторые из наших карт Sass по умолчанию объединены в пустые. Это сделано для того, чтобы обеспечить легкое расширение данной карты Sass, но за счет этого немного усложняется удаление объектов с карты.

Изменить карту

Все переменные на $theme-colors карте определены как автономные переменные. Чтобы изменить существующий цвет на нашей $theme-colors карте, добавьте следующее в свой пользовательский файл Sass:

Позже эти переменные будут установлены в Bootstrap $theme-colors map:

Добавить на карту

Добавьте новые цвета к $theme-colors или любой другой карте, создав новую карту Sass с вашими пользовательскими значениями и объединив ее с исходной картой. В этом случае мы создадим новую $custom-colors карту и объединим ее с $theme-colors.

Удалить с карты

Чтобы удалить цвета с $theme-colors или любой другой карты, используйте map-remove. Имейте в виду, что вы должны вставить $theme-colors между нашими требованиями сразу после его определения в variables и перед его использованием в maps:

Необходимые ключи

Bootstrap предполагает наличие некоторых определенных ключей в картах Sass, которые мы использовали, и расширяет их самостоятельно. При настройке включенных карт могут возникать ошибки, связанные с использованием ключа конкретной карты Sass.

Например, мы используем primary, success и danger ключи из $theme-colors для ссылок, кнопок и состояний формы. Замена значений этих ключей не должна вызывать проблем, но их удаление может вызвать проблемы с компиляцией Sass. В этих случаях вам потребуется изменить код Sass, который использует эти значения.

Функции

Цвета

Рядом с картами Sass, которые у нас есть, цвета темы также можно использовать в качестве автономных переменных, например $primary.

Вы можете осветлить или затемнить цвета с помощью функций Bootstrap tint-color() и shade-color(). Эти функции будут смешивать цвета с черным или белым, в отличие от собственных функций Sass lighten() и darken(), которые изменяют яркость на фиксированную величину, что часто не приводит к желаемому эффекту.

На практике вы бы вызвали функцию и передали параметры цвета и веса.

Цветовой контраст

Чтобы соответствовать требованиям к контрастности Рекомендаций по обеспечению доступности веб-контента (WCAG), авторы должны обеспечить минимальный цветовой контраст текста 4,5:1 и минимальный нетекстовый цветовой контраст 3:1, за очень редкими исключениями.

Чтобы помочь с этим, мы включили в Bootstrap функцию color-contrast. Он использует алгоритм коэффициента контрастности WCAG для вычисления пороговых значений контрастности на основе относительной яркости в sRGB цветовом пространстве, чтобы автоматически возвращать светлый (#fff), темный (#212529) или черный (#000) контрастный цвет на основе указанного базового цвета. Эта функция особенно полезна для миксинов или циклов, где вы создаете несколько классов.

Например, для создания образцов цветов из нашей $theme-colors карты:

Его также можно использовать для одноразового использования контраста:

Вы также можете указать базовый цвет с помощью наших функций цветовой карты:

Escape SVG

Мы используем escape-svg функцию для экранирования символов <, > и # для фоновых изображений SVG. При использовании функции escape-svg URI данных должны быть заключены в кавычки.

Функции сложения и вычитания

Мы используем функции add и subtract для переноса функции CSS calc. Основная цель этих функций - избежать ошибок при передаче “безразмерного” 0 значения в calc выражение. Выражения типа calc(10px - 0) будут возвращать ошибку во всех браузерах, несмотря на то, что они математически корректны.

Пример, в котором calc является допустимым:

Пример, когда вычисление недопустимо:

Миксины

В нашем scss/mixins/ каталоге содержится множество миксинов, которые поддерживают части Bootstrap, а также могут быть использованы в вашем собственном проекте.

Цветовые схемы

Доступен сокращенный вариант для prefers-color-scheme медиа-запроса с поддержкой light, dark и пользовательских цветовых схем. Смотрите документацию по цветовым режимам для получения информации о нашем сочетании цветовых режимов.