Sass jedhama
Jijjiiramoota, kaartaa, mixins, fi faankishiniiwwan saffisaan ijaaruu fi pirojektii kee dhuunfachiisuuf si gargaaran fayyadamuuf faayiloota Sass madda keenya fayyadami.
Jijjiiramoota, kaartaa, mixins, fi kkf fayyadamuuf faayiloota Sass madda keenya fayyadami.
Caasaa faayilii
Yeroo danda'ametti, faayiloota ijoo Bootstrap fooyyessuu irraa fagaadhu. Sass'f, sun jechuun akkaataa mataa keetii kan Bootstrap galchu uumuu jechuudha akka ati fooyyessuu fi dheeressuu dandeessuuf. Geggeessaa paakeejii akka npm fayyadamaa jirta jennee yoo fudhanne, caasaa faayilii akkas fakkaatu ni qabaatta:
your-project/
├── scss
│ └── custom.scss
└── node_modules/
└── bootstrap
├── js
└── scss
Yoo faayiloota madda keenya buufattee fi geggeessaa paakeejii hin fayyadamne ta'e, faayiloota madda Bootstrap kan kee irraa adda ta'ee, harkaan waan caasaa sanaa wajjin wal fakkaatu uumuu barbaadda.
your-project/
├── scss
│ └── custom.scss
└── bootstrap/
├── js
└── scss
Galchuu
Keessan keessatti custom.scss
, faayiloota Sass madda Bootstrap galchita. Filannoo lama qabda: Bootstrap hunda hammachiisi, ykn kutaalee si barbaachisan filadhu. Kanneen lammaffaa ni jajjabeessina, qaamolee keenya hunda keessatti ulaagaalee fi hirkattummaa tokko tokko akka jiran beekaa ta'us. Akkasumas JavaScript tokko tokko plugins keenyaaf dabaluu si barbaachisa.
// 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
Qindaa'inni sun bakka jirutti, jijjiiramoota Sass fi kaartaa kamiyyuu fooyyessuu jalqabuu dandeessa custom.scss
. // Optional
Akkasumas kutaalee Bootstrap kutaa jalatti akka barbaachisummaa isaatti dabaluu jalqabuu dandeessa . Tuuta galchuu guutuu bootstrap.scss
faayilii keenya irraa akka ka'umsa keetti fayyadamuu yaada kennina.
Durtii jijjiiramaa
Jijjiiramaan Sass hundi Bootstrap keessatti !default
alaabaa gatii durtii jijjiiramaa Sass mataa kee keessatti osoo koodii madda Bootstrap hin fooyyessin akka irra darbitu si dandeessisu of keessatti qabata. Jijjiiramoota akka barbaachisummaa isaatti waraabii fi maxxansi, gatiiwwan isaanii fooyyessi, fi !default
alaabaa haqi. Yoo jijjiiramaan duraan ramadame, kana booda gatiiwwan durtii Bootstrap keessatti argamaniin irra deebi'amee hin ramadamu.
Tarree guutuu jijjiiramoota Bootstrap keessatti ni argattu scss/_variables.scss
. Jijjiiramoonni tokko tokko gara tti qindaa'u null
, jijjiiramoonni kun qindeessaa kee keessatti yoo irra darbaman malee qabeentaa hin baasan.
Jijjiiramaan irra darbuun erga faankishiniiwwan keenya galfamaniin booda dhufuu qaba, garuu galteewwan hafan dura.
Fakkeenyi yeroo Bootstrap karaa npm galchuu fi qindeessuu fi background-color
kan color
jijjiiru kunooti:<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
Jijjiiramaa kamiyyuu Bootstrap keessatti akka barbaachisummaa isaatti irra deebi'i, filannoowwan waliigalaa armaan gadii dabalatee.
Kaartaa fi loopoota
Bootstrap kaartaa Sass muraasa, lamaan gatii furtuu maatii CSS walqabatan uumuuf salphaa taasisan of keessatti qabata. Halluuwwan keenyaaf, qabxiiwwan ciccitaa giiridii fi kkf kaartaa Sass fayyadamna. Akkuma jijjiiramoota Sass, kaartoonni Sass hundi !default
alaabaa of keessatti qabatanii irra darbuu fi dheerachuu danda'u.
Kaartoonni Sass keenya tokko tokko durtiidhaan gara duwwaatti walitti makamu. Kunis kaartaa Sass kenname salphaatti babal'isuuf kan raawwatamu yoo ta'u, garuu baasii wantoota kaartaa irraa buqqisuun xiqqoo rakkisaa taasisuun dhufa.
Kaartaa fooyyessuu
Jijjiiramoonni $theme-colors
kaartaa keessa jiran hundi akka jijjiiramoota of danda'anitti ibsamu. Halluu kaartaa keenya keessatti jiru fooyyessuuf $theme-colors
, faayilii Sass amala kee irratti kanneen armaan gadii dabali:
$primary: #0074d9;
$danger: #ff4136;
Boodarra, jijjiiramoonni kun $theme-colors
kaartaa Bootstrap keessatti saagamu:
$theme-colors: (
"primary": $primary,
"danger": $danger
);
Kaartaa irratti dabali
Halluuwwan haaraa gara $theme-colors
, ykn kaartaa biroo kamiyyuutti dabali, kaartaa Sass haaraa gatiiwwan amala keetiin uumuu fi kaartaa jalqabaa wajjin walitti makuudhaan. Haala kana keessatti, $custom-colors
kaartaa haaraa uumnee $theme-colors
.
// Create your own map
$custom-colors: (
"custom-color": #900
);
// Merge the maps
$theme-colors: map-merge($theme-colors, $custom-colors);
Kaartaa irraa kaasi
$theme-colors
Halluuwwan , ykn kaartaa biroo kamiyyuu irraa haquuf , fayyadami map-remove
. Hubadhaa $theme-colors
ulaagaalee keenya gidduutti erga hiika isaa booda qofa keessatti variables
fi itti fayyadama isaa dura in 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
Furtuuwwan barbaachisan
Bootstrap akka nuti fayyadamnetti furtuuwwan murtaa'an tokko tokko kaartaa Sass keessa jiraachuu isaanii fudhatee ofuma keenyaan kanneen dheeressina. Yeroo kaartaa hammataman dhuunfattu, bakka furtuun kaartaa Sass murtaa'e fayyadamaa jirutti dogongorri si mudachuu danda'a.
Fakkeenyaaf, primary
, success
, fi danger
furtuuwwan irraa $theme-colors
hidhannoowwan, qareewwanii fi haalata unkaaf fayyadamna. Gatii furtuuwwan kanaa bakka buusuun dhimma tokkollee dhiyeessu hin qabu, garuu isaan haquun dhimmoota qindeessaa Sass fiduu danda'a. Fakkeenyota kana keessatti, koodii Sass kan gatiiwwan sana fayyadamu fooyyessuu si barbaachisa.
Faankishiniiwwan
Halluuwwan
Kaartaa Sass qabnu cinatti , halluuwwan mata duree akka jijjiiramoota of danda'aniis fayyadamuun ni danda'ama, akka $primary
.
.custom-element {
color: $gray-100;
background-color: $dark;
}
tint-color()
Bootstrap's fi shade-color()
faankishiniiwwaniin halluuwwan ibsuu ykn dukkaneessuu dandeessa . Faankishiniiwwan kun halluuwwan gurraacha ykn adii waliin ni makamu, dhaloota Sass lighten()
fi darken()
faankishiniiwwan salphaa hamma murtaa'een jijjiiran irraa adda, kunis yeroo baay'ee bu'aa barbaadamutti hin geessu.
// 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));
}
Qabatamaan, faankishinii waamtee qajoojiiwwan halluu fi ulfaatinaa keessa darbita.
.custom-element {
color: tint-color($primary, 10%);
}
.custom-element-2 {
color: shade-color($danger, 30%);
}
Faallaa halluu
Ulaagaalee walfaallaa Qajeelfama Dhaqqabummaa Qabiyyee Weebii (WCAG) guutuuf , barreessitoonni walfaallaa halluu barruu xiqqaa 4.5:1 fi walfaallaa halluu barruu hin taane xiqqaa 3:1 kennuu qabu , baay'ee muraasa irraa kan hafe.
Kana gargaaruuf, color-contrast
faankishinii Bootstrap keessatti hammanneerra. Innis halluu bu'uuraa ifteessame irratti hundaa'uun halluu walfaallaa ifaa ( ), dukkanaa'aa ( ) ykn gurraacha ( ) ofumaan deebisuuf iddoo halluu keessatti ifaa firaakshinii irratti hundaa'uun ulaagaalee walfaallaa shallaguuf algoritmiin reeshiyoo walfaallaa WCAG fayyadama. Faankishiniin kun keessumaa mixins ykn loops bakka ati gita hedduu uumuuf faayidaa qaba.sRGB
#fff
#212529
#000
Fakkeenyaaf, $theme-colors
kaartaa keenya irraa sajoo halluu uumuuf:
@each $color, $value in $theme-colors {
.swatch-#{$color} {
color: color-contrast($value);
}
}
Akkasumas fedhii walfaallaa yeroo tokkootiif fayyadamuu ni danda'a:
.custom-element {
color: color-contrast(#000); // returns `color: #fff`
}
Akkasumas faankishiniiwwan kaartaa halluu keenyaatiin halluu bu'uuraa ifteessuu dandeessa:
.custom-element {
color: color-contrast($dark); // returns `color: #fff`
}
SVG irraa miliquu
escape-svg
Faankishinii <
, >
fi #
arfiilee fakkiiwwan duubbee SVG miliquuf fayyadamna . Yeroo escape-svg
faankishinii fayyadamtu, URIwwan deetaa caqafamuu qabu.
Faankishiniiwwan Dabaluu fi Hir'isuu
Faankishinii CSS marsuuf faankishinii add
fi fayyadamna . Kaayyoon jalqabaa faankishiniiwwan kanaa yeroo gatii “yunitii hin qabne” gara ibsaatti darbu dogongora akka hin uumamneefidha. Ibsitoonni akka dogongora biraawzaroota hunda keessatti deebisa, herregaan sirrii ta'us.subtract
calc
0
calc
calc(10px - 0)
Fakkeenya bakka calc sirrii ta'etti:
$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);
}
Fakkeenya bakka calc sirrii hin taane:
$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 jedhaman
Daayirektariin keenya scss/mixins/
mixins toonii tokko kan kutaalee Bootstrap humna kennan kan qabuu fi akkasumas pirojektii mataa keessanii hunda keessatti fayyadamuu dandeessu.
Iskimoota halluu
Gaaffii miidiyaaf mixin gabaabduu deeggarsa , , fi iskiimota halluu amala prefers-color-scheme
waliin argama .light
dark
@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
}
}