उपयोगिता एपिआइ
उपयोगिता एपिआइ उपयोगितावर्गान् जनयितुं Sass-आधारितं साधनम् अस्ति ।
Bootstrap उपयोगिताः अस्माकं उपयोगिता API सह उत्पद्यन्ते तथा च Sass मार्गेण अस्माकं उपयोगितावर्गाणां पूर्वनिर्धारितसमूहं परिवर्तयितुं विस्तारयितुं वा उपयोक्तुं शक्यते । अस्माकं उपयोगिता एपिआइ विविधविकल्पैः सह वर्गपरिवारजननार्थं Sass मानचित्रस्य कार्याणां च श्रृङ्खलायाम् आधारितम् अस्ति । यदि भवान् Sass मानचित्रेभ्यः अपरिचितः अस्ति तर्हि आरम्भार्थं आधिकारिक Sass docs उपरि पठतु ।
मानचित्रे अस्माकं $utilities
सर्वाणि उपयोगितानि सन्ति तथा च पश्चात् भवतः कस्टम् $utilities
मानचित्रेण सह विलीनं भवति, यदि वर्तते। उपयोगिता मानचित्रे उपयोगिता समूहानां कीलयुक्ता सूची अस्ति ये निम्नलिखितविकल्पान् स्वीकुर्वन्ति:
विकल्प | प्रकारः | वर्णनम् |
---|---|---|
property |
आवश्यकः | गुणस्य नाम, एतत् स्ट्रिंग् अथवा स्ट्रिंग्स् इत्यस्य सरणी (उदा., क्षैतिजपैडिंग्स् अथवा मार्जिन्स्) भवितुम् अर्हति । |
values |
आवश्यकः | मूल्यानां सूची, अथवा नक्शा यदि भवान् न इच्छति यत् वर्गनाम मूल्यस्य समानं भवतु । यदि null map कीलरूपेण उपयुज्यते तर्हि तत् संकलितं न भवति । |
class |
वैकल्पिक | वर्गनामस्य कृते चर यदि भवान् न इच्छति यत् एतत् गुणस्य समानं भवतु। यदि भवान् कीलं न ददाति class तथा च property कीलः स्ट्रिंग्स् इत्यस्य सरणी अस्ति, तर्हि क्लास् नाम property सरणीयाः प्रथमं एलिमेण्ट् भविष्यति । |
state |
वैकल्पिक | उपयोगितायाः कृते जनयितुं :hover वा इव छद्मवर्गस्य रूपान्तराणां सूची । :focus पूर्वनिर्धारितं मूल्यं नास्ति । |
responsive |
वैकल्पिक | प्रतिक्रियाशीलवर्गाणां जननस्य आवश्यकता अस्ति वा इति सूचयति बूलियन। false पूर्वनिर्धारितरूपेण । |
rfs |
वैकल्पिक | द्रव पुनर्मापन को सक्षम करने के लिए बूलियन। एतत् कथं कार्यं करोति इति ज्ञातुं RFS पृष्ठं पश्यन्तु । false पूर्वनिर्धारितरूपेण । |
print |
वैकल्पिक | मुद्रणवर्गाणां जननस्य आवश्यकता अस्ति वा इति सूचयति बूलियन । false पूर्वनिर्धारितरूपेण । |
rtl |
वैकल्पिक | उपयोगिता RTL मध्ये स्थापनीया वा इति सूचयति बूलियन। true पूर्वनिर्धारितरूपेण । |
एपिआइ व्याख्यातवान्
$utilities
अस्माकं _utilities.scss
stylesheet अन्तः सर्वे utility variables इत्येतत् variable मध्ये योजिताः भवन्ति । उपयोगितानां प्रत्येकं समूहः किञ्चित् एतादृशं दृश्यते ।
$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; }
कस्टम वर्ग उपसर्ग
class
संकलित-CSS मध्ये प्रयुक्तं वर्ग-उपसर्गं परिवर्तयितुं विकल्पस्य उपयोगं कुर्वन्तु :
$utilities: (
"opacity": (
property: opacity,
class: o,
values: (
0: 0,
25: .25,
50: .5,
75: .75,
100: 1,
)
)
);
आउटपुट् : 1 .
.o-0 { opacity: 0; }
.o-25 { opacity: .25; }
.o-50 { opacity: .5; }
.o-75 { opacity: .75; }
.o-100 { opacity: 1; }
राज्यानि
state
छद्म-वर्ग-विविधतां जनयितुं विकल्पस्य उपयोगं कुर्वन्तु । उदाहरण छद्मवर्गाः सन्ति :hover
तथा :focus
. यदा राज्यसूची प्रदत्ता भवति तदा तस्य छद्मवर्गस्य कृते वर्गनामानि निर्मीयन्ते । यथा, hover इत्यत्र opacity परिवर्तयितुं, add कृत्वा भवान् स्वस्य संकलितं 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,
)
)
);
आउटपुट् : 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,
)
)
);
आउटपुट् : 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; }
}
उपयोगिताओं को बदलते हुए
समान कील का उपयोग करके विद्यमान उपयोगिताओं को अधिलिखित करें। यथा, यदि भवान् अतिरिक्त-प्रतिसादात्मक-अतिप्रवाह-उपयोगितावर्गान् इच्छति तर्हि भवान् एतत् कर्तुं शक्नोति:
$utilities: (
"overflow": (
responsive: true,
property: overflow,
values: visible hidden scroll auto,
),
);
मुद्रण उपयोगिताएँ
print
विकल्पं सक्षमीकरणेन मुद्रणार्थं उपयोगितावर्गाः अपि@media print { ... }
उत्पद्यन्ते, ये केवलं मीडियाप्रश्नस्य अन्तः एव प्रयुक्ताः भवन्ति ।
$utilities: (
"opacity": (
property: opacity,
print: true,
values: (
0: 0,
25: .25,
50: .5,
75: .75,
100: 1,
)
)
);
आउटपुट् : 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; }
}
महत्त्वम्
एपिआइ द्वारा उत्पन्नानि सर्वाणि उपयोगितानि समाविष्टानि सन्ति !important
यत् ते घटकान् परिवर्तकवर्गान् च यथा अभिप्रेतरूपेण अधिलिखन्ति इति सुनिश्चितं कुर्वन्ति । भवान् एतत् सेटिङ्ग् वैश्विकरूपेण $enable-important-utilities
चर (defaults to true
) इत्यनेन सह टॉग्ल् कर्तुं शक्नोति ।
एपिआइ इत्यस्य उपयोगेन
इदानीं यदा भवान् utilities API कथं कार्यं करोति इति परिचितः अस्ति, तदा स्वस्य कस्टम् क्लास् कथं योजयितुं अस्माकं पूर्वनिर्धारित utilities परिवर्तयितुं च ज्ञातव्यम् ।
उपयोगितानि योजयन्तु
$utilities
पूर्वनिर्धारितमानचित्रे नूतनानि उपयोगितानि योजयितुं शक्यन्ते map-merge
. _utilities.scss
अस्माकं आवश्यकाः Sass सञ्चिकाः प्रथमं आयातिताः च इति सुनिश्चितं कुर्वन्तु , ततः map-merge
स्वस्य अतिरिक्त-उपयोगिताः योजयितुं the इत्यस्य उपयोगं कुर्वन्तु । यथा, अत्र 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
with map-get
and map-merge
functions इति । अधोलिखिते उदाहरणे वयं 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
),
);
आउटपुट् : 1 .
/* rtl:begin:remove */
.text-break {
word-wrap: break-word !important;
word-break: break-word !important;
}
/* rtl:end:remove */
एतेन RTL मध्ये किमपि न निर्गच्छति, RTLCSS remove
नियन्त्रणनिर्देशस्य धन्यवादः .