ʻO Theming Bootstrap
Hoʻopilikino i ka Bootstrap 4 me kā mākou mau ʻano Sass hou i kūkulu ʻia no nā makemake kaila honua no ka maʻalahi o nā kumumanaʻo a me nā hoʻololi ʻāpana.
Ma Bootstrap 3, ua alakaʻi nui ʻia ke kumumanaʻo e nā mea ʻokoʻa i LESS, CSS maʻamau, a me kahi ʻano papa inoa ʻokoʻa i hoʻokomo ʻia i kā mākou dist
faila. Me ka hoʻoikaika ʻana, hiki i kekahi ke hoʻolālā hou i ke ʻano o Bootstrap 3 me ka ʻole o ka hoʻopā ʻana i nā faila kumu. Hāʻawi ʻo Bootstrap 4 i kahi ala maʻamau, akā ʻokoʻa iki.
I kēia manawa, hoʻokō ʻia ke kumuhana e nā ʻano ʻano Sass, nā palapala ʻāina Sass, a me CSS maʻamau. ʻAʻohe pepa kaila kumuhana i hoʻolaʻa hou ʻia; akā, hiki iā ʻoe ke ʻae i ke kumumanaʻo i kūkulu ʻia e hoʻohui i nā gradients, nā aka, a me nā mea hou aku.
E hoʻohana i kā mākou kumu waihona Sass e hoʻohana i nā mea hoʻololi, palapala ʻāina, hui pū, a me nā mea hou aku.
I ka manawa hiki, e pale i ka hoʻololi ʻana i nā faila kumu o Bootstrap. No Sass, ʻo ia hoʻi ka hana ʻana i kāu stylesheet ponoʻī e lawe mai iā Bootstrap i hiki iā ʻoe ke hoʻololi a hoʻonui. Ke manaʻo nei ʻoe e hoʻohana ana i kahi mana hoʻokele e like me npm, e loaʻa iā ʻoe kahi ʻano faila e like me kēia:
Inā ua hoʻoiho ʻoe i kā mākou waihona kumu a ʻaʻole ʻoe e hoʻohana i ka luna pūʻolo, makemake ʻoe e hoʻonohonoho lima i kahi mea e like me kēlā ʻano, e hoʻokaʻawale i nā faila kumu o Bootstrap mai kāu ponoʻī.
Ma kāu custom.scss
, e hoʻokomo i nā faila Sass kumu o Bootstrap. Loaʻa iā ʻoe nā koho ʻelua: e hoʻokomo i nā Bootstrap āpau, a i ʻole e koho i nā ʻāpana āu e pono ai. Paipai mākou i ka mea hope, ʻoiai e ʻike ʻoe aia kekahi mau koi a me nā hilinaʻi ma waena o kā mākou ʻāpana. Pono ʻoe e hoʻokomo i kekahi JavaScript no kā mākou plugins.
Me kēlā hoʻonohonoho i kahi, hiki iā ʻoe ke hoʻomaka e hoʻololi i kekahi o nā ʻano Sass a me nā palapala 'āina i kāu custom.scss
. Hiki iā ʻoe ke hoʻomaka e hoʻohui i nā ʻāpana o Bootstrap ma lalo o ka // Optional
ʻāpana e like me ka mea e pono ai. Manaʻo mākou e hoʻohana i ka waihona hoʻokomo piha mai kā mākou bootstrap.scss
faila ma ke ʻano he hoʻomaka.
Loaʻa i kēlā me kēia hoʻololi Sass i Bootstrap 4 ka !default
hae e ʻae iā ʻoe e hoʻopau i ka waiwai paʻamau o ka hoʻololi i kāu Sass ponoʻī me ka ʻole o ka hoʻololi ʻana i ka code kumu o Bootstrap. E kope a paʻi i nā mea hoʻololi e like me ka mea e pono ai, hoʻololi i kā lākou mau waiwai, a wehe i ka !default
hae. Inā ua hoʻonohonoho mua ʻia kahi loli, a laila ʻaʻole ia e hāʻawi hou ʻia e nā koina paʻamau ma Bootstrap.
E ʻike ʻoe i ka papa inoa piha o nā ʻano hoʻololi o Bootstrap ma scss/_variables.scss
.
Hiki i nā mea hoʻololi i loko o ka faila Sass hoʻokahi ke hele mai ma mua a ma hope paha o nā mea hoʻololi paʻamau. Eia naʻe, i ka wā e hoʻopau ai i nā faila Sass, pono kāu mau overrides ma mua o kou hoʻokomo ʻana i nā faila Sass Bootstrap.
Eia kahi hiʻohiʻona e hoʻololi i ka background-color
a color
no ka <body>
wā e lawe mai ana a hōʻuluʻulu iā Bootstrap ma o npm:
E hana hou e like me ka mea e pono ai no kēlā me kēia loli i Bootstrap, me nā koho honua ma lalo.
Loaʻa i ka Bootstrap 4 kahi lima o nā palapala ʻāina Sass, nā hui waiwai koʻikoʻi e maʻalahi i ka hana ʻana i nā ʻohana CSS pili. Hoʻohana mākou i nā palapala ʻāina ʻo Sass no kā mākou kala, nā wahi haʻihaʻi, a me nā mea hou aku. E like me nā hoʻololi Sass, aia nā palapala ʻāina Sass āpau i ka !default
hae a hiki ke hoʻopau ʻia a hoʻonui ʻia.
Hoʻohui ʻia kekahi o kā mākou mau palapala ʻāina Sass i nā palapala ʻāina ʻole. Hana ʻia kēia no ka ʻae ʻana i ka hoʻonui maʻalahi o kahi palapala ʻāina Sass i hāʻawi ʻia, akā hiki mai ke kumukūʻai o ka lawe ʻana i nā mea mai kahi palapala ʻāina i ʻoi aku ka paʻakikī.
No ka hoʻololi ʻana i kahi waihoʻoluʻu i kā mākou $theme-colors
palapala ʻāina, e hoʻohui i kēia i kāu faila Sass maʻamau:
No ka hoʻohui ʻana i kahi waihoʻoluʻu hou iā $theme-colors
, hoʻohui i ke kī hou a me ka waiwai:
No ka wehe ʻana i nā kala mai $theme-colors
, a i ʻole kekahi palapala ʻāina ʻē aʻe, e hoʻohana i ka map-remove
. E makaʻala pono ʻoe e hoʻokomo iā ia ma waena o kā mākou mau koi a me nā koho:
Manaʻo ʻo Bootstrap i ka loaʻa ʻana o kekahi mau kī kikoʻī i loko o nā palapala Sass i kā mākou hoʻohana ʻana a hoʻonui iā mākou iho. I kou hoʻopilikino ʻana i nā palapala ʻāina i hoʻokomo ʻia, hiki iā ʻoe ke loaʻa nā hewa kahi e hoʻohana ʻia ai kahi kī o ka palapala Sass kikoʻī.
No ka laʻana, hoʻohana mākou i ka primary
, success
, a me danger
nā kī mai $theme-colors
no nā loulou, nā pihi, a me nā mokuʻāina. ʻAʻohe pilikia o ka hoʻololi ʻana i nā waiwai o kēia mau kī, akā ʻo ka wehe ʻana iā lākou hiki ke hoʻopilikia i ka hui ʻana o Sass. I kēia mau manawa, pono ʻoe e hoʻololi i ke code Sass e hoʻohana ana i kēlā mau waiwai.
Hoʻohana ʻo Bootstrap i kekahi mau hana Sass, akā ʻo kahi ʻāpana wale nō e pili ana i ka theming maʻamau. Ua hoʻokomo mākou i ʻekolu mau hana no ka loaʻa ʻana o nā waiwai mai nā palapala kala:
ʻAe kēia iā ʻoe e koho i hoʻokahi kala mai kahi palapala ʻāina Sass e like me kāu e hoʻohana ai i kahi ʻano kala mai v3.
Loaʻa iā mākou kekahi hana ʻē aʻe no ka loaʻa ʻana o kahi pae o ke kala mai ka $theme-colors
palapala ʻāina. E hoʻomāmā i ka waihoʻoluʻu nā waiwai pae ʻino, ʻoiai e pōʻeleʻele nā pae kiʻekiʻe.
I ka hoʻomaʻamaʻa ʻana, e kāhea ʻoe i ka hana a hele i nā ʻāpana ʻelua: ka inoa o ke kala mai $theme-colors
(e laʻa, ka mea mua a i ʻole ka pilikia) a me kahi pae helu.
Hiki ke hoʻohui ʻia nā hana ʻē aʻe i ka wā e hiki mai ana a i ʻole kāu Sass maʻamau e hana i nā hana pae no nā palapala ʻāina Sass hou aʻe, a i ʻole he mea maʻamau inā makemake ʻoe e ʻoi aku ka verbose.
ʻO kahi hana hou aʻe a mākou e hoʻokomo ai i Bootstrap ʻo ia ka hana hoʻohālikelike kala, color-yiq
. Hoʻohana ʻo ia i ka lumi kala YIQ e hoʻihoʻi aunoa i kahi kala ʻokoʻa ( #fff
) a i ʻole ʻeleʻele ( #111
) e pili ana i ke kala kumu i kuhikuhi ʻia. He mea pono loa kēia hana no nā mixins a i ʻole nā puka lou kahi āu e hana ai i nā papa he nui.
No ka laʻana, e hoʻohua i nā kala kala mai kā mākou $theme-colors
palapala ʻāina:
Hiki ke hoʻohana ʻia no nā pono ʻokoʻa hoʻokahi:
Hiki iā ʻoe ke kuhikuhi i kahi waihoʻoluʻu kumu me kā mākou mau hana palapala kala:
Hoʻopilikino i ka Bootstrap 4 me kā mākou faila hoʻololi maʻamau i kūkulu ʻia a hoʻololi maʻalahi i nā makemake CSS honua me nā $enable-*
loli Sass hou. Hoʻopau i ka waiwai o ka mea hoʻololi a hoʻohui hou me npm run test
ka mea e pono ai.
scss/_variables.scss
Hiki iā ʻoe ke loaʻa a hoʻopilikino i kēia mau ʻokoʻa no nā koho honua koʻikoʻi ma ka faila Bootstrap .
Hoʻololi | Waiwai | wehewehe |
---|---|---|
$spacer |
1rem (paʻamau), a i ʻole kekahi waiwai > 0 |
Hōʻike i ka waiwai spacer paʻamau no ka hoʻomohala papahana i kā mākou mau pono spacer . |
$enable-rounded |
true (paʻamau) a i ʻolefalse |
Hiki i nā ʻano i koho mua ʻia border-radius ma nā ʻāpana like ʻole. |
$enable-shadows |
true a i ʻole false (paʻamau) |
Hiki i nā ʻano i koho mua ʻia box-shadow ma nā ʻāpana like ʻole. |
$enable-gradients |
true a i ʻole false (paʻamau) |
Ho'ā i nā gradient i koho mua ʻia ma o background-image nā kaila ma nā ʻāpana like ʻole. |
$enable-transitions |
true (paʻamau) a i ʻolefalse |
Hiki i nā transition s i koho mua ʻia ma nā ʻāpana like ʻole. |
$enable-hover-media-query |
true a i ʻole false (paʻamau) |
Hoʻopau ʻia |
$enable-grid-classes |
true (paʻamau) a i ʻolefalse |
Hiki ke hana i nā papa CSS no ka ʻōnaehana mānoanoa (e laʻa, .container , .row , .col-md-1 , etc.). |
$enable-caret |
true (paʻamau) a i ʻolefalse |
Ho'ā i ka pseudo element caret on .dropdown-toggle . |
$enable-print-styles |
true (paʻamau) a i ʻolefalse |
Hāʻawi i nā ʻano no ka hoʻonui ʻana i ka paʻi. |
Nui nā ʻāpana like ʻole o Bootstrap a me nā pono hana i kūkulu ʻia ma o ke ʻano o nā kala i wehewehe ʻia ma kahi palapala Sass. Hiki ke hoʻopaʻa ʻia kēia palapala ʻāina ma Sass e hoʻopuka koke i nā pūʻulu lula.
Loaʻa nā kala āpau i Bootstrap 4, e like me nā ʻano Sass a me kahi palapala Sass ma ka scss/_variables.scss
faila. E hoʻonui ʻia kēia ma nā hoʻokuʻu liʻiliʻi e hoʻohui i nā aka hou, e like me ka palette grayscale a mākou i hoʻokomo ai.
Eia pehea ʻoe e hoʻohana ai i kēia mau mea i kāu Sass:
Loaʻa nā papa hana kala no ka hoʻonohonoho ʻana color
a me background-color
.
I ka wā e hiki mai ana, manaʻo mākou e hāʻawi i nā palapala ʻāina Sass a me nā ʻano like ʻole no nā aka o kēlā me kēia kala e like me kā mākou i hana ai me nā kala hina ma lalo.
Hoʻohana mākou i kahi ʻāpana o nā waihoʻoluʻu āpau e hana i kahi palette liʻiliʻi liʻiliʻi no ka hana ʻana i nā kala kala, loaʻa nō hoʻi e like me nā hoʻololi Sass a me kahi palapala ʻāina Sass i ka scss/_variables.scss
faila Bootstraps.
ʻO kahi hoʻonohonoho nui o nā mea ʻokoʻa hina a me kahi palapala ʻāina Sass i loko scss/_variables.scss
no nā kala ʻeleʻele like ʻole ma kāu papahana.
I loko o scss/_variables.scss
ka , e ʻike ʻoe i nā ʻano waihoʻoluʻu o Bootstrap a me ka palapala ʻāina Sass. Eia kekahi laʻana o ka $colors
palapala ʻāina Sass:
Hoʻohui, wehe, a hoʻololi paha i nā waiwai i loko o ka palapala ʻāina no ka hoʻonui ʻana i ke ʻano o ka hoʻohana ʻia ʻana ma nā ʻāpana ʻē aʻe. ʻO ka mea pōʻino i kēia manawa, ʻaʻole hoʻohana nā mea āpau i kēia palapala Sass. E hoʻoikaika nā mea hou e hiki mai ana e hoʻomaikaʻi i kēia. A hiki i kēlā manawa, e hoʻolālā i ka hoʻohana ʻana i nā ${color}
mea hoʻololi a me kēia palapala Sass.
Nui nā ʻāpana a me nā pono hana a Bootstrap i kūkulu ʻia me @each
nā puka lou e hoʻololi i ka palapala Sass. He mea kōkua nui kēia no ka hana ʻana i nā ʻano like ʻole o kahi ʻāpana e kā mākou $theme-colors
a hana i nā ʻano pane pane no kēlā me kēia breakpoint. Ke hoʻopilikino ʻoe i kēia mau palapala ʻāina Sass a hoʻohui hou, ʻike ʻoe i kāu mau loli i ʻike ʻia i kēia mau puka lou.
Hoʻokumu ʻia ka nui o nā ʻāpana Bootstrap me kahi papa hoʻololi base-modifier. 'O ia ho'i, aia ka nui o ka pena 'ana i ka papa kumu (e la'a, .btn
) oiai ua pa'a ka ho'ololi 'ana i nā papa ho'ololi (eg, .btn-danger
). Kūkulu ʻia kēia mau papa hoʻololi mai ka $theme-colors
palapala ʻāina e hana maʻamau i ka helu a me ka inoa o kā mākou papa hoʻololi.
Eia ʻelua mau hiʻohiʻona o ke ʻano o kā mākou hoʻololi ʻana ma luna o ka $theme-colors
palapala ʻāina e hana i nā mea hoʻololi i ka .alert
ʻāpana a me kā mākou .bg-*
mau pono hope.
ʻAʻole kaupalena ʻia kēia mau puka lou Sass i nā palapala ʻāina kala. Hiki iā ʻoe ke hana i nā ʻano like ʻole o kāu ʻāpana a i ʻole nā mea pono. E noʻonoʻo i kā mākou mau pono hoʻoponopono kikokikona pane kahi e hui ai mākou i kahi @each
loop no ka $grid-breakpoints
palapala Sass me kahi nīnau media.
Inā pono ʻoe e hoʻololi i kāu $grid-breakpoints
, e pili ana kāu mau hoʻololi i nā puka lou a pau ma luna o kēlā palapala ʻāina.
Loaʻa ka Bootstrap 4 ma kahi o ʻelua mau kukini CSS mau waiwai maʻamau (nā mea hoʻololi) i kāna CSS i hōʻuluʻulu ʻia. Hāʻawi kēia mau mea i ke komo maʻalahi i nā waiwai i hoʻohana mau ʻia e like me kā mākou kala kumuhana, nā wahi haʻihaʻi, a me nā pūʻulu kikokikona mua i ka wā e hana ai i kāu Inspector o kāu polokalamu kele pūnaewele, kahi pahu pahu code, a i ʻole prototyping maʻamau.
Eia nā mea hoʻololi a mākou e hoʻokomo ai (e hoʻomaopopo :root
he koi ʻia ka mea). Aia lākou ma kā mākou _root.scss
faila.
Hāʻawi nā mea hoʻololi CSS i ka maʻalahi like me nā ʻano like ʻole o Sass, akā me ka ʻole o ka pono o ka hoʻohui ʻana ma mua o ka lawelawe ʻana i ka polokalamu kele pūnaewele. No ka laʻana, eia mākou e hoʻonohonoho hou ana i kā mākou ʻaoʻao font a me nā ʻano loulou me nā mea hoʻololi CSS.
ʻOiai mākou i hoʻokomo mua i nā wahi haʻihaʻi i loko o kā mākou mau ʻano CSS (e laʻa, --breakpoint-md
), ʻaʻole kākoʻo ʻia kēia mau mea i nā nīnau media , akā hiki ke hoʻohana ʻia i loko o nā lula i nā nīnau media. Ke waiho nei kēia mau mea hoʻololi i ka CSS i hōʻuluʻulu ʻia no ka hoʻohālikelike hope ʻana i hiki ke hoʻohana ʻia e JavaScript. E aʻo hou ma ka spec.
Eia kekahi laʻana o ka mea i kākoʻo ʻole ʻia:
A eia kekahi laʻana o ka mea i kākoʻo ʻia: