CSS Preprocessor — CSS ကို superpower ပေး | Variables, Nesting, Mixins
$variable, compile process, SCSS vs CSS
Parent-child rules, & selector, BEM with SCSS
Reusable code blocks, parameters, default values
Math operations, built-in functions, color functions
Code reuse, % placeholder selectors, inheritance
File splitting, _partial.scss, @use, @forward
@if/@else, @each over list/map, @for, @while, built-in modules (sass:math, sass:color)
npm install -g sass → sass input.scss output.css
// Variable
$primary: #e040fb;
$padding: 16px;
// Nesting
.nav {
background: $primary;
&__item { padding: $padding; } // BEM
&:hover { opacity: 0.8; } // pseudo
}
// Mixin
@mixin flex-center($dir: row) {
display: flex;
justify-content: center;
align-items: center;
flex-direction: $dir;
}
.hero { @include flex-center(column); }
// @extend
%btn-base { padding: 10px 20px; border-radius: 6px; }
.btn-primary { @extend %btn-base; background: $primary; }
.btn-outline { @extend %btn-base; border: 2px solid $primary; }