Theming Bootstrap
Personalizà Bootstrap 4 cù e nostre novi variabili Sass integrate per e preferenze di stili glubale per temi facili è cambiamenti di cumpunenti.
In Bootstrap 3, a tematica hè stata largamente guidata da overrides variabili in LESS, CSS persunalizati, è un fogliu di stile di tema separatu chì avemu inclusu in i nostri dist
schedari. Cù qualchì sforzu, unu puderia ridisegnu cumplettamente l'aspettu di Bootstrap 3 senza toccu i schedarii core. Bootstrap 4 furnisce un approcciu familiar, ma un pocu sfarente.
Avà, a tematica hè realizata da variabili Sass, carte Sass è CSS persunalizati. Ùn ci hè più un fogliu di stile di tema dedicatu; invece, pudete attivà u tema integratu per aghjunghje gradienti, ombre, è più.
Aduprate i nostri fugliali Sass fonte per prufittà di variabili, carte, mixin, è più.
Sempre chì hè pussibule, evite micca di mudificà i schedarii core di Bootstrap. Per Sass, questu significa creà u vostru propiu fogliu di stile chì importa Bootstrap per pudè mudificà è allargà. Assumindu chì avete aduprà un gestore di pacchetti cum'è npm, avarete una struttura di schedari chì pare cusì:
Se avete scaricatu i nostri fugliali fonte è ùn avete micca aduprà un gestore di pacchetti, vi vulete cunfigurà manualmente qualcosa di simile à quella struttura, mantenendu i schedarii fonte di Bootstrap separati da i vostri.
In u vostru custom.scss
, impurtate i schedarii Sass fonte di Bootstrap. Avete duie opzioni: include tuttu Bootstrap, o sceglite e parti chì avete bisognu. Incuragemu l'ultime, ancu s'ellu sia cuscenti chì ci sò alcuni requisiti è dipendenze in i nostri cumpunenti. Avete ancu bisognu di include JavaScript per i nostri plugins.
Cù sta cunfigurazione in u locu, pudete inizià à mudificà qualsiasi variabili è carte Sass in u vostru custom.scss
. Pudete ancu principià à aghjunghje parti di Bootstrap sottu a // Optional
sezione cum'è necessariu. Suggeremu di utilizà a pila d'importazione cumpleta da u nostru bootstrap.scss
schedariu cum'è u vostru puntu di partenza.
Ogni variabile Sass in Bootstrap 4 include a !default
bandiera chì vi permette di annullà u valore predeterminatu di a variabile in u vostru propiu Sass senza mudificà u codice fonte di Bootstrap. Copia è incollà e variàbili cum'è necessariu, mudificà i so valori, è sguassate a !default
bandiera. Se una variabile hè digià stata assignata, allora ùn serà micca riassignata da i valori predeterminati in Bootstrap.
L'annullamenti di variabili in u stessu schedariu Sass ponu esse prima o dopu à e variabili predeterminate. Tuttavia, quandu si annullanu i schedari Sass, i vostri overrides devenu esse prima di impurtà i schedari Sass di Bootstrap.
Eccu un esempiu chì cambia u background-color
è color
per <body>
quandu importa è compilate Bootstrap via npm:
Repetite quantu necessariu per qualsiasi variabile in Bootstrap, cumprese l'opzioni glubale sottu.
Bootstrap 4 include una manciata di carte Sass, coppie di valori chjave chì facenu più faciule per generà famiglie di CSS rilativi. Utilizemu carte Sass per i nostri culori, punti di rottura di griglia, è più. Cum'è e variabili Sass, tutte e carte Sass includenu a !default
bandiera è ponu esse rimpiazzate è allargate.
Alcune di e nostre carte Sass sò unificate in quelli vacanti per difettu. Questu hè fattu per permette l'espansione faciule di una carta Sass data, ma vene à u costu di fà caccià l' articuli da una mappa un pocu più difficiule.
Per mudificà un culore esistente in a nostra $theme-colors
mappa, aghjunghje i seguenti à u vostru schedariu Sass persunalizatu:
Per aghjunghje un novu culore à $theme-colors
, aghjunghje a nova chjave è u valore:
Per sguassà i culori da $theme-colors
, o qualsiasi altra mappa, utilizate map-remove
:
Bootstrap assume a presenza di alcune chjavi specifiche in e carte Sass cum'è avemu usatu è estendemu sti stessi. Cumu persunalizà e carte incluse, pudete scuntrà errori induve una chjave specifica di a mappa Sass hè stata aduprata.
Per esempiu, usemu i primary
, success
è i danger
chjavi da $theme-colors
per i ligami, i buttoni è i stati di forma. A rimpiazzà i valori di sti chjavi ùn deve esse micca prublemi, ma sguassate pò causà prublemi di compilazione Sass. In questi casi, avete bisognu di mudificà u codice Sass chì face usu di quelli valori.
Bootstrap utilizeghja parechje funzioni di Sass, ma solu un subset hè applicabile à a tematica generale. Avemu inclusu trè funzioni per ottene valori da e carte di culore:
Quessi permettenu di sceglie un culore da una mappa Sass cum'è cumu avete aduprà una variabile di culore da v3.
Avemu ancu una altra funzione per ottene un livellu particulari di culore da a $theme-colors
mappa. I valori di u nivellu negativu illuminaranu u culore, mentre chì i livelli più alti scuriranu.
In pratica, chjamà a funzione è passà in dui paràmetri: u nome di u culore da $theme-colors
(per esempiu, primariu o periculu) è un livellu numericu.
Funzioni supplementari puderanu esse aghjuntu in u futuru o u vostru propiu Sass persunalizatu per creà funzioni di livellu per mappe Sass supplementari, o ancu un genericu si vulete esse più verbose.
Una funzione supplementaria chì includemu in Bootstrap hè a funzione di cuntrastu di culore, color-yiq
. Utilizeghja u spaziu di culore YIQ per rinvià automaticamente un culore di cuntrastu chjaru ( #fff
) o scuru ( #111
) basatu annantu à u culore di basa specificatu. Questa funzione hè particularmente utile per mixin o loops induve generate parechje classi.
Per esempiu, per generà campioni di culore da a nostra $theme-colors
mappa:
Pò esse ancu usatu per esigenze di cuntrastu una volta:
Pudete ancu specificà un culore di basa cù e nostre funzioni di mappa di culore:
Personalizà Bootstrap 4 cù u nostru schedariu di variabili persunalizati integrati è cambia facilmente e preferenze CSS globale cù novi $enable-*
variabili Sass. Override u valore di una variabile è ricumpila cù npm run test
quantu necessariu.
Pudete truvà è persunalizà queste variabili per l'opzioni globale chjave in u nostru _variables.scss
schedariu.
Variabile | I valori | Descrizzione |
---|---|---|
$spacer |
1rem (par défaut), ou toute valeur > 0 |
Specifica u valore di spaziatore predeterminatu per generà programmaticamente e nostre utilità di spaziatore . |
$enable-rounded |
true (default) ofalse |
Permette border-radius stili predefiniti nantu à diversi cumpunenti. |
$enable-shadows |
true o false (default) |
Permette box-shadow stili predefiniti nantu à diversi cumpunenti. |
$enable-gradients |
true o false (default) |
Permette gradienti predefiniti via background-image stili nantu à diversi cumpunenti. |
$enable-transitions |
true (default) ofalse |
Permette transition s predefiniti nantu à diversi cumpunenti. |
$enable-hover-media-query |
true o false (default) |
Deprecated |
$enable-grid-classes |
true (default) ofalse |
Permette a generazione di classi CSS per u sistema di griglia (per esempiu, .container , .row , .col-md-1 , etc.). |
$enable-caret |
true (default) ofalse |
Abilita u pseudo elementu caret in .dropdown-toggle . |
$enable-print-styles |
true (default) ofalse |
Permette stili per ottimisà a stampa. |
Parechji di i vari cumpunenti è utilità di Bootstrap sò custruiti attraversu una seria di culori definiti in una mappa Sass. Questa mappa pò esse ripresa in Sass per generà rapidamente una seria di regule.
Tutti i culori dispunibuli in Bootstrap 4, sò dispunibuli cum'è variabili Sass è una mappa Sass in u nostru scss/_variables.scss
schedariu. Questu serà allargatu in versioni minori successive per aghjunghje sfumature supplementari, cum'è a paleta in scala di grigi chì avemu digià include.
Eccu cumu pudete aduprà questi in u vostru Sass:
E classi di utilità di culore sò ancu dispunibili per l'impostazione color
è background-color
.
In u futuru, avemu da scopu di furnisce Sass maps è variabili per sfumature di ogni culore cum'è avemu fattu cù i culori in scala di grisgiu sottu.
Utilizemu un subset di tutti i culori per creà una paleta di culori più chjuca per generà schemi di culori, ancu dispunibili cum'è variabili Sass è una mappa Sass in u nostru scss/_variables.scss
schedariu.
Un inseme espansiu di variabili grigi è una mappa Sass in scss/_variables.scss
per sfumature coherenti di grisgiu in u vostru prughjettu.
Dentru _variables.scss
, truverete e nostre variabili di culore è a mappa Sass. Eccu un esempiu di a $colors
mappa Sass:
Aghjunghjite, sguassate o mudificà i valori in a mappa per aghjurnà cumu sò usati in parechji altri cumpunenti. Sfortunatamente à questu tempu, micca tutti i cumpunenti utilizanu sta mappa Sass. L'aghjurnamenti futuri s'impegnanu à migliurà questu. Finu à tandu, pensa à aduprà e ${color}
variàbili è sta mappa Sass.
Parechji di i cumpunenti è l'utilità di Bootstrap sò custruiti cù @each
loops chì iteranu nantu à una mappa Sass. Questu hè particularmente utile per generà varianti di un cumpunente da u nostru $theme-colors
è per creà varianti responsive per ogni breakpoint. Cumu persunalizà queste carte Sass è ricumpilate, vi vede automaticamente i vostri cambiamenti riflessi in questi loops.
Parechji di i cumpunenti di Bootstrap sò custruiti cù un approcciu di classi di basa di modificatori. Questu significa chì a maiò parte di u stilu hè cuntenutu à una classa di basa (per esempiu, .btn
) mentre chì e variazioni di stile sò limitate à e classi di modificatori (per esempiu, .btn-danger
). Queste classi modificatori sò custruiti da a $theme-colors
mappa per fà persunalizà u numeru è u nome di e nostre classi modificatori.
Eccu dui esempii di cumu circhemu nantu à a $theme-colors
mappa per generà modificatori à u .alert
cumpunente è tutte e nostre .bg-*
utilità di fondo.
Questi loops Sass ùn sò micca limitati à e carte di culore. Pudete ancu generà variazioni responsive di i vostri cumpunenti o utilità. Pigliate per esempiu e nostre utilità di allineamentu di testu rispunsevuli induve mischjemu un @each
ciclu per a $grid-breakpoints
mappa Sass cù una media query include.
Se avete bisognu di mudificà u vostru $grid-breakpoints
, i vostri cambiamenti s'applicanu à tutti i loops chì iteranu nantu à quella mappa.
Bootstrap 4 include circa duie decine di proprietà persunalizate CSS (variabili) in u so CSS compilatu. Quessi furniscenu un accessu faciule à i valori cumunimenti utilizati cum'è i nostri culori di tema, punti di rottura è pile di fonti primarie quandu travagliate in l'ispettore di u vostru navigatore, un codice sandbox o prototipu generale.
Eccu i variàbili chì includemu (nota chì :root
hè necessariu). Sò situati in u nostru _root.scss
schedariu.
Variabili CSS offrenu una flessibilità simile à e variàbili di Sass, ma senza bisognu di compilazione prima di esse servutu à u navigatore. Per esempiu, quì avemu resettatu u fonti di a nostra pagina è i stili di ligame cù variabili CSS.
Pudete ancu aduprà e nostre variabili di breakpoint in e vostre dumande di media: