थीमिंग बूटस्ट्रैप
सुलभथीमिंग् तथा घटकपरिवर्तनार्थं वैश्विकशैलीप्राथमिकतानां कृते अस्माकं नूतननिर्मितसास्सचरैः सह Bootstrap 4 अनुकूलितं कुर्वन्तु।
आमुख
Bootstrap 3 इत्यस्मिन्, theming बहुधा LESS इत्यस्मिन् variable overrides, custom CSS, तथा च पृथक् theme stylesheet इत्यनेन चालितम् आसीत् यत् वयं अस्माकं dist
सञ्चिकासु समाविष्टवन्तः । किञ्चित् प्रयत्नेन कोऽपि कोर-सञ्चिकाः न स्पृशन् Bootstrap 3 इत्यस्य रूपं पूर्णतया पुनः परिकल्पयितुं शक्नोति स्म । बूटस्ट्रैप् ४ परिचितं, परन्तु किञ्चित् भिन्नं दृष्टिकोणं प्रदाति ।
अधुना, Theming Sass variables, Sass maps, custom CSS इत्यनेन च सम्पाद्यते । तत्र अधिकं समर्पितं विषयशैलीपत्रकं नास्ति; तस्य स्थाने, भवन्तः अन्तःनिर्मितं विषयं ग्रेडिएण्ट्, छाया, इत्यादीनि योजयितुं सक्षमं कर्तुं शक्नुवन्ति ।
सस्स
चर, नक्शा, मिक्सिन्, इत्यादीनां लाभं ग्रहीतुं अस्माकं स्रोत Sass सञ्चिकानां उपयोगं कुर्वन्तु । अस्माकं बिल्ड् मध्ये वयं Sass rounding precision इत्येतत् 6 यावत् वर्धितवन्तः (पूर्वनिर्धारितरूपेण 5 अस्ति) ब्राउजर् rounding इत्यस्य समस्यां निवारयितुं ।
सञ्चिका संरचना
यदा यदा सम्भवं तदा Bootstrap इत्यस्य मूलसञ्चिकानां परिवर्तनं परिहरन्तु । Sass कृते, तस्य अर्थः अस्ति यत् Bootstrap इत्यस्य आयातं कृत्वा स्वस्य stylesheet रचयतु येन भवान् तत् परिवर्तयितुं विस्तारयितुं च शक्नोति । भवान् npm इव संकुलप्रबन्धकं उपयुङ्क्ते इति कल्पयित्वा, भवतां समीपे एतादृशी सञ्चिकासंरचना भविष्यति ।
यदि भवान् अस्माकं स्रोतसञ्चिकाः अवतरितवान् अस्ति तथा च संकुलप्रबन्धकस्य उपयोगं न करोति तर्हि भवान् तस्याः संरचनायाः सदृशं किमपि मैन्युअल् रूपेण सेटअप कर्तुम् इच्छति, Bootstrap इत्यस्य स्रोतसञ्चिकाः स्वस्य सञ्चिकाभ्यः पृथक् स्थापयित्वा
आयात करते हुए
भवतः custom.scss
, भवन्तः Bootstrap इत्यस्य स्रोतः Sass सञ्चिकाः आयातयिष्यन्ति । भवतः समीपे द्वौ विकल्पौ स्तः: Bootstrap इत्यस्य सर्वाणि समाविष्टानि, अथवा भवतः आवश्यकानि भागानि चिन्वन्तु । वयं उत्तरं प्रोत्साहयामः, यद्यपि अवगताः भवन्तु यत् अस्माकं घटकेषु काश्चन आवश्यकताः आश्रयाः च सन्ति । अस्माकं प्लगिन्स् कृते भवद्भिः अपि किञ्चित् जावास्क्रिप्ट् समाविष्टं कर्तव्यं भविष्यति ।
तत् सेटअप स्थाने कृत्वा, भवान् स्वस्य custom.scss
. // Optional
आवश्यकतानुसारं विभागस्य अधः Bootstrap इत्यस्य भागान् योजयितुं अपि आरभुं शक्नुवन्ति । अस्माकं bootstrap.scss
सञ्चिकातः पूर्णं import stack इत्यस्य उपयोगं भवतः आरम्भबिन्दुरूपेण कर्तुं वयं सुचयामः ।
चर पूर्वनिर्धारित
Bootstrap 4 इत्यस्मिन् प्रत्येकं Sass चरं !default
ध्वजं समावेशयति यत् भवन्तं Bootstrap इत्यस्य स्रोतसङ्केतं परिवर्तयित्वा स्वस्य Sass मध्ये चरस्य पूर्वनिर्धारितमूल्यं अधिलिखितुं शक्नोति आवश्यकतानुसारं चरानाम् प्रतिलिपिं कृत्वा चिनोतु, तेषां मूल्यानि परिवर्तयन्तु, !default
ध्वजं च निष्कासयन्तु । यदि कश्चन चरः पूर्वमेव नियुक्तः अस्ति, तर्हि Bootstrap मध्ये पूर्वनिर्धारितमूल्यैः पुनः नियुक्तः न भविष्यति ।
Bootstrap इत्यस्य चरानाम् सम्पूर्णसूचीं भवन्तः scss/_variables.scss
. केचन चराः - इति सेट् भवन्ति null
, एते चराः गुणं न निर्गच्छन्ति यावत् ते भवतः विन्यासे अधिलिखिताः न भवन्ति ।
एकस्मिन् एव Sass सञ्चिकायाः अन्तः चर-अभिलेखाः पूर्वनिर्धारित-चरानाम् पूर्वं वा पश्चात् वा आगन्तुं शक्नुवन्ति । तथापि, Sass सञ्चिकासु ओवरराइड् करणसमये, Bootstrap इत्यस्य Sass सञ्चिकानां आयातात् पूर्वं भवतः ओवरराइड् अवश्यमेव आगन्तुं भवति ।
अत्र एकं उदाहरणं यत् npm मार्गेण Bootstrap आयातं संकलनं च कुर्वन् background-color
and color
for the परिवर्तयति:<body>
Bootstrap इत्यस्मिन् कस्यापि चरस्य कृते यथा आवश्यकं पुनरावृत्तिं कुर्वन्तु, यत्र अधः वैश्विकविकल्पाः सन्ति ।
मानचित्र एवं पाश
Bootstrap 4 इत्यस्मिन् Sass मानचित्रस्य मुष्टिभ्यां, कुञ्जीमूल्ययुग्मानि सन्ति ये सम्बन्धित-CSS-परिवारानाम् उत्पन्नं सुलभं कुर्वन्ति । वयं अस्माकं वर्णानाम्, ग्रिड् ब्रेकपॉइण्ट्, इत्यादीनां कृते Sass maps इत्यस्य उपयोगं कुर्मः । Sass चर इव सर्वेषु Sass मानचित्रेषु !default
ध्वजः समाविष्टः भवति तथा च अधिलिखितुं विस्तारयितुं च शक्यते ।
अस्माकं केचन Sass maps पूर्वनिर्धारितरूपेण रिक्तेषु विलीनाः भवन्ति । एतत् दत्तस्य Sass मानचित्रस्य सुलभविस्तारस्य अनुमतिं दातुं क्रियते, परन्तु मानचित्रात् वस्तूनि निष्कासयितुं किञ्चित् कठिनं कर्तुं व्ययेन आगच्छति
नक्शा संशोधित करें
अस्माकं मानचित्रे विद्यमानं वर्णं परिवर्तयितुं $theme-colors
, स्वस्य कस्टम् Sass सञ्चिकायां निम्नलिखितम् योजयन्तु ।
मानचित्रे योजयन्तु
-इत्यत्र नूतनं वर्णं $theme-colors
योजयितुं नूतनं कीलं मूल्यं च योजयन्तु :
नक्शे से निकालें
$theme-colors
, अथवा अन्यस्मात् मानचित्रात् वर्णं निष्कासयितुं , उपयुज्यताम् map-remove
। अस्माकं आवश्यकतानां विकल्पानां च मध्ये भवन्तः अवश्यमेव सम्मिलितं कुर्वन्तु इति अवगच्छन्तु:
आवश्यक कुञ्जी
Bootstrap Sass maps अन्तः केषाञ्चन विशिष्टानां कीलानां उपस्थितिं गृह्णाति यथा वयं स्वयमेव एतानि उपयुज्य विस्तारयामः । यथा भवन्तः समाविष्टनक्शान् अनुकूलितं कुर्वन्ति तथा तथा भवन्तः त्रुटयः सम्मुखीकुर्वन्ति यत्र विशिष्टस्य Sass मानचित्रस्य कुञ्जी उपयुज्यते ।
यथा, वयं लिङ्क्, बटन्, फार्म स्टेट्स् इत्येतयोः कृते primary
, success
, तथा च danger
कीलानि उपयुञ्ज्महे । $theme-colors
एतेषां कीलानां मूल्यानि प्रतिस्थापयित्वा कोऽपि समस्याः न उपस्थापनीयाः, परन्तु तान् निष्कासयितुं Sass संकलनसमस्याः उत्पद्यन्ते । एतेषु दृष्टान्तेषु, भवद्भिः तानि मूल्यानि उपयुज्यमानं Sass कोड् परिवर्तयितुं आवश्यकं भविष्यति ।
कार्याणि
बूटस्ट्रैप् अनेकाः Sass कार्याणि उपयुज्यते, परन्तु सामान्यविषयीकरणे केवलं उपसमूहः एव प्रयोज्यः भवति । वर्णमानचित्रेभ्यः मूल्यानि प्राप्तुं वयं त्रीणि कार्याणि समाविष्टवन्तः:
एते भवन्तं Sass मानचित्रात् एकं वर्णं चिन्वितुं शक्नुवन्ति यथा भवान् v3 तः वर्णचरस्य उपयोगं कथं करिष्यति ।
नक्शातः वर्णस्य विशेषस्तरं प्राप्तुं अस्माकं अन्यत् कार्यं अपि अस्ति । $theme-colors
नकारात्मकस्तरमूल्यानि वर्णं प्रकाशयिष्यन्ति, उच्चस्तराः तु कृष्णवर्णं करिष्यन्ति ।
व्यवहारे, भवान् फंक्शन् आह्वयति तथा च द्वौ पैरामीटर् मध्ये पारयिष्यति: $theme-colors
(उदा., प्राथमिकं वा खतरा वा) तः वर्णस्य नाम तथा च संख्यात्मकस्तरः ।
अतिरिक्तकार्यं भविष्ये योजितुं शक्यते अथवा अतिरिक्त Sass मानचित्रस्य कृते स्तरकार्यं निर्मातुं स्वस्य कस्टम् Sass योजितुं शक्यते, अथवा सामान्यं अपि यदि भवान् अधिकं वर्बोस् भवितुम् इच्छति।
वर्ण विपरीतता
Bootstrap मध्ये वयं समाविष्टं अतिरिक्तं कार्यं वर्णविपरीतकार्यम् अस्ति, color-yiq
. इदं निर्दिष्टस्य आधारवर्णस्य आधारेण स्वयमेव प्रकाशं ( ) अथवा गहरे ( ) विपरीतवर्णं प्रत्यागन्तुं YIQ वर्णस्थानस्य उपयोगं करोति । इदं कार्यं विशेषतया mixins अथवा loops कृते उपयोगी भवति यत्र भवान् बहुवर्गान् जनयति ।#fff
#111
यथा, अस्माकं $theme-colors
मानचित्रात् वर्णस्य नमूनानि जनयितुं :
एकवारं विपरीतता आवश्यकतानां कृते अपि अस्य उपयोगः कर्तुं शक्यते:
अस्माकं color map functions इत्यनेन अपि भवान् आधारवर्णं निर्दिष्टुं शक्नोति:
SVG से पलायन करें
वयं SVG पृष्ठभूमिप्रतिमानां कृते , वर्णाः च पलायितुं escape-svg
फंक्शन् इत्यस्य उपयोगं कुर्मः । IE मध्ये पृष्ठभूमिचित्रं सम्यक् प्रतिपादयितुं एतेषां वर्णानाम् पलायनस्य आवश्यकता वर्तते ।<
>
#
Add एवं Subtract फंक्शन्स
वयं CSS फंक्शन् wrap कर्तुं add
and functions इत्यस्य उपयोगं कुर्मः । एतेषां कार्याणां प्राथमिकं उद्देश्यं भवति यत् यदा “एककहीन” मूल्यं व्यञ्जने प्रसारितं भवति तदा दोषाणां परिहारः भवति । इत्यादीनि व्यञ्जनानि सर्वेषु ब्राउजर्-मध्ये त्रुटिं प्रत्यागमिष्यन्ति, गणितीयदृष्ट्या सम्यक् अस्ति चेदपि ।subtract
calc
0
calc
calc(10px - 0)
उदाहरणं यत्र calc वैधम् अस्ति:
उदाहरणं यत्र calc असिद्धम् अस्ति :
सस्स विकल्पाः
$enable-*
अस्माकं निर्मित-अनुकूल-चर-सञ्चिकायाः सह Bootstrap 4 अनुकूलितं कुर्वन्तु तथा च नूतन- Sass-चर- सहितं वैश्विक-CSS-प्राथमिकताम् सहजतया टॉगलं कुर्वन्तु । चरस्य मूल्यं अधिलिखयन्तु npm run test
तथा आवश्यकतानुसारं सह पुनः संकलयन्तु ।
scss/_variables.scss
Bootstrap इत्यस्य सञ्चिकायां प्रमुखवैश्विकविकल्पानां कृते एतानि चराः अन्वेष्टुं अनुकूलितुं च शक्नुवन्ति ।
चर इति | मूल्यानि | वर्णनम् |
---|---|---|
$spacer |
1rem (पूर्वनिर्धारित), अथवा किसी भी मान > 0 |
अस्माकं स्पेसर उपयोगितानि प्रोग्रामेटिकरूपेण जनयितुं पूर्वनिर्धारितं स्पेसर मूल्यं निर्दिशति | |
$enable-rounded |
true (पूर्वनिर्धारित) orfalse |
विभिन्नघटकानाम् उपरि पूर्वनिर्धारितशैल्याः सक्षमीकरणं करोति border-radius । |
$enable-shadows |
true अथवा false (पूर्वनिर्धारित) . |
विभिन्नघटकानाम् उपरि पूर्वनिर्धारितशैल्याः सक्षमीकरणं करोति box-shadow । |
$enable-gradients |
true अथवा false (पूर्वनिर्धारित) . |
background-image विभिन्नघटकानाम् उपरि शैल्याः माध्यमेन पूर्वनिर्धारितप्रवणतां सक्षमं करोति । |
$enable-transitions |
true (पूर्वनिर्धारित) orfalse |
विभिन्नघटकानाम् उपरि पूर्वनिर्धारितं transition s सक्षमं करोति । |
$enable-prefers-reduced-motion-media-query |
true (पूर्वनिर्धारित) orfalse |
prefers-reduced-motion मीडिया प्रश्नं सक्षमं करोति , यत् उपयोक्तृणां ब्राउजर्/प्रचालनतन्त्रप्राथमिकतानां आधारेण कतिपयानि एनिमेशन/संक्रमणानि दमनं करोति । |
$enable-hover-media-query |
true अथवा false (पूर्वनिर्धारित) . |
अप्रचलित |
$enable-grid-classes |
true (पूर्वनिर्धारित) orfalse |
ग्रिड्-प्रणाल्याः कृते CSS-वर्गाणां जननं सक्षमं करोति (उदा., .container , .row , .col-md-1 , इत्यादि) । |
$enable-caret |
true (पूर्वनिर्धारित) orfalse |
पर छद्म तत्व caret सक्षम करता है .dropdown-toggle । |
$enable-pointer-cursor-for-buttons |
true (पूर्वनिर्धारित) orfalse |
अ-अक्षम-बटन-तत्त्वेषु “hand” कर्सरं योजयन्तु । |
$enable-print-styles |
true (पूर्वनिर्धारित) orfalse |
मुद्रणस्य अनुकूलनार्थं शैल्याः सक्षमीकरणं करोति । |
$enable-responsive-font-sizes |
true अथवा false (पूर्वनिर्धारित) . |
प्रतिक्रियाशीलं font आकारं सक्षमं करोति . |
$enable-validation-icons |
true (पूर्वनिर्धारित) orfalse |
पाठ्यनिवेशानां background-image अन्तः चिह्नानि तथा च प्रमाणीकरणस्थितीनां कृते केचन इष्टप्रपत्राणि सक्षमं करोति । |
$enable-deprecation-messages |
true अथवा false (पूर्वनिर्धारित) . |
true मध्ये निष्कासयितुं योजनाकृतानि कस्यापि अप्रचलितमिक्सिन्-कार्यस्य उपयोगं कुर्वन् चेतावनीम् दर्शयितुं to सेट् कुर्वन्तु v5 । |
वर्णं
Bootstrap इत्यस्य बहवः विविधाः घटकाः उपयोगिताश्च Sass मानचित्रे परिभाषितवर्णानां श्रृङ्खलायाः माध्यमेन निर्मिताः सन्ति । एतत् मानचित्रं Sass मध्ये लूप् कृत्वा शीघ्रं नियमसमूहानां श्रृङ्खलां जनयितुं शक्यते ।
सर्वे वर्णाः
Bootstrap 4 इत्यस्मिन् उपलभ्यमानाः सर्वे वर्णाः, Sass variables इत्यस्य रूपेण तथा च scss/_variables.scss
सञ्चिकायां Sass map इत्यस्य रूपेण उपलभ्यन्ते । अतिरिक्तछायाः योजयितुं अनन्तरेषु लघुविमोचनेषु एतत् विस्तारितं भविष्यति, यथा वयं पूर्वमेव समाविष्टं ग्रेस्केल-पैलेट् ।
अत्र भवन्तः स्वस्य Sass मध्ये एतानि कथं उपयोक्तुं शक्नुवन्ति:
सेट् कृते अपि च वर्ण उपयोगिता वर्गाः उपलभ्यन्ते color
तथा च background-color
.
भविष्ये वयं प्रत्येकस्य वर्णस्य छायानां कृते Sass maps तथा variables प्रदातुं लक्ष्यं करिष्यामः यथा वयं अधः grayscale वर्णैः सह कृतवन्तः ।
विषयवर्णाः
वयं सर्वेषां वर्णानाम् उपसमूहस्य उपयोगं कुर्मः यत् वर्णयोजनानि जनयितुं लघुतरं वर्णपैलेट् निर्मातुं शक्नुमः, यत् Sass चररूपेण अपि उपलभ्यते तथा च Bootstrap इत्यस्य scss/_variables.scss
सञ्चिकायां Sass map इति ।
ग्रेजः
ग्रे चरानाम् एकः विस्तृतः समुच्चयः तथा च scss/_variables.scss
भवतः परियोजनायां ग्रे इत्यस्य सुसंगतछायाणां कृते एकः Sass map in। ध्यानं कुर्वन्तु यत् एते “शीतलधूसरवर्णाः” सन्ति, ये सूक्ष्मनीलस्वरस्य प्रति प्रवृत्ताः भवन्ति, न तु तटस्थधूसरवर्णाः ।
, इत्यस्य अन्तः scss/_variables.scss
भवन्तः Bootstrap इत्यस्य color variables तथा Sass map इत्येतत् प्राप्नुवन्ति । $colors
अत्र सास् मानचित्रस्य उदाहरणम् अस्ति :
अन्येषु बह्वीषु घटकेषु तेषां उपयोगः कथं भवति इति अद्यतनीकर्तुं नक्शे अन्तः मूल्यानि योजयन्तु, निष्कासयन्तु, परिवर्तयन्तु वा । दुर्भाग्येन अस्मिन् समये प्रत्येकं घटकं एतस्य Sass मानचित्रस्य उपयोगं न करोति । भविष्ये अद्यतनसूचनानि अस्मिन् सुधारयितुम् प्रयतन्ते। तावत्पर्यन्तं ${color}
चरानाम् अस्य च Sass map इत्यस्य उपयोगं कर्तुं योजनां कुर्वन्तु ।
घटकाः
Bootstrap इत्यस्य बहवः घटकाः उपयोगिताश्च @each
लूप् इत्यनेन सह निर्मिताः सन्ति ये Sass मानचित्रस्य उपरि पुनरावृत्तिं कुर्वन्ति । अस्माकं द्वारा घटकस्य रूपान्तराणि जनयितुं $theme-colors
प्रत्येकस्य भङ्गबिन्दुस्य कृते प्रतिक्रियाशीलरूपान्तराणि निर्मातुं च एतत् विशेषतया सहायकं भवति । यथा भवान् एतानि Sass मानचित्राणि अनुकूलितं करोति पुनः संकलयति च तथा तथा भवान् स्वयमेव एतेषु लूप्स् मध्ये प्रतिबिम्बितानि स्वपरिवर्तनानि पश्यति ।
संशोधकाः
Bootstrap इत्यस्य बहवः घटकाः आधार-संशोधकवर्ग-पद्धत्या निर्मिताः सन्ति । अस्य अर्थः अस्ति यत् स्टाइलिंग् इत्यस्य बृहत् भागः आधारवर्गे (उदा., .btn
) समाविष्टः भवति यदा शैलीविविधताः परिवर्तकवर्गेषु (उदा., .btn-danger
) सीमिताः सन्ति । $theme-colors
एते modifier classes अस्माकं modifier classes इत्यस्य संख्यां नाम च customizing कर्तुं map तः निर्मिताः सन्ति ।
अत्र द्वौ उदाहरणौ स्तः यत् वयं कथं $theme-colors
map इत्यस्य उपरि लूप् कृत्वा घटकं प्रति परिवर्तकान् जनयितुं .alert
शक्नुमः तथा च अस्माकं सर्वाणि .bg-*
पृष्ठभूमि-उपयोगितानि सन्ति ।
प्रतिक्रियाशीलः
एते Sass लूप्स् केवलं वर्णनक्शेषु एव सीमिताः न सन्ति, अपि च । भवान् स्वघटकानाम् अथवा उपयोगितानां प्रतिक्रियाशीलविविधतां अपि जनयितुं शक्नोति । उदाहरणार्थं अस्माकं responsive text alignment utilities गृह्यताम् यत्र वयं Sass map @each
कृते एकं loop $grid-breakpoints
इत्येतत् media query include इत्यनेन सह मिश्रयामः ।
यदि भवन्तः $grid-breakpoints
स्वस्य परिवर्तनं कर्तुं प्रवृत्ताः भवेयुः तर्हि तस्य मानचित्रस्य उपरि पुनरावृत्तिं कुर्वन्तः सर्वेषु लूप्स् मध्ये भवतः परिवर्तनानि प्रवर्तन्ते ।
CSS चर
बूटस्ट्रैप् ४ इत्यस्य संकलिते CSS मध्ये प्रायः द्वौ दर्जनौ CSS कस्टम् गुणाः (चराः) समाविष्टाः सन्ति । एते भवतः ब्राउजर्-निरीक्षके, कोड-सैण्डबॉक्स-मध्ये, सामान्य-प्रोटोटाइपिङ्ग्-करणं वा कार्यं कुर्वन् अस्माकं विषय-रङ्गाः, ब्रेक-पॉइण्ट्-इत्यादीनि प्राथमिक-फॉन्ट-स्टैक्स् इत्यादीनां सामान्यतया प्रयुक्तानां मूल्यानां सुलभ-प्रवेशं प्रदास्यन्ति
उपलब्ध चर
अत्र वयं समाविष्टाः चराः सन्ति (ध्यायन्तु यत् the :root
आवश्यकम् अस्ति) । ते अस्माकं _root.scss
सञ्चिकायां स्थिताः सन्ति।
उदाहरणानि
CSS चराः Sass इत्यस्य चरानाम् समानं लचीलतां प्रदास्यन्ति, परन्तु ब्राउजर् प्रति सेवितुं पूर्वं संकलनस्य आवश्यकतां विना । यथा, अत्र वयं अस्माकं पृष्ठस्य font तथा link styles CSS variables इत्यनेन पुनः सेट् कुर्मः ।
ब्रेकपॉइंट चर
--breakpoint-md
यद्यपि वयं मूलतः अस्माकं CSS चरयोः (उदा., ) breakpoints समाविष्टवन्तः , एते media queries मध्ये समर्थिताः न सन्ति , परन्तु तेषां उपयोगः media queries मध्ये rulesets अन्तः अद्यापि कर्तुं शक्यते । एते ब्रेकपॉइण्ट् चराः जावास्क्रिप्ट् द्वारा उपयोक्तुं शक्यन्ते इति दृष्ट्वा पश्चात् संगततायै संकलिते CSS मध्ये तिष्ठन्ति । spec इत्यत्र अधिकं ज्ञातुं शक्नुवन्ति .
अत्र किं न समर्थितं तस्य उदाहरणम् अस्ति ।
अत्र च किं समर्थितं तस्य उदाहरणम् अस्ति :