சாஸ்
உங்கள் திட்டத்தை விரைவாக உருவாக்கவும் தனிப்பயனாக்கவும் உதவும் மாறிகள், வரைபடங்கள், மிக்ஸின்கள் மற்றும் செயல்பாடுகளைப் பயன்படுத்திக் கொள்ள எங்கள் மூல Sass கோப்புகளைப் பயன்படுத்தவும்.
மாறிகள், வரைபடங்கள், மிக்சின்கள் மற்றும் பலவற்றைப் பயன்படுத்திக் கொள்ள எங்கள் மூல சாஸ் கோப்புகளைப் பயன்படுத்தவும்.
கோப்பு அமைப்பு
முடிந்தவரை, பூட்ஸ்டார்ப்பின் முக்கிய கோப்புகளை மாற்றுவதைத் தவிர்க்கவும். சாஸைப் பொறுத்தவரை, பூட்ஸ்டார்ப்பை இறக்குமதி செய்யும் உங்கள் சொந்த ஸ்டைல்ஷீட்டை உருவாக்குவதன் மூலம் அதை நீங்கள் மாற்றியமைத்து நீட்டிக்க முடியும். நீங்கள் npm போன்ற தொகுப்பு மேலாளரைப் பயன்படுத்துகிறீர்கள் என்று வைத்துக் கொண்டால், இது போன்ற ஒரு கோப்பு அமைப்பு உங்களிடம் இருக்கும்:
your-project/
├── scss
│ └── custom.scss
└── node_modules/
└── bootstrap
├── js
└── scss
நீங்கள் எங்கள் மூலக் கோப்புகளைப் பதிவிறக்கம் செய்து, தொகுப்பு மேலாளரைப் பயன்படுத்தவில்லை எனில், பூட்ஸ்டார்ப்பின் மூலக் கோப்புகளை உங்களின் சொந்தக் கோப்புகளிலிருந்து தனித்தனியாக வைத்து, அந்த அமைப்பைப் போன்ற ஒன்றை கைமுறையாக அமைக்க வேண்டும்.
your-project/
├── scss
│ └── custom.scss
└── bootstrap/
├── js
└── scss
இறக்குமதி செய்கிறது
உங்கள் இல் custom.scss
, நீங்கள் பூட்ஸ்டார்ப்பின் மூல சாஸ் கோப்புகளை இறக்குமதி செய்வீர்கள். உங்களுக்கு இரண்டு விருப்பங்கள் உள்ளன: பூட்ஸ்டார்ப் அனைத்தையும் சேர்க்கவும் அல்லது உங்களுக்குத் தேவையான பகுதிகளைத் தேர்ந்தெடுக்கவும். பிந்தையதை நாங்கள் ஊக்குவிக்கிறோம், இருப்பினும் எங்கள் கூறுகள் முழுவதும் சில தேவைகள் மற்றும் சார்புகள் உள்ளன. எங்கள் செருகுநிரல்களுக்கு நீங்கள் சில ஜாவாஸ்கிரிப்ட்களையும் சேர்க்க வேண்டும்.
// 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";
@import "../node_modules/bootstrap/scss/mixins";
// 4. Include any optional Bootstrap components as you like
@import "../node_modules/bootstrap/scss/root";
@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";
// 5. Add additional custom code here
அந்த அமைப்பில், உங்கள் சாஸ் மாறிகள் மற்றும் வரைபடங்களில் ஏதேனும் ஒன்றை நீங்கள் மாற்றத் தொடங்கலாம் custom.scss
. // Optional
தேவைக்கேற்ப பிரிவின் கீழ் பூட்ஸ்டார்ப்பின் பகுதிகளைச் சேர்க்கத் தொடங்கலாம் . bootstrap.scss
உங்கள் தொடக்கப் புள்ளியாக எங்கள் கோப்பிலிருந்து முழு இறக்குமதி அடுக்கைப் பயன்படுத்த பரிந்துரைக்கிறோம் .
மாறி இயல்புநிலைகள்
பூட்ஸ்டார்ப்பில் உள்ள ஒவ்வொரு Sass மாறியும், !default
Bootstrap இன் மூலக் குறியீட்டை மாற்றாமல் உங்கள் சொந்த Sass இல் மாறியின் இயல்புநிலை மதிப்பை மேலெழுத அனுமதிக்கும் கொடியை உள்ளடக்கியது. தேவைக்கேற்ப மாறிகளை நகலெடுத்து ஒட்டவும், அவற்றின் மதிப்புகளை மாற்றவும் மற்றும் !default
கொடியை அகற்றவும். ஒரு மாறி ஏற்கனவே ஒதுக்கப்பட்டிருந்தால், பூட்ஸ்டார்ப்பில் உள்ள இயல்புநிலை மதிப்புகளால் அது மீண்டும் ஒதுக்கப்படாது.
பூட்ஸ்டார்ப்பின் மாறிகளின் முழுமையான பட்டியலை நீங்கள் இல் காணலாம் scss/_variables.scss
. சில மாறிகள் க்கு அமைக்கப்பட்டுள்ளன null
, இந்த மாறிகள் உங்கள் உள்ளமைவில் மேலெழுதப்படும் வரை சொத்தை வெளியிடாது.
எங்கள் செயல்பாடுகள் இறக்குமதி செய்யப்பட்ட பிறகு மாறி மேலெழுதப்பட வேண்டும், ஆனால் மீதமுள்ள இறக்குமதிகளுக்கு முன்.
npm வழியாக பூட்ஸ்டார்ப்பை இறக்குமதி செய்து தொகுக்கும் போது background-color
மாற்றும் color
ஒரு எடுத்துக்காட்டு இங்கே :<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/mixins";
// Optional Bootstrap components here
@import "../node_modules/bootstrap/scss/root";
@import "../node_modules/bootstrap/scss/reboot";
@import "../node_modules/bootstrap/scss/type";
// etc
கீழே உள்ள உலகளாவிய விருப்பங்கள் உட்பட, பூட்ஸ்டார்ப்பில் உள்ள எந்த மாறிக்கும் தேவையானதை மீண்டும் செய்யவும்.
வரைபடங்கள் மற்றும் சுழல்கள்
பூட்ஸ்டார்ப்பில் ஒரு சில சாஸ் வரைபடங்கள், தொடர்புடைய CSS குடும்பங்களை உருவாக்குவதை எளிதாக்கும் முக்கிய மதிப்பு ஜோடிகள் அடங்கும். எங்கள் வண்ணங்கள், கட்ட முறிவு புள்ளிகள் மற்றும் பலவற்றிற்கு சாஸ் வரைபடங்களைப் பயன்படுத்துகிறோம். Sass மாறிகளைப் போலவே, அனைத்து Sass வரைபடங்களும் !default
கொடியை உள்ளடக்கியது மற்றும் மேலெழுதப்பட்டு நீட்டிக்கப்படலாம்.
எங்களின் சில Sass வரைபடங்கள் இயல்பாகவே காலியாக இணைக்கப்பட்டுள்ளன. கொடுக்கப்பட்ட சாஸ் வரைபடத்தை எளிதாக விரிவாக்க அனுமதிக்க இது செய்யப்படுகிறது, ஆனால் ஒரு வரைபடத்தில் இருந்து உருப்படிகளை அகற்றுவது சற்று கடினமாக இருக்கும்.
வரைபடத்தை மாற்றவும்
வரைபடத்தில் உள்ள அனைத்து மாறிகளும் $theme-colors
தனித்த மாறிகள் என வரையறுக்கப்படுகின்றன. எங்கள் வரைபடத்தில் இருக்கும் நிறத்தை மாற்ற $theme-colors
, பின்வருவனவற்றை உங்கள் தனிப்பயன் சாஸ் கோப்பில் சேர்க்கவும்:
$primary: #0074d9;
$danger: #ff4136;
பின்னர், இந்த மாறிகள் பூட்ஸ்டார்ப்பின் $theme-colors
வரைபடத்தில் அமைக்கப்பட்டுள்ளன:
$theme-colors: (
"primary": $primary,
"danger": $danger
);
வரைபடத்தில் சேர்க்கவும்
$theme-colors
உங்கள் தனிப்பயன் மதிப்புகளுடன் புதிய Sass வரைபடத்தை உருவாக்கி அசல் வரைபடத்துடன் இணைப்பதன் மூலம் புதிய வண்ணங்களை அல்லது வேறு ஏதேனும் வரைபடத்தைச் சேர்க்கவும் . இந்த வழக்கில், நாங்கள் ஒரு புதிய $custom-colors
வரைபடத்தை உருவாக்கி அதை உடன் இணைப்போம் $theme-colors
.
// Create your own map
$custom-colors: (
"custom-color": #900
);
// Merge the maps
$theme-colors: map-merge($theme-colors, $custom-colors);
வரைபடத்திலிருந்து அகற்று
இலிருந்து வண்ணங்களை அகற்ற $theme-colors
, அல்லது வேறு ஏதேனும் வரைபடத்தைப் பயன்படுத்தவும் map-remove
. எங்கள் தேவைகள் மற்றும் விருப்பங்களுக்கு இடையில் நீங்கள் அதைச் செருக வேண்டும் என்பதை நினைவில் கொள்ளவும்:
// Required
@import "../node_modules/bootstrap/scss/functions";
@import "../node_modules/bootstrap/scss/variables";
@import "../node_modules/bootstrap/scss/mixins";
$theme-colors: map-remove($theme-colors, "info", "light", "dark");
// Optional
@import "../node_modules/bootstrap/scss/root";
@import "../node_modules/bootstrap/scss/reboot";
@import "../node_modules/bootstrap/scss/type";
// etc
தேவையான விசைகள்
சாஸ் வரைபடங்களில் சில குறிப்பிட்ட விசைகள் இருப்பதை பூட்ஸ்ட்ராப் கருதுகிறது. சேர்க்கப்பட்ட வரைபடங்களை நீங்கள் தனிப்பயனாக்கும்போது, குறிப்பிட்ட Sass வரைபடத்தின் விசை பயன்படுத்தப்படும் இடத்தில் நீங்கள் பிழைகளை சந்திக்க நேரிடலாம்.
எடுத்துக்காட்டாக, இணைப்புகள், பொத்தான்கள் மற்றும் படிவ நிலைகளுக்கு primary
, success
, மற்றும் danger
விசைகளைப் பயன்படுத்துகிறோம். $theme-colors
இந்த விசைகளின் மதிப்புகளை மாற்றுவது எந்தச் சிக்கலையும் ஏற்படுத்தக்கூடாது, ஆனால் அவற்றை அகற்றுவது Sass தொகுப்பில் சிக்கல்களை ஏற்படுத்தலாம். இந்த நிகழ்வுகளில், அந்த மதிப்புகளைப் பயன்படுத்தும் சாஸ் குறியீட்டை நீங்கள் மாற்ற வேண்டும்.
செயல்பாடுகள்
வண்ணங்கள்
எங்களிடம் உள்ள சாஸ் வரைபடங்களுக்கு அடுத்ததாக , தீம் வண்ணங்களை தனித்தனி மாறிகளாகவும் பயன்படுத்தலாம் $primary
.
.custom-element {
color: $gray-100;
background-color: $dark;
}
tint-color()
பூட்ஸ்டார்ப் மற்றும் shade-color()
செயல்பாடுகள் மூலம் வண்ணங்களை ஒளிரச் செய்யலாம் அல்லது கருமையாக்கலாம் . இந்த செயல்பாடுகள் கருப்பு அல்லது வெள்ளை நிறத்துடன் வண்ணங்களை கலக்கும், சாஸின் சொந்த lighten()
மற்றும் darken()
செயல்பாடுகளைப் போலல்லாமல், இது ஒரு நிலையான அளவு லேசான தன்மையை மாற்றும், இது பெரும்பாலும் விரும்பிய விளைவை ஏற்படுத்தாது.
// 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));
}
நடைமுறையில், நீங்கள் செயல்பாட்டை அழைக்கலாம் மற்றும் நிறம் மற்றும் எடை அளவுருக்களில் தேர்ச்சி பெறுவீர்கள்.
.custom-element {
color: tint-color($primary, 10%);
}
.custom-element-2 {
color: shade-color($danger, 30%);
}
வண்ண வேறுபாடு
வண்ண மாறுபாட்டிற்கான WCAG 2.0 அணுகல் தரநிலைகளை பூர்த்தி செய்ய , ஆசிரியர்கள் குறைந்தபட்சம் 4.5:1 என்ற மாறுபாடு விகிதத்தை வழங்க வேண்டும் , சில விதிவிலக்குகளுடன்.
பூட்ஸ்டார்ப்பில் நாம் சேர்க்கும் கூடுதல் செயல்பாடு வண்ண மாறுபாடு செயல்பாடு, color-contrast
. குறிப்பிட்ட அடிப்படை நிறத்தின் அடிப்படையில் ஒரு ஒளி ( ), இருண்ட ( ) அல்லது கருப்பு ( ) கான்ட்ராஸ்ட் நிறத்தைத் தானாகத் திருப்பித் தருவதற்கு, நிறவெளியில் ஒப்பீட்டு ஒளிர்வை அடிப்படையாகக் கொண்ட மாறுபாடு வரம்புகளைக் கணக்கிடுவதற்கு WCAG 2.0 அல்காரிதத்தைப் பயன்படுத்துகிறது. நீங்கள் பல வகுப்புகளை உருவாக்கும் மிக்சின்கள் அல்லது லூப்களுக்கு இந்தச் செயல்பாடு மிகவும் பயனுள்ளதாக இருக்கும்.sRGB
#fff
#212529
#000
எடுத்துக்காட்டாக, எங்கள் $theme-colors
வரைபடத்திலிருந்து வண்ண ஸ்வாட்ச்களை உருவாக்க:
@each $color, $value in $theme-colors {
.swatch-#{$color} {
color: color-contrast($value);
}
}
இது ஒரு-ஆஃப் கான்ட்ராஸ்ட் தேவைகளுக்கும் பயன்படுத்தப்படலாம்:
.custom-element {
color: color-contrast(#000); // returns `color: #fff`
}
எங்கள் வண்ண வரைபட செயல்பாடுகளுடன் அடிப்படை நிறத்தையும் நீங்கள் குறிப்பிடலாம்:
.custom-element {
color: color-contrast($dark); // returns `color: #fff`
}
எஸ்கேப் எஸ்.வி.ஜி
SVG பின்னணிப் படங்களுக்கு , மற்றும் எழுத்துக்களில் escape-svg
இருந்து தப்பிக்க செயல்பாட்டைப் பயன்படுத்துகிறோம் . செயல்பாட்டைப் பயன்படுத்தும் போது , தரவு URIகள் மேற்கோள் காட்டப்பட வேண்டும்.<
>
#
escape-svg
செயல்பாடுகளைச் சேர்த்தல் மற்றும் கழித்தல்
CSS செயல்பாட்டை மடிக்க add
மற்றும் செயல்பாடுகளைப் பயன்படுத்துகிறோம் . இந்த செயல்பாடுகளின் முதன்மை நோக்கம், "அலகு இல்லாத" மதிப்பு ஒரு வெளிப்பாட்டிற்கு அனுப்பப்படும் போது பிழைகளைத் தவிர்ப்பதாகும். போன்ற வெளிப்பாடுகள் கணித ரீதியாக சரியாக இருந்தாலும், எல்லா உலாவிகளிலும் பிழையை வழங்கும்.subtract
calc
0
calc
calc(10px - 0)
கணக்கீடு செல்லுபடியாகும் உதாரணம்:
$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);
}
கணக்கீடு தவறானது என்பதற்கான எடுத்துக்காட்டு:
$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);
}
கலவைகள்
எங்கள் scss/mixins/
கோப்பகத்தில் ஒரு டன் மிக்சின்கள் உள்ளன, அவை பூட்ஸ்டார்ப்பின் பகுதிகளுக்கு சக்தி அளிக்கின்றன மற்றும் உங்கள் சொந்த திட்டத்திலும் பயன்படுத்தப்படலாம்.
வண்ண திட்டங்கள்
மீடியா வினவிற்கான சுருக்கெழுத்து கலவை , , மற்றும் தனிப்பயன் வண்ணத் திட்டங்களுக்கான prefers-color-scheme
ஆதரவுடன் கிடைக்கிறது .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
}
}