Theming Bootstrap
Bootstrap 4-ê bi guhêrbarên Sass-ê yên nû-çêkirî re ji bo vebijarkên şêwaza gerdûnî ji bo guhertinên mijar û pêkhateyan hêsan bikin.
Di Bootstrap 3-ê de, mijar bi piranî ji hêla guhezbarên LESS, CSS-ya xwerû, û şêwazek mijarek cihêreng a ku me di dist
pelên xwe de vedihewand ve hate rêve kirin. Bi hin hewildan re, meriv dikare bi tevahî dîmena Bootstrap 3 ji nû ve dîzayn bike bêyî ku dest bi pelên bingehîn bike. Bootstrap 4 nêzîkatiyek naskirî, lê hinekî cûda peyda dike.
Naha, mijar ji hêla guhêrbarên Sass, nexşeyên Sass, û CSS-ya xwerû ve pêk tê. Bêhtir şêwazek mijarê ya diyarkirî tune; di şûna wê de, hûn dikarin mijara çêkirî çalak bikin da ku gradient, siya, û hêj bêtir zêde bikin.
Pelên Sass-a çavkaniya me bikar bînin da ku ji guhêrbar, nexşe, mixîn û hêj bêtir sûd werbigirin.
Kengê ku gengaz be, ji guhartina pelên bingehîn ên Bootstrap dûr bixin. Ji bo Sass, ev tê vê wateyê ku şêwaza xweya xweya ku Bootstrap îtxal dike biafirîne da ku hûn wê biguhezînin û dirêj bikin. Bihesibînin ku hûn rêveberek pakêtê ya mîna npm bikar tînin, hûn ê strukturek pelê ku bi vî rengî xuya dike hebe:
Ger we pelên çavkaniya me dakêşandibe û hûn rêveberek pakêtê bikar neynin, hûn ê bixwazin ku bi destan tiştek mîna wê strukturê saz bikin, pelên çavkaniyê yên Bootstrap ji yên xwe veqetînin.
Di nav xwe custom.scss
de, hûn ê pelên Sass-a çavkaniya Bootstrap-ê têxin hundur. Du vebijarkên we hene: Hemî Bootstrap têxin nav xwe, an jî parçeyên ku hûn hewce ne hilbijêrin. Em ya paşîn teşwîq dikin, her çend hay jê hebin ku di nav pêkhateyên me de hin hewcedarî û girêdan hene. Di heman demê de hûn ê hewce ne ku ji bo pêvekên me hin JavaScript jî têxin nav xwe.
Bi wê sazkirinê re, hûn dikarin dest bi guheztina yek ji guhêrbar û nexşeyên Sass-ê li xwe bikin custom.scss
. // Optional
Her weha hûn dikarin li gorî hewcedariyê dest bi lê zêdekirina beşên Bootstrap-ê li binê beşê bikin. Em pêşniyar dikin ku ji pelê me stûna tevahî importê bootstrap.scss
wekî xala xweya destpêkê bikar bînin.
Di Bootstrap 4-ê de her guherbarek Sass alayek heye ku !default
dihêle hûn nirxa xwerû ya guhêrbar di Sass-a xwe de derbas bikin bêyî ku koda çavkaniyê ya Bootstrap biguhezînin. Li gorî hewcedariyên guhêrbar kopî bikin û bipêçin, nirxên wan biguhezînin, û !default
ala rakin. Ger guhêrbarek berê hatî destnîşan kirin, wê hingê ew ê ji hêla nirxên xwerû yên di Bootstrap-ê de ji nû ve neyê destnîşankirin.
Hûn ê navnîşa bêkêmasî ya guhêrbarên Bootstrap di nav de bibînin scss/_variables.scss
.
Veguheztinên guhêrbar di nav heman pelê Sass de dikarin berî an piştî guhêrbarên xwerû werin. Lêbelê, dema ku li ser pelên Sass-ê bihurînin, divê pêşîya we were berî ku hûn pelên Sass-ê yên Bootstrap têxin.
Li vir mînakek heye ku dema ku Bootstrap bi navgîniya npm ve tête û berhev dike background-color
û color
ji bo-yê diguhezîne:<body>
Ji bo her guherbarek li Bootstrap-ê, tevî vebijarkên gerdûnî yên li jêr, wekî ku hewce be dubare bikin.
Bootstrap 4 çend nexşeyên Sass, cotên nirxa sereke vedihewîne ku çêkirina malbatên CSS-ya têkildar hêsantir dike. Em nexşeyên Sass-ê ji bo rengên xwe, xalên şikestî, û hêj bêtir bikar tînin. Mîna guhêrbarên Sass, hemî nexşeyên Sass !default
ala dihewîne û dikare were rakirin û dirêj kirin.
Hin nexşeyên me yên Sassê ji hêla xwerû ve di nav yên vala de têne yek kirin. Ev tê kirin da ku rê bide berfirehkirina hêsan a nexşeyek Sass a diyarkirî, lê bi bihayê derxistina tiştan ji nexşeyê hinekî dijwartir tê.
Ji bo guheztina rengek heyî di $theme-colors
nexşeya me de, jêrîn li pelê xweya Sass-a xwerû zêde bikin:
Ji bo ku rengek nû $theme-colors
lê zêde bike, mifteya nû û nirxê zêde bike:
Ji bo rakirina rengan ji $theme-colors
, an nexşeyek din, bikar bînin map-remove
. Hişyar bin ku divê hûn wê têxin navbera daxwaz û vebijarkên me:
Bootstrap hebûna hin bişkokên taybetî di nav nexşeyên Sass de destnîşan dike ji ber ku me van bixwe bikar aniye û dirêj dike. Gava ku hûn nexşeyên tê de xweş dikin, dibe ku hûn li cihê ku mifteya nexşeya Sass-ê ya taybetî tê bikar anîn bi xeletiyan re rû bi rû bibin.
Mînakî, em bişkokên primary
, , success
û danger
ji $theme-colors
bo girêdan, bişkok û dewletên formê bikar tînin. Veguheztina nirxên van bişkojan divê pirsgirêk dernekeve, lê rakirina wan dibe ku bibe sedema pirsgirêkên berhevkirina Sass. Di van mînakan de, hûn ê hewce bikin ku koda Sass-ê ku van nirxan bikar tîne biguhezînin.
Bootstrap gelek fonksiyonên Sass bikar tîne, lê tenê binkeyek ji mijarên gelemperî re derbas dibe. Me sê fonksiyon ji bo wergirtina nirxan ji nexşeyên rengîn vedihewîne:
Vana dihêle hûn ji nexşeyek Sass yek reng hilbijêrin mîna ku hûn guhêrbarek rengîn ji v3 bikar bînin.
Di heman demê de fonksiyonek me ya din jî heye ku ji nexşeyê astek taybetî ya rengan bistînin. $theme-colors
Nirxên asta neyînî dê reng ronî bike, lê astên bilind dê tarî bibin.
Di pratîkê de, hûn ê fonksiyonê bang bikin û di du pîvanan de derbas bikin: navê rengê ji $theme-colors
(mînak, seretayî an xeternak) û astek jimareyî.
Fonksiyonên pêvek dikarin di pêşerojê de an Sass-a weya xwerû werin zêdekirin da ku fonksiyonên astê ji bo nexşeyên Sass-ê yên din biafirînin, an jî ger hûn bixwazin ku hûn bêtir devkî bin, yekî gelemperî jî çêbikin.
Yek fonksiyonek din a ku em di Bootstrap-ê de vedihewînin fonksiyona berevajiya rengîn e color-yiq
,. Ew cîhê rengê YIQ bikar tîne da ku bixweber rengek berevajî ronahî ( #fff
) an tarî ( #111
) li ser bingeha rengê bingehîn a diyarkirî vegerîne. Ev fonksiyon bi taybetî ji bo mixîn an lûpên ku hûn çend çînan çêdikin bikêr e.
Mînakî, ji bo ku hûn ji $theme-colors
nexşeya me dîmenên rengîn çêbikin:
Di heman demê de ew dikare ji bo hewcedariyên berevajî yekcar were bikar anîn:
Her weha hûn dikarin bi fonksiyonên nexşeya rengên me re rengek bingehîn diyar bikin:
Bootstrap 4-ê bi pelê meya guhêrbarên xwerû yên çêkirî ve xweş bikin û bi guhêrbarên $enable-*
Sass-ê yên nû ve tercîhên CSS-ya gerdûnî bi hêsanî veguherînin. Nirxa guhêrbarekê bişopînin û li npm run test
gorî hewcedariyê ji nû ve berhev bikin.
Hûn dikarin van guherbaran ji bo vebijarkên gerdûnî yên sereke di scss/_variables.scss
pelê Bootstrap de bibînin û xweş bikin.
Têgûherr | Nirxên | Terîf |
---|---|---|
$spacer |
1rem (defall), an nirxek > 0 |
Nirxa cihêkerê ya xwerû diyar dike da ku bi bernamekî karûbarên meya spacer çêbike . |
$enable-rounded |
true (default) anfalse |
border-radius Li ser pêkhateyên cihêreng şêwazên pêşwextkirî çalak dike. |
$enable-shadows |
true an false (pêşniyaz) |
box-shadow Li ser pêkhateyên cihêreng şêwazên pêşwextkirî çalak dike. |
$enable-gradients |
true an false (pêşniyaz) |
background-image Bi şêwazên li ser pêkhateyên cihêreng, gradientên pêşwextkirî çalak dike. |
$enable-transitions |
true (default) anfalse |
Li ser hêmanên cihê s-yên pêşwextkirî çalak transition dike. |
$enable-hover-media-query |
true an false (pêşniyaz) |
Deprecated |
$enable-grid-classes |
true (default) anfalse |
Hilberîna çînên CSS-ê ji bo pergala torê çalak dike (mînak, .container , .row , .col-md-1 , hwd.). |
$enable-caret |
true (default) anfalse |
Vebijêrkek pseudo elementê li ser çalak dike .dropdown-toggle . |
$enable-print-styles |
true (default) anfalse |
Şêweyan ji bo xweşbînkirina çapkirinê çalak dike. |
Gelek hêman û karûbarên cihêreng ên Bootstrap bi rêzek rengên ku di nexşeyek Sass de hatine destnîşankirin têne çêkirin. Ev nexşe dikare li Sass-ê were veguheztin da ku zû rêzek rêziknameyan çêbike.
Hemî rengên ku di Bootstrap 4 de hene, wekî guhêrbarên Sass û nexşeyek Sass di scss/_variables.scss
pelê de hene. Ev ê di weşanên piçûk ên paşîn de were berfireh kirin da ku rengên din lê zêde bike, mîna paleta gewr ku em berê di nav xwe de digirin.
Li vir çawa hûn dikarin van di Sass-a xwe de bikar bînin:
Dersên bikêrhatî yên rengîn jî ji bo danîn color
û danînê background-color
hene.
Di pêşerojê de, em ê armanc bikin ku nexşe û guhêrbarên Sass ji bo rengên her rengî peyda bikin wekî ku me bi rengên gewr ên li jêr kiriye.
Em komek ji hemî rengan bikar tînin da ku ji bo afirandina nexşeyên rengan paleyek rengînek piçûktir biafirînin, di scss/_variables.scss
pelê Bootstraps de wekî guhêrbarên Sass û nexşeyek Sass jî peyda dibin.
Komek berfireh a guhêrbarên gewr û nexşeyek Sass scss/_variables.scss
ji bo rengên gewr ên domdar li seranserê projeya we.
Di hundurê scss/_variables.scss
de, hûn ê guhêrbarên rengîn ên Bootstrap û nexşeya Sass bibînin. Li vir mînakek $colors
nexşeya Sass heye:
Nirxên di nav nexşeyê de zêde bikin, jêbirin an biguhezînin da ku ew çawa di gelek pêkhateyên din de têne bikar anîn nûve bikin. Mixabin di vê demê de, ne her pêkhate vê nexşeya Sass bikar tîne. Nûvekirinên pêşerojê dê hewl bidin ku li ser vê çêtir bikin. Heya wê hingê, plan bikin ku hûn ${color}
guhêrbar û vê nexşeya Sassê bikar bînin.
Gelek hêman û karûbarên Bootstrap bi @each
lûpên ku li ser nexşeyek Sass dubare dikin têne çêkirin. Ev bi taybetî ji bo afirandina guhertoyên pêkhateyek ji hêla me ve $theme-colors
û afirandina guhertoyên bersivdar ji bo her xala veqetandinê arîkar e. Gava ku hûn van nexşeyên Sass-ê xweş bikin û ji nû ve berhev bikin, hûn ê bixweber guheztinên xwe yên ku di van lûkan de têne xuyang kirin bibînin.
Gelek hêmanên Bootstrap bi nêzîkatiyek çîna bingehîn-guhêrbar têne çêkirin. Ev tê vê wateyê ku piraniya şêwazê di çînek bingehîn de ye (mînak, .btn
) dema ku guhertoyên şêwazê bi çînên guhêrbar (mînak, .btn-danger
) ve têne sînordar kirin. Van çînên guhêrbar ji $theme-colors
nexşeyê têne çêkirin da ku hejmar û navê çînên me yên guhêrbar xweş bikin.
Li vir du mînak hene ku em çawa li $theme-colors
nexşeyê digerînin da ku guhezkeran li ser .alert
pêkhate û hemî .bg-*
karûbarên paşerojê biafirînin.
Van lûfên Sass bi nexşeyên rengîn re jî sînorkirî ne. Her weha hûn dikarin guhertoyên bersivdar ên pêkhate an karûbarên xwe biafirînin. Mînakî karûbarên hevrêzkirina nivîsa meya bersivdar bigirin ku em @each
ji bo $grid-breakpoints
nexşeya Sass xêzek bi pirsek medyayê re tê de tevlihev dikin.
Ger hewce be ku $grid-breakpoints
hûn guhertoya xwe biguhezînin, dê guhartinên we li hemî lûpên ku li ser wê nexşeyê dubare dibin bicîh bibin.
Bootstrap 4 di CSS-ya xweya berhevkirî de dora du dehan taybetmendiyên xwerû yên CSS (guhêrbar) vedihewîne. Dema ku di Inspectorê geroka we, sandboxek kodê, an prototîpkirina gelemperî de dixebitin, ev gihandina nirxên gelemperî yên wekî rengên meya me, xalên veqetandinê, û stûnên tîpên bingehîn hêsan peyda dikin.
Li vir guhêrbarên ku em tê de ne (hişyar bikin ku :root
pêdivî ye). Ew di _root.scss
dosyaya me de cih digirin.
Guherbarên CSS guhêrbarên Sass nermbûnek wekhev peyda dikin, lê bêyî ku hewcedariya berhevkirinê hebe berî ku ji gerokê re were pêşkêş kirin. Mînakî, li vir em tîpên rûpela xwe û şêwazên girêdanê bi guhêrbarên CSS-ê ji nû ve saz dikin.
Dema ku me bi eslê xwe de xalên veqetandinê di nav guhêrbarên xwe yên CSS-ê de vedihewand (mînak, --breakpoint-md
), ev di pirsên medyayê de nayên piştgirî kirin , lê dîsa jî ew dikarin di nav rêzikên di pirsên medyayê de werin bikar anîn. Van guhêrbarên xala veqetînê di CSS-ya berhevkirî de dimînin ji bo lihevhatina paşdemayî ji ber ku ew dikarin ji hêla JavaScript-ê ve werin bikar anîn. Di specê de bêtir fêr bibin.
Li vir mînakek tiştê ku nayê piştgirî kirin heye:
Û li vir mînakek ku piştgirî ye: