Esasy mazmuna geçiň Docs nawigasiýasyna geçiň
Check

Taslamany has çalt gurmaga we özleşdirmäge kömek etmek üçin üýtgeýänlerden, kartalardan, garyndylardan we funksiýalardan peýdalanmak üçin Sass faýllarymyzy ulanyň.

Üýtgeýjilerden, kartalardan, garyndylardan we başga zatlardan peýdalanmak üçin çeşmämiz Sass faýllaryny ulanyň.

Faýl gurluşy

Mümkin boldugyça Bootstrap-yň esasy faýllaryny üýtgetmekden gaça duruň. Sass üçin, “Bootstrap” -y import edip, üýtgedip we giňeldip boljak öz stil tablisasyny döretmegi aňladýar. Npm ýaly paket dolandyryjysyny ulanýarsyňyz öýdýän, size meňzeş faýl gurluşy bolar:

your-project/
├── scss
│   └── custom.scss
└── node_modules/
    └── bootstrap
        ├── js
        └── scss

Çeşme faýllarymyzy göçürip alan bolsaňyz we paket dolandyryjysyny ulanmaýan bolsaňyz, “Bootstrap” -yň deslapky faýllaryny özüňizden aýry saklap, şol gurluşa meňzeş bir zat döretmek islärsiňiz.

your-project/
├── scss
│   └── custom.scss
└── bootstrap/
    ├── js
    └── scss

Import

Özüňizde custom.scss, Bootstrap-yň çeşmesi Sass faýllaryny import edersiňiz. Sizde iki wariant bar: “Bootstrap” -yň hemmesini goşuň ýa-da zerur bölekleri saýlaň. Komponentlerimizde käbir talaplaryň we garaşlylygyň bardygyny bilseňizem, ikinjisini höweslendirýäris. Şeýle hem, pluginlerimiz üçin käbir JavaScript-i goşmaly bolarsyňyz.

// 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";

// 4. Include any default map overrides here

// 5. Include remainder of required parts
@import "../node_modules/bootstrap/scss/maps";
@import "../node_modules/bootstrap/scss/mixins";
@import "../node_modules/bootstrap/scss/root";

// 6. Optionally include any other parts as needed
@import "../node_modules/bootstrap/scss/utilities";
@import "../node_modules/bootstrap/scss/reboot";
@import "../node_modules/bootstrap/scss/type";
@import "../node_modules/bootstrap/scss/images";
@import "../node_modules/bootstrap/scss/containers";
@import "../node_modules/bootstrap/scss/grid";
@import "../node_modules/bootstrap/scss/helpers";

// 7. Optionally include utilities API last to generate classes based on the Sass map in `_utilities.scss`
@import "../node_modules/bootstrap/scss/utilities/api";

// 8. Add additional custom code here

Şol gurnama ýerinde, Sass üýtgeýjileriniň we kartalaryňyzyň islendik birini üýtgedip bilersiňiz custom.scss. Şeýle hem, “Bootstrap” -yň böleklerini zerur bolanda bölümiň aşagyna goşup bilersiňiz // Optional. Faýlymyzdan doly import bootstrap.scssnokadyny başlangyç nokat hökmünde ulanmagy maslahat berýäris.

Üýtgeýän defoltlar

“Bootstrap” -daky her Sass üýtgeýjisi, “Bootstrap !default” -yň deslapky koduny üýtgetmän üýtgeýjiniň deslapky bahasyny öz Sassyňyzda ýokaşdyrmaga mümkinçilik berýän baýdagy öz içine alýar. Zerur bolanda üýtgeýjileri göçüriň we goýuň, bahalaryny üýtgediň we !defaultbaýdagy aýyryň. Bir üýtgeýji eýýäm bellenen bolsa, Bootstrap-daky deslapky bahalar bilen täzeden bellenmez.

“Bootstrap” üýtgeýjileriniň doly sanawyny tapyp bilersiňiz scss/_variables.scss. Käbir üýtgeýjiler düzüldi null, bu üýtgeýjiler konfigurasiýaňyzda aşa ýazylmasa, emläk çykarmaýar.

Üýtgeýän goşmaçalar funksiýalarymyz import edilenden soň, ýöne galan importdan öň gelmeli.

Ine, “Bootstrap” -y npm arkaly import edende we düzeninde üýtgedýän bir mysal background-color:color<body>

