๋ณธ๋ฌธ์œผ๋กœ ๊ฑด๋„ˆ๋›ฐ๊ธฐ

Overview

Sass(SCSS) ๊ฐœ์š”#

โ—๏ธ ํ•ด๋‹น ๊ธ€์€ ํŒจ์ŠคํŠธ์บ ํผ์Šค - ํ”„๋ก ํŠธ์—”๋“œ ๊ฐœ๋ฐœ ๊ฐ•์˜์—์„œ HTML & CSS, SASS(SCSS) Part์˜ ๋ฐ•์˜์›… ๊ฐ•์‚ฌ๋‹˜์˜ ๊ฐ•์˜์ž๋ฃŒ(Sass(SCSS) ์™„์ „ ์ •๋ณต!)๋ฅผ ๋ณด๋ฉฐ ์ •๋ฆฌํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

Sass(SCSS)#

CSS๋Š” ์‰ฌ์šด ์–ธ์–ด์— ์†ํ•˜์ง€๋งŒ ๋ฌธ๋ฒ•์ด ์›์‹œ์ ์ธ ํŽธ์ด๋ผ ์ž‘์—…์ด ๊ณ ๋„ํ™”๋ ์ˆ˜๋ก ๋ณต์žกํ•˜๊ณ ๋ถˆํŽธํ•ด์ง„๋‹ค.

ํ•˜์ง€๋งŒ ์›น์—์„œ๋Š” ํ‘œ์ค€ CSS๋งŒ ๋™์ž‘ํ•  ์ˆ˜ ์žˆ๋‹ค.

Sass๋Š” CSS ์ „์ฒ˜๋ฆฌ๊ธฐ(Preprocessor)๋กœ, CSS์™€ ์œ ์‚ฌํ•˜๊ณ  ๋ณด๋‹ค ํŽธ๋ฆฌํ•œ ๋ฌธ๋ฒ•๊ณผ ๋‹ค์–‘ํ•œ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•œ๋‹ค. ๋”ฐ๋ผ์„œ Sass๋กœ ๋ณด๋‹ค ํŽธํ•˜๊ฒŒ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๋ฉด CSS๋กœ ์ปดํŒŒ์ผ(Compile)ํ•œ์ดํ›„ ์›น์—์„œ ๋™์ž‘ํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋œ๋‹ค.

โ˜๏ธ ๋‹ค๋ฅธ CSS ์ „์ฒ˜๋ฆฌ๊ธฐ๋กœ Less, Stylus๊ฐ€ ์žˆ๋Š”๋ฐ, Sass๊ฐ€ ๊ฐ€์žฅ ์˜ค๋ž˜๋œ CSS ํ™•์žฅ ์–ธ์–ด์ด๋ฉฐ, ์„ฑ์ˆ™๋„๊ฐ€ ๋†’๊ณ  ์ปค๋ฎค๋‹ˆํ‹ฐ๊ฐ€ ๋ฐœ๋‹ฌ๋˜์–ด ์žˆ๋‹ค.

Sass์™€ SCSS#

Sass(Syntactically Awesome Style Sheets)์˜ 3๋ฒ„์ „๋ถ€ํ„ฐ ๋“ฑ์žฅํ•œ SCSS(Sassy Cascading Style Sheets)๋Š” ์ด๋ฆ„์ฒ˜๋Ÿผ CSS ๋ฌธ๋ฒ•์„ ์‚ด๋ ค โ€™Sassํ•œ CSSโ€™์ด๋‹ค.

CSSํ˜ธํ™˜์„ฑ์„ ๊ฐ–์ถฐ CSS๊ฐ€ ์ง€์›ํ•˜๋Š” ๋ชจ๋“  ๋ฌธ๋ฒ•๊ณผ ๊ธฐ๋Šฅ์„ SCSS์—์„œ ๊ทธ๋Œ€๋กœ ์‚ฌ์šฉํ•  ์ˆ˜์žˆ๋‹ค.

// Sass.box  width: 100px  height: 200px  .content    color: red    float: left
// SCSS.box {  width: 100px;  height: 200px;  .content{    color: blue;    float: left;  }}

๋‘˜์˜ ๊ฐ€์žฅ ํฐ ์ฐจ์ด๋Š” Sass๋Š” ์„ ํƒ์ž์˜ ์œ ํšจ๋ฒ”์œ„๋ฅผ โ€™๋“ค์—ฌ์“ฐ๊ธฐโ€™๋กœ ๊ตฌ๋ถ„ํ•˜๊ณ , SCSS๋Š” ์ค‘๊ด„ํ˜ธ( {} )๋กœ ๊ตฌ๋ถ„ํ•œ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค.

CSS์™€์˜ ํ˜ธํ™˜์„ฑ ๋•Œ๋ฌธ์— SCSS์˜ ๋ฐฉ์‹์ด ์„ ํ˜ธ๋œ๋‹ค.

โ˜๏ธ ์ด์™ธ์—๋„ @mixin , @include ๋“ฑ์—์„œ ์ฐจ์ด๊ฐ€ ์žˆ๋‹ค.

์ปดํŒŒ์ผ ํ™˜๊ฒฝ#

SassMeister#

๊ฐ„๋‹จํ•˜๊ฒŒ ์›นํŽ˜์ด์ง€์—์„œ ์‚ฌ์šฉํ•˜๋Š” Sass ์ปดํŒŒ์ผ๋Ÿฌ

SassMeister

Parcel#

๋จผ์ € npm์ด ์„ค์น˜๋˜์–ด ์žˆ์–ด์•ผ ํ•œ๋‹ค.

node.js ๋‹ค์šด๋กœ๋“œ

ํ”„๋กœ์ ํŠธ์—์„œ

npm init -y

์ดํ›„ Parcel์„ ์„ค์น˜ํ•œ๋‹ค

npm install --save-dev parcel-bundler

๊ทธ๋ฆฌ๊ณ  <link> ๋กœ Sass ํŒŒ์ผ์ด ์—ฐ๊ฒฐ๋˜์–ด ์žˆ๋Š” index.html ์„ ์‹คํ–‰ํ•ด๋ณธ๋‹ค.

npx parcel index.html

2020-03-21-overview-image-0

terminal-output-parcel

Reference#

ํŒจ์ŠคํŠธ์บ ํผ์Šค - ํ”„๋ก ํŠธ์—”๋“œ ๊ฐœ๋ฐœ ๊ฐ•์˜ - HTML & CSS, SASS(SCSS) Part by ParkYoungWoong

Sass(SCSS) ์™„์ „ ์ •๋ณต!