CSS Preprocessors
In this page:
Preprocessors बनाम Native CSS
CSS Preprocessors (जैसे Sass, Less, या Stylus) scripting languages हैं जो CSS को nesting, variables, और mixins जैसी advanced features के साथ extend करती हैं। आप अपना code preprocessor syntax में लिखते हैं, जिसे standard CSS में compile किया जाता है जिसे browsers पढ़ सकें।
उदाहरण: Preprocessors vs. Native CSS
<!-- SCSS source (needs a preprocessor):
$color: teal;
p {
color: $color;
}
-->
<style>
p { color: teal; }
</style>
<p>Compiled output: teal text</p>
Preprocessor Nesting
Preprocessors आपको अपने CSS selectors को एक-दूसरे के अंदर nest करने देते हैं, आपके HTML tags की nesting structure से match करते हुए, आपके code को organized रखते हुए और repetitive selector paths कम करते हुए।
उदाहरण: Preprocessor Nesting
<style>
.card .title { font-weight: bold; }
.card { border: 2px solid #1e6fd9; padding: 12px; width: 200px; }
.card {
.title {
font-weight: bold;
}
}
</style>
<!-- Nested SCSS compiled to plain CSS below -->
<div class="card"><p class="title">Card title</p></div>
Preprocessor Mixins
Mixins CSS code के reusable blocks हैं जिन्हें आप एक बार define कर सकते हैं और दूसरे selectors के अंदर include कर सकते हैं, repetitive style rules रोकते हुए और अपनी stylesheets को DRY (Don't Repeat Yourself) रखते हुए।
उदाहरण: Preprocessor Mixins
<!-- SCSS source (needs a preprocessor):
@mixin button($bg) {
background: $bg;
padding: 10px 20px;
}
.btn {
@include button(royalblue);
}
-->
<style>
.btn { background: royalblue; padding: 10px 20px; border: 0; color: white; }
</style>
<button class="btn">Button</button>
Preprocessor Variables
Preprocessors CSS में variables introduce करने वाले पहले थे। Preprocessor variables static होते हैं; उन्हें compilation के दौरान उनकी actual values से replace कर दिया जाता है और native CSS variables की तरह browser के DOM के अंदर dynamically update नहीं किया जा सकता।
उदाहरण: Preprocessor Variables
<!-- SCSS source (needs a preprocessor):
$spacing: 16px;
.box {
padding: $spacing;
}
-->
<style>
.box { padding: 16px; background: #cfe8ff; border: 2px solid #1e6fd9; }
</style>
<div class="box">Padding from a variable</div>
Preprocessor File Imports
Preprocessors आपको अपनी stylesheets को अलग, modular files (जैसे _buttons.scss या _theme.scss) में split करने और उन्हें @use या @import rules इस्तेमाल करके एक single, main stylesheet file में import करने देते हैं, आपके project को organized और maintain करने में आसान रखते हुए।
उदाहरण: Preprocessor File Imports
<!-- SCSS source (needs a preprocessor):
@use 'buttons';
@use 'theme';
-->
<style>
.btn { background: royalblue; color: white; border: 0; padding: 10px 20px; }
</style>
<button class="btn">Styles from the imported files</button>
- selectors को तीन levels से आगे गहराई से nest करना, bloated, overly specific compiled CSS files में result होते हुए।
- JavaScript इस्तेमाल करके browser के DOM के अंदर preprocessor variables को dynamically पढ़ने या modify करने की कोशिश करना।
- अपनी preprocessor files compile करना भूल जाना, browsers को raw .scss files load करने के लिए छोड़ते हुए जिन्हें वे पढ़ नहीं सकते।
- CSS Preprocessors (जैसे Sass) CSS को programming-जैसी features के साथ extend करते हैं, उन्हें standard CSS में compile करते हुए।
- styles organize करने के लिए nesting, static configurations के लिए variables, और style code के blocks को साफ़ तरीके से reuse करने के लिए mixins इस्तेमाल करें।
- अपने project stylesheets को underscores से शुरू होने वाली modular, partial files में split करें, और उन्हें @use इस्तेमाल करके combine करें।
Browsers preprocessor files को सीधे नहीं पढ़ सकते; उन्हें हमेशा पहले standard CSS files में compile किया जाना चाहिए, जो हर browser द्वारा natively supported हैं।
Chapter Quiz — Complete all 25 topics to unlock
0/25 topics done
Complete these topics first:
- CSS Container Queries
- CSS Subgrid
- CSS Logical Properties
- CSS Logical Sizing
- CSS Writing Modes
- CSS Aspect Ratio
- CSS Object Fit
- CSS object-position
- CSS Masking
- CSS Math Functions
- CSS Motion Path
- CSS @supports
- CSS @property
- CSS At-Rules
- CSS Cursor
- CSS Will Change
- CSS User Interface
- CSS Print Styles
- CSS Pagination (Print)
- CSS Dark Mode
- CSS Accessibility
- CSS Performance
- CSS Preprocessors
- CSS Frameworks Overview
- CSS Interview Prep