โ ํ๋ก๊ทธ๋จ์ ๋ง์ , ๋บ์์ด ์ ๋ถ๋ค. โ
- Bill Gates
๋ง์ดํฌ๋ก์ํํธ ์ค๋ฆฝ์

Comment (์ฃผ์)
Sass์ ์ฃผ์์ด CSS ์ ๋ค๋ฅธ์ ์ ํ ์ค ์ฃผ์์ด ์ถ๊ฐ๋์๋ค๋ ์ ์ ๋๋ค.
Sass
/* You can See me */
// You can't see me
/* You
Can
See
Mee
*/
Data Types (๋ฐ์ดํฐ ์ข ๋ฅ)
Numbers | ์ซ์ | 1, .82, 20px, 2emโฆ |
Strings | ๋ฌธ์ | bold, relative "/images/a.png", "dotum" |
Colors | ์์ ํํ | red, blue #FFFF00 rgba(255,0,0,.5) |
Booleans | ๋ ผ๋ฆฌ | true, false |
Nulls | ์๋ฌด๊ฒ๋ ์์. ์ปดํ์ผ ํ์ง ์์. | null |
Lists | ๊ณต๋ฐฑ์ด๋ ,๋ก ๊ตฌ๋ถ๋ ๊ฐ์ ๋ชฉ๋ก | (apple, orange, banana) apple orange |
Maps | Lists์ ์ ์ฌํ๋ ๊ฐ์ด Key: Value ํํ | (apple: a, orange: o, banana: b) |
Variable (๋ณ์)
Sass ๋ CSS์ ๋ณ์ ๊ฐ๋ ์ ๋์ ํด์ค๋๋ค.
๋ณ์๋ก ์ฌ์ฉ ๊ฐ๋ฅํ ํํ๋ ์ซ์, ๋ฌธ์์ด, ํฐํธ, ์์, null, lists ์ maps ๊ฐ ์์ต๋๋ค.
๋ณ์๋ฅผ ์ฌ์ฉ ํ ๋๋ php๊ฐ์ด $ ๋ฌธ์๋ฅผ ์ฌ์ฉํฉ๋๋ค.
โ
Sass
$color-primary: #e96900;
$url-images: "/assets/images/";
$w: 200px;
.box {
width: $w;
margin-left: $w;
background: $color-primary url($url-images + "bg.jpg");
}
โCSS
.box {
width: 200px;
margin-left: 200px;
background: #e96900 url("/assets/images/bg.jpg");
}
Variable Scope (๋ณ์ ์ ํจ ๋ฒ์)
Sass ์ ๋ณ์์ ๋ณ์๋ฒ์๊ฐ ์์ต๋๋ค.
๋ณ์๋ฅผ ํน์ selector (์ ํ์) ์์ ์ ์ธํ๋ฉด ํด๋น selector ์์๋ง ์ ๊ทผ์ด ๊ฐ๋ฅํฉ๋๋ค.
โ์ ์ธ๋ ๋ธ๋ก({}) ๋ด์์๋ง ์ ํจ๋ฒ์๋ฅผ ๊ฐ์ง๋๋ค.
Sass
$primary-color: #333; /* ์ ์ญ ๋ณ์ */
body {
$primary-color: #eee; /* ์ง์ญ ๋ณ์ */
background-color: $primary-color;
}
p {
color: $primary-color;
}
CSS
body {
background-color: #eee;
}
p {
color: #333;
}
โ
๋ณ์ ์ฌ ํ ๋น(Variable Reassignment)
Sass
$red: #FF0000;
$blue: #0000FF;
$color-primary: $blue;
$color-danger: $red;
.box {
color: $color-primary;
background: $color-danger;
}
CSS
.box {
color: #0000FF;
background: #FF0000;
}
!global (์ ์ญ ์ค์ )
!global ํ๋๊ทธ๋ฅผ ์ฌ์ฉํ๋ฉด ๋ณ์์ ์ ํจ๋ฒ์๋ฅผ ์ ์ญ(Global)๋ก ์ค์ ํ ์ ์์ต๋๋ค.
โ
Sass
$primary-color: #333;
body {
$primary-color: #eee !global;
background-color: $primary-color;
}
p {
color: $primary-color;
CSS
body {
background-color: #eee;
}
p {
color: #eee;
}
โ
!default (์ด๊น๊ฐ ์ค์ )
!default ํ๋๊ทธ๋ ํ ๋น๋์ง ์์ ๋ณ์์ ์ด๊น๊ฐ์ ์ค์ ํฉ๋๋ค.
โ๋ณ์์ ๊ฐ์ ์ค์ ํ๊ฒ ์ง๋ง, ํน์ ๊ธฐ์กด ๋ณ์๊ฐ ์์ ๊ฒฝ์ฐ๋ ํ์ฌ ์ค์ ํ๋ ๋ณ์์ ๊ฐ์ ์ฌ์ฉํ์ง ์๊ฒ ๋คโ๋ ์๋ฏธ๋ก ์ธ ์ ์์ต๋๋ค.
Sass
$color-primary: red;
.box {
$color-primary: blue !default;
background: $color-primary;
}
CSS
.box {
background: red;
}
๋ฌธ๋ฒ์ ์๊ฒ ์ง๋ง ๋น์ต ์ด๋์ ์ฐ์ด๋์ง ๋ชจ๋ฅผ ๊ฒ์ ๋๋ค.
์๋ฅผ ๋ค์ด, Bootstrap ๊ฐ์ ์ธ๋ถ Sass(SCSS) ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฐ๊ฒฐํ๋๋ ๋ณ์ ์ด๋ฆ์ด ๊ฐ์ ๋ด๊ฐ ์์ฑํ ์ฝ๋์ ๋ณ์๋ค์ด Overwrite(๋ฎ์ด์ฐ๊ธฐ) ๋๋ค๋ฉด ๋ฌธ์ ๊ฐ ์๊ฒ ์ฃ .
๋ฐ๋๋ก ๋ด๊ฐ ๋ง๋ Sass(SCSS) ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ๋ค๋ฅธ ์ฌ์ฉ์ ์ฝ๋์ ๋ณ์๋ค์ Overwrite ํ๋ค๋ฉด, ์ฌ์ฉ์๋ค์ ๊ทธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ๋ ์ด์ ์ฌ์ฉํ์ง ์์ ๊ฒ์
๋๋ค.
์ด๋ด ๋ Sass(SCSS) ๋ผ์ด๋ธ๋ฌ๋ฆฌ(ํน์ ์๋กญ๊ฒ ๋ง๋ ๋ชจ๋)์์ ์ฌ์ฉํ๋ ๋ณ์์ !default ํ๋๊ทธ๊ฐ ์๋ค๋ฉด ๊ธฐ์กด ์ฝ๋(์๋ณธ)๋ฅผ Overwrite ํ์ง ์๊ณ ๋ ์ฌ์ฉํ ์ ์์ต๋๋ค.
$white: #fff !default;
$gray-100: #f8f9fa !default;
$gray-200: #e9ecef !default;
$gray-300: #dee2e6 !default;
$gray-400: #ced4da !default;
$gray-500: #adb5bd !default;
$gray-600: #6c757d !default;
$gray-700: #495057 !default;
$gray-800: #343a40 !default;
$gray-900: #212529 !default;
$black: #000 !default;
/* ๋ด ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ์ด๋ฌํ ๋ณ์๋ค์ ์ฌ์ฉํ ๊ฒ์ธ๋ฐ,
๋ง์ผ ์ด ๋ณ์๋ช
์ ๊ธฐ์กด์ ์ฌ์ฉํ๊ณ ์๋ ๋ค๋ฅธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ์๋ค๋ฉด, ๊ทธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ์ค์ ๊ฐ์
๋ฐ๋ฅด๊ฒ ๋ค. ๋ผ๋ ๋ป์ด๋ค. */
#{} (๋ฌธ์ ๋ณด๊ฐ)
์๋ฐ์คํฌ๋ฆฝํธ์ ๋ฐฑํฑ `${}` ๋ฌธ๋ฒ๊ณผ ๊ฐ๋ค๊ณ ๋ณด๋ฉด ๋ฉ๋๋ค.
์ค๊ดํธ ์์ ๋ค์ด๊ฐ ๊ฐ์ ๋ฌธ์์ด๋ก ์นํ๋ฉ๋๋ค.
Sass
$family: unquote("Droid+Sans"); /* Sass์ ๋ด์ฅ ํจ์ unquote()๋ ๋ฌธ์์์ ๋ฐ์ดํ๋ฅผ ์ ๊ฑฐ */
@import url("http://fonts.googleapis.com/css?family=#{$family}"); /* #{$family} == Droid+Sans
CSS
@import url("http://fonts.googleapis.com/css?family=Droid+Sans");
Reference
์ด ๊ธ์ด ์ข์ผ์ จ๋ค๋ฉด ๊ตฌ๋ & ์ข์์
์ฌ๋ฌ๋ถ์ ๊ตฌ๋
๊ณผ ์ข์์๋
์ ์์๊ฒ ํฐ ํ์ด ๋ฉ๋๋ค.