Theming Bootstrap
Iketsetse Bootstrap 4 ka mefuta ea rona e ncha e hahelletsoeng ka har'a Sass bakeng sa likhetho tsa setaele sa lefats'e bakeng sa theme e bonolo le liphetoho tsa likarolo.
Ho Bootstrap 3, theme e ne e khannoa haholo ke ho feto-fetoha ha maemo ho LESS, tloaelo ea CSS, le leqephe le fapaneng la setaele sa sehlooho seo re se kenyelitseng dist
lifaeleng tsa rona. Ka boiteko bo itseng, motho a ka hlophisa bocha ponahalo ea Bootstrap 3 ntle le ho ama lifaele tsa mantlha. Bootstrap 4 e fana ka mokhoa o tloaelehileng, empa o fapane hanyane.
Joale, theme e finyelloa ke mefuta ea Sass, limmapa tsa Sass, le CSS e tloaelehileng. Ha ho sa na leqephe la setaele sa theme; ho e-na le hoo, o ka nolofalletsa tema e hahelletsoeng ka hare ho eketsa likhahla, meriti, le tse ling.
Sebelisa mohloli oa rona oa lifaele tsa Sass ho nka monyetla ka mefuta e fapaneng, limmapa, metsoako, le tse ling.
Nako le nako ha ho khonahala, qoba ho fetola lifaele tsa mantlha tsa Bootstrap. Bakeng sa Sass, seo se bolela ho iketsetsa leqephe la setaele le kenyang Bootstrap kantle ho naha hore o tle o le fetole le ho le atolosa. Ho nka hore o sebelisa mookameli oa sephutheloana joalo ka npm, o tla ba le sebopeho sa faele se shebahalang tjena:
Haeba u khoasollotse lifaele tsa rona tsa mohloli 'me u sa sebelise mookameli oa sephutheloana, u tla batla ho iketsetsa ntho e tšoanang le sebopeho seo, ho boloka lifaele tsa mohloli oa Bootstrap li arohane le tsa hau.
Ho custom.scss
, o tla kenya lifaele tsa Sass tsa Bootstrap. U na le likhetho tse peli: kenyelletsa Bootstrap kaofela, kapa khetha likarolo tseo u li hlokang. Re khothaletsa ba bang, leha ho le joalo hlokomela hore ho na le litlhokahalo le litšepeho ho likarolo tsa rona. Hape o tla hloka ho kenyelletsa JavaScript bakeng sa li-plugins tsa rona.
Ha seta seo se se se le teng, o ka qala ho fetola mefuta efe kapa efe ea Sass le limmapa tsa hau custom.scss
. U ka qala ho eketsa likarolo tsa Bootstrap tlasa // Optional
karolo kamoo ho hlokahalang. Re fana ka maikutlo a ho sebelisa stack e felletseng e tsoang bootstrap.scss
faeleng ea rona e le sebaka sa hau sa ho qala.
Phapang e 'ngoe le e' ngoe ea Sass ho Bootstrap 4 e kenyelletsa !default
folakha e u lumellang ho feta boleng ba kamehla ba Sass ea hau ntle le ho fetola khoutu ea mohloli oa Bootstrap. Kopitsa le ho beha mefuta-futa ha ho hlokahala, fetola boleng ba eona, 'me u tlose !default
folakha. Haeba phapang e se e abetsoe, joale e ke ke ea abeloa hape ke boleng ba kamehla ho Bootstrap.
Liphetoho tse feto-fetohang ka har'a faele e tšoanang ea Sass li ka tla pele kapa ka morao ho mefuta ea kamehla. Leha ho le joalo, ha u fetisa lifaele tsa Sass, lintho tse tlositsoeng li tlameha ho tla pele o kenya lifaele tsa Sass tsa Bootstrap.
Mona ke mohlala o fetolang background-color
le color
bakeng sa <body>
ha o kenya le ho hlophisa Bootstrap ka npm:
Pheta ha ho hlokahala bakeng sa phetoho efe kapa efe ho Bootstrap, ho kenyelletsa le likhetho tsa lefats'e tse ka tlase.
Bootstrap 4 e kenyelletsa limmapa tse seng kae tsa Sass, lipara tsa bohlokoa tse etsang hore ho be bonolo ho hlahisa malapa a CSS e amanang. Re sebelisa limmapa tsa Sass bakeng sa mebala ea rona, libaka tsa marang-rang, le tse ling. Joalo ka mefuta e fapaneng ea Sass, limmapa tsohle tsa Sass li kenyelletsa !default
folakha 'me li ka hlakoloa le ho atolosoa.
Tse ling tsa limmapa tsa rona tsa Sass li kopantsoe ho ba tse se nang letho ka boiketsetso. Sena se etsoa ho lumella katoloso e bonolo ea 'mapa o fanoeng oa Sass, empa e tla ka litšenyehelo tsa ho etsa hore ho be thata haholoanyane ho tlosa lintho 'mapeng.
Ho fetola 'mala o teng' $theme-colors
mapa oa rona, kenya tse latelang faeleng ea hau ea tloaelo ea Sass:
Ho kenya 'mala o mocha ho $theme-colors
, eketsa konopo e ncha le boleng:
Ho tlosa mebala ho $theme-colors
, kapa 'mapeng ofe kapa ofe, sebelisa map-remove
:
Bootstrap e nka boteng ba linotlolo tse itseng ka har'a limmapa tsa Sass ha re ntse re li sebelisa le ho li atolosa. Ha u ntse u etsa limmapa tse kenyellelitsoeng, u ka 'na ua kopana le liphoso moo ho sebelisoang senotlolo se itseng sa 'mapa oa Sass.
Mohlala, re sebelisa primary
, success
, le danger
linotlolo ho tsoa $theme-colors
bakeng sa lihokelo, likonopo, le li-form state. Ho fetola boleng ba linotlolo tsena ha hoa lokela ho hlahisa mathata, empa ho li tlosa ho ka baka mathata a ho bokella Sass. Maemong ana, o tla hloka ho fetola khoutu ea Sass e sebelisang litekanyetso tseo.
Bootstrap e sebelisa mesebetsi e mengata ea Sass, empa ke karoloana feela e sebetsang ho theme e akaretsang. Re kenyelelitse mesebetsi e meraro ea ho fumana boleng ho tsoa 'mapeng oa mebala:
Tsena li u lumella ho khetha 'mala o le mong 'mapeng oa Sass joalo ka ha u ka sebelisa phapang ea mebala ho tloha ho v3.
Re boetse re na le ts'ebetso e 'ngoe ea ho fumana boemo bo itseng ba mebala ho tsoa ' $theme-colors
mapeng. Maemo a fosahetseng a tla bebofatsa 'mala, athe maemo a holimo a tla fifala.
Ka ts'ebetso, u ka letsetsa ts'ebetso 'me u fete ka mekhahlelo e' meli: lebitso la 'mala ho tloha $theme-colors
(mohlala, ka sehloohong kapa kotsi) le boemo ba linomoro.
Mesebetsi e meng e ka eketsoa nakong e tlang kapa ea tloaelo ea Sass ea hau ho theha mesebetsi ea maemo bakeng sa limmapa tse ling tsa Sass, kapa e 'ngoe e akaretsang haeba u batla ho bua haholoanyane.
Mosebetsi o mong oo re o kenyelletsang ho Bootstrap ke mosebetsi oa ho bapisa mebala, color-yiq
. E sebelisa sebaka sa 'mala sa YIQ ho khutlisetsa khanya ( #fff
) kapa e lefifi ( #111
) 'mala oa phapang o ipapisitseng le 'mala o boletsoeng. Ts'ebetso ena e bohlokoa haholo bakeng sa li-mixins kapa loops moo o hlahisang lihlopha tse ngata.
Mohlala, ho hlahisa li-swatches tsa mebala ho tsoa $theme-colors
'mapeng oa rona:
E ka boela ea sebelisoa bakeng sa litlhoko tse fapaneng tse fapaneng:
U ka boela ua hlakisa 'mala oa motheo ka mesebetsi ea rona ea' mapa oa mebala:
Iketsetse Bootstrap 4 ka faele ea rona ea mefuta-futa e hahelletsoeng kahare 'me u fetole habonolo likhetho tsa CSS tsa lefats'e ka $enable-*
mefuta e mecha ea Sass. Fetola boleng ba phapano 'me u boele u bokelle ka npm run test
moo ho hlokahalang.
U ka fumana le ho etsa mefuta ena e fapaneng bakeng sa likhetho tsa bohlokoa tsa lefats'e _variables.scss
faeleng ea rona.
E fetohang | Litekanyetso | Tlhaloso |
---|---|---|
$spacer |
1rem (ea kamehla), kapa boleng bofe kapa bofe> 0 |
E hlakisa boleng bo sa feleng ba spacer ho hlahisa lisebelisoa tsa rona tsa spacer ka mokhoa o hlophisitsoeng . |
$enable-rounded |
true (ea kamehla) kapafalse |
E nolofalletsa border-radius mekhoa e hlalositsoeng esale pele likarolong tse fapaneng. |
$enable-shadows |
true kapa false (ea kamehla) |
E nolofalletsa box-shadow mekhoa e hlalositsoeng esale pele likarolong tse fapaneng. |
$enable-gradients |
true kapa false (ea kamehla) |
E nolofalletsa li-gradients tse hlalositsoeng esale pele ka background-image mekhoa ea likarolo tse fapaneng. |
$enable-transitions |
true (ea kamehla) kapafalse |
E nolofalletsa li-predefined transition s ho likarolo tse fapaneng. |
$enable-hover-media-query |
true kapa false (ea kamehla) |
E tlositsoe |
$enable-grid-classes |
true (ea kamehla) kapafalse |
E nolofalletsa tlhahiso ea lihlopha tsa CSS bakeng sa tsamaiso ea marang-rang (mohlala, .container , .row , .col-md-1 , jj.). |
$enable-caret |
true (ea kamehla) kapafalse |
E nolofalletsa pseudo element caret ho .dropdown-toggle . |
$enable-print-styles |
true (ea kamehla) kapafalse |
E thusa mekhoa ea ho ntlafatsa khatiso. |
Bongata ba likarolo le lisebelisoa tse fapaneng tsa Bootstrap li hahiloe ka letoto la mebala e hlalositsoeng 'mapeng oa Sass. 'Mapa ona o ka ts'oaroa ho Sass ho hlahisa letoto la melaoana kapele.
Mebala eohle e fumanehang ho Bootstrap 4, e fumaneha joalo ka mefuta ea Sass le 'mapa oa Sass scss/_variables.scss
faeleng ea rona. Sena se tla atolosoa ho lintlafatso tse nyane tse latelang ho eketsa li-shades tse ling, joalo ka palete ea grayscale eo re seng re e kenyelletsa.
U ka sebelisa tsena joang ho Sass ea hau:
Lihlopha tsa tšebeliso ea mebala li boetse li fumaneha bakeng sa ho beha color
le background-color
.
Nakong e tlang, re tla ikemisetsa ho fana ka limmapa tsa Sass le mefuta e fapaneng bakeng sa mebala ea 'mala o mong le o mong joalo ka ha re entse ka mebala e putsoa e ka tlase.
Re sebelisa karolo e nyane ea mebala eohle ho theha phalete e nyane ea mebala bakeng sa ho hlahisa merero ea mebala, e fumanehang hape e le mefuta ea Sass le 'mapa oa Sass scss/_variables.scss
faeleng ea rona.
Sete e atolositsoeng ea mefuta-futa le 'mapa oa Sass scss/_variables.scss
bakeng sa mebala e sa fetoheng ea bohlooho morerong oa hau.
Ka har'a _variables.scss
, u tla fumana mefuta ea rona ea mebala le 'mapa oa Sass. Mohlala oa $colors
'mapa oa Sass ke ona:
Kenya, tlosa, kapa u fetole boleng ka har'a 'mapa ho ntlafatsa mokhoa oa ho sebelisoa likarolong tse ling tse ngata. Ka bomalimabe nakong ena, ha se karolo e 'ngoe le e 'ngoe e sebelisang 'mapa ona oa Sass. Lintlafatso tse tlang li tla leka ho ntlafatsa ho sena. Ho fihlela ka nako eo, rera ho sebelisa ${color}
mefuta-futa le 'mapa ona oa Sass.
Bongata ba likarolo le lits'ebeletso tsa Bootstrap li hahiloe ka @each
loops tse phetoang 'mapeng oa Sass. Sena se thusa haholo bakeng sa ho hlahisa mefuta e fapaneng ea karolo ka rona $theme-colors
le ho theha mefuta e arabelang bakeng sa ntlha ka 'ngoe. Ha u ntse u etsa limmapa tsena tsa Sass, 'me u li etsa hape, u tla bona liphetoho tsa hau li hlaha ho loops tsena.
Likarolo tse ngata tsa Bootstrap li hahiloe ka mokhoa oa sehlopha sa base-modifier. Sena se bolela hore bongata ba setaele bo fumaneha ho sehlopha sa batho ba bang (mohlala, .btn
) athe mefuta e fapaneng ea setaele e fella feela ka lihlopha tsa ho fetola (mohlala, .btn-danger
). Lihlopha tsena tsa ho fetola li hahiloe ho tloha ' $theme-colors
mapeng ho etsa hore palo le mabitso a lihlopha tsa rona li behoe.
Mehlala e 'meli ke ena ea hore na re tsamaea joang $theme-colors
'mapeng ho hlahisa lintlafatso ho .alert
karolo le lisebelisoa tsohle tsa rona .bg-*
.
Loops tsena tsa Sass ha li felle feela ho limmapa tsa mebala, hape. U ka boela ua hlahisa mefuta e fapaneng e arabelang ea likarolo kapa lisebelisoa tsa hau. Ka mohlala, nka lisebelisoa tsa rona tse arabelang tsa ho hokahanya ha mongolo moo re kopanyang @each
loop bakeng sa $grid-breakpoints
'mapa oa Sass le potso ea media e kenyelletsang.
Haeba o hloka ho fetola $grid-breakpoints
, liphetoho tsa hau li tla sebetsa ho loops ohle tse ntseng li tsoela pele 'mapeng oo.
Bootstrap 4 e kenyelletsa lintho tse ka bang peli tse tloaelehileng tsa CSS (mefuta e fapaneng) ho CSS e hlophisitsoeng. Tsena li fana ka phihlello e bonolo ea boleng bo sebelisoang hangata joalo ka mebala ea sehlooho sa rona, li-breakpoints, le mekotla ea litlhaku ea mantlha ha u sebetsa ho Mohlahlobi oa sebatli sa hau, lebokose la sandbox, kapa prototyping ka kakaretso.
Mona ke mefuta e fapaneng eo re e kenyelletsang (hlokomela hore :root
hoa hlokahala). Li teng _root.scss
faeleng ea rona.
Mefuta e fapaneng ea CSS e fana ka phetoho e tšoanang ho mefuta e fapaneng ea Sass, empa ntle le tlhoko ea ho bokella pele e fuoa sebatli. Mohlala, mona re seta bocha fonte ea leqephe la rona le mefuta ea lihokela ka mefuta ea CSS.
U ka sebelisa likhetho tsa rona tsa breakpoint lipotsong tsa hau tsa media: