Theming Bootstrap
Kohandage Bootstrap 4 meie uute sisseehitatud Sassi muutujatega globaalsete stiilieelistuste jaoks, et hõlpsasti teemasid ja komponente muuta.
Bootstrap 3-s ajendasid temaatilisust suuresti muutujate alistamised rakenduses LESS, kohandatud CSS ja eraldi teemalaaditabel, mille lisasime oma dist
failidesse. Mõne pingutusega saaks Bootstrap 3 välimuse täielikult ümber kujundada ilma põhifaile puudutamata. Bootstrap 4 pakub tuttavat, kuid veidi teistsugust lähenemist.
Nüüd on teemade kujundamine saavutatud Sassi muutujate, Sassi kaartide ja kohandatud CSS-i abil. Pole enam pühendatud teema stiilitabelit; selle asemel saate sisseehitatud teemal lubada gradiente, varje ja muud.
Kasutage meie Sassi lähtefaile, et kasutada ära muutujaid, kaarte, miksine ja palju muud.
Võimaluse korral vältige Bootstrapi põhifailide muutmist. Sassi jaoks tähendab see oma stiilitabeli loomist, mis impordib Bootstrapi, et saaksite seda muuta ja laiendada. Eeldades, et kasutate paketihaldurit nagu npm, on teil failistruktuur, mis näeb välja järgmine:
Kui olete alla laadinud meie lähtefailid ja ei kasuta paketihaldurit, soovite käsitsi seadistada midagi sarnast selle struktuuriga, hoides Bootstrapi lähtefailid enda omadest eraldi.
Saate custom.scss
importida Bootstrapi Sassi lähtefailid. Teil on kaks võimalust: kaasata kogu Bootstrap või valida vajalikud osad. Soovitame viimast, kuigi pidage meeles, et meie komponentidel on teatud nõuded ja sõltuvused. Samuti peate meie pistikprogrammide jaoks lisama JavaScripti.
Kui see seadistus on paigas, saate hakata muutma mis tahes Sassi muutujaid ja kaarte oma custom.scss
. // Optional
Vajadusel saate jaotise alla hakata lisama ka Bootstrapi osi . Soovitame bootstrap.scss
lähtepunktina kasutada meie faili täielikku impordivirna.
Iga Bootstrap 4 Sassi muutuja sisaldab !default
lippu, mis võimaldab teil alistada muutuja vaikeväärtuse oma Sassis ilma Bootstrapi lähtekoodi muutmata. Vajadusel kopeerige ja kleepige muutujad, muutke nende väärtusi ja eemaldage !default
lipp. Kui muutuja on juba määratud, ei määrata seda Bootstrapi vaikeväärtuste alusel uuesti.
Bootstrapi muutujate täieliku loendi leiate scss/_variables.scss
.
Muutujate alistamised samas Sass-failis võivad olla enne või pärast vaikemuutujaid. Sassi-failide alistamise korral peavad teie alistamised toimuma enne Bootstrapi Sassi-failide importimist.
Siin on näide, mis muudab Bootstrapi importimisel background-color
ja kompileerimisel npm-i kaudu ja color
jaoks :<body>
Korrake seda vastavalt vajadusele mis tahes Bootstrapi muutuja puhul, sealhulgas allolevate globaalsete valikute puhul.
Bootstrap 4 sisaldab käputäis Sassi kaarte, võtmeväärtuste paare, mis hõlbustavad seotud CSS-i perekondade loomist. Kasutame oma värvide, ruudustiku murdepunktide ja muu jaoks Sassi kaarte. Nii nagu Sassi muutujad, sisaldavad kõik Sassi kaardid !default
lippu ning neid saab tühistada ja laiendada.
Mõned meie Sassi kaardid liidetakse vaikimisi tühjaks. Seda tehakse selleks, et võimaldada antud Sassi kaarti hõlpsasti laiendada, kuid see muudab üksuste kaardilt eemaldamise pisut keerulisemaks.
Meie $theme-colors
kaardil olemasoleva värvi muutmiseks lisage oma kohandatud Sassi failile järgmine:
Uue värvi $theme-colors
lisamiseks lisage uus võti ja väärtus:
Värvide eemaldamiseks $theme-colors
kaardilt või muult kaardilt kasutage map-remove
. Pidage meeles, et peate selle sisestama meie nõuete ja valikute vahele:
Bootstrap eeldab teatud võtmete olemasolu Sassi kaartides, nagu me neid ise kasutasime ja laiendasime. Kaasasolevate kaartide kohandamisel võite ilmneda tõrkeid, kui kasutatakse konkreetset Sassi kaardi võtit.
Näiteks kasutame linkide primary
, nuppude success
ja vormi olekute jaoks klahve , ja danger
. $theme-colors
Nende võtmete väärtuste asendamine ei tohiks probleeme tekitada, kuid nende eemaldamine võib põhjustada Sassi kompileerimise probleeme. Sellistel juhtudel peate muutma neid väärtusi kasutavat Sassi koodi.
Bootstrap kasutab mitut Sassi funktsiooni, kuid ainult alamhulk on rakendatav üldisele teemale. Värvikaartidelt väärtuste hankimiseks oleme lisanud kolm funktsiooni:
Need võimaldavad teil valida Sassi kaardilt ühe värvi sarnaselt sellega, kuidas kasutaksite v3 värvimuutujat.
Meil on ka teine funktsioon teatud värvitaseme saamiseks $theme-colors
kaardilt. Negatiivse taseme väärtused muudavad värvi heledamaks, kõrgemad tasemed aga tumedamaks.
Praktikas kutsuksite funktsiooni välja ja sisestaksite kaks parameetrit: värvi nimetus $theme-colors
(nt esmane või oht) ja numbriline tase.
Tulevikus saab lisada täiendavaid funktsioone või oma kohandatud Sassi, et luua täiendavate Sassi kaartide jaoks tasemefunktsioone või isegi üldiseid funktsioone, kui soovite olla üksikasjalikum.
Üks lisafunktsioon, mille lisame Bootstrapi, on värvide kontrasti funktsioon color-yiq
. See kasutab YIQ värviruumi , et automaatselt tagastada heleda ( #fff
) või tumeda ( #111
) kontrastvärviga, mis põhineb määratud põhivärvil. See funktsioon on eriti kasulik mixinide või tsüklite puhul, kus genereerite mitu klassi.
Näiteks meie $theme-colors
kaardilt värvinäidiste genereerimiseks tehke järgmist.
Seda saab kasutada ka ühekordseks kontrastivajaduseks:
Põhivärvi saate määrata ka meie värvikaardi funktsioonidega:
Kohandage Bootstrap 4 meie sisseehitatud kohandatud muutujate failiga ja vahetage hõlpsalt globaalseid CSS-i eelistusi uute $enable-*
Sassi muutujatega. Muutuja väärtuse tühistamine ja npm run test
vajaduse korral uuesti kompileerimine.
Saate neid muutujaid Bootstrapi scss/_variables.scss
failist peamiste globaalsete valikute jaoks leida ja kohandada.
Muutuv | Väärtused | Kirjeldus |
---|---|---|
$spacer |
1rem (vaikimisi) või mis tahes väärtus > 0 |
Määrab vahetüki vaikeväärtuse meie spaceri utiliitide programmiliseks genereerimiseks . |
$enable-rounded |
true (vaikimisi) võifalse |
Lubab border-radius erinevate komponentide eelmääratletud stiilid. |
$enable-shadows |
true või false (vaikimisi) |
Lubab box-shadow erinevate komponentide eelmääratletud stiilid. |
$enable-gradients |
true või false (vaikimisi) |
background-image Lubab erinevate komponentide stiilide kaudu eelmääratletud gradiente . |
$enable-transitions |
true (vaikimisi) võifalse |
Lubab eelmääratletud transition s erinevatel komponentidel. |
$enable-hover-media-query |
true või false (vaikimisi) |
Aegunud |
$enable-grid-classes |
true (vaikimisi) võifalse |
Võimaldab ruudustikusüsteemi jaoks CSS-klasside genereerimist (nt , .container , .row , .col-md-1 jne). |
$enable-caret |
true (vaikimisi) võifalse |
Lubab pseudoelemendi caret on .dropdown-toggle . |
$enable-print-styles |
true (vaikimisi) võifalse |
Lubab stiilid printimise optimeerimiseks. |
Paljud Bootstrapi erinevad komponendid ja utiliidid on üles ehitatud Sassi kaardil määratletud värvide seeria kaudu. Seda kaarti saab Sassis üle vaadata, et luua kiiresti reeglistiku seeria.
Kõik Bootstrap 4-s saadaolevad värvid on saadaval Sassi muutujatena ja scss/_variables.scss
failis Sassi kaardina. Seda laiendatakse järgmistes väiksemates väljaannetes, et lisada täiendavaid toone, sarnaselt juba kaasatud halltoonide palettiga .
Saate neid oma Sassis kasutada järgmiselt.
Värvi kasulikkuse klassid on saadaval ka seadistamiseks color
ja background-color
.
Tulevikus püüame pakkuda Sassi kaarte ja muutujaid iga värvi varjundite jaoks, nagu oleme teinud allolevate halltoonide värvidega.
Väiksema värvipaleti loomiseks värviskeemide loomiseks kasutame kõigi värvide alamhulka, mis on saadaval ka Sassi muutujatena ja Sassi kaardina Bootstrapsi scss/_variables.scss
failis.
Laialdane hallide muutujate komplekt ja Sassi kaart, mis scss/_variables.scss
tagab teie projektis ühtsed halli varjundid.
Seest scss/_variables.scss
leiate Bootstrapi värvimuutujad ja Sassi kaardi. Siin on näide $colors
Sassi kaardist:
Lisage, eemaldage või muutke kaardil väärtusi, et värskendada nende kasutamist paljudes teistes komponentides. Kahjuks ei kasuta praegu kõik komponendid seda Sassi kaarti. Tulevased värskendused püüavad seda parandada. Kuni selle ajani ${color}
plaanige muutujaid ja seda Sassi kaarti kasutada.
Paljud Bootstrapi komponendid ja utiliidid on üles ehitatud @each
silmustega, mis korduvad Sassi kaardi kaudu. See on eriti kasulik meie poolt komponendi variantide genereerimiseks $theme-colors
ja iga katkestuspunkti jaoks tundlike variantide loomiseks. Kui kohandate neid Sassi kaarte ja kompileerite uuesti, näete nendes tsüklites automaatselt oma muudatusi.
Paljud Bootstrapi komponendid on ehitatud baasmodifikaatori klassi lähenemisviisiga. See tähendab, et suurem osa stiilist sisaldub põhiklassis (nt .btn
), samas kui stiilivariatsioonid on piiratud modifikaatoriklassidega (nt .btn-danger
). Need modifikaatoriklassid on koostatud $theme-colors
kaardist, et saaksime kohandada meie modifikaatoriklasside arvu ja nimesid.
Siin on kaks näidet selle kohta, kuidas me teeme $theme-colors
kaarti, et genereerida .alert
komponendi ja kõigi meie taustautiliitide modifikaatorid .bg-*
.
Need Sassi silmused ei piirdu ka värvikaartidega. Samuti saate luua oma komponentidest või utiliitidest reageerivaid variatsioone. Võtke näiteks meie reageerivad teksti joondamise utiliidid, kus segame Sassi kaardi @each
silmuse $grid-breakpoints
meediumipäringuga.
Kui teil on vaja oma kaarti muuta $grid-breakpoints
, rakenduvad teie muudatused kõikidele sellel kaardil korduvatele silmustele.
Bootstrap 4 sisaldab oma kompileeritud CSS-is umbes kahte tosinat CSS-i kohandatud atribuuti (muutujat) . Need pakuvad lihtsat juurdepääsu sageli kasutatavatele väärtustele, nagu meie teemavärvid, katkestuspunktid ja peamised fondivirnad, kui töötate brauseri inspektoris, koodi liivakastis või üldises prototüüpimises.
Siin on muutujad, mida me kaasame (pange tähele, et see :root
on kohustuslik). Need asuvad meie _root.scss
failis.
CSS-i muutujad pakuvad samasugust paindlikkust kui Sassi muutujad, kuid ilma brauserile esitamise vajaduseta kompileerimine. Näiteks lähtestame siin oma lehe fondi ja lingi stiilid CSS-i muutujatega.
Kuigi algselt kaasasime oma CSS-i muutujatesse (nt --breakpoint-md
) katkestuspunkte, ei toetata neid meediumipäringute puhul, kuid neid saab siiski kasutada meediumipäringute reeglistiku sees . Need murdepunkti muutujad jäävad kompileeritud CSS-i tagasiühilduvuse tagamiseks, kuna JavaScript saab neid kasutada. Lisateavet leiate spetsifikatsioonist.
Siin on näide sellest, mida ei toetata:
Ja siin on näide sellest, mida toetatakse: