Theming Bootstrap
Mos Bootstrap 4 cum novis nostris in Sass differentiis constructis pro optionibus global styli pro facili earum mutationibus et componentibus.
Introductio
In Bootstrap 3, thema late iactabatur a variabilibus overridis in minore, consuetudine CSS, et thema styli separati quod in dist
scriniis nostris includimus. Cum aliquo nisu, potest perfecte resignare aspectum Bootstrap 3 sine nucleo imagini tactus. Bootstrap 4 familiarem praebet, sed paullo aliter accedunt.
Nunc lemma efficitur per variabiles Sass, mappas Sass et consuetudo CSS. Nulla thema stylesheet magis dedicatum; sed possis in themate constructum addere graduum, umbrarum, et plura.
Sass
Utere nostro fonte Sass files utantur variabilibus, mappis, mixins, et magis cum Sass componendis utendo tuo fistulae dignissim.
File structure
Quotiens fieri potest, vitare nucleos imaginum Bootstrap mutare. Pro Sass, id significat creans tuum stilum qui Bootstrap importat ut eam mutare et extendere possis. Si villico sarcina utens sicut npm, fasciculi structuram similem habebis:
your-project/
├── scss
│ └── custom.scss
└── node_modules/
└── bootstrap
├── js
└── scss
Si tabulas nostras fonte receptas et villico sarcina non utens, manually simile illi structurae vis ponere, servans fontem fasciculi Bootstrap a tuo proprio separatum.
your-project/
├── scss
│ └── custom.scss
└── bootstrap/
├── js
└── scss
importat
In tuis custom.scss
, fontem Sass files Bootstrap importes. Duo optiones habes: omnes Bootstrap comprehende, vel partes quas tibi necessarias colligunt. Adhortamur hos, licet conscii sint aliquas necessitates ac clientelas per partes nostras. Etiam JavaScript pro nostris plugins includere necesse erit.
// Custom.scss
// Option A: Include all of Bootstrap
// Include any default variable overrides here (though functions won't be available)
@import "../node_modules/bootstrap/scss/bootstrap";
// Then add additional custom code here
// Custom.scss
// Option B: Include parts of Bootstrap
// 1. Include functions first (so you can manipulate colors, SVGs, calc, etc)
@import "../node_modules/bootstrap/scss/functions";
// 2. Include any default variable overrides here
// 3. Include remainder of required Bootstrap stylesheets
@import "../node_modules/bootstrap/scss/variables";
@import "../node_modules/bootstrap/scss/mixins";
// 4. Include any optional Bootstrap components as you like
@import "../node_modules/bootstrap/scss/reboot";
@import "../node_modules/bootstrap/scss/type";
@import "../node_modules/bootstrap/scss/images";
@import "../node_modules/bootstrap/scss/code";
@import "../node_modules/bootstrap/scss/grid";
Cum illo loco constituto, potes aliquem ex Sassi variabilium et mappis in tuis mutandis mutare custom.scss
. Etiam incipere potes partes Bootstrap sub // Optional
sectione addere prout opus est. Monemus utendo plenam importare acervum ex tabella nostra bootstrap.scss
ut tuum principium.
Defaltis variabilis
Omnis Sass variabilis in Bootstrap !default
vexillum permittens ut vincat valorem default variabilis in proprio Sass sine modificato codice fonte Bootstrap. Effingo et variabilium crustulum ut opus est, bona sua mutare, !default
vexillum remove. Si variabilis iam assignata est, non rursus assignata per valores default in Bootstrap erit.
Integrum album variabilium Bootstrap invenies in scss/_variables.scss
. Quaedam variabiles sunt positae null
, hae variabiles proprietatem non praemittunt, nisi in configuratione tua opprimantur.
Overrides variabiles venire debent post munera nostra, variabiles et mixins importari, sed ante reliquas importationes.
Exemplum hic mutans background-color
et color
pro <body>
inferentes et componendo Bootstrap per npm:
@import "../node_modules/bootstrap/scss/functions";
// Default variable overrides
$body-bg: #000;
$body-color: #111;
// Required
@import "../node_modules/bootstrap/scss/variables";
@import "../node_modules/bootstrap/scss/mixins";
// Optional Bootstrap components here
@import "../node_modules/bootstrap/scss/root";
@import "../node_modules/bootstrap/scss/reboot";
@import "../node_modules/bootstrap/scss/type";
// etc
Repetere quam necessarium est cuilibet variabili in Bootstrap, optiones globales infra.
Maps et ansas
Bootstrap 4 mappas mappas Sass includit, valoris clavis paria quae facilius familias cognatorum CSS generandi faciunt. Utimur mappis Sass nostris coloribus, eget breakpoints, et magis. Sicut variabiles Sass, omnes maps Sass includunt !default
vexillum et opprimi et extendi possunt.
Quaedam e nostris mappis Sass in vacuas per defaltam merguntur. Hoc factum est ut facilem datae tabulae Sass expansionem patiatur, sed cum periculo res e tabula aliquantulum difficilius removenda venit.
Mutare map
Ad colorem exsistentem in nostra $theme-colors
mapa mutandum, sequentia consuetudini tuae fasciculi Sass adde:
$theme-colors: (
"primary": #0074d9,
"danger": #ff4136
);
Add to map
Ad novum colorem $theme-colors
addere, novam clavem et valorem addere;
$theme-colors: (
"custom-color": #900
);
Aufer a tabula
Colores ab $theme-colors
aliave tabula tollere, utere map-remove
. Scire te oportet inserere inter nostras exigentias et optiones;
// Required
@import "../node_modules/bootstrap/scss/functions";
@import "../node_modules/bootstrap/scss/variables";
@import "../node_modules/bootstrap/scss/mixins";
$theme-colors: map-remove($theme-colors, "info", "light", "dark");
// Optional
@import "../node_modules/bootstrap/scss/root";
@import "../node_modules/bootstrap/scss/reboot";
@import "../node_modules/bootstrap/scss/type";
...
Requiritur claves
Bootstrap assumet praesentiam quarundam clavium specificorum in mappis Sass sicut nos has nosmetipsi usi sumus et extendimus. Ut tabulas inclusas domiciliis, errores incidere potes ubi certae tabulae Sass clavis adhibetur.
Verbi gratia, utimur e clauibus primary
, clavibus success
, nexus, globulis et civitatibus formantibus. Reponere valores harum clavium nullas proventus exhibere debent, sed eas removere possunt quaestiones compilation Sass causare. His in rebus, debes mutare codicem Sass qui illis bonis utitur.danger
$theme-colors
Munera
Bootstrap pluribus functionibus Sass utitur, sed solum subset commune thema commune est. Tria munera inclusa habuimus pro acquirendis valoribus ex mappis coloratis:
@function color($key: "blue") {
@return map-get($colors, $key);
}
@function theme-color($key: "primary") {
@return map-get($theme-colors, $key);
}
@function gray($key: "100") {
@return map-get($grays, $key);
}
Hi permittunt ut unum colorem ex tabula Sassa decerpas simillimum quomodo colore variabili ex v3.
.custom-element {
color: gray("100");
background-color: theme-color("dark");
}
Etiam aliud munus habemus ut certo gradu coloris e $theme-colors
tabula comparandi. Valores negativi gradus colorum illustrabunt, dum superiora obscurabunt.
@function theme-color-level($color-name: "primary", $level: 0) {
$color: theme-color($color-name);
$color-base: if($level > 0, #000, #fff);
$level: abs($level);
@return mix($color-base, $color, $level * $theme-color-interval);
}
In praxi, munus appellas et in duos parametros transi: nomen coloris ab $theme-colors
(eg, primario vel periculo) et gradu numerorum.
.custom-element {
color: theme-color-level(primary, -10);
}
Additiones functiones in futuro vel propria consuetudine addi possent Sas ad functiones planas creandas pro mappis additis Sass, vel etiam genericum, si verbosius esse voluisti.
Color antithesis
Munus additum quod includimus in Bootstrap munus est color antithesis, color-yiq
. Spatium colori YIQ utetur ut lumen automatice reddat ( #fff
) vel obscurum ( #111
) colorem discrepantem in basi determinato colore. Hoc munus maxime utile est ad mixinas vel ansas ubi plures classes generas.
Verbi gratia, ad generandum colorem permutat ex $theme-colors
tabula nostra;
@each $color, $value in $theme-colors {
.swatch-#{$color} {
color: color-yiq($value);
}
}
Potest etiam adhiberi ad contrarias necessitates una-off;
.custom-element {
color: color-yiq(#000); // returns `color: #fff`
}
Denominare etiam potes turpem colorem cum functionibus chartaceis nostris coloratis;
.custom-element {
color: color-yiq(theme-color("dark")); // returns `color: #fff`
}
fuge SVG
Munus utimur escape-svg
ad evadendi rationem <
, >
et #
ingenia ad imagines background SVG. Eae notae fugiendae sunt ut imagines curriculorum in IE recte reddant. Cum functione utens escape-svg
, data URIs adducenda est.
Adde et subtrahe munera
Munus CSS involvere add
ac functionibus utimur . Finis primarius harum functionum est vitare errores cum valor " non" in expressionem transit . Similia locutiones errorem in omnibus navigatoribus reddent, licet mathematice corrigantur.subtract
calc
0
calc
calc(10px - 0)
Exemplum ubi calc valet;
$border-radius: .25rem;
$border-width: 1px;
.element {
// Output calc(.25rem - 1px) is valid
border-radius: calc($border-radius - $border-width);
}
.element {
// Output the same calc(.25rem - 1px) as above
border-radius: subtract($border-radius, $border-width);
}
Exemplum ubi calc invalidum est;
$border-radius: .25rem;
$border-width: 0;
.element {
// Output calc(.25rem - 0) is invalid
border-radius: calc($border-radius - $border-width);
}
.element {
// Output .25rem
border-radius: subtract($border-radius, $border-width);
}
Sass optiones
Mos Bootstrap 4 cum lima variabilium consuetudine nostra constructa et optiones global CSS facile toggle cum novis $enable-*
variabilibus Sass. Vincat valorem variabilis et recompile npm run test
sicut opus est.
Potes invenire et domitare has variabiles pro clavis global optiones in tabella Bootstrap scss/_variables.scss
.
Variabilis | Values | Descriptio |
---|---|---|
$spacer |
1rem (Annum) aut aliquo valore> 0 |
Defectum designat valorem Ad programmatice generandum spacer Utilitas nostra . |
$enable-rounded |
true (Annum) or *false |
Dat praedefinitos border-radius stylos in variis componentibus. |
$enable-shadows |
true seu false (default) |
Dat praedefinitos stylos decorativos box-shadow in variis componentibus. Non afficit box-shadow s ad umbilicum civitatibus. |
$enable-gradients |
true seu false (default) |
Gradientes praedefinitos dat per background-image genera in variis componentibus. |
$enable-transitions |
true (Annum) or *false |
Dat praedefinitum transition in variis componentibus. |
$enable-prefers-reduced-motion-media-query |
true (Annum) or *false |
Interventus interrogationem prefers-reduced-motion efficit , quae certas animationes/transitiones supprimit in navigatro usorum/ratio optionum operandi. |
$enable-hover-media-query |
true seu false (default) |
Deprecatus |
$enable-grid-classes |
true (Annum) or *false |
Generationem CSS genera dat pro ratiocinatione eget (exempli, .container , .row , .col-md-1 etc.). |
$enable-caret |
true (Annum) or *false |
Pseudo elementum caret .dropdown-toggle . |
$enable-pointer-cursor-for-buttons |
true (Annum) or *false |
Adde "manum" cursorem ad elementa bullam non debiles. |
$enable-print-styles |
true (Annum) or *false |
Dat styles ad optimizing printing. |
$enable-responsive-font-sizes |
true seu false (default) |
Dat magnitudinum responsiva fontium . |
$enable-validation-icons |
true (Annum) or *false |
Icones background-image efficit in inputationibus textualibus et quasdam consuetudines formas ad sanationem civitatum. |
$enable-deprecation-messages |
true (Annum) or *false |
Pone false monita celare cum adhibitis mixinis et functionibus quae deprecatae sunt removendae v5 . |
Color
Multae variae compositiones et utilitates ex Bootstrap aedificatae sunt per seriem colorum in tabula Sass definitorum. Haec tabula in Sass constringi potest ad seriem regularum celeriter generandam.
Omnes colores
Omnes colores praesto sunt in Bootstrap 4, praesto sunt ut variabiles Sass et tabula in scss/_variables.scss
lima Sass. Hoc dilatabitur in subsequentibus emissiones minores ad umbras additas addendi, multum sicut palette cineraceorum iam includimus.
Ecce quomodo his uti potes in Sassa tua:
// With variable
.alpha { color: $purple; }
// From the Sass map with our `color()` function
.beta { color: color("purple"); }
Classes color utilitatis sunt etiam available pro occasu color
et background-color
.
Theme colorum
Tabulae omnium colorum utimur ad coloratum minorem palette ad generandum machinas, etiam in promptu sunt sicut variabiles Sass et tabula Sass in tabella Bootstrap scss/_variables.scss
.
Grays
Copula expansiva variabilium griseorum et mappam Sass in scss/_variables.scss
umbras canosae per proiectum tuum constantes. Nota quod haec sunt "grisei frigidi", quae ad sonum subtilem caeruleum tendunt, quam grisei neutri.
Intus scss/_variables.scss
, invenies variabiles colorum Bootstrap et mappam Sass. Exemplum $colors
tabulae Sass.
$colors: (
"blue": $blue,
"indigo": $indigo,
"purple": $purple,
"pink": $pink,
"red": $red,
"orange": $orange,
"yellow": $yellow,
"green": $green,
"teal": $teal,
"cyan": $cyan,
"white": $white,
"gray": $gray-600,
"gray-dark": $gray-800
) !default;
Adde, remove, vel mitigare valores in tabula geographica ad renovandum quomodo in multis aliis componentibus adhibentur. Infeliciter hoc tempore, non omnibus componentibus hac Sass map utetur. Futuras renovationes super hoc emendare studebunt. Donec ${color}
efficitur varius quam ac hac Sass map.
Components
Multae compositiones et utilitates ex Bootstrap aedificatae sunt @each
loramenta quae iterantur in tabula Sass. Hoc maxime utile est ad variantes compositionis generandas a nostris $theme-colors
et variantibus responsivas pro unoquoque frangendo creando. Cum has mappas Sass domiciliis et componas, statim videbis tuas mutationes in his ansulis reflexas.
Modifiers
Multae compositiones Bootstrap constructae sunt cum accessu classium basi determinatio. Hoc significat molem styli turpi classi (exempli gratia .btn
) contineri, dum variationes stili ad modificationes classes concluduntur (exempli gratia .btn-danger
). Hae classes determinativae e $theme-colors
tabula aedificatae sunt ut numerus et nomen consuetudinum nostrarum determinativarum faceret.
Hic duo exempla sunt quomodo tabulam $theme-colors
perstringimus ad adiectiua generandi .alert
componentium et omnes .bg-*
utilitates nostrae curriculi.
// Generate alert modifier classes
@each $color, $value in $theme-colors {
.alert-#{$color} {
@include alert-variant(theme-color-level($color, -10), theme-color-level($color, -9), theme-color-level($color, 6));
}
}
// Generate `.bg-*` color utilities
@each $color, $value in $theme-colors {
@include bg-variant('.bg-#{$color}', $value);
}
Responsivum
Hae loramenta Sass non limitantur ad mappam colorandam. Generare etiam potes variationes responsivas partium vel utilitatum tuarum. Sume pro exemplo nostro responsivo texti alignment utilitas ubi permisceamus @each
ansam pro $grid-breakpoints
tabula Sass cum interrogatione media includunt.
@each $breakpoint in map-keys($grid-breakpoints) {
@include media-breakpoint-up($breakpoint) {
$infix: breakpoint-infix($breakpoint, $grid-breakpoints);
.text#{$infix}-left { text-align: left !important; }
.text#{$infix}-right { text-align: right !important; }
.text#{$infix}-center { text-align: center !important; }
}
}
Si debes mutare tuas $grid-breakpoints
, mutationes tuae ad omnes ansas iterando in tabula illa applicabuntur.
CSS variables
Bootstrap 4 comprehendit circa duas duodenas CSS possessiones consuetudinum (variabilium) in suis compilatis CSS. Hae accessum facilem praebent ad valores communiter usus sicut thema colorum, fracturae, et primariae fontis acervos cum operantur in inspectoris tui navigatoris, codicem sandbox, seu prototypum generale.
Available variables
Hic sunt variabiles includuntur (nota quod :root
requiri). In pagina nostra sita sunt _root.scss
.
:root {
--blue: #007bff;
--indigo: #6610f2;
--purple: #6f42c1;
--pink: #e83e8c;
--red: #dc3545;
--orange: #fd7e14;
--yellow: #ffc107;
--green: #28a745;
--teal: #20c997;
--cyan: #17a2b8;
--white: #fff;
--gray: #6c757d;
--gray-dark: #343a40;
--primary: #007bff;
--secondary: #6c757d;
--success: #28a745;
--info: #17a2b8;
--warning: #ffc107;
--danger: #dc3545;
--light: #f8f9fa;
--dark: #343a40;
--breakpoint-xs: 0;
--breakpoint-sm: 576px;
--breakpoint-md: 768px;
--breakpoint-lg: 992px;
--breakpoint-xl: 1200px;
--font-family-sans-serif: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", "Liberation Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
--font-family-monospace: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
}
Exempla
Variabiles CSS similem flexibilitatem praebent variabilibus Sass, sed sine necessitate compilationem antequam navigatro ministratur. Exempli gratia, hic fontam paginae nostrae et stylos nexus cum CSS variabilibus collocamus.
body {
font: 1rem/1.5 var(--font-family-sans-serif);
}
a {
color: var(--blue);
}
Breakpoint variables
Dum primum puncta in variabilibus CSS includimus (exempli gratia --breakpoint-md
), hae in quaestionibus instrumentis non praebentur , sed adhuc intra regulas in quaestionibus instrumentis adhiberi possunt. Hae variabiles praevaricationis punctum in CSS exarato manent ad convenientiam retrorsum datam, ab JavaScript adhiberi possunt. Plura discere in spec .
Hic est exemplum quod suus non praebetur:
@media (min-width: var(--breakpoint-sm)) {
...
}
Et hic est exemplum rei .
@media (min-width: 768px) {
.custom-element {
color: var(--primary);
}
}