๐์ฐธ๊ณ ์๋ฃ
string
๋ฌธ์number
์ซ์boolean
๋ถ๋ฆฐlist
๋ฐฐ์ดmap
๊ฐ์ฒดcolors
์์function
ํจ์null
rgb
์์ ๋ชจ๋list
๋ฐฐ์ด ๋ชจ๋$sprites: Book, Board, News, Favorite, Twitter;
map
๊ฐ์ฒด ๋ชจ๋$breakpoints: (
sm: 576px,
md: 768px,
lg: 992px,
xl: 1200px,
xxl: 1400px,
);
math
์ซ์ ๊ณ์ฐ ๋ชจ๋string
๋ฌธ์ ๋ชจ๋meta
๋ค๋ฅธ ๋ชจ๋ ํ๊ฐ ๋ชจ๋selecter
์ ํ์ ํ๊ฐ ๋ชจ๋@use 'sass:๋ด์ฅ ํจ์'; // ๋ชจ๋ ํธ์ถ
{๋ค์์คํ์ด์ค}.ํจ์() // ๋ชจ๋ ์ฌ์ฉ
ex) list.nth($fontSize, 3)
map.has-key
key ๊ฐ์ ๊ฐ์ง๊ณ ์์ฃผ๋ ํจ์
map.get
value ๊ฐ์ ๊ฐ์ง๊ณ ์์ฃผ๋ ํจ์
.appFooter{
.address{
&__telephone{}
&__link{}
}
}
//์ปดํ์ผ ๊ฒฐ๊ณผ
.appFooter
.appFooter .address
.appFooter .address__telephone
.appFooter .address__link
------------------------------------------
.appFooter{
@at-root .address{
&__telephone{}
&__link{}
}
}
//์ปดํ์ผ ๊ฒฐ๊ณผ
.appFooter
.address
.address__telephone
.address__link
@at-root
@debug
$accent-opacity-color: rgba($khaki, 0.85);
โ rgbํจ์ ์์ ๋ณ์๋ฅผ ๋ด๋ ๊ฒ์ css์์๋ ์๋๋ ๋ฌธ๋ฒ
โ rgb() ํจ์๋ color ๋ด์ฅ ํจ์ ๋ชจ๋
@each {ํ์ฌ ์์๋ฅผ ๊ฐ๋ฆฌํค๋ ์ด๋ฆ} in {๋ณ์ ์ด๋ฆ}
โ๏ธ map ๋ชจ๋์์์ ๋ฐ๋ณตํ๋ ๊ตฌ๋ฌธ
$colors: (
"Book": var.$green,
"News": var.$yellow,
"Board": var.$brown,
"Favorite": var.$orange,
"Twitter": var.$blue,
);
//$section = $colors์ key
//$color = $colors์ value
@each $section, $color in $colors {
.accent#{$section} {
color: $color;
}
}
//.accent$colors์key๋ผ๋ ์ ํ์์ color: $color์ value๊ฐ์ ์์๋๋ก ๋ด์์ค
โ๏ธ list ๋ชจ๋์์์ ๋ฐ๋ณตํ๋ ๊ตฌ๋ฌธ
// sprites๋ผ๋ ๋ณ์์ ๋ฆฌ์คํธ๋ฅผ ๋ด์๋จ๋ค.
$sprites: Book, Board, News, Favorite, Twitter;
$x: 0;
$y: 0;
//$sprite = $sprites์ list ๊ฐ
@each $sprite in $sprites {
//์์ํธํ์ ํ์+$sprites์ list๊ฐ์ ์ด๋ฆ์ ๊ฐ์ง ์ ํ์๋
//๋ฐฐ๊ฒฝ ์์น๊ฐ $x, $y๊ฐ์ ๊ฐ์ง๋ค.
//ํ๋ฒ ๋๋๋ง๋ค $y๋ -115px ๊ฐ์ ๊ฐ์ง๋ค.
&#{$sprite} {
background-position: $x $y;
}
$y: $y - 115px;
}
๐ท๏ธ ์๊ธฐ์์ ์ด ์๋ ํด๋๋ฅผ ํธ์ถํ๋ฉด ์๊ธฐ์์ ๋ ๊ณ์ ๋ถ๋ฌ์ค๊ฒ ๋์ ๋ฌดํ๋ฃจํ๊ฐ ๋์ ์ค๋ฅ๊ฐ ๋ฐ์ํ๋ค. ๊ทธ๋์ ๊ฐ์ ํด๋์์ ์๋๊ฒ์ ํด๋๊ฐ ์๋ ํ์ผ์์ฒด๋ฅผ @use
ํด์ค๋ ๊ฒ ์ข๋ค.
โญ ๋ฒกํฐ ์ด๋ฏธ์ง๋ ํฌ๊ธฐ๊ฐ ์๋ฌด๋ฆฌ ์ปค์ ธ๋ ์ด๋ฏธ์ง๊ฐ ๊นจ์ง์ง ์๊ธฐ ๋๋ฌธ์ ์ด๋ค ๊ฐ์ ์ค๋ ๋ฌธ์ ๊ฐ ์๊ธฐ์ง ์๋๋ค. ๊ทธ๋์ width: 100%, max-width: 100% ๋ ๋ค ์ฌ์ฉํด๋ ๋ฌธ์ ๊ฐ ์์ง๋ง max-width๊ฐ์ ๊ถ์ฅ๋์ง ์๋๋ค. ํ์ง๋ง, ๋ ์คํฐ ์ด๋ฏธ์ง(๋นํธ๋งต)๋ ์๊ธฐ ํฌ๊ธฐ๋ณด๋ค ์ปค์ง๊ฒ ๋๋ฉด ํฝ์ ์ด ๊นจ์ง๊ธฐ ๋๋ฌธ์ ๋ ์์ ์ ํฌ๊ธฐ๊น์ง๋ง ์ปค์ง๋ผ๊ณ ์ ํ์ ์ค์ผํ๋ค. ๊ทธ๋์ width๊ฐ๋ณด๋ค๋ max-width๊ฐ์ ์ฃผ๋๊ฒ ํจ์จ์ ์ด๋ค. โ ๊ฒฐ๊ตญ์ ํด์๋ ์ด์ ๋๋ฌธ!
์ด์ ๊ฐ์ธ ํ๋ก์ ํธ๋ฅผ ์งํํ๋ฉด์ ์ด๋์ ๋ ๊ฐ๋ ์ ์ก์๋์ด์ ์ค๋์ ์์ ์ ๋ง์ด ์ด๋ ต์ง ์์๋ค. ํ์ง๋ง ์ค๊ฐ์ค๊ฐ ํจ์์ ๋ฐ๋ณต๋ฌธ์ ๋ฐฐ์ฐ๋๋ฐ ์๋ฐ์คํฌ๋ฆฝํธ ๊ธฐ์ด๊ฐ ๋ถ์กฑํด์ ๊ทธ๋ฐ์ง ์ ๋งคํ๊ฒ ์ดํด๊ฐ ๊ฐ๋ค. ๋ณต์ตํ๋ฉด์ ์ฒ์ฒํ ํด๋ณด๋๊น ์ดํด๊ฐ ๊ฐ๊ธฐ ์์ํ๋ค. ๊ทธ๋๋ ํผ์ ํจ์ ์ง๋ณด๋ผ ๊ทธ๋ฌ๋ฉด ์์ง์ ๋ชปํ๊ฒ ๋ค....ใ ใ ใ
์งง๊ณ ๊ตต์๋ Sass์ ์์ ์ ์ค๋ ๋๋ฌ๋ค. ๋ค ๋ฐฐ์ฐ๊ณ ๋๋ ์ ์ ์ ๋ง ์ ํ์ฉํ๋ค๋ฉด ์ฝ๋์ ์ฌํ์ฉ, ๊ฐ๊ฒฐํ ๋ฑ ์ฅ์ ์ด ์ ๋ง ๋ง์๋ณด์๋ค. ์ค๋ ๋ฐฐ์ด ๋ด์ฅํจ์๋ค๋ ์ ์ฌ์ฉํ ์ค ์๋ค๋ฉด ๋ค์๋ CSS๋ง์ผ๋ก ์ฝ๋ฉํ๋ ๊ฑฐ๋ ์ํ ๋ฏ ์ถ๋ค. ํ์ง๋ง 3์ผ๋ฐ์ ์๋ฐฐ์์ ์์ง์ Only CSS๊ฐ ์ ์ผ ํธํ๋ค. ๋ด์ผ์ TailwindCSS๋ฅผ ํ๋ฃจ ๋ฐฐ์ฐ๋๋ฐ ์์ ๋ฐ๋ง ๋ด๊ตฌ๋ ์์ค์ผ๋ก ๋ฐฐ์ฐ๋ ๊ฑฐ๋ผ ์ด๊ฒ ๋ง๋? ์ถ๊ธดํ๋ค..๐ญ๐ญ ๋ ๋ง์ด ๋ฐฐ์ฐ๊ณ ์ถ์ด์ใ ใ
๊ทธ๋ฆฌ๊ณ ์ค๋ ๋๋์ด HTML/CSS ํ๋ก์ ํธ ํ์ด ๋ฐํ๋์๋ค. 2๋ถ์ ์ ๋ชจ๋ฅด๋ ๋๊ธฐ๋ถ์ด์๋๋ฐ 1๋ถ์ ๋ผ์ด์ง์์๋ ๋ง์ด ๋ณด์ด๋ ์ด๋ฆ์ด๋ผ ๋ ํผ์๋ง์ ์น๊ทผ๊ฐ์ ๋๊ผ๋ค. ๊ทธ๋ฆฌ๊ณ ์ํ๊ธฐ๋ก ์๋ฌธ๋ ๋๊ธฐ๋ถ์ด๋ผ ํ๋ก์ ํธ์ ๋ํ ๊ฑฑ์ ์ ํ ์๋ฆ ๋จ๋คใ ใ ใ ใ ใ ใ ใ ใ ๋ชจ๋ฅด๋๊ฑฐ ์์ผ๋ฉด ๋ง์ด๋ง์ด ๋ฌผ์ด๋ด์ผ๊ฒ ๋ค. ๋๊ธฐ๋ถ๋คํํ ํผํด๊ฐ ๋์ง ์๋๋ก ํ๋ก์ ํธ ์ ๋ง ์ด์ฌํ ํด์ผ์ง!!