Omulamwa Bootstrap
Customize Bootstrap 4 n'enkyukakyuka zaffe empya eza Sass ezizimbibwamu okusobola okwettanira sitayiro y'ensi yonna okusobola okwanguyiza omulamwa n'okukyusa ebitundu.
Okwanjula
Mu Bootstrap 3, theming yasinga kuvugirwa variable overrides mu LESS, custom CSS, ne theme stylesheet ey’enjawulo gye twassaamu mu dist
fayiro zaffe. Nga waliwo okufuba, omuntu asobola okuddamu okukola ddala endabika ya Bootstrap 3 nga takwata ku fayiro enkulu. Bootstrap 4 ekuwa enkola emanyiddwa, naye nga ya njawulo katono.
Kati, theming etuukirira nga Sass variables, Sass maps, ne custom CSS. Tewali stylesheet ya mulamwa ekyali yeewaddeyo; mu kifo ky’ekyo, osobola okusobozesa omulamwa oguzimbibwamu okwongerako gradients, shadows, n’ebirala.
Sass nga bwe kiri
Kozesa fayiro zaffe eza Sass ez'ensibuko okweyambisa enkyukakyuka, maapu, mixins, n'ebirala. Mu kuzimba kwaffe twongedde ku Sass rounding precision okutuuka ku 6 (by default it's 5) okuziyiza ensonga za browser rounding.
Ensengeka ya fayiro
Buli lwe kiba kisoboka, weewale okukyusa fayiro za Bootstrap enkulu. Ku Sass, ekyo kitegeeza okukola stylesheet yo eyingiza Bootstrap osobole okugikyusa n’okugigaziya. Nga tufudde nti okozesa package manager nga npm, ojja kuba n'ensengeka ya fayiro eringa eno:
Bw’oba owanula fayiro zaffe ez’ensibuko era nga tokozesa muddukanya package, ojja kwagala okuteekawo mu ngalo ekintu ekifaananako n’ensengeka eyo, okukuuma fayiro z’ensibuko za Bootstrap nga zaawukana ku zo.
Okuyingiza ebintu mu ggwanga
Mu custom.scss
, ojja kuyingiza fayiro za Bootstrap ez'ensibuko Sass. Olina engeri bbiri: ssaamu byonna ebya Bootstrap, oba londa ebitundu by’olina. Tukubiriza eky’oluvannyuma, wadde nga kimanye nti waliwo ebyetaago ebimu n’okwesigamira mu bitundu byaffe byonna. Era ojja kwetaaga okussaamu JavaScript ezimu ku plugins zaffe.
Nga ensengeka eyo eri mu kifo, osobola okutandika okukyusa ekintu kyonna ku nkyukakyuka za Sass ne maapu mu custom.scss
. Osobola n’okutandika okwongera ebitundu bya Bootstrap wansi // Optional
w’ekitundu nga bwe kyetaagisa. Tukuwa amagezi okukozesa omutambi gw'okuyingiza mu bujjuvu okuva mu bootstrap.scss
fayiro yaffe ng'entandikwa yo.
Enkyukakyuka ezisookerwako
Buli nkyukakyuka ya Sass mu Bootstrap 4 erimu !default
bendera ekusobozesa okusazaamu omuwendo gw’enkyukakyuka ogusookerwako mu Sass yo nga tokyusizza nsibuko ya Bootstrap. Koppa era oteeke enkyukakyuka nga bwe kyetaagisa, kyusa emiwendo gyazo, era oggyewo !default
bendera. Singa enkyukakyuka eba yaweebwa dda, olwo tejja kuddamu kuweebwa miwendo egy'enjawulo mu Bootstrap.
Ojja kusanga olukalala lw'enkyukakyuka za Bootstrap mu bujjuvu mu scss/_variables.scss
. Enkyukakyuka ezimu ziteekebwa ku null
, enkyukakyuka zino tezifulumya kintu okuggyako nga zisuuliddwa mu nsengeka yo.
Okusazaamu enkyukakyuka munda mu fayiro ya Sass y’emu kuyinza okujja nga enkyukakyuka ezisookerwako oba oluvannyuma lw’enkyukakyuka ezisookerwako. Naye, nga okyusa mu fayiro za Sass zonna, okusazaamu kwo kulina okujja nga tonnayingiza fayiro za Sass eza Bootstrap.
Wano waliwo ekyokulabirako ekikyusa background-color
ne color
for the <body>
nga oyingiza n'okukung'aanya Bootstrap okuyita mu npm:
Ddamu nga bwe kyetaagisa ku nkyukakyuka yonna mu Bootstrap, nga mw'otwalidde n'enkola z'ensi yonna wansi.
Maapu ne loopu
Bootstrap 4 erimu maapu za Sass ntono, ebisumuluzo ebibiri ebiyamba okukola amaka ga CSS ekwatagana. Tukozesa maapu za Sass ku langi zaffe, ebifo ebikutukamu giridi, n’ebirala. Nga enkyukakyuka za Sass, maapu zonna eza Sass zirimu !default
bendera era zisobola okukyusibwa n’okugaziwa.
Ezimu ku maapu zaffe eza Sass zigattibwa ne zifuuka empty by default. Kino kikolebwa okusobozesa okugaziya okwangu okwa maapu ya Sass eweereddwa, naye kijja ku muwendo gw’okufuula okuggya ebintu ku maapu okukaluba katono.
Okukyusa mu maapu
Okukyusa langi eriwo mu $theme-colors
maapu yaffe, yongera bino wammanga ku fayiro yo eya Sass eya bulijjo:
Okwongera ku maapu
Okwongera langi empya ku $theme-colors
, yongera ku kisumuluzo ekipya n'omuwendo:
Ggyawo ku maapu
Okuggya langi ku $theme-colors
, oba ku maapu endala yonna, kozesa map-remove
. Kimanye nti olina okugiyingiza wakati w'ebyetaago byaffe n'eby'okulonda:
Ebisumuluzo ebyetaagisa
Bootstrap etwala okubeerawo kw’ebisumuluzo ebimu ebitongole munda mu maapu za Sass nga bwe twakozesa era ne tugaziya bino ffekka. Nga bw’olongoosa maapu ezirimu, oyinza okusanga ensobi ekisumuluzo kya maapu ya Sass ekigere we kikozesebwa.
Okugeza, tukozesa primary
, success
, danger
n’ebisumuluzo okuva $theme-colors
ku ku biyungo, obutambi, n’embeera za ffoomu. Okukyusa emiwendo gy'ebisumuluzo bino tekirina kuleeta nsonga yonna, naye okubiggyawo kiyinza okuleeta ensonga z'okukung'aanya kwa Sass. Mu mbeera zino, ojja kwetaaga okukyusa mu koodi ya Sass ekozesa emiwendo egyo.
Emirimu
Bootstrap ekozesa emirimu gya Sass egiwerako, naye subset yokka ekola ku general theming. Tutaddemu emirimu esatu egy'okufuna emiwendo okuva mu maapu za langi:
Bino bikusobozesa okulonda langi emu okuva ku maapu ya Sass okufaananako nnyo engeri gye wandikozesezza enkyukakyuka ya langi okuva mu v3.
Tulina n’omulimu omulala ogw’okufuna omutendera ogw’enjawulo ogwa langi okuva ku $theme-colors
maapu. Emiwendo gy’emitendera egy’obubi gijja kutangaaza langi, ate emitendera egy’oku ntikko gijja kuzikiza.
Mu nkola, wandiyise omulimu n'oyisa mu parameters bbiri: erinnya lya langi okuva $theme-colors
(okugeza, primary oba danger) n'omutendera gw'ennamba.
Emirimu emirala giyinza okugattibwako mu biseera eby’omu maaso oba Sass yo eya custom okukola emirimu gy’omutendera ku maapu za Sass ez’enjawulo, oba wadde eya generic singa oba oyagala okubeera verbose ennyo.
Okwawukana kwa langi
Omulimu ogw’enjawulo gwe tussa mu Bootstrap gwe mulimu gw’okulaga enjawulo mu langi, color-yiq
. Ekozesa ekifo kya langi ya YIQ okuzzaawo mu ngeri ey’otoma langi ey’enjawulo eyaka ( #fff
) oba enzirugavu ( #111
) okusinziira ku langi y’omusingi eragiddwa. Omulimu guno gwa mugaso nnyo naddala ku mixins oba loops nga okola classes eziwera.
Okugeza, okukola ebifaananyi bya langi okuva ku $theme-colors
maapu yaffe:
Era esobola okukozesebwa ku byetaago by’enjawulo eby’omulundi gumu:
Osobola n'okulaga langi ey'omusingi n'emirimu gyaffe egya maapu ya langi:
Okutoloka ku SVG
Tukozesa escape-svg
omulimu okutoloka <
, >
n'ennukuta #
z'ebifaananyi eby'emabega ebya SVG. Ennukuta zino zeetaaga okutoloka okusobola okulaga obulungi ebifaananyi eby’emabega mu IE.
Emirimu gy’okugatta n’okuggyako
Tukozesa emirimu gya add
ne subtract
okuzinga omulimu gwa CSS calc
. Ekigendererwa ekikulu eky’emirimu gino kwe kwewala ensobi ng’omuwendo “ogutaliiko yuniti” 0
guyisibwa mu calc
kigambo. Ebigambo nga calc(10px - 0)
bijja kuzzaayo ensobi mu bulawuzi zonna, wadde nga bituufu mu kubala.
Okugeza awali calc entuufu:
Eky’okulabirako nga calc si ntuufu:
Sass eby'okulondako
Customize Bootstrap 4 ne fayiro yaffe eya custom variables ezimbiddwamu era okyuse mu ngeri ennyangu CSS preferences z'ensi yonna $enable-*
n'enkyukakyuka za Sass empya. Override a variable's value era oddemu okukuŋŋaanya ne npm run test
nga bwe kyetaagisa.
Osobola okuzuula n'okulongoosa enkyukakyuka zino ku nkola enkulu ez'ensi yonna mu scss/_variables.scss
fayiro ya Bootstrap.
Enkyukakyuka | Empisa | Okunnyonnyola |
---|---|---|
$spacer |
1rem (ekisookerwako), oba omuwendo gwonna > 0 |
Elaga omuwendo gwa spacer ogusookerwako okukola mu pulogulaamu ebikozesebwa byaffe ebya spacer . |
$enable-rounded |
true (ekisookerwako) obafalse |
Esobozesa border-radius emisono egyategekebwa edda ku bitundu eby'enjawulo. |
$enable-shadows |
true oba false (ekisookerwako) . |
Esobozesa box-shadow emisono egyategekebwa edda ku bitundu eby'enjawulo. |
$enable-gradients |
true oba false (ekisookerwako) . |
Esobozesa gradients ezitegekeddwa nga ziyita mu background-image sitayiro ku bitundu eby'enjawulo. |
$enable-transitions |
true (ekisookerwako) obafalse |
Esobozesa transition s ezitegekeddwa edda ku bitundu eby’enjawulo. |
$enable-prefers-reduced-motion-media-query |
true (ekisookerwako) obafalse |
Enables the prefers-reduced-motion media query , ekinyigiriza ebifaananyi ebimu ebirina obulamu/enkyukakyuka okusinziira ku bye baagala eby'abakozesa bbulawuzi/enkola y'emirimu. |
$enable-hover-media-query |
true oba false (ekisookerwako) . |
Evudde ku mulembe |
$enable-grid-classes |
true (ekisookerwako) obafalse |
Esobozesa okukola ebika bya CSS eby'enkola ya grid (okugeza, .container , .row , .col-md-1 , n'ebirala). |
$enable-caret |
true (ekisookerwako) obafalse |
Esobozesa ekintu eky'obulimba caret ku .dropdown-toggle . |
$enable-pointer-cursor-for-buttons |
true (ekisookerwako) obafalse |
Okwongerako “omukono” cursor ku bintu bya button ebitali bilema. |
$enable-print-styles |
true (ekisookerwako) obafalse |
Esobozesa emisono egy'okulongoosa okukuba ebitabo. |
$enable-responsive-font-sizes |
true oba false (ekisookerwako) . |
Esobozesa obunene bw'empandiika obuddamu . |
$enable-validation-icons |
true (ekisookerwako) obafalse |
Esobozesa background-image ebifaananyi munda mu biyingizibwa mu biwandiiko ne foomu ezimu ez'ennono ez'embeera z'okukakasa. |
$enable-deprecation-messages |
true oba false (ekisookerwako) . |
Teeka ku true okulaga okulabula ng'okozesa ekintu kyonna ku mixins ezitakozesebwa n'emirimu egitegekeddwa okuggyibwawo mu v5 . |
Langi
Ebitundu bingi ebya Bootstrap eby’enjawulo n’ebikozesebwa bizimbibwa okuyita mu langi eziddiriŋŋana ezitegeezeddwa mu maapu ya Sass. Maapu eno esobola okukolebwako loopu mu Sass okukola amangu omuddirirwa gw’amateeka.
Langi zonna
Langi zonna eziri mu Bootstrap 4, zisangibwa nga Sass variables ne Sass map mu scss/_variables.scss
file. Kino kijja kugaziwa mu bifulumizibwa ebitonotono ebiddako okwongerako ebisiikirize ebirala, okufaananako nnyo ne paleedi ya greyscale gye twassaamu edda.
Laba engeri gy'oyinza okukozesaamu bino mu Sass yo:
Ebika by'okukozesa langi nabyo biriwo okuteekawo color
ne background-color
.
Mu biseera eby’omu maaso, tujja kugenderera okuwa Sass maps ne variables for shades za buli langi nga bwetukoze ne grayscale colors wansi.
Langi z’omulamwa
Tukozesa ekitundu ekitono ekya langi zonna okukola ekipande kya langi ekitono okukola ensengeka za langi, era nga kisangibwa nga enkyukakyuka za Sass ne maapu ya Sass mu scss/_variables.scss
fayiro ya Bootstrap.
Enzirugavu
Ekibinja ekigazi eky'enkyukakyuka enzirugavu ne maapu ya Sass mu scss/_variables.scss
ku bisiikirize ebikwatagana eby'enzirugavu okwetoloola pulojekiti yo. Weetegereze nti zino “nzirugavu ennyogovu”, ezitera okudda ku ddoboozi erya bbululu eritali lya bulijjo, okusinga enzirugavu ezitaliimu.
Mu scss/_variables.scss
, ojja kusangamu enkyukakyuka za langi za Bootstrap ne maapu ya Sass. Wano waliwo ekyokulabirako kya $colors
maapu ya Sass:
Okwongera, okuggyawo, oba kyusa emiwendo munda mu maapu okutereeza engeri gye gikozesebwamu mu bitundu ebirala bingi. Ebyembi mu kiseera kino, si buli kitundu nti ekozesa maapu eno eya Sass. Ebipya ebigenda okufulumizibwa mu biseera eby’omu maaso bijja kufuba okulongoosa ku kino. Okutuusa olwo, teekateeka okukozesa ${color}
enkyukakyuka ne maapu eno eya Sass.
Ebitundu ebikola omubiri
Ebitundu bingi ebya Bootstrap n’ebikozesebwa bizimbibwa ne @each
loopu eziddiŋŋana ku maapu ya Sass. Kino kiyamba naddala okukola enjawulo z’ekitundu nga zaffe $theme-colors
n’okukola enjawulo eziddamu ku buli breakpoint. Nga bw’olongoosa maapu zino eza Sass n’okuddamu okukung’aanya, ojja kulaba enkyukakyuka zo nga zeeyolekera mu loopu zino.
Ebikyusakyusa
Ebitundu bingi ebya Bootstrap bizimbibwa n’enkola ya base-modifier class. Kino kitegeeza nti ekitundu ekinene eky’okukola sitayiro kibeera mu kiraasi ey’omusingi (okugeza, .btn
) ate enjawulo za sitayiro zikoma ku kiraasi z’abakyusa (okugeza, .btn-danger
). Ebika bino ebikyusa bizimbibwa okuva mu$theme-colors
maapu okukola customizing ennamba n'erinnya lya modifier classes zaffe.
Wano waliwo ebyokulabirako bibiri ku ngeri gye tukola loopu ku $theme-colors
maapu okukola ebikyusakyusa ku .alert
kitundu n’ebikozesebwa byaffe byonna .bg-*
eby’emabega.
Okuddamu
Zino Sass loops tezikoma ku maapu za langi zokka, era. Osobola n’okukola enjawulo eziddamu ez’ebitundu byo oba ebikozesebwa. Twala okugeza ebikozesebwa byaffe eby’okulaganya ebiwandiiko ebiddamu mwe tutabula @each
loopu ya $grid-breakpoints
maapu ya Sass n’okubuuza kw’emikutu erimu.
Singa weetaaga okukyusa $grid-breakpoints
, enkyukakyuka zo zijja kukola ku loopu zonna eziddiŋŋana ku maapu eyo.
Enkyukakyuka za CSS
Bootstrap 4 erimu nga daziini bbiri eza CSS custom properties (variables) mu CSS yaayo ekung'aanyiziddwa. Bino biwa ekkubo eryangu eri emiwendo egyakozesebwa ennyo nga langi zaffe ez’omulamwa, ebifo eby’okumenya, n’ebisenge by’empandiika ebisookerwako ng’okola mu Inspector ya bbulawuzi yo, sandbox ya koodi, oba okukola prototyping eya bulijjo.
Enkyukakyuka eziriwo
Wano waliwo enkyukakyuka ze tussaamu (weetegereze nti the :root
yeetaagibwa). Zisangibwa mu _root.scss
fayiro yaffe.
Eby’okulabirako
Enkyukakyuka za CSS ziwa okukyukakyuka okufaananako n'enkyukakyuka za Sass, naye nga tekyetaagisa kukungaanya nga tezinnaweebwa ku bulawuzi. Okugeza, wano tuddamu okuteekawo efonti y’olupapula lwaffe n’emisono gy’okuyunga n’enkyukakyuka za CSS.
Enkyukakyuka za Breakpoint
Wadde nga mu kusooka twassaamu breakpoints mu CSS variables zaffe (okugeza, --breakpoint-md
), zino teziwagirwa mu media queries , naye zikyayinza okukozesebwa munda mu rulesets mu media queries. Enkyukakyuka zino ez’okumenya zisigala mu CSS ekung’aanyiziddwa okusobola okukwatagana okudda emabega okusinziira ku ngeri gye zisobola okukozesebwa JavaScript. Ebisingawo bisange mu spec .
Wano waliwo ekyokulabirako ky'ebitawagirwa:
Era wano waliwo ekyokulabirako ky'ebyo ebiwagirwa: