Saltatu eduki nagusira Saltatu dokumentuen nabigaziora
Check
in English

Erabilgarritasun APIa

Utility API Sass-en oinarritutako tresna bat da, erabilgarritasun-klaseak sortzeko.

Bootstrap utilitateak gure erabilgarritasun APIarekin sortzen dira eta Sass-en bidez gure erabilgarritasun-klase multzo lehenetsiak aldatzeko edo zabaltzeko erabil daitezke. Gure erabilgarritasun APIa Sass mapa eta funtzio multzo batean oinarritzen da, hainbat aukera dituzten klase-familiak sortzeko. Sass mapak ezagutzen ez badituzu, irakurri Sass dokumentu ofizialak hasteko.

Mapak $utilitiesgure utilitate guztiak ditu eta gero zure mapa pertsonalizatuarekin bateratzen da $utilities, baldin badago. Erabilgarritasun-mapak aukera hauek onartzen dituzten erabilgarritasun-taldeen zerrenda bat dauka:

Aukera Mota Balio lehenetsia Deskribapena
property Beharrezkoa Propietatearen izena, kate bat edo kate-matrize bat izan daiteke (adibidez, betegarri horizontalak edo marjinak).
values Beharrezkoa Balioen zerrenda edo mapa bat ez baduzu nahi klasearen izena balioaren berdina izatea. nullMaparen gako gisa erabiltzen bada , classez dago klasearen izenaren aurretik.
class Aukerakoa nulua Sortutako klasearen izena. Ematen ez bada eta propertykateen array bat bada, matrizeko classlehen elementua izango da lehenetsia property. Ematen ez bada eta propertykate bat bada, valuesgakoak erabiltzen dira classizenetarako.
css-var Aukerakoa false Boolearra CSS arauen ordez CSS aldagaiak sortzeko.
css-variable-name Aukerakoa nulua Arau multzoko CSS aldagaiaren aurrizkirik gabeko izen pertsonalizatua.
local-vars Aukerakoa nulua Tokiko CSS aldagaien mapa CSS arauez gain sortzeko.
state Aukerakoa nulua Sortu beharreko sasi-klaseen aldaeren zerrenda (adibidez, :hoveredo :focus).
responsive Aukerakoa false Klase sentikorrak sortu behar diren ala ez adierazten duen boolearra.
rfs Aukerakoa false Boolearra RFS-rekin fluidoen berreskalatzea gaitzeko .
print Aukerakoa false Inprimatzeko klaseak sortu behar diren adierazten duen boolearra.
rtl Aukerakoa true Baliagarritasuna RTL-n mantendu behar den adierazten duen boolearra.

API azaldu da

$utilitiesErabilgarritasun-aldagai guztiak gure _utilities.scssestilo -orri barruan aldagaiari gehitzen zaizkio . Utilitate talde bakoitzak honelako itxura du:

$utilities: (
  "opacity": (
    property: opacity,
    values: (
      0: 0,
      25: .25,
      50: .5,
      75: .75,
      100: 1,
    )
  )
);

Honek hurrengoa ateratzen du:

.opacity-0 { opacity: 0; }
.opacity-25 { opacity: .25; }
.opacity-50 { opacity: .5; }
.opacity-75 { opacity: .75; }
.opacity-100 { opacity: 1; }

Jabetza

Beharrezko propertygakoa edozein utilitatetarako ezarri behar da, eta baliozko CSS propietate bat izan behar du. Propietate hau sortutako utilitatearen arau multzoan erabiltzen da. Gakoa baztertzen denean class, klase-izen lehenetsi gisa ere balio du. Kontuan izan text-decorationerabilgarritasuna:

$utilities: (
  "text-decoration": (
    property: text-decoration,
    values: none underline line-through
  )
);

Irteera:

.text-decoration-none { text-decoration: none !important; }
.text-decoration-underline { text-decoration: underline !important; }
.text-decoration-line-through { text-decoration: line-through !important; }

Balioak

Erabili gakoa sortutako klaseen izenetan eta arauetan valueszehaztutako zein balio erabili behar diren zehazteko. propertyZerrenda edo mapa izan daiteke (utilitateetan edo Sass aldagai batean ezarrita).

Zerrenda gisa, text-decorationutilitateekin bezala :

values: none underline line-through

Mapa gisa, opacityutilitateekin bezala :

values: (
  0: 0,
  25: .25,
  50: .5,
  75: .75,
  100: 1,
)

Zerrenda edo mapa ezartzen duen Sass aldagai gisa, gure positionutilitateetan bezala :

values: $position-values

Klasea

Erabili classaukera konpilatutako CSS-an erabiltzen den klase-aurrizkia aldatzeko. Adibidez, hona .opacity-*aldatzeko .o-*:

$utilities: (
  "opacity": (
    property: opacity,
    class: o,
    values: (
      0: 0,
      25: .25,
      50: .5,
      75: .75,
      100: 1,
    )
  )
);

Irteera:

.o-0 { opacity: 0 !important; }
.o-25 { opacity: .25 !important; }
.o-50 { opacity: .5 !important; }
.o-75 { opacity: .75 !important; }
.o-100 { opacity: 1 !important; }

Bada class: null, klaseak sortzen ditu valuesgako bakoitzarentzat:

$utilities: (
  "visibility": (
    property: visibility,
    class: null,
    values: (
      visible: visible,
      invisible: hidden,
    )
  )
);

Irteera:

.visible { visibility: visible !important; }
.invisible { visibility: hidden !important; }

CSS aldagaien utilitateak

Ezarri css-varaukera boolearra trueeta APIak tokiko CSS aldagaiak sortuko ditu emandako hautatzailerako, ohiko property: valuearauen ordez. Gehitu aukerako css-variable-namebat klasearen izena baino CSS aldagai-izen ezberdin bat ezartzeko.

Kontuan hartu gure .text-opacity-*utilitateak. Aukera gehitzen css-variable-namebadugu, irteera pertsonalizatua lortuko dugu.

$utilities: (
  "text-opacity": (
    css-var: true,
    css-variable-name: text-alpha,
    class: text-opacity,
    values: (
      25: .25,
      50: .5,
      75: .75,
      100: 1
    )
  ),
);

Irteera:

.text-opacity-25 { --bs-text-alpha: .25; }
.text-opacity-50 { --bs-text-alpha: .5; }
.text-opacity-75 { --bs-text-alpha: .75; }
.text-opacity-100 { --bs-text-alpha: 1; }

CSS tokiko aldagaiak

Erabili local-varsaukera erabilgarritasun klasearen arau-multzoan CSS tokiko aldagaiak sortuko dituen Sass mapa bat zehazteko. Kontuan izan litekeela lan gehiago behar dela CSS aldagai lokal horiek sortutako CSS arauetan kontsumitzeko. Adibidez, kontuan hartu gure .bg-*utilitateak:

$utilities: (
  "background-color": (
    property: background-color,
    class: bg,
    local-vars: (
      "bg-opacity": 1
    ),
    values: map-merge(
      $utilities-bg-colors,
      (
        "transparent": transparent
      )
    )
  )
);

Irteera:

.bg-primary {
  --bs-bg-opacity: 1;
  background-color: rgba(var(--bs-primary-rgb), var(--bs-bg-opacity)) !important;
}

Estatuak

Erabili stateaukera sasi-klaseen aldakuntzak sortzeko. Sasi-klase adibideak :hovereta dira :focus. Egoera zerrenda bat ematen denean, sasi-klase horretarako klase-izenak sortzen dira. Adibidez, pasatzean opakutasuna aldatzeko, gehitu state: hovereta .opacity-hover:hoverkonpilatutako CSS-an sartuko zara.

Sasi-klase anitz behar dituzu? Erabili zuriunez bereizitako egoera zerrenda bat: state: hover focus.

$utilities: (
  "opacity": (
    property: opacity,
    class: opacity,
    state: hover,
    values: (
      0: 0,
      25: .25,
      50: .5,
      75: .75,
      100: 1,
    )
  )
);

Irteera:

.opacity-0-hover:hover { opacity: 0 !important; }
.opacity-25-hover:hover { opacity: .25 !important; }
.opacity-50-hover:hover { opacity: .5 !important; }
.opacity-75-hover:hover { opacity: .75 !important; }
.opacity-100-hover:hover { opacity: 1 !important; }

Erantzunkorra

Gehitu boolearra eten puntu guztietanresponsive erantzuteko utilitateak sortzeko (adibidez, .opacity-md-25) .

$utilities: (
  "opacity": (
    property: opacity,
    responsive: true,
    values: (
      0: 0,
      25: .25,
      50: .5,
      75: .75,
      100: 1,
    )
  )
);

Irteera:

.opacity-0 { opacity: 0 !important; }
.opacity-25 { opacity: .25 !important; }
.opacity-50 { opacity: .5 !important; }
.opacity-75 { opacity: .75 !important; }
.opacity-100 { opacity: 1 !important; }

@media (min-width: 576px) {
  .opacity-sm-0 { opacity: 0 !important; }
  .opacity-sm-25 { opacity: .25 !important; }
  .opacity-sm-50 { opacity: .5 !important; }
  .opacity-sm-75 { opacity: .75 !important; }
  .opacity-sm-100 { opacity: 1 !important; }
}

@media (min-width: 768px) {
  .opacity-md-0 { opacity: 0 !important; }
  .opacity-md-25 { opacity: .25 !important; }
  .opacity-md-50 { opacity: .5 !important; }
  .opacity-md-75 { opacity: .75 !important; }
  .opacity-md-100 { opacity: 1 !important; }
}

@media (min-width: 992px) {
  .opacity-lg-0 { opacity: 0 !important; }
  .opacity-lg-25 { opacity: .25 !important; }
  .opacity-lg-50 { opacity: .5 !important; }
  .opacity-lg-75 { opacity: .75 !important; }
  .opacity-lg-100 { opacity: 1 !important; }
}

@media (min-width: 1200px) {
  .opacity-xl-0 { opacity: 0 !important; }
  .opacity-xl-25 { opacity: .25 !important; }
  .opacity-xl-50 { opacity: .5 !important; }
  .opacity-xl-75 { opacity: .75 !important; }
  .opacity-xl-100 { opacity: 1 !important; }
}

@media (min-width: 1400px) {
  .opacity-xxl-0 { opacity: 0 !important; }
  .opacity-xxl-25 { opacity: .25 !important; }
  .opacity-xxl-50 { opacity: .5 !important; }
  .opacity-xxl-75 { opacity: .75 !important; }
  .opacity-xxl-100 { opacity: 1 !important; }
}

Inprimatu

printAukera gaituz gero , inprimatzeko erabilgarritasun-klaseak ere sortuko dira, @media print { ... }multimedia-kontsultaren barruan soilik aplikatzen direnak.

$utilities: (
  "opacity": (
    property: opacity,
    print: true,
    values: (
      0: 0,
      25: .25,
      50: .5,
      75: .75,
      100: 1,
    )
  )
);

Irteera:

.opacity-0 { opacity: 0 !important; }
.opacity-25 { opacity: .25 !important; }
.opacity-50 { opacity: .5 !important; }
.opacity-75 { opacity: .75 !important; }
.opacity-100 { opacity: 1 !important; }

@media print {
  .opacity-print-0 { opacity: 0 !important; }
  .opacity-print-25 { opacity: .25 !important; }
  .opacity-print-50 { opacity: .5 !important; }
  .opacity-print-75 { opacity: .75 !important; }
  .opacity-print-100 { opacity: 1 !important; }
}

Garrantzia

APIak sortutako utilitate guztiek !importantosagaiak eta modifikatzaile klaseak nahi bezala gainidazten dituztela ziurtatzeko barne hartzen dute. Ezarpen hau orokorrean alda dezakezu $enable-important-utilitiesaldagaiarekin (lehenetsia true).

APIa erabiliz

Utilitateen APIak nola funtzionatzen duen ezagutzen duzunez, ikasi zure klase pertsonalizatuak gehitzen eta gure utilitate lehenetsiak aldatzen.

Gainidatzi utilitateak

Gainidatzi lehendik dauden utilitateak gako bera erabiliz. Esate baterako, gainezka-erabilgarritasun klase gehigarriak nahi badituzu, hau egin dezakezu:

$utilities: (
  "overflow": (
    responsive: true,
    property: overflow,
    values: visible hidden scroll auto,
  ),
);

Gehitu utilitateak

Utilitate berriak gehi daitezke $utilitiesmapa lehenetsian map-merge. Ziurtatu gure beharrezko Sass fitxategiak eta _utilities.scssinportatzen direla lehenik, eta gero erabili map-mergezure utilitate gehigarriak gehitzeko. cursorEsate baterako, hona hemen hiru balio dituen erabilgarritasun sentikorra nola gehitu .

@import "bootstrap/scss/functions";
@import "bootstrap/scss/variables";
@import "bootstrap/scss/maps";
@import "bootstrap/scss/mixins";
@import "bootstrap/scss/utilities";

$utilities: map-merge(
  $utilities,
  (
    "cursor": (
      property: cursor,
      class: cursor,
      responsive: true,
      values: auto pointer grab,
    )
  )
);

@import "bootstrap/scss/utilities/api";

Aldatu utilitateak

$utilitiesAldatu lehendik dauden utilitateak mapa lehenetsian map-geteta map-mergefuntzioekin. Beheko adibidean, balio gehigarri bat gehitzen ari gara widthutilitateei. Hasi hasierako batekin map-mergeeta, ondoren, zehaztu zein utilitate aldatu nahi duzun. Hortik aurrera, eskuratu habiaraturiko "width"mapa map-geterabilgarritasunaren aukerak eta balioak atzitzeko eta aldatzeko.

@import "bootstrap/scss/functions";
@import "bootstrap/scss/variables";
@import "bootstrap/scss/maps";
@import "bootstrap/scss/mixins";
@import "bootstrap/scss/utilities";

$utilities: map-merge(
  $utilities,
  (
    "width": map-merge(
      map-get($utilities, "width"),
      (
        values: map-merge(
          map-get(map-get($utilities, "width"), "values"),
          (10: 10%),
        ),
      ),
    ),
  )
);

@import "bootstrap/scss/utilities/api";

Gaitu erantzuleak

Modu lehenetsian erantzuten ez diren utilitate multzo baterako klase sentikorrak gaitu ditzakezu. Adibidez, borderklaseak erantzuteko:

@import "bootstrap/scss/functions";
@import "bootstrap/scss/variables";
@import "bootstrap/scss/maps";
@import "bootstrap/scss/mixins";
@import "bootstrap/scss/utilities";

$utilities: map-merge(
  $utilities, (
    "border": map-merge(
      map-get($utilities, "border"),
      ( responsive: true ),
    ),
  )
);

@import "bootstrap/scss/utilities/api";

Honek eten-puntu bakoitzaren .bordereta aldaera sentikorrak sortuko ditu orain . .border-0Sortutako CSS itxura hau izango du:

.border { ... }
.border-0 { ... }

@media (min-width: 576px) {
  .border-sm { ... }
  .border-sm-0 { ... }
}

@media (min-width: 768px) {
  .border-md { ... }
  .border-md-0 { ... }
}

@media (min-width: 992px) {
  .border-lg { ... }
  .border-lg-0 { ... }
}

@media (min-width: 1200px) {
  .border-xl { ... }
  .border-xl-0 { ... }
}

@media (min-width: 1400px) {
  .border-xxl { ... }
  .border-xxl-0 { ... }
}

Aldatu izena utilitateei

v4 utilitateak falta dira, edo beste izendapen-konbentzio batera erabilita? Utilitateen APIa erabilgarritasun jakin baten emaitza gainidazteko erabil daiteke; classadibidez, .ms-*utilitateak zaharragora izendatzeko .ml-*:

@import "bootstrap/scss/functions";
@import "bootstrap/scss/variables";
@import "bootstrap/scss/maps";
@import "bootstrap/scss/mixins";
@import "bootstrap/scss/utilities";

$utilities: map-merge(
  $utilities, (
    "margin-start": map-merge(
      map-get($utilities, "margin-start"),
      ( class: ml ),
    ),
  )
);

@import "bootstrap/scss/utilities/api";

Kendu utilitateak

Kendu utilitate lehenetsiak map-remove()Sass funtzioarekin .

@import "bootstrap/scss/functions";
@import "bootstrap/scss/variables";
@import "bootstrap/scss/maps";
@import "bootstrap/scss/mixins";
@import "bootstrap/scss/utilities";

// Remove multiple utilities with a comma-separated list
$utilities: map-remove($utilities, "width", "float");

@import "bootstrap/scss/utilities/api";

map-merge()Sass funtzioa ere erabil dezakezu eta taldeko tekla ezar nulldezakezu utilitatea kentzeko.

@import "bootstrap/scss/functions";
@import "bootstrap/scss/variables";
@import "bootstrap/scss/maps";
@import "bootstrap/scss/mixins";
@import "bootstrap/scss/utilities";

$utilities: map-merge(
  $utilities,
  (
    "width": null
  )
);

@import "bootstrap/scss/utilities/api";

Gehitu, kendu, aldatu

map-merge()Sass funtzioarekin erabilgarritasun asko gehitu, kendu eta alda ditzakezu aldi berean . Hona hemen nola konbina ditzakezun aurreko adibideak mapa handiago batean.

@import "bootstrap/scss/functions";
@import "bootstrap/scss/variables";
@import "bootstrap/scss/maps";
@import "bootstrap/scss/mixins";
@import "bootstrap/scss/utilities";

$utilities: map-merge(
  $utilities,
  (
    // Remove the `width` utility
    "width": null,

    // Make an existing utility responsive
    "border": map-merge(
      map-get($utilities, "border"),
      ( responsive: true ),
    ),

    // Add new utilities
    "cursor": (
      property: cursor,
      class: cursor,
      responsive: true,
      values: auto pointer grab,
    )
  )
);

@import "bootstrap/scss/utilities/api";

Kendu utilitatea RTL-n

Ertz-kasu batzuek RTL estiloa zailtzen dute, hala nola arabierazko lerro-jauziak. Horrela, utilitateak RTL irteeratik ken daitezke rtlaukera hau ezarriz false:

$utilities: (
  "word-wrap": (
    property: word-wrap word-break,
    class: text,
    values: (break: break-word),
    rtl: false
  ),
);

Irteera:

/* rtl:begin:remove */
.text-break {
  word-wrap: break-word !important;
  word-break: break-word !important;
}
/* rtl:end:remove */

Honek ez du ezer ateratzen RTL-n, RTLCSS removekontrol zuzentarauari esker .