// Required
@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/maps";
@import "../node_modules/bootstrap/scss/mixins";
@import "../node_modules/bootstrap/scss/root";

// Optional Bootstrap components here
@import "../node_modules/bootstrap/scss/reboot";
@import "../node_modules/bootstrap/scss/type";
// etc

Aşakdaky global opsiýalary goşmak bilen Bootstrap-daky islendik üýtgeýji üçin zerur bolanda gaýtalaň.

Başlangyç taslamamyz bilen npm arkaly Bootstrap bilen başlaň! Bootstrap-y öz npm taslamaňyzda nädip gurmalydygyny we sazlamalydygyny görmek üçin twbs / bootstrap-npm-starter şablon ammaryna başlaň. Sass düzüjisi, Autoprefixer, Stylelint, PurgeCSS we Bootstrap nyşanlaryny öz içine alýar.

Kartalar we aýlawlar

“Bootstrap”, degişli CSS maşgalalaryny döretmegi aňsatlaşdyrýan Sass kartalaryny, esasy baha jübütlerini öz içine alýar. Sass kartalaryny reňklerimiz, gözenek nokatlarymyz we başgalar üçin ulanýarys. Sass üýtgeýjileri ýaly, Sass kartalarynyň hemmesinde !defaultbaýdak bar we ýokaşdyrylyp we uzaldylyp bilner.

Sass kartalarymyzyň käbiri adaty ýagdaýda boş kartalara birleşdirilýär. Bu berlen Sass kartasyny aňsat giňeltmek üçin edilýär, ýöne kartadan zatlary aýyrmagy birneme kynlaşdyrýar.

Kartany üýtgediň

Kartadaky ähli üýtgeýjiler $theme-colorsözbaşdak üýtgeýjiler hökmünde kesgitlenilýär. Kartamyzda bar bolan reňki üýtgetmek üçin $theme-colors, Sass faýlyňyza aşakdakylary goşuň:

$primary: #0074d9;
$danger: #ff4136;

Soň bolsa bu üýtgeýjiler Bootstrap $theme-colorskartasynda düzüldi:

$theme-colors: (
  "primary": $primary,
  "danger": $danger
);

Karta goşuň

$theme-colorsCustomörite gymmatlyklaryňyz bilen täze Sass kartasyny döretmek we asyl karta bilen birleşdirmek arkaly täze reňkler ýa-da başga bir karta goşuň . $custom-colorsBu ýagdaýda täze karta dörederis we ony birleşdireris $theme-colors.

// Create your own map
$custom-colors: (
  "custom-color": #900
);

// Merge the maps
$theme-colors: map-merge($theme-colors, $custom-colors);

Kartadan aýyryň

$theme-colorsReňkleri ýa-da başga kartadan aýyrmak üçin ulanyň map-remove. $theme-colorsTalaplarymyzyň arasynda kesgitlemeden soň variableswe ulanylmazdan ozal goýmalydygyňyzy biliň maps:

// Required
@import "../node_modules/bootstrap/scss/functions";
@import "../node_modules/bootstrap/scss/variables";

$theme-colors: map-remove($theme-colors, "info", "light", "dark");

@import "../node_modules/bootstrap/scss/maps";
@import "../node_modules/bootstrap/scss/mixins";
@import "../node_modules/bootstrap/scss/root";

// Optional
@import "../node_modules/bootstrap/scss/reboot";
@import "../node_modules/bootstrap/scss/type";
// etc

Gerekli düwmeler

“Bootstrap”, Sass kartalarynda käbir aýratyn düwmeleriň bardygyny göz öňünde tutýarys we ulanýarys. Goşulan kartalary özleşdireniňizde, Sass kartasynyň belli bir açary ulanylýan ýalňyşlyklara duş gelip bilersiňiz.

Mysal üçin, baglanyşyklardan, düwmelerden we forma ýagdaýlaryndan, primarywe successdüwmelerini dangerulanýarys . $theme-colorsBu düwmeleriň bahalaryny çalyşmak hiç hili mesele döretmeli däldir, ýöne olary aýyrmak Sass düzmek meselesine sebäp bolup biler. Bu ýagdaýlarda, şol bahalardan peýdalanýan Sass koduny üýtgetmeli bolarsyňyz.

Funksiýalar

Reňkler

Bizdäki Sass kartalarynyň gapdalynda mowzuk reňkleri ýaly özbaşdak üýtgeýjiler hökmünde hem ulanylyp bilner $primary.

