230320(μ)
π μ±μ₯μΌμ§ 3.2
μ±
ν볡ν μ΄κΈ°μ£Όμμ(μ¨μΈ λ€μ΄μ΄)
μ λ΄μ©μ μκ·Ήλ°μ μμνλ μλ°ν μ±μ₯κΈ°λ‘
μ΄μμλ κ½κ³Ό μ£½μ κ½μ μ΄λ»κ² ꡬλ³νλκ°?
μ±μ₯νκ³ μλ κ²μ΄ μ΄μ μλ κ²μ΄λ€.
μλͺ μ μ μΌν μ¦κ±°λ μ±μ₯μ΄λ€!
π³ ν€μλ (1.0)
μ΅λν κ°λ¨νκ² μ 리, μΆνμ 보면μ μ€μ€λ‘ μ€λͺ
π κ²½ν μμ£Όλ‘ (2.0)
λ¨μ μ 보λ₯Ό μ λ¬νκΈ°λ³΄λ€ λ¬΄μμ λ°°μ κ³ μ΄λ»κ² ν΄κ²°νλμ§ μ§§κ³ κ°λ¨νκ² μμ±
βοΈ μ ν΄μ§ ν νλ¦Ώμ λ§μΆ°μ (3.0)
ν€μλ, κ²½ν λͺ¨λ μ’λ€. λ€λ§ λ§€μΌ μμ±νκΈ°λ‘ λ§μ λ¨Ήμλ§νΌ ν΅μ¬λ§ κ°κ²°νκ² μ 리ν μ μκ² ν νλ¦Ώμ μμ±
(3.1) 230102λΆν° μμλλ νμ΅μ κ΄ν λ΄μ© μΆκ°
(3.2) 230313λΆν° μ’λ κ²½ν, κ°μ μμ£Όμ λ΄μ©λ λ΄κΈ°!
π μ€λμ ν€μλ
CSS μ μ²λ¦¬κΈ°(CSS Preprocessor)
- μ μ²λ¦¬κΈ°λ§μ λ¬Έλ²μ λν CSS λ¨Έλ μ λλ‘ μκ°νλ©΄ λλ€.
- CSSκ° κ°λ λΆλ¦¬ν μ λ€μ 보μνκΈ° μν¨μ΄λ©° λλΆλΆ CSSλ₯Ό νλ‘κ·Έλλ° μΈμ΄μ²λΌ μ¬μ©ν μ μκ² ν΄μ€λ€.(λ³μ, ν¨μ, 쑰건문 λ±)
- κ²°κ΅ CSSμ λν μνΌμ (νμ₯μ )μ΄κΈ° λλ¬Έμ CSSλ‘ μ»΄νμΌλμ΄μΌλ§ νλ€.
Sass/Scss
- Sassμ λ²μ 3λΆν° CSSμ μ’λ κ°κΉμ΄ λ¬Έλ²μΈ Scssκ° λ±μ₯
Scss λ³μ μ μΈ λ°©λ²
$jayden-color: #111111;
.button {
background-color: $jayden-color;
}
// CSS
.container {
margin-top: 10px;
}
.container .item {
padding: 10px;
}
// Sass
.container {
margin-top: 10px;
.item {
padding: 10px;
}
}
@mixin
- cssμμμ ν¨μλΌκ³ μκ°νλ©΄ λλ€. λ³μλ $λ‘ λ§λ€μ΄μ μ λ¬ν μ μλ€.
@mixin jayden-styles($flexDirection: row, $backgroundColor: #000000) {
display: flex;
flex-direction: $flexDirection;
justify-content: space-between;
align-items: center;
background-color: $backgroundColor;
}
.jayden-box {
@include jayden-styles(column, #ffffff);
}
@extend
- νμ μ€ν¬λ¦½νΈμ ν΄λμ€ μμκ³Ό κ°μ κΈ°λ₯. κ·Έλ¬λ css media-query λ΄μμ μ€νλμ§ μμΌλ©° Sass κ°μ΄λλΌμΈμμλ μ¬μ©μ κΆμ₯νμ§ μλλ€.
.a {
padding: 1rem;
}
.b {
@extend .a;
background-color: tomato;
}
@import
- μΈλΆμ λͺ¨λνν΄μ λΆλ¦¬ν΄ λμ Sass νμΌμ λΆλ¬μ λ³ν©νμ¬ μ¬μ©κ°λ₯νλ€.(jsμ λͺ¨λμ²λΌ)
CSS @importλ μ¬μ©ν λλ§λ€ λ§€λ² http νΈμΆμ νκΈ° λλ¬Έμ μλ μ νλ₯Ό κ°μ Έμ¨λ€. κ·Έλ¬λ Sass @importλ CSSλ‘ μ»΄νμΌνμ¬ λ°λ‘ μ²λ¦¬νκΈ° λλ¬Έμ http νΈμΆμ΄ νμνμ§ μμ μλ μ ν λ¬Έμ λ₯Ό λ°μμν€μ§ μλλ€.
@import μ¬μ© ν
- λ³΄ν΅ λ³μμ @mixinμ λ°λ‘ Sass λͺ¨λ νμΌλ‘ λ§λ€κ³ @importνμ¬ μ¬μ©νλ€.
- μ΄ λ, νμΌλͺ
μμ
_
λ₯Ό λΆμ΄λ©΄ CSSλ‘ μ»΄νμΌ λμ§ μλλ€. - μλ₯Ό λ€μ΄
_mixin.scss
,_header.scss
νμΌλͺ μ λ§λ€κ³ , μ£Ό νμΌμμ @import νλ©΄ 2κ°(_mixin.scss
,_header.scss
)μ νμΌ λ΄μ©μ μ£Ό νμΌμ μ μ©λμ§λ§_mixin.scss
,_header.scss
νμΌμ cssλ‘ μ»΄νμΌ λμ§ μκΈ° λλ¬Έμ κ΄λ¦¬νκΈ°κ° νΈλ¦¬ν΄μ§λ€.
- νλμ @importλ‘ μ¬λ¬ νμΌμ λΆλ¬μ¬ μ μλ€.
- μ΄ λ, νμΌλͺ μΌλ‘λ§ @importν΄λ μμμ νμ₯μλ .scssμΈ κ²μ μκΈ° λλ¬Έμ μλΆμ¬λ λλ€.(μ£Όμ: css νμΌμ @import μ .cssλ₯Ό λΆμ¬μ€μΌ νλ€.)
@import '_aaa', '_bbb';
μ°Έκ³
π μμ½ λ° ν루 κ°λ¨ νκ³
μ€λμ Sassμ μΉ μ λλ©μ΄μ μ λν κ°λ κ³΅λΆ ,κΈ°μ‘΄ μ§ν μ€μ΄λ λ―Έμ TS / Vanilla ExtrackμΌλ‘ μ ννκΈ° κ·Έλ¦¬κ³ μλ‘ μμν μκ³ λ¦¬μ¦ μ€ν°λ λ¬Έμ νκΈ°λ₯Ό μλ£νλ€! Sassλ λ΄κ° μκ°ν κ²λ³΄λ€ ν¨μ¬ λ λ€μν κΈ°λ₯λ€μ΄ μμ΄μ λλλ€. ννΈ μ λλ©μ΄μ ννΈλ transitionμ μ μ΄ν΄νκ³ μλλκ° μ€μν ν΅μ¬ κ°λ€. λν μ λλ©μ΄μ κ΄λ ¨νμ¬ μ€μ§μ§μΌλ‘ λΈλΌμ°μ κ° μ°λ¦¬μ μ½λλ₯Ό μ΄λ»κ² νλ©΄μΌλ‘ 그리λμ§ κΉκ² μλ κ² μ€μνλ€κ³ μκ°νλ€!
μ€λ μλ‘ μμν μκ³ λ¦¬μ¦ μ€ν°λ..! μ λ§ λͺΈμ΄ 2κ°μμΌλ©΄ μΆμ μ λλ‘ λ°μκ² μ§λ΄κ³ μλ€..! κ·Έλλ μ΄λ° λ°μ μΆ μμμ μ κΉμ μ¬μ λ₯Ό μ°Ύκ³ κ°λμ λ°μκ² μ§λ΄λ κ²μ λ¬λ―Έλ₯Ό λλΌλ©΄μ μ΄μκ°μ!
μ€λμ μν μ
- μκ³ λ¦¬μ¦ μ€ν°λ μμν μ
- μμΉ¨μ νμ λ νκ³ μΆκ·Όν μ
- μ΄λ²μ£Ό νμ΅ κ³νμ μμ°¨κ² μ§ μ
μ€λμ μμ¬μ΄ μ
- μλ λ§λ¬΄λ¦¬νκ³ μ νλ κ°μλ₯Ό λͺ»λ€μ μ
- μ μ¬μκ°μ μ± μμ½κ³ λ΄μ§ν κ²..?