๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
JavaScript/React

[SCSS] ์˜จ๋ณด๋”ฉ 3์ฃผ 2์ผ์ฐจ - SCSS ์„ค์น˜ ๋ฐ ์‚ฌ์šฉํ•ด ๋ณด๊ธฐ

by junvely 2023. 3. 21.

๐Ÿฆ„ ์˜จ๋ณด๋”ฉ 3์ฃผ 2์ผ์ฐจ - SCSS ์„ค์น˜ ๋ฐ ์‚ฌ์šฉํ•ด ๋ณด๊ธฐ

โœจ03/21 : ๋ชฉํ‘œ : SCSS ์„ค์น˜ ๋ฐ ๊ธฐ๋ณธ ๋ฌธ๋ฒ• ์ตํžˆ๊ธฐ

์˜จ๋ณด๋”ฉ ์Šคํ„ฐ๋”” 2์ผ์ฐจ, ์ œ๊ณต๋œ CSS ๊ฐ•์˜๊ฐ€ ์•„๋ฌด๋Ÿฐ ์˜๋ฏธ๊ฐ€ ์—†๋Š” ๊ฐ•์˜์ธ ๊ฒƒ ๊ฐ™์•„ ์›๋ž˜ ์ด๋ฒˆ ์ฃผ ๋ชฉํ‘œ์˜€๋˜ SCSS์— ๋Œ€ํ•ด ๊ณต๋ถ€ํ•˜๊ธฐ๋กœ ํ–ˆ๋‹ค.

์˜ค๋Š˜์€ ๊ณต์‹๋ฌธ์„œ๋ฅผ ์ฐธ๊ณ ํ•˜์—ฌ ์„ค์น˜ ๋ฐ ๊ธฐ๋ณธ ๋ฌธ๋ฒ•์„ ์ข€ ์ตํ˜€๋ณด๊ณ  ์—ฐ์Šต๋„ ํ• ๊ฒธ ์•ž์œผ๋กœ๋Š” ํ•ญ์ƒ SCSS๋ฅผ ์‚ฌ์šฉํ•ด ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ•ด ๋ณด๋ ค๊ณ  ํ•œ๋‹ค.


๐Ÿ“’SCSS ์„ค์น˜ ๋ฐ ๊ฒฝํ—˜ํ•ด ๋ณด๊ธฐ

00 SCSS๋ž€ ๋ฌด์—‡์ธ๊ฐ€?

1. SASS : Syntactically Awesome Style Sheets - ๋ฌธ๋ฒ•์ ์œผ๋กœ ์–ด์ธํ•œ ์Šคํƒ€์ผ์‹œํŠธ

2. SCSS : Sassy CSS - ๋ฌธ๋ฒ•์ ์œผ๋กœ Sassyํ•œ ๋ฉ‹์ง„(Sassy) CSS

Sass๋Š” CSS์˜ ๋‹จ์ ์„ ๋ณด์ •ํ•˜๊ธฐ ์œ„ํ•œ CSS์˜ ํ™•์žฅ์œผ๋กœ ๋‚˜์˜จ ์Šคํฌ๋ฆฝํŠธ ์–ธ์–ด์ด๋‹ค.
ํ”„๋กœ์ ํŠธ๊ฐ€ ๊ทœ๋ชจ๊ฐ€ ์ ์  ์ปค์ง€๊ณ , ๋ณต์žกํ•ด์ ธ๊ฐ€๋ฉด์„œ ์Šคํƒ€์ผ์‹œํŠธ๋„ ๋ฉ๋‹ฌ์•„ ์ปค์ง€๊ณ  ๊ด€๋ฆฌํ• ๊ฒŒ ๋งŽ์•„์ง€๋ฉฐ ๋ณต์žกํ•ด์ง„๋‹ค. ์ด์— ๋”ฐ๋ผ ์œ ์ง€๋ณด์ˆ˜๋„ ๋‹น์—ฐํžˆ ํž˜๋“ค์–ด์ง„๋‹ค. 

CSS์˜ ๋‹จ์ ๋“ค์„ ๋ณด์™„ํ•˜๊ธฐ ์œ„ํ•ด variable, nesting, mixin, inheritance ๋“ฑ์˜ ๊ฐœ๋…์ด ์ถ”๊ฐ€๋œ ๊ฒƒ์ด Sass์ด๋‹ค.

Sass(SCSS)๋ฅผ CSS pre-processor(์ „ ์ฒ˜๋ฆฌ๊ธฐ)๋ผ๊ณ ๋„ ํ•˜๋Š”๋ฐ ์ด๋Š” Sass์ž์ฒด๋กœ ๋ธŒ๋ผ์šฐ์ €์— ์ ์šฉํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ CSS๋ฅผ ํ™•์žฅํ•ด์„œ ์‰ฝ๊ณ  ํŽธ๋ฆฌํ•˜๊ฒŒ ์“ฐ๊ธฐ ์œ„ํ•ด ์“ฐ๋Š” ์Šคํฌ๋ฆฝํŒ… ์–ธ์–ด์ด๊ณ , Sass๋กœ ์ž‘์„ฑํ•œ ์ฝ”๋“œ๋Š” ์ปดํŒŒ์ผ์„ ํ•ด์„œ ์ผ๋ฐ˜ CSS์˜ ๋ฌธ๋ฒ•์œผ๋กœ ๋ฐ”๊พผ ๋’ค ์ ์šฉํ•œ๋‹ค๋Š” ๋œป์ด๋‹ค.

 

โž•SCSS์˜ ์žฅ์  :

1. ์„ ํƒ์ž์˜ ์ค‘์ฒฉ(nesting)์„ ํ†ตํ•ด ๋ฐ˜๋ณต๋˜๋Š” ๋ถ€๋ชจ์š”์†Œ ์‚ฌ์šฉ์„ ์ค„์ผ ์ˆ˜ ์žˆ๋‹ค.

2. ๋ณ€์ˆ˜(Variable)๋ฅผ ์‚ฌ์šฉํ•ด CSS ์†์„ฑ๊ณผ ๊ฐ’์„ ์ผ์›ํ™”๋˜๊ฒŒ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ค.

3. ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์—์„œ ์‚ฌ์šฉํ•˜๋Š” ์กฐ๊ฑด๋ฌธ, ๋ฐ˜๋ณต๋ฌธ์„ ์‚ฌ์šฉํ•ด ๋™์ ์ธ CSS ๊ด€๋ฆฌ๊ฐ€ ๊ฐ€๋Šฅํ•˜๋‹ค.

4. ์œ ์ผํ•œ ๋‹จ์ ์€ SCSS๋ฅผ CSS๋กœ *์ปดํŒŒ์ผ์„ ๊ฑฐ์ณ์•ผ ํ•˜๋Š” ๋ฒˆ๊ฑฐ๋กœ์›€์ด ์žˆ๋‹ค.

*์ปดํŒŒ์ผ : ์ปดํ“จํ„ฐ๊ฐ€ ์ดํ•ดํ•˜๋Š” ์–ธ์–ด๋ฅผ => ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋Š” ์–ธ์–ด๋กœ ๋ณ€ํ™˜

* ์ „์ฒ˜๋ฆฌ๊ธฐ : CSSํŒŒ์ผ์„ ๋งŒ๋“ค๊ธฐ ์ „์— ๋ฏธ๋ฆฌ ์ฒ˜๋ฆฌํ•œ๋‹ค๋Š” ์˜๋ฏธ

 

โž•SASS์™€ SCSS ๋ฌธ๋ฒ•์˜ ์ฐจ์ด :

SASS์™€ SCSS๋Š” ์„œ๋กœ ํ˜ธํ™˜ ๊ฐ€๋Šฅํ•˜๋‹ค(์š”์ฆ˜์€ SCSS๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค). ์žฌ์‚ฌ์šฉ ๊ธฐ๋Šฅ์ธ Mixins๊ณผ ๋ฌธ๋ฒ•์ ์œผ๋กœ๋งŒ ์•ฝ๊ฐ„์˜ ์ฐจ์ด๊ฐ€ ์žˆ๋Š”๋ฐ, SASS๋Š” ๋“ค์—ฌ ์“ฐ๊ธฐ+์ค„ ๋ฐ”๊ฟˆ ํ˜•์‹, SCSS๋Š” ์ค‘๊ด„ํ˜ธ+์„ธ๋ฏธ์ฝœ๋ก  ํ˜•์‹์ด๋‹ค. ๋”ฐ๋ผ์„œ SCSS๊ฐ€ CSS์™€ ๊ฐ™์€ ๋ฐฉ์‹์ด๋ผ ์‚ฌ์šฉํ•˜๊ธฐ ์‰ฝ๋‹ค.

=> SASS๋Œ€์‹  SCSS๋กœ ์“ฐ์ž.

SCSS๋Š” 2010๋…„ 5์›” ๋ฒ„์ „ 3Visit Website์œผ๋กœ ์—…๊ทธ๋ ˆ์ด๋“œํ•˜๋ฉด์„œ ๊ฐ–์ถฐ์ง„ ์ƒˆ๋กœ์šด ๋ฌธ๋ฒ• ์ฒด๊ณ„์ด๋‹ค.

CSS ๋ฌธ๋ฒ•์„ SCSS ๋ฌธ๋ฒ• ์•ˆ์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ, CSS ํ•ต๊ณผ IE์˜ filter์™€ ๊ฐ™์€ ํŠน์ • ๋ธŒ๋ผ์šฐ์ € ๋ฒค๋”์šฉ ๋ฌธ๋ฒ•๋„ ํฌํ•จํ•˜์—ฌ CSS๊ฐ€ ์ง€์›ํ•˜๋Š” ๋ชจ๋“  ๋ฌธ๋ฒ•๊ณผ ๊ธฐ๋Šฅ์„ SCSS์—์„œ ๊ทธ๋Œ€๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

์ด๋Ÿฐ ์™„์ „ ํ˜ธํ™˜์„ฑ ๋•๋ถ„์— ๋ชจ๋“  CSS ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ๊ทธ๋Œ€๋กœ ์ด์–ด์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ณ , ๊ธฐ์กด CSS๋ฅผ SCSS๋กœ ์ „ํ™˜ํ•˜๋Š” ์ž‘์—…์„ ์‰ฝ๊ฒŒ ์‹œ์ž‘ํ•  ์ˆ˜ ์žˆ๋‹ค.

๋”ฐ๋ผ์„œ ์ „ ์„ธ๊ณ„์ ์œผ๋กœ SCSS ์‚ฌ์šฉ์ž ์ˆ˜, SCSS๋ฅผ ํ™œ์šฉํ•œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ&ํ”„๋ ˆ์ž„์›Œํฌ ์ˆ˜๊ฐ€ SASS ๋ณด๋‹ค ๋” ๋งŽ๋‹ค.

 

- SCSS์™€ SASS์˜ ์ฐจ์ด์  ์ž์„ธํžˆ ๋ณด๊ธฐ

 

Sass๋Š” SCSS๋กœ ์“ฐ์„ธ์š”

Sass์˜ ํฐ ์žฅ์  ์ค‘ ํ•˜๋‚˜์ธ CSS ์™„์ „ ํ˜ธํ™˜์„ฑ์€ SCSS ๋ฌธ๋ฒ• ์‚ฌ์šฉ์„ ์ „์ œ๋กœ ๋ˆ„๋ฆด ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

designmeme.github.io

 

๐Ÿ’Ž SCSS ๊ฐœ๋… ์†Œ๊ฐœ & ์„ค์น˜ ์„ธํŒ… ๐Ÿ’ฏ ์ •๋ฆฌ

CSS ์™€ Sass(SCSS) Sass(SCSS)์— ๋Œ€ํ•ด ์–˜๊ธฐํ•˜๊ธฐ์— ์•ž์„œ, CSS์— ๋Œ€ํ•œ ์ด์•ผ๊ธฐ๋ฅผ ์งง๊ฒŒ ํ•ด๋ณด์ž. ๐Ÿค” CSS์˜ ๋‹จ์  CSS๋Š” ๋ณต์žกํ•œ ์–ธ์–ด๋Š” ์•„๋‹ˆ์ง€๋งŒ ์ž‘์—…์ด ์ปค์ง€๊ณ  ์ฝ”๋“œ๊ฐ€ ๋งŽ์•„์งˆ์ˆ˜๋ก ๋ถˆํŽธํ•จ์ด ์ƒ๊ธฐ๊ฒŒ ๋œ๋‹ค. ์˜ˆ๋ฅผ๋“ค

inpa.tistory.com

 

์‚ฌ์‹ค ๋‘˜์€ ์™„์ „ํžˆ ๋™์ผํ•œ ๊ธฐ๋Šฅ์„ ๊ฐ–๊ณ  ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์–ด๋Š ๊ฒƒ์„ ์‚ฌ์šฉํ• ์ง€๋Š” ๋‹จ์ง€ ์‹œ๊ฐ์  ์ทจํ–ฅ์˜ ๋ฌธ์ œ๋ผ๊ณ  ๋ฐ–์—” ํ•  ์ˆ˜ ์—†๋Š”๋ฐ, ๋งŒ์ผ ํŒŒ์ด์ฌ ๊ตฌ๋ฌธ ์Šคํƒ€์ผ์— ์ต์ˆ™ํ•˜๋ฉด Sass๋ฅผ, ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๊ตฌ๋ฌธ ์Šคํƒ€์ผ์— ์ต์ˆ™ํ•˜๋ฉด scss๋ฅผ ์“ฐ๋ฉด ๋œ๋‹ค. 

๋‚˜๋Š” ์›น ํผ๋ธ”๋ฆฌ์‹ฑ์œผ๋กœ ์ฝ”๋”ฉ์— ์ž…๋ฌธํ•˜์—ฌ CSS,JS ์Šคํƒ€์ผ์— ๊ต‰์žฅํžˆ ์ต์ˆ™ํ•ด์ ธ ์žˆ๊ธฐ ๋•Œ๋ฌธ์—  SCSS๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ๋กœ ํ–ˆ๋‹ค.

 

 

01 SCSS ์„ค์น˜ & ์ปดํŒŒ์ผ ๋ฐฉ๋ฒ•

1. vscode ์œ ์šฉํ•œ ํ™˜๊ฒฝ์„ค์ •

- vscode settings : ctrl + ,

- vscode ์ž๋™์ €์žฅ : file => auto save ์ฒดํฌ

- ์ž๋™์ €์žฅ ์†๋„ ๋ณ€๊ฒฝ : settings => auto save delay => 500

- CSS emmit ๋ฌธ๋ฒ• : font-weight => fw

- CSS ๋ณ€๊ฒฝ ์‹œ๋งˆ๋‹ค reload ์œ„๋กœ ์˜ฌ๋ผ๊ฐ ๋ฐฉ์ง€ :  settings => full reload ์ฒดํฌ

- ๋ถ€๋ถ„ ์ฃผ์„ => ctrl + shift + /

 

2. nodeํ™˜๊ฒฝ์—์„œ npm์œผ๋กœ ์„ค์น˜

1. node์—์„œ npm์œผ๋กœ ์„ค์น˜

npm install -g sass

 

2. ํ•ด๋‹น ๋””๋ ‰ํ† ๋ฆฌ์— scss -> css๋กœ ๋ณ€ํ™˜ => ๋ณ€ํ™˜ํ•  ํŒŒ์ผ๋ช… - ๋ณ€ํ™˜๋  ํŒŒ์ผ

์˜ต์…˜์œผ๋กœ --watch or -w ๋ฅผ ์ž…๋ ฅํ•ด์ฃผ๋ฉด ํŒŒ์ผ์„ ๊ฐ์‹œํ•˜์—ฌ ์ €์žฅ์‹œ ์ž๋™์œผ๋กœ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ์ปดํŒŒ์ผ ํ•œ๋‹ค.

sass --watch styles/common.scss styles/common.css

 

3. .map ํŒŒ์ผ์ด ์ƒ์„ฑ๋œ๋‹ค.

scss๋ฅผ ์ปดํŒŒ์ผ ํ•ด๋ณด๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์ด .map ์ด๋ผ๋Š” ํŒŒ์ผ์ด ์ƒ๊ธด๊ฑธ ๋ณผ ์ˆ˜ ์žˆ๋‹ค.

์šฐ๋ฆฌ๋Š” css ๋ณธ ํŒŒ์ผ๋งŒ ํ•„์š”ํ•˜๋‹ˆ ์™œ ์ƒ๊ธฐ๋‚˜ ์‹ถ์–ด ์–ด๋Š ์‚ฌ์ดํŠธ๋Š” ์ด .mapํŒŒ์ผ์„ ์ง€์šฐ๋Š” ๊ณผ์ •์„ ์†Œ๊ฐœํ•˜๊ธฐ๋„ ํ•˜์ง€๋งŒ, ์‚ฌ์‹ค ์ด๋Š” ๊ฐœ๋ฐœํ•˜๋Š”๋ฐ ์žˆ์–ด ๊ต‰์žฅํžˆ ์ค‘์š”ํ•œ ํŒŒ์ผ์ด๋‹ค.

.map ํŒŒ์ผ์€ ๋ง๊ทธ๋Œ€๋กœ scss ์™€ css๋ฅผ ๋งคํ•‘ ์‹œ์ผœ์ฃผ๋Š” ์—ญํ• ์„ ํ•˜๋Š” ํŒŒ์ผ์ด๋‹ค. original source๋ฅผ ์‰ฝ๊ฒŒ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋„๋ก ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด์„œ์ด๋‹ค. ์ด๋Ÿฌํ•œ ํŒŒ์ผ์„ ์†Œ์Šค๋งต์ด๋ผ๊ณ  ํ•˜๋Š”๋ฐ ์†Œ์Šค๋งต์€ ํ•œ๋งˆ๋””๋กœ ์••์ถ•๋œ ํŒŒ์ผ๊ณผ ์›๋ณธ์ฝ”๋“œ๋ฅผ ์—ฐ๊ฒฐํ•ด์ฃผ๋Š” ์—ฐ๊ฒฐ๊ณ ๋ฆฌ๋‹ค. ์ด ์†Œ์Šค๋งต์œผ๋กœ ๊ฐœ๋ฐœ์ž๋“ค์€ ๋””๋ฒ„๊น…๋„ ํ•  ์ˆ˜ ์žˆ๊ณ  ๋ธŒ๋ผ์šฐ์ € ์ฆ‰์„์—์„œ ์ˆ˜์ •๋„ ๊ฐ€๋Šฅํ•˜๋‹ค. ํ•˜์ง€๋งŒ ์šฉ๋Ÿ‰์ด ํฌ๊ณ  ๋ณต์žกํ•œ ํŒŒ์ผ๋“ค์„ ๋ธŒ๋ผ์šฐ์ €์—์„œ ์ˆ˜์ •ํ•˜๋‹ค ๋ณด๋ฉด ๊ผฌ์ผ ์ˆ˜๋„ ์žˆ๊ณ  ์ปดํŒŒ์ผ ์‹œ๊ฐ„๋„ ๊ฑธ๋ฆฌ๊ธฐ ๋•Œ๋ฌธ์— ์œ ์˜ํ•ด์•ผํ•˜๋Š” ์ ์ด ์žˆ๋‹ค. ํ˜„์—…์—์„œ๋Š” ์ž‘์—…ํ•œ ์ฝ”๋“œ๊ฐ€ ๋ฐ–์œผ๋กœ ์œ ์ถœ๋˜๋ฉด ์•ˆ๋˜๊ธฐ ๋•Œ๋ฌธ์— ๋””๋ฒ„๊น…์„ ํ•  ๋•Œ์—๋Š” ์†Œ์Šค๋งต์œผ๋กœ ํ•œ๋‹ค๊ณ  ํ•ด๋„ ๋ฐฐํฌํ•  ๋•Œ์—๋Š” ์†Œ์Šค๋งต์„ ๊ผญ ์ง€์šฐ๊ณ  ๋ฐฐํฌํ•œ๋‹ค. ๊ฐœ๋ฐœ์„ ์ ‘ํ•œ์ง€ ์–ผ๋งˆ ์•ˆ๋์œผ๋ฉด ์‚ฌ์šฉํ•  ์ผ์ด ์—†๊ธฐ ๋•Œ๋ฌธ์— false๋กœ ์„ค์ • ํ•˜๋Š”๊ฒŒ ๋Œ€๋‹ค์ˆ˜๋‹ค. => ์ ์šฉ์•ˆ๋˜๋ฉด vscode ๊ป๋‹ค ์ผœ๋ณด๊ธฐ

  "liveSassCompile.settings.generateMap": false, // ๋งŒ์ผ .map ํŒŒ์ผ ์ƒ์„ฑ์„ ๋„๊ณ  ์‹ถ๋‹ค๋ฉด

 

