Theming Bootstrap
Prispôsobte si Bootstrap 4 pomocou našich nových vstavaných premenných Sass pre globálne preferencie štýlu pre jednoduché zmeny tém a komponentov.
V Bootstrap 3 bola téma do značnej miery riadená prepísaním premenných v LESS, vlastným CSS a samostatnou šablónou so štýlmi témy, ktorú sme zahrnuli do našich dist
súborov. S určitým úsilím by sa dal úplne prepracovať vzhľad Bootstrapu 3 bez toho, aby ste sa dotkli základných súborov. Bootstrap 4 poskytuje známy, ale mierne odlišný prístup.
Témy teraz zabezpečujú premenné Sass, mapy Sass a vlastné CSS. Nie je tu viac vyhradený šablón so štýlmi; namiesto toho môžete povoliť vstavanú tému a pridať prechody, tiene a ďalšie.
Využite naše zdrojové súbory Sass a využite výhody premenných, máp, mixov a ďalších.
Vždy, keď je to možné, vyhnite sa úpravám základných súborov Bootstrapu. Pre Sass to znamená vytvorenie vlastnej šablóny so štýlmi, ktorá importuje Bootstrap, aby ste ju mohli upravovať a rozširovať. Za predpokladu, že používate správcu balíkov, ako je npm, budete mať štruktúru súborov, ktorá vyzerá takto:
Ak ste si stiahli naše zdrojové súbory a nepoužívate správcu balíkov, budete chcieť manuálne nastaviť niečo podobné tejto štruktúre a ponechať zdrojové súbory Bootstrapu oddelené od vašich vlastných.
Do svojho custom.scss
, importujete zdrojové súbory Sass Bootstrapu. Máte dve možnosti: zahrnúť celý Bootstrap alebo vybrať časti, ktoré potrebujete. Odporúčame to druhé, aj keď si uvedomte, že medzi našimi komponentmi existujú určité požiadavky a závislosti. Budete tiež musieť zahrnúť nejaký JavaScript pre naše doplnky.
S týmto nastavením môžete začať upravovať ktorúkoľvek z premenných a máp Sass vo vašom súbore custom.scss
. Podľa potreby môžete tiež začať pridávať časti Bootstrapu do // Optional
sekcie. bootstrap.scss
Ako východiskový bod odporúčame použiť celý zásobník importu z nášho súboru.
Každá premenná Sass v Bootstrap 4 obsahuje !default
príznak, ktorý vám umožňuje prepísať predvolenú hodnotu premennej vo vašom vlastnom Sass bez úpravy zdrojového kódu Bootstrapu. Skopírujte a prilepte premenné podľa potreby, upravte ich hodnoty a odstráňte !default
príznak. Ak už bola premenná priradená, nebude priradená podľa predvolených hodnôt v Bootstrape.
Kompletný zoznam premenných Bootstrapu nájdete v scss/_variables.scss
.
Prepisy premenných v rámci toho istého súboru Sass môžu byť pred alebo po predvolených premenných. Pri prepisovaní v súboroch Sass však musia prepisy prísť pred importovaním súborov Sass z Bootstrapu.
Tu je príklad, ktorý mení background-color
a color
pre <body>
pri importovaní a kompilácii Bootstrap cez npm:
Opakujte podľa potreby pre akúkoľvek premennú v Bootstrap, vrátane globálnych možností nižšie.
Bootstrap 4 obsahuje niekoľko máp Sass, párov kľúčových hodnôt, ktoré uľahčujú vytváranie rodín súvisiacich CSS. Sass mapy používame pre naše farby, prerušovacie body mriežky a ďalšie. Rovnako ako premenné Sass, všetky mapy Sass obsahujú !default
príznak a možno ich prepísať a rozšíriť.
Niektoré z našich máp Sass sú štandardne zlúčené do prázdnych. Toto sa robí, aby sa umožnilo jednoduché rozšírenie danej mapy Sass, ale za cenu toho, že odstraňovanie položiek z mapy bude trochu zložitejšie.
Ak chcete upraviť existujúcu farbu na našej $theme-colors
mape, pridajte do svojho vlastného súboru Sass nasledovné:
Ak chcete pridať novú farbu do $theme-colors
, pridajte nový kľúč a hodnotu:
Ak chcete odstrániť farby z $theme-colors
mapy alebo akejkoľvek inej mapy, použite map-remove
. Uvedomte si, že ho musíte vložiť medzi naše požiadavky a možnosti:
Bootstrap predpokladá prítomnosť niektorých špecifických kľúčov v mapách Sass, ktoré sme používali a sami ich rozširujeme. Pri prispôsobovaní zahrnutých máp sa môžete stretnúť s chybami, keď sa používa špecifický kľúč mapy Sass.
Napríklad používame klávesy primary
, success
, a danger
z $theme-colors
pre odkazy, tlačidlá a stavy formulárov. Nahradenie hodnôt týchto kľúčov by nemalo predstavovať žiadne problémy, ale ich odstránenie môže spôsobiť problémy s kompiláciou Sass. V týchto prípadoch budete musieť upraviť kód Sass, ktorý tieto hodnoty využíva.
Bootstrap využíva niekoľko funkcií Sass, ale iba podmnožina je použiteľná pre všeobecné tematické oblasti. Zahrnuli sme tri funkcie na získanie hodnôt z farebných máp:
Umožňujú vám vybrať si jednu farbu z mapy Sass, podobne ako by ste použili premennú farby z v3.
Máme tiež ďalšiu funkciu na získanie konkrétnej úrovne farby z $theme-colors
mapy. Záporné hodnoty úrovne zosvetlia farbu, zatiaľ čo vyššie úrovne stmavia.
V praxi by ste zavolali funkciu a odovzdali dva parametre: názov farby z $theme-colors
(napr. primárna alebo nebezpečná) a číselnú úroveň.
V budúcnosti by mohli byť pridané ďalšie funkcie alebo váš vlastný Sass na vytvorenie funkcií úrovní pre ďalšie mapy Sass, alebo dokonca všeobecnú, ak chcete byť podrobnejší.
Ďalšou funkciou, ktorú zahrňujeme do Bootstrapu, je funkcia kontrastu farieb, color-yiq
. Využíva farebný priestor YIQ na automatické vrátenie svetlej ( #fff
) alebo tmavej ( #111
) kontrastnej farby na základe špecifikovanej základnej farby. Táto funkcia je obzvlášť užitočná pre mixiny alebo cykly, kde generujete viacero tried.
Ak chcete napríklad vygenerovať vzorky farieb z našej $theme-colors
mapy:
Môže sa použiť aj na jednorazové potreby kontrastu:
Môžete tiež určiť základnú farbu pomocou našich funkcií mapy farieb:
Prispôsobte si Bootstrap 4 pomocou nášho vstavaného súboru vlastných premenných a jednoducho prepínajte globálne preferencie CSS pomocou nových $enable-*
premenných Sass. Prepíšte hodnotu premennej a npm run test
podľa potreby ju prekompilujte.
Tieto premenné môžete nájsť a prispôsobiť pre kľúčové globálne možnosti v scss/_variables.scss
súbore Bootstrap.
Variabilné | hodnoty | Popis |
---|---|---|
$spacer |
1rem (predvolené) alebo akákoľvek hodnota > 0 |
Určuje predvolenú hodnotu medzerníka na programové generovanie našich pomôcok medzerníka . |
$enable-rounded |
true (predvolené) alebofalse |
Umožňuje preddefinované border-radius štýly na rôznych komponentoch. |
$enable-shadows |
true alebo false (predvolené) |
Umožňuje preddefinované box-shadow štýly na rôznych komponentoch. |
$enable-gradients |
true alebo false (predvolené) |
Umožňuje preddefinované prechody prostredníctvom background-image štýlov na rôznych komponentoch. |
$enable-transitions |
true (predvolené) alebofalse |
Umožňuje preddefinované transition s na rôznych komponentoch. |
$enable-hover-media-query |
true alebo false (predvolené) |
Zastarané |
$enable-grid-classes |
true (predvolené) alebofalse |
Umožňuje generovanie tried CSS pre mriežkový systém (napr. .container , .row , .col-md-1 , atď.). |
$enable-caret |
true (predvolené) alebofalse |
Povolí striešku pseudoprvku na .dropdown-toggle . |
$enable-print-styles |
true (predvolené) alebofalse |
Umožňuje štýly na optimalizáciu tlače. |
Mnoho rôznych komponentov a nástrojov Bootstrapu je vytvorených prostredníctvom série farieb definovaných na mape Sass. Túto mapu je možné prepínať v Sass a rýchlo generovať sériu sád pravidiel.
Všetky farby dostupné v Bootstrap 4 sú dostupné ako premenné Sass a mapa Sass v scss/_variables.scss
súbore. Toto bude rozšírené v nasledujúcich menších vydaniach, aby sa pridali ďalšie odtiene, podobne ako paleta odtieňov sivej , ktorú už zahŕňame.
Tu je návod, ako ich môžete použiť vo svojom Sass:
K dispozícii sú aj farebné úžitkové triedy pre nastavenie color
a background-color
.
V budúcnosti sa budeme snažiť poskytovať mapy Sass a premenné pre odtiene každej farby, ako sme to urobili s farbami v odtieňoch šedej nižšie.
Používame podmnožinu všetkých farieb na vytvorenie menšej farebnej palety na generovanie farebných schém, ktoré sú dostupné aj ako premenné Sass a mapa Sass v scss/_variables.scss
súbore Bootstraps.
Rozsiahla sada premenných šedej a mapa Sass scss/_variables.scss
pre konzistentné odtiene šedej vo vašom projekte.
V rámci scss/_variables.scss
, nájdete farebné premenné Bootstrapu a mapu Sass. Tu je príklad $colors
mapy Sass:
Pridajte, odstráňte alebo upravte hodnoty v rámci mapy, aby ste aktualizovali spôsob, akým sa používajú v mnohých iných komponentoch. Bohužiaľ v súčasnosti nie každý komponent využíva túto mapu Sass. Budúce aktualizácie sa budú snažiť toto vylepšiť. Dovtedy plánujte využívať ${color}
premenné a túto mapu Sass.
Mnoho komponentov a pomôcok Bootstrapu je vytvorených pomocou @each
slučiek, ktoré sa opakujú cez mapu Sass. Toto je obzvlášť užitočné pri generovaní variantov komponentu našimi $theme-colors
a vytváraní responzívnych variantov pre každý bod prerušenia. Keď si tieto mapy Sass prispôsobíte a prekompilujete, vaše zmeny sa automaticky prejavia v týchto slučkách.
Mnohé z komponentov Bootstrapu sú zostavené s prístupom triedy modifikátorov základne. To znamená, že väčšina štýlu je obsiahnutá v základnej triede (napr. .btn
), zatiaľ čo variácie štýlu sú obmedzené na triedy modifikátorov (napr. .btn-danger
). Tieto triedy modifikátorov sú vytvorené z $theme-colors
mapy, aby bolo možné prispôsobiť počet a názov našich tried modifikátorov.
Tu sú dva príklady toho, ako prechádzame cez $theme-colors
mapu, aby sme generovali modifikátory .alert
komponentu a všetkých našich .bg-*
nástrojov na pozadí.
Tieto slučky Sass nie sú obmedzené ani na farebné mapy. Môžete tiež generovať responzívne variácie vašich komponentov alebo pomôcok. Vezmime si napríklad naše responzívne nástroje na zarovnanie textu, kde kombinujeme @each
slučku pre $grid-breakpoints
mapu Sass s mediálnym dopytom.
Ak by ste potrebovali upraviť svoje $grid-breakpoints
, vaše zmeny sa použijú na všetky cykly opakujúce sa na tejto mape.
Bootstrap 4 obsahuje približne dva tucty vlastných vlastností (premenných) CSS vo svojom zostavenom CSS. Poskytujú jednoduchý prístup k bežne používaným hodnotám, ako sú farby motívov, body prerušenia a zásobníky primárnych písiem pri práci v inšpektorovi prehliadača, v karanténe kódu alebo pri všeobecnom prototypovaní.
Tu sú premenné, ktoré zahŕňame (všimnite si, že :root
je to povinné). Nachádzajú sa v našom _root.scss
súbore.
Premenné CSS ponúkajú podobnú flexibilitu ako premenné Sass, ale bez potreby kompilácie pred ich doručením do prehliadača. Tu napríklad obnovujeme písmo a štýly odkazov našej stránky pomocou premenných CSS.
Aj keď sme pôvodne zahrnuli body prerušenia do našich premenných CSS (napr. --breakpoint-md
), tieto nie sú podporované v mediálnych dopytoch , ale stále ich možno použiť v rámci skupín pravidiel v mediálnych dopytoch. Tieto premenné bodu prerušenia zostávajú v zostavenom CSS kvôli spätnej kompatibilite, keďže ich môže používať JavaScript. Viac sa dozviete v špecifikácii.
Tu je príklad toho , čo nie je podporované:
A tu je príklad toho, čo je podporované: