Theming Bootstrap
Pas Bootstrap 4 aan met ons nuwe ingeboude Sass-veranderlikes vir globale stylvoorkeure vir maklike temas en komponentveranderings.
In Bootstrap 3 is temas grootliks gedryf deur veranderlike oorskrywings in MINDER, pasgemaakte CSS en 'n aparte temastylblad wat ons by ons dist
lêers ingesluit het. Met 'n bietjie moeite kan 'n mens die voorkoms van Bootstrap 3 heeltemal herontwerp sonder om aan die kernlêers te raak. Bootstrap 4 bied 'n bekende, maar effens ander benadering.
Tema word nou bewerkstellig deur Sass-veranderlikes, Sass-kaarte en pasgemaakte CSS. Daar is nie meer toegewyde temastylblad nie; in plaas daarvan kan jy die ingeboude tema aktiveer om gradiënte, skaduwees en meer by te voeg.
Gebruik ons bron Sass-lêers om voordeel te trek uit veranderlikes, kaarte, mixins, en meer.
Waar moontlik, vermy die wysiging van Bootstrap se kernlêers. Vir Sass beteken dit om jou eie stylblad te skep wat Bootstrap invoer sodat jy dit kan verander en uitbrei. As u aanvaar dat u 'n pakketbestuurder soos npm gebruik, sal u 'n lêerstruktuur hê wat soos volg lyk:
As jy ons bronlêers afgelaai het en nie 'n pakketbestuurder gebruik nie, sal jy iets soortgelyk aan daardie struktuur met die hand wil opstel, en Bootstrap se bronlêers apart van jou eie hou.
In jou custom.scss
sal jy Bootstrap se bron Sass-lêers invoer. Jy het twee opsies: sluit die hele Bootstrap in, of kies die onderdele wat jy nodig het. Ons moedig laasgenoemde aan, maar wees bewus daarvan dat daar sekere vereistes en afhanklikhede oor ons komponente heen is. Jy sal ook JavaScript vir ons inproppe moet insluit.
Met daardie opstelling in plek, kan jy begin om enige van die Sass veranderlikes en kaarte in jou custom.scss
. Jy kan ook begin om dele van Bootstrap onder die // Optional
afdeling by te voeg soos nodig. Ons stel voor dat u die volledige invoerstapel vanaf ons bootstrap.scss
lêer as u beginpunt gebruik.
Elke Sass-veranderlike in Bootstrap 4 bevat die !default
vlag wat jou toelaat om die veranderlike se verstekwaarde in jou eie Sass te ignoreer sonder om Bootstrap se bronkode te verander. Kopieer en plak veranderlikes soos nodig, verander hul waardes en verwyder die !default
vlag. As 'n veranderlike reeds toegewys is, sal dit nie hertoegewys word deur die verstekwaardes in Bootstrap nie.
Veranderlike vervangings binne dieselfde Sass-lêer kan voor of na die verstekveranderlikes kom. Wanneer jy egter oor Sass-lêers oorskryf, moet jou ignorering kom voordat jy Bootstrap se Sass-lêers invoer.
Hier is 'n voorbeeld wat die background-color
en color
vir die verander <body>
wanneer Bootstrap via npm invoer en saamgestel word:
Herhaal soos nodig vir enige veranderlike in Bootstrap, insluitend die globale opsies hieronder.
Bootstrap 4 bevat 'n handvol Sass-kaarte, sleutelwaardepare wat dit makliker maak om families van verwante CSS te genereer. Ons gebruik Sass-kaarte vir ons kleure, roosterafbreekpunte en meer. Net soos Sass-veranderlikes, bevat alle Sass-kaarte die !default
vlag en kan dit oorskryf en uitgebrei word.
Sommige van ons Sass-kaarte word by verstek in leë kaarte saamgevoeg. Dit word gedoen om maklike uitbreiding van 'n gegewe Sass-kaart moontlik te maak, maar dit kom ten koste daarvan om die verwydering van items van 'n kaart effens moeiliker te maak.
Om 'n bestaande kleur in ons $theme-colors
kaart te verander, voeg die volgende by jou pasgemaakte Sass-lêer:
Om 'n nuwe kleur by te $theme-colors
voeg, voeg die nuwe sleutel en waarde by:
Om kleure van $theme-colors
of enige ander kaart te verwyder, gebruik map-remove
:
Bootstrap veronderstel die teenwoordigheid van 'n paar spesifieke sleutels binne Sass-kaarte soos ons dit gebruik het en dit self uitbrei. Soos jy die ingeslote kaarte pasmaak, kan jy foute teëkom waar 'n spesifieke Sass-kaart se sleutel gebruik word.
Byvoorbeeld, ons gebruik die primary
, success
, en danger
sleutels van $theme-colors
vir skakels, knoppies en vormtoestande. Die vervanging van die waardes van hierdie sleutels behoort geen probleme op te lewer nie, maar die verwydering daarvan kan probleme met Sass-samestelling veroorsaak. In hierdie gevalle sal jy die Sass-kode wat van daardie waardes gebruik maak, moet verander.
Bootstrap gebruik verskeie Sass-funksies, maar slegs 'n subset is van toepassing op algemene temas. Ons het drie funksies ingesluit om waardes uit die kleurkaarte te kry:
Dit laat jou toe om een kleur van 'n Sass-kaart te kies, baie soos hoe jy 'n kleurveranderlike van v3 sou gebruik.
Ons het ook 'n ander funksie om 'n spesifieke vlak van kleur van die $theme-colors
kaart af te kry. Negatiewe vlakwaardes sal die kleur ligter maak, terwyl hoër vlakke donkerder sal word.
In die praktyk sal jy die funksie noem en twee parameters deurgee: die naam van die kleur van $theme-colors
(bv. primêre of gevaar) en 'n numeriese vlak.
Bykomende funksies kan in die toekoms bygevoeg word of jou eie pasgemaakte Sass om vlakfunksies vir bykomende Sass-kaarte te skep, of selfs 'n generiese een as jy meer breedvoerig wil wees.
Een bykomende funksie wat ons in Bootstrap insluit, is die kleurkontrasfunksie, color-yiq
. Dit gebruik die YIQ-kleurspasie om outomaties 'n ligte ( #fff
) of donker ( #111
) kontraskleur terug te gee gebaseer op die gespesifiseerde basiskleur. Hierdie funksie is veral nuttig vir mixins of loops waar jy verskeie klasse genereer.
Byvoorbeeld, om kleurmonsters vanaf ons $theme-colors
kaart te genereer:
Dit kan ook gebruik word vir eenmalige kontrasbehoeftes:
U kan ook 'n basiskleur spesifiseer met ons kleurkaartfunksies:
Pas Bootstrap 4 aan met ons ingeboude persoonlike veranderlikes-lêer en wissel maklik globale CSS-voorkeure met nuwe $enable-*
Sass-veranderlikes. Ignoreer 'n veranderlike se waarde en hersaamstel met npm run test
soos nodig.
Jy kan hierdie veranderlikes vind en pasmaak vir sleutel globale opsies in ons _variables.scss
lêer.
Veranderlik | Waardes | Beskrywing |
---|---|---|
$spacer |
1rem (verstek), of enige waarde > 0 |
Spesifiseer die verstekspasieerwaarde om ons spasieerhulpprogramme programmaties te genereer . |
$enable-rounded |
true (verstek) offalse |
Aktiveer vooraf gedefinieerde border-radius style op verskeie komponente. |
$enable-shadows |
true of false (verstek) |
Aktiveer vooraf gedefinieerde box-shadow style op verskeie komponente. |
$enable-gradients |
true of false (verstek) |
Aktiveer voorafbepaalde gradiënte via background-image style op verskeie komponente. |
$enable-transitions |
true (verstek) offalse |
Aktiveer vooraf gedefinieerde transition s op verskeie komponente. |
$enable-hover-media-query |
true of false (verstek) |
Afgedank |
$enable-grid-classes |
true (verstek) offalse |
Aktiveer die generering van CSS-klasse vir die roosterstelsel (bv. .container , .row , .col-md-1 , ens.). |
$enable-caret |
true (verstek) offalse |
Aktiveer pseudo-element-karet op .dropdown-toggle . |
$enable-print-styles |
true (verstek) offalse |
Aktiveer style vir die optimalisering van drukwerk. |
Baie van Bootstrap se verskillende komponente en nutsprogramme word gebou deur 'n reeks kleure wat in 'n Sass-kaart gedefinieer word. Hierdie kaart kan in Sass oorgeskakel word om vinnig 'n reeks reëls te genereer.
Alle kleure beskikbaar in Bootstrap 4, is beskikbaar as Sass veranderlikes en 'n Sass kaart in ons scss/_variables.scss
lêer. Dit sal uitgebrei word in die daaropvolgende klein vrystellings om bykomende skakerings by te voeg, baie soos die grysskaalpalet wat ons reeds insluit.
Hier is hoe jy dit in jou Sass kan gebruik:
Kleurnutsklasse is ook beskikbaar vir instelling color
en background-color
.
Ons sal in die toekoms daarna streef om Sass-kaarte en veranderlikes vir skakerings van elke kleur te verskaf, soos ons met die grysskaalkleure hieronder gedoen het.
Ons gebruik 'n subset van alle kleure om 'n kleiner kleurpalet te skep vir die generering van kleurskemas, ook beskikbaar as Sass-veranderlikes en 'n Sass-kaart in ons scss/_variables.scss
lêer.
'n Uitgebreide stel grys veranderlikes en 'n Sass-kaart in scss/_variables.scss
vir konsekwente skakerings van grys oor jou projek.
Binne _variables.scss
vind u ons kleurveranderlikes en Sass-kaart. Hier is 'n voorbeeld van die $colors
Sass-kaart:
Voeg waardes by, verwyder of wysig waardes binne die kaart om op te dateer hoe dit in baie ander komponente gebruik word. Ongelukkig gebruik nie elke komponent tans hierdie Sass-kaart nie. Toekomstige opdaterings sal daarna streef om hierop te verbeter. Beplan tot dan om van die ${color}
veranderlikes en hierdie Sass-kaart gebruik te maak.
Baie van Bootstrap se komponente en nutsprogramme is gebou met @each
lusse wat oor 'n Sass-kaart herhaal. Dit is veral nuttig om variante van 'n komponent deur ons te genereer $theme-colors
en responsiewe variante vir elke breekpunt te skep. Soos jy hierdie Sass-kaarte pasmaak en hersaamstel, sal jy outomaties jou veranderinge in hierdie lusse weerspieël sien.
Baie van Bootstrap se komponente is gebou met 'n basis-modifiseerder klas benadering. Dit beteken die grootste deel van die stilering is in 'n basisklas (bv. .btn
) vervat terwyl stylvariasies beperk is tot wysigerklasse (bv. .btn-danger
). Hierdie wysigerklasse word vanaf die $theme-colors
kaart gebou om die nommer en naam van ons wysigerklasse aan te pas.
Hier is twee voorbeelde van hoe ons oor die $theme-colors
kaart loop om wysigers vir die .alert
komponent en al ons .bg-*
agtergrondhulpmiddels te genereer.
Hierdie Sass-lusse is ook nie beperk tot kleurkaarte nie. U kan ook responsiewe variasies van u komponente of nutsprogramme genereer. Neem byvoorbeeld ons responsiewe teksbelyningshulpmiddels waar ons 'n @each
lus vir die $grid-breakpoints
Sass-kaart meng met 'n medianavraag.
As jy jou , moet wysig $grid-breakpoints
, sal jou veranderinge van toepassing wees op al die lusse wat oor daardie kaart herhaal.
Bootstrap 4 bevat ongeveer twee dosyn pasgemaakte CSS-eienskappe (veranderlikes) in sy saamgestelde CSS. Dit bied maklike toegang tot algemeen gebruikte waardes soos ons temakleure, breekpunte en primêre lettertipestapels wanneer u in u blaaier se Inspekteur, 'n kodesandbak of algemene prototipering werk.
Hier is die veranderlikes wat ons insluit (let daarop dat die :root
vereis word). Hulle is in ons _root.scss
lêer geleë.
CSS-veranderlikes bied soortgelyke buigsaamheid as Sass se veranderlikes, maar sonder die behoefte aan samestelling voordat dit aan die blaaier bedien word. Hier stel ons byvoorbeeld ons bladsy se lettertipe en skakelstyle met CSS-veranderlikes terug.
Jy kan ook ons breekpuntveranderlikes in jou medianavrae gebruik: