Тематичен Bootstrap
Персонализирайте Bootstrap 4 с нашите нови вградени Sass променливи за глобални стилови предпочитания за лесни промени на темата и компонентите.
В Bootstrap 3 тематизирането до голяма степен се управляваше от замени на променливи в LESS, персонализиран CSS и отделна таблица със стилове на тема, която включихме в нашите dist
файлове. С известно усилие човек може напълно да преработи външния вид на Bootstrap 3, без да докосва основните файлове. Bootstrap 4 предоставя познат, но малко по-различен подход.
Сега тематизирането се постига чрез променливи на Sass, карти на Sass и персонализиран CSS. Няма повече специален лист със стилове на теми; вместо това можете да активирате вградената тема за добавяне на градиенти, сенки и др.
Използвайте нашите изходни Sass файлове, за да се възползвате от променливи, карти, миксини и др.
Когато е възможно, избягвайте да променяте основните файлове на Bootstrap. За Sass това означава да създадете свой собствен стилов лист, който импортира Bootstrap, за да можете да го променяте и разширявате. Ако приемем, че използвате мениджър на пакети като npm, ще имате файлова структура, която изглежда така:
Ако сте изтеглили нашите изходни файлове и не използвате мениджър на пакети, ще искате ръчно да настроите нещо подобно на тази структура, като запазите изходните файлове на Bootstrap отделно от вашите собствени.
Във вашия custom.scss
ще импортирате изходните Sass файлове на Bootstrap. Имате две възможности: включете целия Bootstrap или изберете частите, от които се нуждаете. Ние насърчаваме последното, въпреки че имайте предвид, че има някои изисквания и зависимости между нашите компоненти. Вие също ще трябва да включите малко JavaScript за нашите добавки.
С тази настройка можете да започнете да променяте всяка от променливите и картите на Sass във вашия custom.scss
. Можете също да започнете да добавяте части от Bootstrap под // Optional
секцията, ако е необходимо. Предлагаме да използвате пълния стек за импортиране от нашия bootstrap.scss
файл като начална точка.
Всяка Sass променлива в Bootstrap 4 включва !default
флага, който ви позволява да замените стойността по подразбиране на променливата във вашия собствен Sass, без да променяте изходния код на Bootstrap. Копирайте и поставете променливи според нуждите, променете техните стойности и премахнете !default
флага. Ако дадена променлива вече е била присвоена, тя няма да бъде присвоена отново от стойностите по подразбиране в Bootstrap.
Ще намерите пълния списък на променливите на Bootstrap в scss/_variables.scss
.
Замените на променливи в рамките на един и същи Sass файл могат да бъдат преди или след променливите по подразбиране. Въпреки това, когато заменяте Sass файлове, вашите замени трябва да дойдат преди да импортирате Sass файловете на Bootstrap.
Ето един пример, който променя background-color
и color
за <body>
при импортиране и компилиране на Bootstrap чрез npm:
Повторете, ако е необходимо, за всяка променлива в Bootstrap, включително глобалните опции по-долу.
Bootstrap 4 включва шепа Sass карти, двойки ключови стойности, които улесняват генерирането на семейства от свързани CSS. Ние използваме Sass карти за нашите цветове, точки на прекъсване на мрежата и други. Точно като променливите на Sass, всички карти на Sass включват !default
флага и могат да бъдат заменени и разширени.
Някои от нашите Sass карти са обединени в празни по подразбиране. Това се прави, за да се позволи лесно разширяване на дадена Sass карта, но идва с цената на премахването на елементи от карта малко по-трудно.
За да промените съществуващ цвят в нашата $theme-colors
карта, добавете следното към вашия персонализиран Sass файл:
За да добавите нов цвят към $theme-colors
, добавете новия ключ и стойност:
За да премахнете цветове от $theme-colors
, или друга карта, използвайте map-remove
. Имайте предвид, че трябва да го поставите между нашите изисквания и опции:
Bootstrap предполага наличието на някои специфични ключове в картите на Sass, както ние използвахме, и ги разширяваме сами. Докато персонализирате включените карти, може да срещнете грешки, когато се използва ключ на конкретна карта на Sass.
Например използваме клавишите primary
, success
и danger
от $theme-colors
за връзки, бутони и състояния на формуляри. Подмяната на стойностите на тези ключове не трябва да създава проблеми, но премахването им може да причини проблеми при компилирането на Sass. В тези случаи ще трябва да промените Sass кода, който използва тези стойности.
Bootstrap използва няколко Sass функции, но само част от тях са приложими за обща тематика. Включили сме три функции за получаване на стойности от цветните карти:
Те ви позволяват да изберете един цвят от Sass карта, подобно на начина, по който бихте използвали цветова променлива от v3.
Имаме и друга функция за получаване на определено ниво на цвят от $theme-colors
картата. Отрицателните стойности на нивото ще изсветлят цвета, докато по-високите нива ще потъмнят.
На практика бихте извикали функцията и прехвърлили два параметъра: името на цвета от $theme-colors
(напр. основен или опасност) и числово ниво.
Допълнителни функции могат да бъдат добавени в бъдеще или ваш собствен персонализиран Sass, за да създадете функции на ниво за допълнителни Sass карти, или дори обща такава, ако искате да сте по-подробни.
Една допълнителна функция, която включваме в Bootstrap, е функцията за цветови контраст, color-yiq
. Той използва цветовото пространство на YIQ, за да върне автоматично светъл ( #fff
) или тъмен ( #111
) контрастен цвят въз основа на определения основен цвят. Тази функция е особено полезна за миксини или цикли, където генерирате множество класове.
Например, за да генерирате цветни мостри от нашата $theme-colors
карта:
Може да се използва и за еднократни нужди от контраст:
Можете също така да посочите основен цвят с нашите функции за цветна карта:
Персонализирайте Bootstrap 4 с нашия вграден файл с персонализирани променливи и лесно превключвайте глобалните CSS предпочитания с нови $enable-*
Sass променливи. Заменете стойността на променлива и прекомпилирайте с npm run test
, ако е необходимо.
Можете да намерите и персонализирате тези променливи за ключови глобални опции във scss/_variables.scss
файла на Bootstrap.
Променлива | Стойности | Описание |
---|---|---|
$spacer |
1rem (по подразбиране) или всяка стойност > 0 |
Указва стойността на разделителя по подразбиране за програмно генериране на нашите помощни програми за разделители . |
$enable-rounded |
true (по подразбиране) илиfalse |
Активира предварително зададени border-radius стилове на различни компоненти. |
$enable-shadows |
true или false (по подразбиране) |
Активира предварително зададени box-shadow стилове на различни компоненти. |
$enable-gradients |
true или false (по подразбиране) |
Активира предварително дефинирани градиенти чрез background-image стилове на различни компоненти. |
$enable-transitions |
true (по подразбиране) илиfalse |
Активира предварително дефинирани transition s на различни компоненти. |
$enable-hover-media-query |
true или false (по подразбиране) |
Отхвърлено |
$enable-grid-classes |
true (по подразбиране) илиfalse |
Позволява генерирането на CSS класове за мрежовата система (напр. .container , , .row , .col-md-1 и т.н.). |
$enable-caret |
true (по подразбиране) илиfalse |
Разрешава каретката на псевдоелемента на .dropdown-toggle . |
$enable-print-styles |
true (по подразбиране) илиfalse |
Активира стилове за оптимизиране на печата. |
Много от различните компоненти и помощни програми на Bootstrap са изградени чрез серия от цветове, дефинирани в Sass карта. Тази карта може да се превърта в Sass за бързо генериране на поредица от набори от правила.
Всички цветове, налични в Bootstrap 4, са налични като Sass променливи и Sass карта във scss/_variables.scss
файл. Това ще бъде разширено в следващите второстепенни издания, за да се добавят допълнителни нюанси, подобно на палитрата в сивата скала , която вече включваме.
Ето как можете да ги използвате във вашия Sass:
Предлагат се и полезни класове за цвят за настройка color
и background-color
.
В бъдеще ще се стремим да предоставим Sass карти и променливи за нюанси на всеки цвят, както направихме с цветовете в сивата скала по-долу.
Ние използваме подмножество от всички цветове, за да създадем по-малка цветова палитра за генериране на цветови схеми, също налични като Sass променливи и Sass карта във scss/_variables.scss
файла на Bootstraps.
Обширен набор от сиви променливи и Sass карта scss/_variables.scss
за последователни нюанси на сивото във вашия проект.
Вътре scss/_variables.scss
ще намерите цветовите променливи на Bootstrap и картата на Sass. Ето пример за $colors
картата на Sass:
Добавете, премахнете или модифицирайте стойности в картата, за да актуализирате начина, по който се използват в много други компоненти. За съжаление в момента не всеки компонент използва тази Sass карта. Бъдещите актуализации ще се стремят да подобрят това. Дотогава планирайте да използвате ${color}
променливите и тази карта на Sass.
Много от компонентите и помощните програми на Bootstrap са изградени с @each
цикли, които итерират върху Sass карта. Това е особено полезно за генериране на варианти на компонент от нашите $theme-colors
и създаване на адаптивни варианти за всяка точка на прекъсване. Докато персонализирате тези карти на Sass и прекомпилирате, автоматично ще видите промените си, отразени в тези цикли.
Много от компонентите на Bootstrap са изградени с подход на основен модификатор на класа. Това означава, че по-голямата част от стила се съдържа в базов клас (напр. .btn
), докато вариациите на стила са ограничени до модификаторни класове (напр. .btn-danger
). Тези класове модификатори са изградени от $theme-colors
картата, за да персонализират броя и името на нашите класове модификатори.
Ето два примера за това как преминаваме през $theme-colors
картата, за да генерираме модификатори на .alert
компонента и всички наши .bg-*
фонови помощни програми.
Тези Sass цикли също не се ограничават до цветни карти. Можете също така да генерирате адаптивни варианти на вашите компоненти или помощни програми. Вземете например нашите помощни програми за адаптивно подравняване на текст, където смесваме @each
цикъл за $grid-breakpoints
картата на Sass с включване на медийна заявка.
Ако трябва да модифицирате своя $grid-breakpoints
, вашите промени ще се приложат към всички цикли, повтарящи тази карта.
Bootstrap 4 включва около две дузини CSS персонализирани свойства (променливи) в своя компилиран CSS. Те осигуряват лесен достъп до често използвани стойности, като нашите цветове на темата, точки на прекъсване и стекове от основни шрифтове, когато работите в инспектора на вашия браузър, пясъчна среда на код или общо прототипиране.
Ето променливите, които включваме (имайте предвид, че :root
е задължително). Те се намират в нашия _root.scss
файл.
CSS променливите предлагат подобна гъвкавост като променливите на Sass, но без необходимост от компилация, преди да бъдат сервирани в браузъра. Например, тук нулираме шрифта на нашата страница и стиловете на връзките с CSS променливи.
Въпреки че първоначално включихме точки на прекъсване в нашите CSS променливи (напр. --breakpoint-md
), те не се поддържат в медийни заявки , но все пак могат да се използват в набори от правила в медийни заявки. Тези променливи на точката на прекъсване остават в компилирания CSS за обратна съвместимост, тъй като могат да се използват от JavaScript. Научете повече в спецификацията.
Ето пример за това какво не се поддържа:
И ето пример за това какво се поддържа: