Тэматызацыя Bootstrap
Наладзьце Bootstrap 4 з дапамогай нашых новых убудаваных зменных Sass для глабальных налад стылю для лёгкай змены тэмаў і кампанентаў.
Уводзіны
У Bootstrap 3 тэматызацыя ў асноўным абумоўлівалася перавызначэннем зменных у LESS, карыстальніцкім CSS і асобнай табліцай стыляў тэмы, якую мы ўключылі ў нашы dist
файлы. Прыклаўшы пэўныя намаганні, можна цалкам перарабіць знешні выгляд Bootstrap 3, не закранаючы асноўныя файлы. Bootstrap 4 забяспечвае знаёмы, але крыху іншы падыход.
Цяпер тэматычная тэматыка выконваецца з дапамогай зменных Sass, карт Sass і карыстальніцкага CSS. Няма больш спецыяльнай табліцы стыляў тэмы; замест гэтага вы можаце ўключыць убудаваную тэму, каб дадаць градыенты, цені і многае іншае.
Сас
Выкарыстоўвайце нашы зыходныя файлы Sass, каб скарыстацца перавагамі зменных, карт, міксінаў і іншага. У нашай зборцы мы павялічылі дакладнасць акруглення Sass да 6 (па змаўчанні гэта 5), каб прадухіліць праблемы з акругленнем у браўзеры.
Структура файла
Па магчымасці пазбягайце змены асноўных файлаў 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
. Некаторыя зменныя маюць значэнне null
, гэтыя зменныя не выводзяць уласцівасці, калі яны не перавызначаны ў вашай канфігурацыі.
Перавызначэнне зменных у адным файле 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
, і для спасылак, кнопак і станаў формы. Замена значэнняў гэтых ключоў не павінна выклікаць праблем, але іх выдаленне можа выклікаць праблемы пры кампіляцыі Sass. У гэтых выпадках вам трэба будзе змяніць код Sass, які выкарыстоўвае гэтыя значэнні.danger
$theme-colors
Функцыі
Bootstrap выкарыстоўвае некалькі функцый Sass, але толькі некаторыя з іх прымяняюцца да агульнай тэматыкі. Мы ўключылі тры функцыі для атрымання значэнняў з каляровых карт:
Яны дазваляюць выбраць адзін колер з карты Sass, падобна таму, як вы выкарыстоўвалі б зменную колеру з v3.
У нас таксама ёсць іншая функцыя для атрымання пэўнага ўзроўню колеру з $theme-colors
карты. Адмоўныя значэнні ўзроўню асвятляюць колер, а больш высокія - цямнеюць.
На практыцы вы выклікаеце функцыю і перадаеце два параметры: імя колеру з $theme-colors
(напрыклад, асноўны або небяспека) і лікавы ўзровень.
Дадатковыя функцыі могуць быць дададзены ў будучыні або ваш уласны карыстальніцкі Sass для стварэння функцый узроўняў для дадатковых карт Sass, або нават агульная, калі вы хочаце быць больш падрабязным.
Каляровы кантраст
Дадатковая функцыя, якую мы ўключаем у Bootstrap, - гэта функцыя каляровага кантрасту, color-yiq
. Ён выкарыстоўвае каляровую прастору YIQ для аўтаматычнага вяртання светлага ( #fff
) або цёмнага ( #111
) кантраснага колеру на аснове вызначанага базавага колеру. Гэтая функцыя асабліва карысная для міксінаў або цыклаў, дзе вы ствараеце некалькі класаў.
Напрыклад, каб стварыць узоры колеру з нашай $theme-colors
карты:
Ён таксама можа быць выкарыстаны для аднаразовых кантрасных патрэб:
Вы таксама можаце вызначыць базавы колер з дапамогай нашых функцый каляровай карты:
Escape SVG
Мы выкарыстоўваем escape-svg
функцыю для экраніравання <
сімвалаў >
і #
для фонавых малюнкаў SVG. Для належнага адлюстравання фонавых малюнкаў у IE гэтыя сімвалы павінны быць экранаваны.
Функцыі складання і аднімання
Мы выкарыстоўваем функцыі add
і subtract
для абгортвання calc
функцыі CSS. Асноўная мэта гэтых функцый - пазбегнуць памылак, калі ў выраз перадаецца 0
значэнне без адзінкі calc
. Выразы накшталт calc(10px - 0)
будуць вяртаць памылку ва ўсіх браўзерах, нягледзячы на тое, што яны матэматычна правільныя.
Прыклад, калі calc сапраўдны:
Прыклад недапушчальнага вылічэння:
Параметры Sass
Наладзьце 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-prefers-reduced-motion-media-query |
true (па змаўчанні) абоfalse |
Уключае prefers-reduced-motion медыя-запыт , які адхіляе пэўныя анімацыі/пераходы ў залежнасці ад налад браўзера/аперацыйнай сістэмы карыстальніка. |
$enable-hover-media-query |
true або false (па змаўчанні) |
Састарэла |
$enable-grid-classes |
true (па змаўчанні) абоfalse |
Дазваляе генераваць класы CSS для сістэмы сеткі (напрыклад, .container , .row , .col-md-1 і г.д.). |
$enable-caret |
true (па змаўчанні) абоfalse |
Уключае псеўдаэлемент карэткі на .dropdown-toggle . |
$enable-pointer-cursor-for-buttons |
true (па змаўчанні) абоfalse |
Дадайце курсор «рука» да неадключаных элементаў кнопак. |
$enable-print-styles |
true (па змаўчанні) абоfalse |
Уключае стылі для аптымізацыі друку. |
$enable-responsive-font-sizes |
true або false (па змаўчанні) |
Уключае адаптыўныя памеры шрыфтоў . |
$enable-validation-icons |
true (па змаўчанні) абоfalse |
Дазваляе background-image значкі ў тэкставых уводах і некаторыя ўласныя формы для станаў праверкі. |
$enable-deprecation-messages |
true або false (па змаўчанні) |
Усталюйце значэнне, true каб паказваць папярэджанні пры выкарыстанні любых састарэлых міксінаў і функцый, якія плануецца выдаліць у v5 . |
Колер
Многія з розных кампанентаў і ўтыліт Bootstrap пабудаваны праз шэраг колераў, вызначаных у карце Sass. Гэтую карту можна зацыкліваць у Sass, каб хутка стварыць шэраг набораў правілаў.
Усе колеры
Усе колеры, даступныя ў Bootstrap 4, даступныя ў выглядзе зменных Sass і карты Sass у scss/_variables.scss
файле. Гэта будзе пашырана ў наступных нязначных выпусках, каб дадаць дадатковыя адценні, вельмі падобна на палітру адценняў шэрага , якую мы ўжо ўключылі.
Вось як вы можаце выкарыстоўваць іх у сваім Sass:
Карысныя класы колеру таксама даступныя для налады color
і background-color
.
У будучыні мы будзем імкнуцца прадастаўляць карты і зменныя Sass для адценняў кожнага колеру, як мы зрабілі з колерамі адценняў шэрага ніжэй.
Колеры тэмы
Мы выкарыстоўваем падмноства ўсіх колераў для стварэння меншай каляровай палітры для стварэння каляровых схем, таксама даступных у выглядзе зменных Sass і карты Sass у scss/_variables.scss
файле Bootstrap.
Шэрыя
Шырокі набор шэрых зменных і карта 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
, вашы змены будуць прымяняцца да ўсіх цыклаў, якія выконваюцца па гэтай карце.
Зменныя CSS
Bootstrap 4 уключае ў свой скампіляваны CSS каля двух дзясяткаў карыстацкіх уласцівасцей (зменных) CSS. Яны забяспечваюць лёгкі доступ да часта выкарыстоўваных значэнняў, такіх як колеры нашай тэмы, кропкі разрыву і асноўныя стэкі шрыфтоў пры працы ў інспектары вашага браўзера, пясочніцы кода або агульным прататыпаванні.
Даступныя зменныя
Вось зменныя, якія мы ўключаем (звярніце ўвагу, :root
што абавязковы). Яны знаходзяцца ў нашым _root.scss
файле.
Прыклады
Зменныя CSS забяспечваюць такую ж гібкасць, як і зменныя Sass, але без неабходнасці кампіляцыі перад тым, як іх падаваць у браўзер. Напрыклад, тут мы скідаем шрыфт нашай старонкі і стылі спасылак з дапамогай зменных CSS.
Зменныя кропкі супыну
Хаця мы першапачаткова ўключалі кропкі супыну ў нашы зменныя CSS (напрыклад, --breakpoint-md
), яны не падтрымліваюцца ў медыя-запытах , але іх усё роўна можна выкарыстоўваць у наборах правілаў у медыя-запытах. Гэтыя зменныя кропкі супыну застаюцца ў скампіляваным CSS для зваротнай сумяшчальнасці, паколькі яны могуць выкарыстоўвацца JavaScript. Даведайцеся больш у спецыфікацыі .
Вось прыклад таго , што не падтрымліваецца:
І вось прыклад таго , што падтрымліваецца: