Theming Bootstrap
Pielāgojiet Bootstrap 4, izmantojot mūsu jaunos iebūvētos Sass mainīgos, lai iegūtu globālas stila preferences, lai atvieglotu tēmu un komponentu maiņu.
Operētājsistēmā Bootstrap 3 motīvu veidošanu lielā mērā noteica mainīgo ignorēšana LESS, pielāgotā CSS un atsevišķa motīva stila lapa, ko iekļāvām savos dist
failos. Ar nelielu piepūli varētu pilnībā pārveidot Bootstrap 3 izskatu, nepieskaroties galvenajiem failiem. Bootstrap 4 nodrošina pazīstamu, bet nedaudz atšķirīgu pieeju.
Tagad tēmu veidošanu veic, izmantojot Sass mainīgos, Sass kartes un pielāgoto CSS. Nav vairs īpašas tēmas stila lapas; tā vietā varat iespējot iebūvēto motīvu, lai pievienotu gradientus, ēnas un daudz ko citu.
Izmantojiet mūsu avota Sass failus, lai izmantotu mainīgos, kartes, mixins un daudz ko citu.
Kad vien iespējams, izvairieties no Bootstrap pamatfailu modificēšanas. Sass gadījumā tas nozīmē izveidot savu stila lapu, kas importē Bootstrap, lai jūs varētu to modificēt un paplašināt. Pieņemot, ka izmantojat pakotņu pārvaldnieku, piemēram, npm, faila struktūra izskatīsies šādi:
Ja esat lejupielādējis mūsu avota failus un neizmantojat pakotņu pārvaldnieku, vēlēsities manuāli iestatīt kaut ko līdzīgu šai struktūrai, turot Bootstrap avota failus atsevišķi no saviem.
Savā custom.scss
, jūs importēsit Bootstrap avota Sass failus. Jums ir divas iespējas: iekļaut visu Bootstrap vai izvēlēties vajadzīgās daļas. Mēs iesakām izmantot pēdējo, lai gan ņemiet vērā, ka mūsu komponentiem ir dažas prasības un atkarības. Jums būs jāiekļauj arī daži JavaScript spraudņi.
Kad šī iestatīšana ir ieviesta, varat sākt modificēt jebkuru no Sass mainīgajiem un kartēm savā custom.scss
. Varat arī sākt pievienot Bootstrap daļas zem // Optional
sadaļas, ja nepieciešams. Mēs iesakām bootstrap.scss
kā sākumpunktu izmantot pilnu importēšanas steku no mūsu faila.
Katrs Sass mainīgais programmā Bootstrap 4 ietver !default
karogu, kas ļauj ignorēt mainīgā noklusējuma vērtību savā Sass, nemainot Bootstrap avota kodu. Ja nepieciešams, kopējiet un ielīmējiet mainīgos, mainiet to vērtības un noņemiet !default
karogu. Ja mainīgais jau ir piešķirts, tas netiks atkārtoti piešķirts pēc noklusējuma vērtībām programmā Bootstrap.
Pilnu Bootstrap mainīgo sarakstu atradīsit scss/_variables.scss
.
Mainīgo ignorēšana tajā pašā Sass failā var būt pirms vai pēc noklusējuma mainīgajiem. Tomēr, ignorējot visus Sass failus, jums ir jānotiek pirms Bootstrap Sass failu importēšanas.
Šeit ir piemērs, kas maina background-color
un color
for <body>
, importējot un kompilējot Bootstrap, izmantojot npm:
Atkārtojiet pēc vajadzības jebkuram Bootstrap mainīgajam, tostarp tālāk norādītajām globālajām opcijām.
Bootstrap 4 ietver dažas Sass kartes, atslēgu vērtību pārus, kas atvieglo saistīto CSS saišu ģenerēšanu. Mēs izmantojam Sass kartes savām krāsām, režģa pārtraukuma punktiem un citiem. Tāpat kā Sass mainīgajos, visās Sass kartēs ir ietverts !default
karogs, un tās var ignorēt un paplašināt.
Dažas no mūsu Sass kartēm pēc noklusējuma ir sapludinātas tukšās. Tas tiek darīts, lai dotu Sass karti viegli izvērstu, taču par to vienumu noņemšana no kartes ir nedaudz grūtāka.
Lai mainītu esošu krāsu mūsu $theme-colors
kartē, pievienojiet savam pielāgotajam Sass failam:
Lai pievienotu jaunu krāsu $theme-colors
, pievienojiet jaunu atslēgu un vērtību:
Lai noņemtu krāsas no $theme-colors
vai jebkuras citas kartes, izmantojiet map-remove
. Ņemiet vērā, ka tas ir jāievieto starp mūsu prasībām un opcijām:
Bootstrap pieņem noteiktu atslēgu klātbūtni Sass kartēs, kā mēs tās izmantojām un paplašinājām. Pielāgojot iekļautās kartes, var rasties kļūdas, ja tiek izmantota noteikta Sass kartes atslēga.
Piemēram, saitēm, pogām un veidlapu stāvokļiem mēs izmantojam taustiņus primary
, success
un . Šo atslēgu vērtību aizstāšana nedrīkst radīt problēmas, taču to noņemšana var izraisīt Sass kompilēšanas problēmas. Šādos gadījumos jums būs jāmaina Sass kods, kas izmanto šīs vērtības.danger
$theme-colors
Bootstrap izmanto vairākas Sass funkcijas, taču tikai apakškopa ir piemērojama vispārīgai tēmai. Mēs esam iekļāvuši trīs funkcijas vērtību iegūšanai no krāsu kartēm:
Tie ļauj izvēlēties vienu krāsu no Sass kartes līdzīgi kā jūs izmantotu krāsu mainīgo no v3.
Mums ir arī cita funkcija, lai no kartes iegūtu noteiktu krāsu līmeni . $theme-colors
Negatīvā līmeņa vērtības padarīs krāsu gaišāku, bet augstākas - tumšākas.
Praksē jūs izsaucat funkciju un nododat divus parametrus: krāsas nosaukumu no $theme-colors
(piemēram, primārā vai bīstamā) un skaitlisko līmeni.
Nākotnē var pievienot papildu funkcijas vai savu pielāgoto Sass, lai izveidotu līmeņa funkcijas papildu Sass kartēm vai pat vispārīgas funkcijas, ja vēlaties būt detalizētāks.
Viena papildu funkcija, ko mēs iekļaujam Bootstrap, ir krāsu kontrasta funkcija, color-yiq
. Tas izmanto YIQ krāsu telpu , lai automātiski atgrieztu gaišu ( #fff
) vai tumšu ( #111
) kontrastkrāsu, pamatojoties uz norādīto pamatkrāsu. Šī funkcija ir īpaši noderīga miksīniem vai cilpām, kurās ģenerējat vairākas klases.
Piemēram, lai ģenerētu krāsu paraugus no mūsu $theme-colors
kartes:
To var izmantot arī vienreizējām kontrasta vajadzībām:
Varat arī norādīt pamatkrāsu, izmantojot mūsu krāsu kartes funkcijas:
Pielāgojiet Bootstrap 4, izmantojot mūsu iebūvēto pielāgoto mainīgo failu, un viegli pārslēdziet globālās CSS preferences ar jauniem $enable-*
Sass mainīgajiem. Ignorēt mainīgā vērtību un npm run test
pēc vajadzības atkārtoti kompilējiet ar.
Varat atrast un pielāgot šos mainīgos galvenajām globālajām opcijām Bootstrap scss/_variables.scss
failā.
Mainīgs | Vērtības | Apraksts |
---|---|---|
$spacer |
1rem (noklusējums) vai jebkura vērtība > 0 |
Norāda noklusējuma atstarpes vērtību, lai programmatiski ģenerētu mūsu starplikas utilītas . |
$enable-rounded |
true (noklusējums) vaifalse |
Iespējo iepriekš definētus border-radius stilus dažādiem komponentiem. |
$enable-shadows |
true vai false (noklusējums) |
Iespējo iepriekš definētus box-shadow stilus dažādiem komponentiem. |
$enable-gradients |
true vai false (noklusējums) |
Iespējo iepriekš definētus gradientus, izmantojot background-image dažādu komponentu stilus. |
$enable-transitions |
true (noklusējums) vaifalse |
Iespējo iepriekš definētus transition s dažādos komponentos. |
$enable-hover-media-query |
true vai false (noklusējums) |
Novecojis |
$enable-grid-classes |
true (noklusējums) vaifalse |
Iespējo CSS klašu ģenerēšanu režģa sistēmai (piemēram, .container , .row , .col-md-1 , utt.). |
$enable-caret |
true (noklusējums) vaifalse |
Iespējo pseidoelementu caret on .dropdown-toggle . |
$enable-print-styles |
true (noklusējums) vaifalse |
Iespējo stilus drukāšanas optimizēšanai. |
Daudzi no Bootstrap dažādajiem komponentiem un utilītprogrammām ir veidoti, izmantojot vairākas krāsas, kas noteiktas Sass kartē. Šo karti var pārcilāt Sass, lai ātri ģenerētu kārtulu kopas.
Visas Bootstrap 4 pieejamās krāsas ir pieejamas kā Sass mainīgie un Sass karte scss/_variables.scss
failā. Tas tiks paplašināts turpmākajos nelielajos izlaidumos, lai pievienotu papildu nokrāsas, līdzīgi kā jau iekļautajai pelēktoņu paletei .
Lūk, kā jūs varat tos izmantot savā Sass:
Krāsu lietderības klases ir pieejamas arī iestatīšanai color
un background-color
.
Nākotnē mēs centīsimies nodrošināt Sass kartes un mainīgos katras krāsas toņos, kā mēs to darījām ar tālāk norādītajām pelēktoņu krāsām.
Mēs izmantojam visu krāsu apakškopu, lai izveidotu mazāku krāsu paleti krāsu shēmu ģenerēšanai, kas ir pieejama arī kā Sass mainīgie un Sass karte Bootstraps scss/_variables.scss
failā.
Plašs pelēko mainīgo kopums un Sass karte, kas scss/_variables.scss
nodrošina konsekventus pelēkos toņus visā jūsu projektā.
Vietnē scss/_variables.scss
, jūs atradīsiet Bootstrap krāsu mainīgos un Sass karti. $colors
Šeit ir Sass kartes piemērs :
Pievienojiet, noņemiet vai modificējiet vērtības kartē, lai atjauninātu to izmantošanu daudzos citos komponentos. Diemžēl šobrīd ne katrs komponents izmanto šo Sass karti. Turpmākie atjauninājumi centīsies to uzlabot. Līdz tam plānojiet izmantot ${color}
mainīgos lielumus un šo Sass karti.
Daudzi Bootstrap komponenti un utilītas ir veidoti ar @each
cilpām, kas atkārtojas Sass kartē. Tas ir īpaši noderīgi, lai mūsu ģenerētu komponenta $theme-colors
variantus un izveidotu adaptīvus variantus katram pārtraukuma punktam. Pielāgojot šīs Sass kartes un atkārtoti kompilējot, jūsu izmaiņas tiks automātiski atspoguļotas šajās cilpās.
Daudzi Bootstrap komponenti ir veidoti, izmantojot bāzes modifikatoru klases pieeju. Tas nozīmē, ka lielākā daļa stila ir ietverta pamatklasē (piemēram, .btn
), savukārt stila variācijas ir ierobežotas ar modifikatoru klasēm (piemēram, .btn-danger
). Šīs modifikatoru klases ir veidotas no $theme-colors
kartes, lai pielāgotu mūsu modifikatoru klašu skaitu un nosaukumu.
Šeit ir divi piemēri tam, kā mēs $theme-colors
pārveidojam karti, lai ģenerētu .alert
komponenta modifikatorus un visas mūsu .bg-*
fona utilītas.
Šīs Sass cilpas neaprobežojas tikai ar krāsu kartēm. Varat arī ģenerēt savu komponentu vai utilītu adaptīvas variācijas. Piemēram, mūsu adaptīvās teksta līdzināšanas utilītas, kurās mēs sajaucam Sass kartes @each
cilpu $grid-breakpoints
ar multivides vaicājumu.
Ja jums būs jāmaina $grid-breakpoints
, jūsu izmaiņas attieksies uz visām cilpām, kas atkārtojas šajā kartē.
Bootstrap 4 savā kompilētajā CSS ietver aptuveni divus desmitus pielāgotu CSS rekvizītu (mainīgo) . Tie nodrošina vieglu piekļuvi bieži lietotām vērtībām, piemēram, mūsu motīvu krāsām, pārtraukuma punktiem un primārajiem fontu skursteņiem, strādājot pārlūkprogrammas inspektorā, koda smilškastē vai vispārīgā prototipā.
Šeit ir iekļauti mainīgie (ņemiet vērā, ka tas :root
ir obligāts). Tie atrodas mūsu _root.scss
failā.
CSS mainīgie piedāvā līdzīgu elastību kā Sass mainīgie, taču bez nepieciešamības tos apkopot, pirms tie tiek rādīti pārlūkprogrammai. Piemēram, šeit mēs atiestatām mūsu lapas fontu un saišu stilus, izmantojot CSS mainīgos.
Lai gan sākotnēji savos CSS mainīgajos (piemēram, --breakpoint-md
) iekļāvām pārtraukuma punktus, tie netiek atbalstīti multivides vaicājumos , taču tos joprojām var izmantot kārtulu kopās multivides vaicājumos. Šie pārtraukuma punkta mainīgie paliek kompilētajā CSS, lai nodrošinātu atpakaļsaderību, jo tos var izmantot JavaScript. Uzziniet vairāk specifikācijā.
Tālāk ir sniegts piemērs tam, kas netiek atbalstīts.
Un šeit ir atbalstītā atbalsta piemērs :