Tematski Bootstrap
Prilagodite Bootstrap 4 s našim novim ugrađenim Sass varijablama za globalne postavke stila za jednostavne izmjene tema i komponenti.
U Bootstrapu 3, tematiziranje je uglavnom bilo vođeno nadjačavanjem varijabli u LESS-u, prilagođenim CSS-om i zasebnom tablicom stilova teme koju smo uključili u naše dist
datoteke. Uz nešto truda, moglo bi se potpuno redizajnirati izgled Bootstrapa 3 bez diranja osnovnih datoteka. Bootstrap 4 nudi poznati, ali malo drugačiji pristup.
Sada se tematizacija postiže pomoću Sass varijabli, Sass mapa i prilagođenog CSS-a. Nema više namjenske tablice stilova teme; umjesto toga, možete omogućiti ugrađenu temu za dodavanje gradijenata, sjena i više.
Upotrijebite naše izvorne Sass datoteke kako biste iskoristili prednosti varijabli, mapa, mixina i još mnogo toga.
Kad god je moguće, izbjegavajte mijenjanje osnovnih datoteka Bootstrapa. Za Sass to znači stvaranje vlastite tablice stilova koja uvozi Bootstrap tako da je možete mijenjati i proširivati. Pod pretpostavkom da koristite upravitelj paketa kao što je npm, imat ćete strukturu datoteke koja izgleda ovako:
Ako ste preuzeli naše izvorne datoteke i ne koristite upravitelj paketa, trebali biste ručno postaviti nešto slično toj strukturi, držeći Bootstrapove izvorne datoteke odvojene od svojih.
U svoj custom.scss
, uvest ćete Bootstrapove izvorne Sass datoteke. Imate dvije mogućnosti: uključite cijeli Bootstrap ili odaberite dijelove koji su vam potrebni. Potičemo potonje, iako imajte na umu da postoje neki zahtjevi i ovisnosti među našim komponentama. Također ćete morati uključiti malo JavaScripta za naše dodatke.
S tim postavkama možete početi mijenjati bilo koju od Sass varijabli i mapa u vašem custom.scss
. Također možete početi dodavati dijelove Bootstrapa u // Optional
odjeljak prema potrebi. Predlažemo da bootstrap.scss
kao početnu točku koristite cijeli uvozni stog iz naše datoteke.
Svaka Sass varijabla u Bootstrapu 4 uključuje !default
oznaku koja vam omogućuje nadjačavanje zadane vrijednosti varijable u vlastitom Sassu bez mijenjanja izvornog koda Bootstrapa. Kopirajte i zalijepite varijable prema potrebi, promijenite njihove vrijednosti i uklonite !default
oznaku. Ako je varijabla već dodijeljena, neće joj se ponovno dodijeliti zadane vrijednosti u Bootstrapu.
Nadjačavanja varijabli unutar iste Sass datoteke mogu biti prije ili poslije zadanih varijabli. Međutim, kod nadjačavanja preko Sass datoteka, vaša nadjačavanja moraju doći prije uvoza Bootstrapovih Sass datoteka.
Evo primjera koji mijenja background-color
i color
za <body>
prilikom uvoza i kompajliranja Bootstrapa putem npm-a:
Po potrebi ponovite za bilo koju varijablu u Bootstrapu, uključujući globalne opcije u nastavku.
Bootstrap 4 uključuje pregršt Sass mapa, parova ključnih vrijednosti koji olakšavaju generiranje obitelji povezanih CSS-ova. Koristimo Sass karte za naše boje, prijelomne točke mreže i još mnogo toga. Baš kao i Sass varijable, sve Sass mape uključuju !default
zastavu i mogu se nadjačati i proširiti.
Neke od naših Sass mapa su prema zadanim postavkama spojene u prazne. Ovo je učinjeno kako bi se omogućilo jednostavno proširenje dane Sass karte, ali dolazi po cijenu malo težeg uklanjanja stavki s karte.
Da biste izmijenili postojeću boju na našoj $theme-colors
karti, dodajte sljedeće u svoju prilagođenu Sass datoteku:
Da biste dodali novu boju u $theme-colors
, dodajte novi ključ i vrijednost:
Za uklanjanje boja s $theme-colors
, ili bilo koje druge karte, upotrijebite map-remove
:
Bootstrap pretpostavlja prisutnost nekih specifičnih ključeva unutar Sass mapa koje smo koristili i sami ih proširujemo. Dok prilagođavate uključene karte, možete naići na pogreške gdje se koristi određeni ključ karte Sass.
Na primjer, koristimo tipke , primary
, success
i za veze, gumbe i stanja obrazaca. Zamjena vrijednosti ovih ključeva ne bi trebala predstavljati probleme, ali njihovo uklanjanje može uzrokovati probleme s Sass kompilacijom. U tim slučajevima morat ćete izmijeniti Sass kod koji koristi te vrijednosti.danger
$theme-colors
Bootstrap koristi nekoliko Sass funkcija, ali samo je podskup primjenjiv na opće tematiziranje. Uključili smo tri funkcije za dobivanje vrijednosti iz mapa boja:
Oni vam omogućuju da odaberete jednu boju sa Sass karte slično kao što biste koristili varijablu boje iz v3.
Imamo i drugu funkciju za dobivanje određene razine boje s $theme-colors
karte. Negativne vrijednosti razine će posvijetliti boju, dok će više razine potamniti.
U praksi biste pozvali funkciju i proslijedili dva parametra: naziv boje iz $theme-colors
(npr. primarna ili opasnost) i numeričku razinu.
U budućnosti se mogu dodati dodatne funkcije ili vaš vlastiti prilagođeni Sass za stvaranje funkcija razine za dodatne Sass mape, ili čak generičku ako želite biti opširniji.
Jedna dodatna funkcija koju uključujemo u Bootstrap je funkcija kontrasta boja, color-yiq
. Koristi YIQ prostor boja za automatsko vraćanje svijetle ( #fff
) ili tamne ( #111
) kontrastne boje na temelju navedene osnovne boje. Ova je funkcija posebno korisna za mixins ili petlje u kojima generirate više klasa.
Na primjer, za generiranje uzoraka boja s naše $theme-colors
karte:
Također se može koristiti za jednokratne potrebe kontrasta:
Također možete odrediti osnovnu boju s našim funkcijama karte boja:
Prilagodite Bootstrap 4 s našom ugrađenom datotekom prilagođenih varijabli i jednostavno mijenjajte globalne CSS postavke s novim $enable-*
Sass varijablama. Nadjačajte vrijednost varijable i npm run test
po potrebi ponovno kompajlirajte s njom.
Možete pronaći i prilagoditi ove varijable za ključne globalne opcije u našoj _variables.scss
datoteci.
Varijabilna | Vrijednosti | Opis |
---|---|---|
$spacer |
1rem (zadano) ili bilo koja vrijednost > 0 |
Određuje zadanu vrijednost razmaknice za programsko generiranje naših uslužnih programa razmaknice . |
$enable-rounded |
true (zadano) ilifalse |
Omogućuje unaprijed definirane border-radius stilove na različitim komponentama. |
$enable-shadows |
true ili false (zadano) |
Omogućuje unaprijed definirane box-shadow stilove na različitim komponentama. |
$enable-gradients |
true ili false (zadano) |
Omogućuje unaprijed definirane gradijente putem background-image stilova na različitim komponentama. |
$enable-transitions |
true (zadano) ilifalse |
Omogućuje unaprijed definirane transition s na različitim komponentama. |
$enable-hover-media-query |
true ili false (zadano) |
Zastarjelo |
$enable-grid-classes |
true (zadano) ilifalse |
Omogućuje generiranje CSS klasa za mrežni sustav (npr. .container , .row , .col-md-1 , itd.). |
$enable-caret |
true (zadano) ilifalse |
Omogućuje umetanje pseudo elementa na .dropdown-toggle . |
$enable-print-styles |
true (zadano) ilifalse |
Omogućuje stilove za optimiziranje ispisa. |
Mnoge Bootstrapove različite komponente i pomoćni programi izgrađeni su kroz niz boja definiranih u Sass mapi. Ovu mapu je moguće prevrtati u Sass kako bi se brzo generirao niz skupova pravila.
Sve boje dostupne u Bootstrapu 4, dostupne su kao Sass varijable i Sass mapa u našoj scss/_variables.scss
datoteci. Ovo će se proširiti u sljedećim manjim izdanjima kako bi se dodale dodatne nijanse, slično paleti sivih tonova koju već uključujemo.
Evo kako ih možete koristiti u svom Sassu:
Klase korisnosti boja također su dostupne za postavljanje color
i background-color
.
U budućnosti ćemo nastojati pružiti Sass karte i varijable za nijanse svake boje kao što smo učinili s bojama u sivim tonovima u nastavku.
Koristimo podskup svih boja za stvaranje manje palete boja za generiranje shema boja, također dostupnih kao Sass varijable i Sass mapa u našoj scss/_variables.scss
datoteci.
Ekspanzivan skup sivih varijabli i Sass mapa scss/_variables.scss
za dosljedne nijanse sive u vašem projektu.
Unutar _variables.scss
, pronaći ćete naše varijable boja i Sass mapu. Evo primjera $colors
Sass karte:
Dodajte, uklonite ili modificirajte vrijednosti unutar karte kako biste ažurirali način na koji se koriste u mnogim drugim komponentama. Nažalost, u ovom trenutku ne koristi svaka komponenta ovu Sass mapu. Buduća ažuriranja nastojat će to poboljšati. Do tada planirajte koristiti ${color}
varijable i ovu Sass mapu.
Mnoge Bootstrapove komponente i uslužni programi izgrađeni su s @each
petljama koje ponavljaju Sass mapu. Ovo je posebno korisno za naše generiranje varijanti komponente $theme-colors
i stvaranje odgovarajućih varijanti za svaku prijelomnu točku. Dok prilagođavate ove Sass mape i ponovno kompajlirate, automatski ćete vidjeti svoje promjene reflektirane u ovim petljama.
Mnoge Bootstrapove komponente izgrađene su s pristupom klase osnovnog modifikatora. To znači da je većina stila sadržana u osnovnoj klasi (npr. .btn
), dok su varijacije stila ograničene na klase modifikatora (npr. .btn-danger
). Ove klase modifikatora izgrađene su iz $theme-colors
mape kako bi se prilagodio broj i naziv naših klasa modifikatora.
Ovdje su dva primjera kako prelazimo preko $theme-colors
karte da generiramo modifikatore .alert
komponente i svih naših .bg-*
pomoćnih programa u pozadini.
Ni ove Sassove petlje nisu ograničene na mape boja. Također možete generirati odgovarajuće varijacije svojih komponenti ili uslužnih programa. Uzmimo za primjer naše responzivne alate za poravnanje teksta gdje miješamo @each
petlju za $grid-breakpoints
Sass mapu s medijskim upitom za uključivanje.
Ako trebate izmijeniti svoj $grid-breakpoints
, vaše će se promjene primijeniti na sve petlje koje ponavljaju preko te karte.
Bootstrap 4 uključuje oko dva tuceta CSS prilagođenih svojstava (varijabli) u svoj kompajlirani CSS. One omogućuju jednostavan pristup često korištenim vrijednostima kao što su naše boje teme, prijelomne točke i primarni hrpovi fontova kada radite u Inspectoru preglednika, sandboxu koda ili općoj izradi prototipova.
Ovdje su varijable koje uključujemo (imajte na umu da :root
je obavezno). Nalaze se u našoj _root.scss
datoteci.
CSS varijable nude sličnu fleksibilnost kao Sassove varijable, ali bez potrebe za kompilacijom prije posluživanja pregledniku. Na primjer, ovdje poništavamo font naše stranice i stilove veza s CSS varijablama.
Također možete koristiti naše varijable prijelomne točke u svojim medijskim upitima: