యుటిలిటీ API
యుటిలిటీ API అనేది యుటిలిటీ క్లాస్లను రూపొందించడానికి సాస్-ఆధారిత సాధనం.
బూట్స్ట్రాప్ యుటిలిటీలు మా యుటిలిటీ APIతో రూపొందించబడ్డాయి మరియు సాస్ ద్వారా మా డిఫాల్ట్ యుటిలిటీ క్లాస్లను సవరించడానికి లేదా విస్తరించడానికి ఉపయోగించవచ్చు. మా యుటిలిటీ API వివిధ ఎంపికలతో తరగతుల కుటుంబాలను రూపొందించడానికి సాస్ మ్యాప్లు మరియు ఫంక్షన్ల శ్రేణిపై ఆధారపడి ఉంటుంది. మీకు Sass మ్యాప్లు తెలియకుంటే, ప్రారంభించడానికి అధికారిక Sass డాక్స్లో చదవండి .
మ్యాప్ మా అన్ని యుటిలిటీలను కలిగి ఉంది మరియు తర్వాత మీ అనుకూల మ్యాప్తో $utilities
విలీనం చేయబడుతుంది . $utilities
యుటిలిటీ మ్యాప్ క్రింది ఎంపికలను ఆమోదించే యుటిలిటీ సమూహాల యొక్క కీడ్ జాబితాను కలిగి ఉంది:
ఎంపిక | టైప్ చేయండి | డిఫాల్ట్ విలువ | వివరణ |
---|---|---|---|
property |
అవసరం | – | ఆస్తి పేరు, ఇది స్ట్రింగ్ లేదా స్ట్రింగ్ల శ్రేణి కావచ్చు (ఉదా, క్షితిజ సమాంతర ప్యాడింగ్లు లేదా అంచులు). |
values |
అవసరం | – | విలువల జాబితా లేదా తరగతి పేరు విలువతో సమానంగా ఉండకూడదనుకుంటే మ్యాప్. null మ్యాప్ కీగా ఉపయోగించినట్లయితే, అది కంపైల్ చేయబడదు . |
class |
ఐచ్ఛికం | శూన్య | రూపొందించబడిన తరగతి పేరు. అందించబడకపోతే మరియు property స్ట్రింగ్ల శ్రేణి అయితే, శ్రేణి యొక్క class మొదటి మూలకానికి డిఫాల్ట్ అవుతుంది property . |
css-var |
ఐచ్ఛికం | false |
CSS నియమాలకు బదులుగా CSS వేరియబుల్లను రూపొందించడానికి బూలియన్. |
local-vars |
ఐచ్ఛికం | శూన్య | CSS నియమాలకు అదనంగా రూపొందించడానికి స్థానిక CSS వేరియబుల్స్ యొక్క మ్యాప్. |
state |
ఐచ్ఛికం | శూన్య | ఉత్పత్తి చేయడానికి సూడో-క్లాస్ వేరియంట్ల జాబితా (ఉదా, :hover లేదా :focus ). |
responsive |
ఐచ్ఛికం | false |
ప్రతిస్పందించే తరగతులను రూపొందించాలా వద్దా అని బూలియన్ సూచిస్తుంది. |
rfs |
ఐచ్ఛికం | false |
RFSతో ఫ్లూయిడ్ రీస్కేలింగ్ని ప్రారంభించడానికి బూలియన్ . |
print |
ఐచ్ఛికం | false |
ప్రింట్ క్లాస్లను రూపొందించాల్సిన అవసరం ఉందో లేదో బూలియన్ సూచిస్తుంది. |
rtl |
ఐచ్ఛికం | true |
యుటిలిటీని RTLలో ���ంచాలా వద్దా అని బూలియన్ సూచిస్తుంది. |
API వివరించింది
$utilities
అన్ని యుటిలిటీ వేరియబుల్స్ మా _utilities.scss
స్టైల్షీట్లోని వేరియబుల్కు జోడించబడతాయి . యుటిలిటీల యొక్క ప్రతి సమూహం ఇలా కనిపిస్తుంది:
$utilities: (
"opacity": (
property: opacity,
values: (
0: 0,
25: .25,
50: .5,
75: .75,
100: 1,
)
)
);
కింది వాటిని ఏది అవుట్పుట్ చేస్తుంది:
.opacity-0 { opacity: 0; }
.opacity-25 { opacity: .25; }
.opacity-50 { opacity: .5; }
.opacity-75 { opacity: .75; }
.opacity-100 { opacity: 1; }
ఆస్తి
ఏదైనా యుటిలిటీ కోసం అవసరమైన property
కీ తప్పనిసరిగా సెట్ చేయబడాలి మరియు అది తప్పనిసరిగా చెల్లుబాటు అయ్యే CSS ప్రాపర్టీని కలిగి ఉండాలి. ఈ ప్రాపర్టీ ఉత్పత్తి చేయబడిన యుటిలిటీ నియమావళిలో ఉపయోగించబడుతుంది. కీ తొలగించబడినప్పుడు class
, అది డిఫాల్ట్ తరగతి పేరుగా కూడా పనిచేస్తుంది. text-decoration
యుటిలిటీని పరిగణించండి :
$utilities: (
"text-decoration": (
property: text-decoration,
values: none underline line-through
)
);
అవుట్పుట్:
.text-decoration-none { text-decoration: none !important; }
.text-decoration-underline { text-decoration: underline !important; }
.text-decoration-line-through { text-decoration: line-through !important; }
విలువలు
రూపొందించబడిన తరగతి పేర్లు మరియు నియమాలలో పేర్కొన్న వాటి కోసం ఏ విలువలు ఉపయోగించాలో values
పేర్కొనడానికి కీని ఉపయోగించండి. property
జాబితా లేదా మ్యాప్ కావచ్చు (యుటిలిటీస్లో లేదా సాస్ వేరియబుల్లో సెట్ చేయబడింది).
జాబితాగా, text-decoration
యుటిలిటీల వలె :
values: none underline line-through
మ్యాప్గా, opacity
యుటిలిటీల వలె :
values: (
0: 0,
25: .25,
50: .5,
75: .75,
100: 1,
)
position
మా యుటిలిటీలలో వలె జాబితా లేదా మ్యాప్ను సెట్ చేసే Sass వేరియబుల్గా :
values: $position-values
తరగతి
class
కంపైల్ చేయబడిన CSSలో ఉపయోగించిన తరగతి ఉపసర్గను మార్చడానికి ఎంపికను ఉపయోగించండి . ఉదాహరణకు, దీని నుండి .opacity-*
మార్చడానికి .o-*
:
$utilities: (
"opacity": (
property: opacity,
class: o,
values: (
0: 0,
25: .25,
50: .5,
75: .75,
100: 1,
)
)
);
అవుట్పుట్:
.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; }
CSS వేరియబుల్ యుటిలిటీస్
css-var
బూలియన్ ఎంపికను సెట్ చేయండి true
మరియు API సాధారణ property: value
నియమాలకు బదులుగా ఇచ్చిన ఎంపిక కోసం స్థానిక CSS వేరియబుల్లను ఉత్పత్తి చేస్తుంది. మా .text-opacity-*
యుటిలిటీలను పరిగణించండి:
$utilities: (
"text-opacity": (
css-var: true,
class: text-opacity,
values: (
25: .25,
50: .5,
75: .75,
100: 1
)
),
);
అవుట్పుట్:
.text-opacity-25 { --bs-text-opacity: .25; }
.text-opacity-50 { --bs-text-opacity: .5; }
.text-opacity-75 { --bs-text-opacity: .75; }
.text-opacity-100 { --bs-text-opacity: 1; }
స్థానిక CSS వేరియబుల్స్
local-vars
యుటిలిటీ క్లాస్ రూల్సెట్లో స్థానిక CSS వేరియబుల్లను రూపొందించే సాస్ మ్యాప్ను పేర్కొనడానికి ఎంపికను ఉపయోగించండి . రూపొందించబడిన CSS నియమాలలో ఆ స్థానిక CSS వేరియబుల్లను వినియోగించడానికి అదనపు పని అవసరమని దయచేసి గమనించండి. ఉదాహరణకు, మా .bg-*
యుటిలిటీలను పరిగణించండి:
$utilities: (
"background-color": (
property: background-color,
class: bg,
local-vars: (
"bg-opacity": 1
),
values: map-merge(
$utilities-bg-colors,
(
"transparent": transparent
)
)
)
);
అవుట్పుట్:
.bg-primary {
--bs-bg-opacity: 1;
background-color: rgba(var(--bs-primary-rgb), var(--bs-bg-opacity)) !important;
}
రాష్ట్రాలు
state
నకిలీ-తరగతి వైవిధ్యాలను రూపొందించడానికి ఎంపికను ఉపయోగించండి . ఉదాహరణ సూడో-తరగతులు :hover
మరియు :focus
. రాష్ట్రాల జాబితా అందించబడినప్పుడు, ఆ నకిలీ తరగతికి తరగతి పేర్లు సృష్టించబడతాయి. ఉదాహరణకు, హోవర్లో అస్పష్టతను మార్చడానికి, జోడించండి మరియు మీరు మీ కంపైల్ చేసిన CSSలో state: hover
పొందుతారు ..opacity-hover:hover
బహుళ నకిలీ తరగతులు కావాలా? స్థలం-వేరు చేయబడిన రాష్ట్రాల జాబితాను ఉపయోగించండి: state: hover focus
.
$utilities: (
"opacity": (
property: opacity,
class: opacity,
state: hover,
values: (
0: 0,
25: .25,
50: .5,
75: .75,
100: 1,
)
)
);
అవుట్పుట్:
.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; }
రెస్పాన్సివ్
అన్ని బ్రేక్పాయింట్లలోresponsive
ప్రతిస్పందించే యుటిలిటీలను (ఉదా, .opacity-md-25
) రూపొందించడానికి బూలియన్ని జోడించండి .
$utilities: (
"opacity": (
property: opacity,
responsive: true,
values: (
0: 0,
25: .25,
50: .5,
75: .75,
100: 1,
)
)
);
అవుట్పుట్:
.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; }
}
ముద్రణ
print
ఎంపికను ప్రారంభించడం వలన ప్రింట్ కోసం యుటిలిటీ తరగతులు కూడా ఉత్పత్తి చేయబడతాయి, ఇవి @media print { ... }
మీడియా ప్రశ్నలో మాత్రమే వర్తించబడతాయి.
$utilities: (
"opacity": (
property: opacity,
print: true,
values: (
0: 0,
25: .25,
50: .5,
75: .75,
100: 1,
)
)
);
అవుట్పుట్:
.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; }
}
ప్రాముఖ్యత
API ద్వారా రూపొందించబడిన అన్ని యుటిలిటీలు !important
ఉద్దేశించిన విధంగా కాంపోనెంట్లు మరియు మాడిఫైయర్ క్లాస్లను ఓవర్రైడ్ చేస్తున్నాయని నిర్ధారించుకోవడం. మీరు ఈ సెట్టింగ్ని $enable-important-utilities
వేరియబుల్తో ప్రపంచవ్యాప్తంగా టోగుల్ చేయవచ్చు (డిఫాల్ట్గా కు true
).
APIని ఉపయోగించడం
యుటిలిటీస్ API ఎలా పనిచేస్తుందో ఇప్పుడు మీకు బాగా తెలుసు, మీ స్వంత అనుకూల తరగతులను ఎలా జోడించాలో మరియు మా డిఫాల్ట్ యుటిలిటీలను ఎలా సవరించాలో తెలుసుకోండి.
యుటిలిటీలను భర్తీ చేయండి
అదే కీని ఉపయోగించడం ద్వారా ఇప్పటికే ఉన్న యుటిలిటీలను భర్తీ చేయండి. ఉదాహరణకు, మీకు అదనపు రెస్పాన్సివ్ ఓవర్ఫ్లో యుటిలిటీ క్లాసులు కావాలంటే, మీరు ఇలా చేయవచ్చు:
$utilities: (
"overflow": (
responsive: true,
property: overflow,
values: visible hidden scroll auto,
),
);
యుటిలిటీలను జోడించండి
$utilities
ఒక తో డిఫాల్ట్ మ్యాప్కి కొత్త యుటిలిటీలను జోడించవచ్చు map-merge
. మా అవసరమైన Sass ఫైల్లు _utilities.scss
ముందుగా దిగుమతి చేసుకున్నాయని నిర్ధారించుకోండి, ఆపై map-merge
మీ అదనపు యుటిలిటీలను జోడించడానికి ఉపయోగించండి. ఉదాహరణకు, cursor
మూడు విలువలతో ప్రతిస్పందించే యుటిలిటీని ఎలా జోడించాలో ఇక్కడ ఉంది.
@import "bootstrap/scss/functions";
@import "bootstrap/scss/variables";
@import "bootstrap/scss/utilities";
$utilities: map-merge(
$utilities,
(
"cursor": (
property: cursor,
class: cursor,
responsive: true,
values: auto pointer grab,
)
)
);
యుటిలిటీలను సవరించండి
$utilities
డిఫాల్ట్ మ్యాప్లో map-get
మరియు map-merge
ఫంక్షన్లతో ఇప్పటికే ఉన్న యుటిలిటీలను సవరించండి . దిగువ ఉదాహరణలో, మేము width
యుటిలిటీలకు అదనపు విలువను జోడిస్తున్నాము. ప్రారంభంలో ప్రారంభించి map-merge
, ఆపై మీరు ఏ యుటిలిటీని సవరించాలనుకుంటున్నారో పేర్కొనండి. అక్కడ నుండి, యుటిలిటీ ఎంపికలు మరియు విలువలను యాక్సెస్ చేయడానికి మరియు సవరించడానికి సమూహ "width"
మ్యాప్ని పొందండి.map-get
@import "bootstrap/scss/functions";
@import "bootstrap/scss/variables";
@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%),
),
),
),
)
);
ప్రతిస్పందనను ప్రారంభించండి
మీరు ప్రస్తుతం డిఫాల్ట్గా స్పందించని యుటిలిటీల సెట్ కోసం ప్రతిస్పందించే తరగతులను ప్రారంభించవచ్చు. ఉదాహరణకు, border
తరగతులను ప్రతిస్పందించేలా చేయడానికి:
@import "bootstrap/scss/functions";
@import "bootstrap/scss/variables";
@import "bootstrap/scss/utilities";
$utilities: map-merge(
$utilities, (
"border": map-merge(
map-get($utilities, "border"),
( responsive: true ),
),
)
);
ఇది ఇప్పుడు ప్రతి బ్రేక్పాయింట్కు .border
మరియు ప్రతిస్పందించే వైవిధ్యాలను సృష్టిస్తుంది. .border-0
మీరు రూపొందించిన CSS ఇలా కనిపిస్తుంది:
.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 { ... }
}
యుటిలిటీస్ పేరు మార్చండి
v4 యుటిలిటీలను కోల్పోయారా లేదా మరొక పేరు పెట్టే విధానాన్ని ఉపయోగించారా? యుటిలిటీస్ API అనేది ఇచ్చిన యుటిలిటీ యొక్క ఫలితాన్ని భర్తీ చేయడానికి ఉపయోగించబడుతుంది class
-ఉదాహరణకు, .ms-*
యుటిలిటీలను పాతదిగా మార్చడానికి .ml-*
:
@import "bootstrap/scss/functions";
@import "bootstrap/scss/variables";
@import "bootstrap/scss/utilities";
$utilities: map-merge(
$utilities, (
"margin-start": map-merge(
map-get($utilities, "margin-start"),
( class: ml ),
),
)
);
యుటిలిటీలను తీసివేయండి
గ్రూప్ కీని సెట్ చేయడం ద్వారా ఏదైనా డిఫాల్ట్ యుటిలిటీలను తీసివేయండి null
. ఉదాహరణకు, మా అన్ని width
యుటిలిటీలను తీసివేయడానికి, aని సృష్టించండి $utilities
map-merge
మరియు లోపల జోడించండి "width": null
.
@import "bootstrap/scss/functions";
@import "bootstrap/scss/variables";
@import "bootstrap/scss/utilities";
$utilities: map-merge(
$utilities,
(
"width": null
)
);
RTLలో యుటిలిటీని తీసివేయండి
అరబిక్లో లైన్ బ్రేక్లు వంటి కొన్ని అంచు కేసులు RTL స్టైలింగ్ను కష్టతరం చేస్తాయి. rtl
ఈ విధంగా ఎంపికను సెట్ చేయడం ద్వారా RTL అవుట్పుట్ నుండి యుటిలిటీలను తొలగించవచ్చు false
:
$utilities: (
"word-wrap": (
property: word-wrap word-break,
class: text,
values: (break: break-word),
rtl: false
),
);
అవుట్పుట్:
/* rtl:begin:remove */
.text-break {
word-wrap: break-word !important;
word-break: break-word !important;
}
/* rtl:end:remove */
ఇది RTLలో దేనినీ అవుట్పుట్ చేయదు, RTLCSS remove
నియంత్రణ ఆదేశానికి ధన్యవాదాలు .