4.SCSS / CSS ํด๋” ๋ถ„๋ฆฌ

๋ณดํ†ต ํ”„๋กœ์ ํŠธ๋ฅผ ํ•˜๋ฉด cssํŒŒ์ผ ๋ง๊ณ  scss๋Š” ์„œ๋ฒ„๊ฐ€ ์ธ์‹ํ•˜์ง€ ๋ชปํ•˜๋Š” ํŒŒ์ผ์ด๋ฏ€๋กœ ์„œ๋ฒ„์— ์˜ฌ๋ฆด ํ•„์š”๊ฐ€ ์—†๋‹ค.

๊ทธ๋ž˜์„œ ์„ค์ •์—์„œ scss์—์„œ ์ปดํŒŒ์ผ๋œ cssํŒŒ์ผ์€ [css]ํด๋”์— ์ €์žฅ๋˜๊ฒŒ ์ฒ˜๋ฆฌ๋ฅผ ํ•˜๋ฉด ํ”„๋กœ์ ํŠธ ํŠธ๋ฆฌ ๊ตฌ์„ฑ์„ ์ •๋ฆฌํ•˜๋Š”๋ฐ ๋„์›€์ด ๋œ๋‹ค. setting.json์„ ์—ด๊ณ  ๋‹ค์Œ๊ณผ ๊ฐ™์ด ํ•ญ๋ชฉ์„ ์ถ”๊ฐ€ํ•ด์ค€๋‹ค.

"liveSassCompile.settings.generateMap": false, // .mapํŒŒ์ผ ์ƒ์„ฑ ์—ฌ๋ถ€
    "liveSassCompile.settings.formats": [ // compile ํ˜•์‹, ํ™•์žฅ์ž๋ช…, ์ €์žฅ ๊ฒฝ๋กœ ์„ค์ •
    {
        "format": "expanded",
        "extensionName": ".css",
        "savePath": "/css" //์ปดํŒŒ์ผ๋œ cssํŒŒ์ผ์€ cssํด๋”์— ์ €์žฅ๋˜๋„๋ก ๊ฒฝ๋กœ๋ณ€๊ฒฝ
    }
    ],
    "liveServer.settings.donotShowInfoMsg": true

์ด์ œ ์ปดํŒŒ์ผ๋œ CSSํŒŒ์ผ์€ CSSํด๋”์— ์ €์žฅ ๋œ๋‹ค. ๊ทธ ๋ฐ–์— SCSSํŒŒ์ผ์€ ์ œ์™ธ ๋“ฑ ๊ธฐ๋Šฅ์€ github์„ ์ฐธ๊ณ ํ•˜๋ฉด ๋œ๋‹ค.

- liveSassCompile.settings.excludeList: ํŠน์ • ํด๋”๋ฅผ ์ œ์™ธํ•ฉ๋‹ˆ๋‹ค. ํด๋” ๋‚ด์˜ ๋ชจ๋“  Sass/Scss ํŒŒ์ผ์€ ๋ฌด์‹œ๋œ๋‹ค.

 

GitHub - ritwickdey/vscode-live-sass-compiler: Compile Sass or Scss file to CSS at realtime with live browser reload feature.

Compile Sass or Scss file to CSS at realtime with live browser reload feature. - GitHub - ritwickdey/vscode-live-sass-compiler: Compile Sass or Scss file to CSS at realtime with live browser reload...

github.com

์ฐธ๊ณ ) settings.json 

"liveSassCompile.settings.formats":[
    // ๊ธฐ๋ณธ์„ค์ •
    {
      "format": "expanded",
      "extensionName": ".css",
      "savePath": null
    },
    // ์ถ”๊ฐ€ํ•˜์—ฌ ์ž‘์„ฑ๊ฐ€๋Šฅ
    {
      "format": "compressed",
      "extensionName": ".min.css",
      "savePath": "/dist/css"
    },
    // ๋” ์ƒ์„ธํ•˜๊ฒŒ ์„ค์ •๊ฐ€๋Šฅ
    {
      "format": "compressed",
      "extensionName": ".min.css",
      "savePath": "~/../css/"
    }
 ]
 
 // format : css๋กœ ์ปดํŒŒ์ผํ•˜๋Š” ์ข…๋ฅ˜

// extensionName : ์ปดํŒŒ์ผ ํ•˜๋Š” css ์ด๋ฆ„ (.css๋กœ ํ• ๊ฒฝ์šฐ scss์˜ ํŒŒ์ผ๋ช…์œผ๋กœ ์ปดํŒŒ์ผ ๋œ๋‹ค.) ์ด๋ฆ„์„ ์ถ”๊ฐ€ํ•˜๋ฉด scss ๋ช… ๋’ค์— ์ด๋ฆ„์œผ๋กœ ๋ถ™๋Š”๋‹ค. 
// ex) test.scss ์ด๊ณ  extensionName ์„ style.css ๋กœ ์„ค์ •ํ•˜๊ณ  ์ปดํŒŒ์ผํ•˜๋ฉด teststyle.css ๋กœ ์ปดํŒŒ์ผ ๋œ๋‹ค.

// savePath : ์ปดํŒŒ์ผ ๋˜์–ด ์ €์žฅ๋˜๋Š” ๊ฒฝ๋กœ์„ค์ •. /๋Š” ํ”„๋กœ์ ํŠธ์˜ ํด๋”๋ฅผ ์˜๋ฏธ ํ•œ๋‹ค.

 

 

[VSCode] scss(sass)๋ฅผ ์ด์šฉํ•˜์—ฌ css ์ปดํŒŒ์ผ ํ•˜๊ธฐ.

vscode ์‹คํ–‰ํ•˜์—ฌ Extensions์— ๋“ค์–ด๊ฐ„๋‹ค. live sass๋ฅผ ๊ฒ€์ƒ‰ ํ•ด๋ณด๋ฉด Extensions ๋ชฉ๋ก์— Live Sass Compiler ๊ฐ€ ์žˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  Live Sass Compiler์„ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด์„  ์ปดํŒŒ์ผํ•˜๊ณ  ํ™”๋ฉด์—์„œ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด์„  ๊ฐ€์ƒ์„œ๋ฒ„๋ฅผ ์ƒ

kcmschool.com

 

3. ์ต์Šคํ…์…˜ ์‚ฌ์šฉํ•˜๊ธฐ

Live Sass Compiler => SCSSํŒŒ์ผ์—์„œ ์ €์žฅ ํ›„ => ๊ฐ€์žฅ ํ•˜๋‹จ์— Watching ํด๋ฆญ ์‹œ ์ž๋™์ปดํŒŒ์ผ ์‹คํ–‰

 

4. SCSSํด๋” ๊ตฌ์กฐ

  • ํŒŒ์ผ๋ช…์— _ ๊ฐ€ ๋ถ™๋Š” ๊ฒฝ์šฐ @import ๋˜์–ด ์‚ฌ์šฉ๋  ๊ฒƒ์ž„์„ ์•”์‹œ
  • @import ์‹œ์—๋Š” ๊ฒฝ๋กœ์— _ ๋ฅผ ๋นผ๋„ ์ธ์‹๋œ๋‹ค.
  • _variables ๋ณ€์ˆ˜
    - ๋””์ž์ด๋„ˆ๋“ค์ด ์ง€์ •ํ•œ ์ƒ‰์ƒ ํŒ”๋ ˆํŠธํฐํŠธ ๊ธฐ๋ณธ ์„ค์ • ๋“ฑ์ด ์ €์žฅ๋˜์–ด์žˆ๋‹ค. ์‚ฌ์ดํŠธ์—์„œ ๊ณตํ†ต์ ์œผ๋กœ ์‚ฌ์šฉ๋˜์–ด์•ผ ํ•  ๋””์ž์ธ ๋ณ€์ˆ˜๊ฐ’๋“ค์ด ๋ชจ์•„์ ธ์žˆ๋‹ค. height, padding, margin ๋“ฑ ๊ตฌ์—ญ์˜ ์˜์—ญ ๋ณ€์ˆ˜๊ฐ’๋“ค์„ ์ฃผ๋กœ ๋ชจ์•„๋‘๊ธฐ๋„ ํ•œ๋‹ค.
  • _reset.scss 
    - 'normalize.css', 'reset.css' ๋กœ ๊ฒ€์ƒ‰ํ•˜๋ฉด ๋งŽ์€ boiler plate code ๊ฐ€ ๋‚˜์˜ด. (์ตœ๊ทผ์—๋Š” normalize.css ๋ฅผ ๋งŽ์ด ์‚ฌ์šฉ.)
  • @importํ•˜์—ฌ ์‚ฌ์šฉ
@import "./abstracts/variables_color";
@import "./abstracts/variables";

@import "./base/preset";
@import "./base/reset";

 

5.SCSS ๊ฐ„๋‹จํ•˜๊ฒŒ ์‚ฌ์šฉํ•ด ๋ณด๊ธฐ

 

Sass(SCSS) ์ ์šฉํ•˜๊ธฐ

๐Ÿ“ ๊ฐœ์š” CSS๋Š” ์ž‘์—…์ด ๊ณ ๋„ํ™” ๋ ์ˆ˜๋ก ๋ถˆํ•„์š”ํ•œ ์„ ํƒ์ž ๊ณผ์šฉ, statement ๋ถ€์žฌ ๋“ฑ ๊ทœ๋ชจ๊ฐ€ ์ปค์งˆ์ˆ˜๋ก ๋ถˆํŽธํ•จ๋„ ๊ฐ™์ด ์ปค์ง„๋‹ค. JavaScript์—์„œ ์ž‘์—…ํ•˜๋‹ค๊ฐ€ React๋กœ ์˜ฎ๊ธฐ๋ฉด์„œ ์ž˜ ์ ์šฉ๋˜๋˜ CSS๊ฐ€ ์ œ ์—ญํ• ์„ ๋ชปํ•ด

hymndev.tistory.com

 

'Style Sheet/Sass' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๊ธ€ ๋ชฉ๋ก

์„ฑ์žฅ ์š•๊ตฌ๊ฐ€ ๊ฐ€ํŒŒ๋ฅธ ์ดˆ๋ณด ๊ฐœ๋ฐœ์ž๋กœ์„œ ๊ณต๋ถ€ํ•œ ๋‚ด์šฉ์„ ์‰ฝ๊ฒŒ ํ’€์–ด์“ด ๊ธฐ์ˆ  ๊ฐœ๋ฐœ์ž ๋ธ”๋กœ๊ทธ๋ฅผ ์šด์˜ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

inpa.tistory.com