.custom-element {
  color: $gray-100;
  background-color: $dark;
}

Bootstrap tint-color()we shade-color()funksiýalary bilen reňkleri ýeňilleşdirip ýa-da garalap bilersiňiz. lighten()Bu funksiýalar , Sassyň ýerli görnüşinden tapawutlylykda, reňkleri gara ýa-da ak reňk bilen garyşdyrar we darken()ýeňillikleri belli bir mukdarda üýtgeder, köplenç islenýän effekte getirmez.

// Tint a color: mix a color with white
@function tint-color($color, $weight) {
  @return mix(white, $color, $weight);
}

// Shade a color: mix a color with black
@function shade-color($color, $weight) {
  @return mix(black, $color, $weight);
}

// Shade the color if the weight is positive, else tint it
@function shift-color($color, $weight) {
  @return if($weight > 0, shade-color($color, $weight), tint-color($color, -$weight));
}

Iş ýüzünde, funksiýa jaň edip, reňk we agram parametrlerinden geçersiňiz.

.custom-element {
  color: tint-color($primary, 10%);
}

.custom-element-2 {
  color: shade-color($danger, 30%);
}

Reňk tapawudy

Web Mazmuna Elýeterlilik Gollanmalarynyň (WCAG) kontrast talaplaryny kanagatlandyrmak üçin awtorlar iň az tekst reňkiniň kontrastyny ​​4,5: 1 , tekstiň reňkiniň iň az kontrastyny ​​3: 1 bilen üpjün etmeli, gaty az kadadan çykmalar.

Bu meselede kömek etmek üçin color-contrast“Bootstrap” funksiýasyny goşduk. Görkezilen esasy reňk esasynda açyk ( ), gara ( ) ýa-da gara ( ) kontrast reňkini awtomatiki gaýtarmak üçin reňk giňişliginde otnositel ýagtylyga esaslanýan kontrast çäklerini hasaplamak üçin WCAG kontrast gatnaşygy algoritmini ulanýar . Bu funksiýa, köp synp döredýän ýeriňizde garyndylar ýa-da aýlawlar üçin aýratyn peýdalydyr.sRGB#fff#212529#000

Mysal üçin, $theme-colorskartamyzdan reňk çalyşmalary döretmek üçin:

@each $color, $value in $theme-colors {
  .swatch-#{$color} {
    color: color-contrast($value);
  }
}

Şeýle hem bir gezeklik kontrast zerurlyklary üçin ulanylyp bilner:

.custom-element {
  color: color-contrast(#000); // returns `color: #fff`
}

Şeýle hem, reňk karta funksiýalarymyz bilen esasy reňk kesgitläp bilersiňiz:

.custom-element {
  color: color-contrast($dark); // returns `color: #fff`
}

SVG-den gaçyň

escape-svgSVG fon suratlary üçin nyşanlary <we >nyşanlary ulanýarys . #Funksiýa ulanylanda escape-svgmaglumatlar URI-lerini getirmeli.

Funksiýalary goşuň we aýyryň

CSS funksiýasyny ýapmak üçin addwe funksiýalary ulanýarys . Bu funksiýalaryň esasy maksady, “birliksiz” baha aňlatma geçirilende ýalňyşlyklardan gaça durmakdyr. Şuňa meňzeş aňlatmalar , matematiki taýdan dogrydygyna garamazdan, ähli brauzerlerde ýalňyşlyk getirer.subtractcalc0calccalc(10px - 0)

Hasaplamanyň dogry ýerinde mysal:

$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);
}

Hasaplamanyň nädogrydygyna mysal:

$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);
}

Mixins

Biziň scss/mixins/katalogymyzda “Bootstrap” -yň kuwwatly bölekleri bar we öz taslamaňyzda ulanyp boljak bir tonna garyndy bar.

Reňk shemalary

Mediýa soragy üçin stenografiki garyndy, goldaw prefers-color-schemewe ýörite reňk shemalary bilen elýeterlidir.lightdark

@mixin color-scheme($name) {
  @media (prefers-color-scheme: #{$name}) {
    @content;
  }
}
.custom-element {
  @include color-scheme(dark) {
    // Insert dark mode styles here
  }

  @include color-scheme(custom-named-scheme) {
    // Insert custom color scheme styles here
  }
}