์น์ด ์ ์ ๋ณต์กํด์ง๊ณ ๋์ ๊ธฐ๋ฅ ์๊ตฌ๊ฐ ์ฆ๊ฐํ๋ฉด์ HTML๊ณผ CSS๋ง์ผ๋ก ํ๋ฉด์ ๋ชจ๋ ์คํ์ผ์ ์ ์ดํ ์ ์๋ ์ํฉ์ด ๋์๋ค.
์ด๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํ ์ฌ๋ฌ ๊ฐ์ง ์น ์ ํ๋ฆฌ์ผ์ด์ ์คํ์ผ ๊ตฌ์ฑ ๋ฐฉ์์ด ๋ฑ์ฅํ์ผ๋ฉฐ ํฌ๊ฒ ๋ ๊ฐ๋๋ก ๋๋์ด ์ง๋ค.
๐ช ์น ์ปดํฌ๋ํธ ์คํ์ผ๋ง ๊ด๋ฆฌ ์ข ๋ฅ
๐ ์ฐธ๊ณ ์๋ฃ
์ผ์ฑ ์น ์ปดํฌ๋ํธ ์คํ์ผ๋ง ๊ด๋ฆฌ
๊พธ๋ฐ์๋ [CSS] CSS๋ฅผ ๋์ฒดํ CSS in CSS์ CSS in JS์ ๋ํด ์์๋ณด์ (CSS Module , SCSS ๋ฑ)
๐ ์ฐธ๊ณ ์๋ฃ
Sel์ ์๊ฐ์ ์ฅ์ CSS ๋ชจ๋ํ์ ์ค์์ฑ
Javascript Stuff What are CSS Modules? A visual introduction
CSS ๋ชจ๋์ CSS๋ฅผ ๋ชจ๋ํ ํ์ฌ ์ฌ์ฉํ๋ ๋ฐฉ์์ด๋ค. CSS ํด๋์ค๋ฅผ ๋ง๋ค๋ฉด ์๋์ผ๋ก ๊ณ ์ ํ ํด๋์ค๋ค์
์ ๋ง๋ค์ด์ scope๋ฅผ ์ง์ญ์ ์ผ๋ก ์ ํํ๋ค. ๋ชจ๋ํ๋ CSS๋ฅผ ๋ฒ๋ค๋ฌ๋ก ๋ถ๋ฌ์ค๋ฉด ๋ค์๊ณผ ๊ฐ์ด ์ฌ์ฉ์๊ฐ ์ ์ํ๋ ํด๋์ค ๋ค์๊ณผ ๊ณ ์ ํ ํด๋์ค๋ค์
์ผ๋ก ์ด๋ฃจ์ด์ง ๊ฐ์ฒด๊ฐ ๋ฐํ๋๋ค.
๐ช ์ฅ์
๐ช ๋จ์
์๋ฅผ ๋ค๋ฉด, ์ด๋ฌํ ๋์ฐํ ์ํฉ์ด ์ฌ ์ ์๋ค.
๐ ์์
.Box {
background: blue;
color: while;
padding: 2rem;
}
// CSS module import
import styles from "./Box.moudule.css";
const Box = () => {
retrun(
<>
<div className={styles.Box}>{styles.Box}</div>;
</>
);
}
export default Box;
๐ ์ฐธ๊ณ ์๋ฃ
The State of CSS 2021: ์ /ํ์ฒ๋ฆฌ๊ธฐ
MDN CSS ์ ์ฒ๋ฆฌ๊ธฐ
CSS ์ ์ฒ๋ฆฌ๊ธฐ๋ ์ ์ฒ๋ฆฌ๊ธฐ์ ์์ ๋ง์ ํน๋ณํ syntax
๋ฅผ ๊ฐ์ง๊ณ CSS๋ฅผ ์์ฑํ๋๋ก ํ๋ ํ๋ก๊ทธ๋จ์ด๋ค. CSS์ ๋ฌธ์ ์ ์ ํ๋ก๊ทธ๋๋ฐ ๋ฐฉ์, ์ฆ ๋ณ์/ํจ์/์์ ๋ฑ ์ผ๋ฐ์ ์ธ ํ๋ก๊ทธ๋๋ฐ ๊ฐ๋
์ ์ฌ์ฉํ์ฌ ๋ณด์ํ๋ค.
CSS ์ ์ฒ๋ฆฌ๊ธฐ์๋ ๋ค์ํ ๋ชจ๋์ด ์กด์ฌํ๋ค.
๐ช ๊ฐ์ฅ ๋ง์ด ์ฌ์ฉํ๋ ๋ชจ๋ ์ข ๋ฅ
CSS ์ ์ฒ๋ฆฌ๊ธฐ๋ ๊ณตํต ์์ ๋๋ ๋ฐ๋ณต์ ์ธ ํญ๋ชฉ์ ๋ณ์ ๋๋ ํจ์๋ก ๋์ฒดํ ์ ์๋ ์ฌ์ฌ์ฉ์ฑ, ์์ ํจ์ ๋ฐ ๋ด์ฅ ํจ์๋ก ์ธํด ๊ฐ๋ฐ์๊ฐ๊ณผ ๋น์ฉ ์ ์ฝ, ์ค์ฒฉ/์์๊ณผ ๊ฐ์ ์์๋ก ์ธํด ๊ตฌ์กฐํ๋ ์ฝ๋ ์ ์ง ๋ฐ ๊ด๋ฆฌ ์ฉ์ด ๋ค์ ์ฅ์ ์ด ์๋ค.
๋จ์ ์ผ๋ก ์ ์ฒ๋ฆฌ๊ธฐ๋ฅผ ์ํ ๋๊ตฌ๊ฐ ํ์ํ๊ณ ๋ค์ ์ปดํ์ผํ๋๋ฐ ์๊ฐ์ด ์์๋๋ค.
๐ช ๋น์จ ์์
๋ง์กฑ๋ | ๊ด์ฌ๋ | ์ฌ์ฉ๋ | ์ธ์ง๋ |
---|---|---|---|
๋ค์ ์ฌ์ฉํ ์์ / (๋ค์ ์ฌ์ฉํ ์์ + ๋ค์ ์ฌ์ฉ ์ํจ) | ๋ฐฐ์ฐ๊ธธ ์ํจ / (๋ฐฐ์ฐ๊ธธ ์ํจ + ๊ด์ฌ ์์) | (๋ค์ ์ฌ์ฉํ ์์ + ๋ค์ ์ฌ์ฉ ์ํจ) / ์ ๋ถ | (์ ๋ถ - ๋ค์ด๋ณธ ์ ์์) / ์ ๋ถ |
๋ง์กฑ๋
๊ด์ฌ๋
์ฌ์ฉ๋
์ธ์ง๋
๐ Sass
๐ ์ฐธ๊ณ ์๋ฃ
Sass ๊ณต์ ๋ฌธ์
Sass๋ ์ ์ฒ๋ฆฌ๊ธฐ ์ค ๊ฐ์ฅ ๋จผ์ ์ถ์๋์๋ค. ์ด๊ธฐ์๋ ๋ฃจ๋น(Ruby) ์ธ์ด๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๊ตฌ๋๋์๋๋ฐ ์ธ์ด๊ฐ ์ง๋ ํ๊ณ๋ก ์ปดํ์ผ ์๋๊ฐ ๋๋ ค ํ๋ฐ ์ฃผ์์ธ Less์ ์ถ์๋นํ๋ค. ํ์ง๋ง Node-sassํ๋ Node.js ๊ธฐ๋ฐ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ๋์ค๋ฉด์ ๋ค์ ์ธ๊ธฐ๋ฅผ ์ป๊ณ ์๋ค.
๐ Less
๐ ์ฐธ๊ณ ์๋ฃ
Less ๊ณต์ ๋ฌธ์
Less๋ ํธ์ํฐ์ ๋ถํธ์คํธ๋ฉ(Bootstrap)์ ์ฌ์ฉ๋๋ฉด์ ์๋ ค์ก๋ค. ๋ธ๋ผ์ฐ์ ์์ ์๋ฐ์คํฌ๋ฆฝํธ ๋ฌธ๋ฒ์ ์ทจํ๊ณ ์์ผ๋ฉฐ Node.js ๊ธฐ๋ฐ์ผ๋ก ๊ตฌ๋๋๋ค.
๐ PostCSS
๐ ์ฐธ๊ณ ์๋ฃ
PostCSS ๊ณต์ ๋ฌธ์
wikipedia PostCSS
์ผ์์ ์ธ CSS ๋์์ ์๋ํํ๊ธฐ ์ํด ์๋ฐ์คํฌ๋ฆฝํธ ๊ธฐ๋ฐ ํ๋ฌ๊ทธ์ธ์ ์ฌ์ฉํ๋ ์ํํธ์จ์ด ๊ฐ๋ฐ ๋๊ตฌ์ด๋ค. ์ํค๋ฐฑ๊ณผ, ํ์ด์ค๋ถ, ๊นํ๋ธ์ ์ฝ๋๋ฅผ ๊ฐ๋ฐํ๊ธฐ ์ํด ์ฌ์ฉ๋์ด ์๋ค.
Sass์ Less์ ๋ฌ๋ฆฌ PostCSS๋ CSS ์ปดํ์ผ ํ ์ธ์ด๊ฐ ์๋ CSS ๋๊ตฌ ๊ฐ๋ฐ์ ์ํ ํ๋ ์์ํฌ์ด๋ค. ๊ทธ๋ฌ๋ Sass์ Less์ ๊ฐ์ ํ ์ธ์ด๋ฅผ ๊ฐ๋ฐํ๊ธฐ ์ํด ์ฌ์ฉํ ์ ์๋ค.
๐ Stylus
๐ ์ฐธ๊ณ ์๋ฃ
Stylus ๊ณต์ ๋ฌธ์
์๋์ ์ผ๋ก ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์ ํน์ง์ ๋ง์ด ๊ฐ์ง๊ณ ์์ด CSS ํ๋กํผํฐ ๋ด์์ ์ฐ์ฐ์๋ ํจ์, ๋ฃจํ ๋ฑ์ ๋น๊ต์ ์ผ๋ก ์์ ๋กญ๊ฒ ์ฌ์ฉํ ์ ์๋ค.
๐ Assembler CSS
๐ ์ฐธ๊ณ ์๋ฃ
Assembler CSS ๊ณต์ ๋ฌธ์
Assembler CSS Github
๋น ๋ฅธ ํ๋กํ ํ์ ์ ์์ฑ, ๋ณต์กํ ์ํํธ์จ์ด ์ค์น์ ๊ด๋ฆฌ ์์ด mordern ์น์ฌ์ดํธ์ UI ์ปดํฌ๋ํธ๋ฅผ ์ ์ํ ์ ์๋ ์ ์ฉํ ํ๋ ์์ํฌ์ด๋ค.
๐ ์ฐธ๊ณ ์๋ฃ
์ผ์ฑ ์น ์ปดํฌ๋ํธ ์คํ์ผ๋ง ๊ด๋ฆฌ
๊พธ๋ฐ์๋ [CSS] CSS๋ฅผ ๋์ฒดํ CSS in CSS์ CSS in JS์ ๋ํด ์์๋ณด์ (CSS Module , SCSS ๋ฑ)
SOSOLOG CSS-in-JS, ๋ฌด์์ด ๋ค๋ฅธ๊ฐ์?
CSS-TRICKS A Thorough Analysis of CSS-in-JS
The State of CSS 2021: CSS-in-JS
๋จ์ด ๊ทธ๋๋ก ์๋ฐ์คํฌ๋ฆฝํธ ์ฝ๋์์ CSS๋ฅผ ์์ฑํ๋ ๋ฐฉ์์ ๋งํ๋ค. 2014๋ ํ์ด์ค๋ถ ๊ฐ๋ฐ์์ธ Christopher Chedeau aka Vjeux๊ฐ ์ฒ์ ์๊ฐํ๋ค.
โจCSS-in-JS๋ก ํด๊ฒฐํ ์ ์๋ ์ด์โจ
์ปดํฌ๋ํธ ๋ผ์ดํ ์คํ์ผ์ ๋ฎ๊ฒ ์คํ์ผ์ ์ ์ฉํ ์ ์๊ธฐ ๋๋ฌธ์ ๋์ ์คํ์ผ ์ ์ฉ์ ์์ ๋ก์ฐ๋ฉฐ ํน์ ์ปดํฌ๋ํธ์ ์ปดํฌ๋ํธ์ ๋ง๋ ์คํ์ผ์ด ์ข
์๋๊ณ , ํด๋น ์ปดํฌ๋ํธ๊ฐ ๋ ๋๋ง ๋ ๋๋ง ์คํ์ผ ํ๊ทธ๋ฅผ ์์ฑํ๊ธฐ ๋๋ฌธ์ ์ปดํฌ๋ํธ ๊ธฐ๋ฐ์ ํ๋ ์์ํฌ
๋ฅผ ์ฌ์ฉํ ๋ ์ฉ์ดํ๋ค.
๐ช ๋น์จ ์์
๋ง์กฑ๋ | ๊ด์ฌ๋ | ์ฌ์ฉ๋ | ์ธ์ง๋ |
---|---|---|---|
๋ค์ ์ฌ์ฉํ ์์ / (๋ค์ ์ฌ์ฉํ ์์ + ๋ค์ ์ฌ์ฉ ์ํจ) | ๋ฐฐ์ฐ๊ธธ ์ํจ / (๋ฐฐ์ฐ๊ธธ ์ํจ + ๊ด์ฌ ์์) | (๋ค์ ์ฌ์ฉํ ์์ + ๋ค์ ์ฌ์ฉ ์ํจ) / ์ ๋ถ | (์ ๋ถ - ๋ค์ด๋ณธ ์ ์์) / ์ ๋ถ |
๋ง์กฑ๋
๊ด์ฌ๋
์ฌ์ฉ๋
์ธ์ง๋
๊ฐ๋ฐ ํจ์จ์ฑ์ ์ค์ ์ ๋ ์ปดํฌ๋ํธ ์์ฃผ ํ๋ก์ ํธ์ ๊ฒฝ์ฐ CSS-in-JS
๋ฅผ ์งํฅ
์ฆ, ํ์ํ ์ปดํฌ๋ํธ ํ์ด์ง์ CSS ์คํ์ผ ์์๋ง ๋ก๋ฉํ๋ค.
์ฌ์ฉ์ ํธ์์ ์ค์ ์ ๋ ์ธํฐ๋ ํฐ๋ธํ ์น ํ๋ก์ ํธ๋ผ๋ฉด ๋ ๋๋ง ์ ๋ชจ๋ CSS ์คํ์ผ ์์๋ฅผ ๋ก๋ฉํ๋ CSS-in-CSS
๋ฐฉ์์ ์งํฅ
์ฆ, ๋ ๋๋งํ ๋ ๋ชจ๋ CSS ์คํ์ผ ์์๋ฅผ ๋ก๋ฉํ๊ธฐ ๋๋ฌธ์ ์ปดํฌ๋ํธ ์๋๊ฐ ๋ณํ๋๋ผ๋ ๋ฐ๋ก ์ ์ฉ์ด ๊ฐ๋ฅํ๋ค.
โ 2022.03.02
โ 2022.04.10