in English

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 distscriniis 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 // Optionalsectione addere prout opus est. Monemus utendo plenam importare acervum ex tabella nostra bootstrap.scssut tuum principium.

Defaltis variabilis

Omnis Sass variabilis in Bootstrap !defaultvexillum permittens ut vincat valorem default variabilis in proprio Sass sine modificato codice fonte Bootstrap. Effingo et variabilium crustulum ut opus est, bona sua mutare, !defaultvexillum 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-coloret colorpro <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.

Incipias cum Bootstrap via npm cum project nostro starter! Caput ad twbs/bootstrap-npm-starter template repositorium vide quomodo aedificare ac domitare Bootstrap in tuo proprio npm project. Includes Compilator Sass, Autoprefixer, Stylelint, PurgeCSS, et Icones Bootstrap.

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 !defaultvexillum 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-colorsmapa mutandum, sequentia consuetudini tuae fasciculi Sass adde:

$theme-colors: (
  "primary": #0074d9,
  "danger": #ff4136
);

Add to map

Ad novum colorem $theme-colorsaddere, novam clavem et valorem addere;

$theme-colors: (
  "custom-color": #900
);

Aufer a tabula

Colores ab $theme-colorsaliave 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-colorstabula 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-colorstabula 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-svgad 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 addac 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.subtractcalc0calccalc(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 testsicut 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-radiusstylos in variis componentibus.
$enable-shadows trueseu false(default) Dat praedefinitos stylos decorativos box-shadowin variis componentibus. Non afficit box-shadows ad umbilicum civitatibus.
$enable-gradients trueseu false(default) Gradientes praedefinitos dat per background-imagegenera in variis componentibus.
$enable-transitions true(Annum) or *false Dat praedefinitum transitionin variis componentibus.
$enable-prefers-reduced-motion-media-query true(Annum) or *false Interventus interrogationem prefers-reduced-motionefficit , quae certas animationes/transitiones supprimit in navigatro usorum/ratio optionum operandi.
$enable-hover-media-query trueseu false(default) Deprecatus
$enable-grid-classes true(Annum) or *false Generationem CSS genera dat pro ratiocinatione eget (exempli, .container, .row, .col-md-1etc.).
$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 trueseu false(default) Dat magnitudinum responsiva fontium .
$enable-validation-icons true(Annum) or *false Icones background-imageefficit in inputationibus textualibus et quasdam consuetudines formas ad sanationem civitatum.
$enable-deprecation-messages true(Annum) or *false Pone falsemonita 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.scsslima Sass. Hoc dilatabitur in subsequentibus emissiones minores ad umbras additas addendi, multum sicut palette cineraceorum iam includimus.

$ blue #007bff
$indico #6610f2
$ purpura #6f42c1
$pink #e83e8c
$ red #dc3545
$ orange #fd7e14
$ yellow #ffc107
$ viride #28a745
$ teal #20c997
$ cyan #17a2b8

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 coloret background-color.

In posterum studebimus tabulas Sass et variabiles umbras cuiusque coloris praebere, sicut cum coloribus cineraceis infra fecimus.

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.

$ primaria #007bff
$ secundarium #6c757d
$ Success #28a745
$ periculo #dc3545
$ Admonitio #ffc107
$info #17a2b8
$ lucem #f8f9fa
$dark #343a40

Grays

Copula expansiva variabilium griseorum et mappam Sass in scss/_variables.scssumbras canosae per proiectum tuum constantes. Nota quod haec sunt "grisei frigidi", quae ad sonum subtilem caeruleum tendunt, quam grisei neutri.

$ griseo-100 #f8f9fa
$griseo-200 #e9ecef
$ griseo-300 #dee2e6
$ griseo-CD #ced4da
$ griseo-500 #adb5bd
$ griseo-600 #6c757d
$ griseo-700 #495057
$griseo-800 #343a40
$ griseo-CM #212529

Intus scss/_variables.scss, invenies variabiles colorum Bootstrap et mappam Sass. Exemplum $colorstabulae 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 @eachloramenta quae iterantur in tabula Sass. Hoc maxime utile est ad variantes compositionis generandas a nostris $theme-colorset 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-colorstabula aedificatae sunt ut numerus et nomen consuetudinum nostrarum determinativarum faceret.

Hic duo exempla sunt quomodo tabulam $theme-colorsperstringimus ad adiectiua generandi .alertcomponentium 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 @eachansam pro $grid-breakpointstabula 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 :rootrequiri). 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);
  }
}