3. CSS in JS

1. CSS

Cascading Style Sheets HTML์ด๋‚˜ XML(SVGarrow-up-right, XHTMLarrow-up-right ํฌํ•จ)๋กœ ์ž‘์„ฑ๋œ ๋ฌธ์„œ์˜ ํ‘œ์‹œ ๋ฐฉ๋ฒ•์„ ๊ธฐ์ˆ ํ•˜๊ธฐ ์œ„ํ•œ ์Šคํƒ€์ผ ์‹œํŠธ ์–ธ์–ด ์›น ํŽ˜์ด์ง€์— ์Šคํƒ€์ผ๊ณผ ๋ ˆ์ด์•„์›ƒ์„ ์ ์šฉํ•  ๋•Œ ์‚ฌ์šฉ

css-declaration

๐Ÿ™‹๐Ÿปโ€โ™€๏ธ๏ธ ์ฃผ์˜ ์‚ฌํ•ญ

CSS ๋ฅผ ์ž˜ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด์„  CSS ์ž์ฒด์— ๋Œ€ํ•ด์„œ ์ž˜ ์•Œ๊ณ  ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋ ˆํผ๋Ÿฐ์Šค๋ฅผ ์ฐธ๊ณ ํ•˜์—ฌ CSS ๋ฅผ ์ •๋ฆฌํ•ด๋ด…์‹œ๋‹ค. ์Šคํƒ€์ผ ์ž์ฒด๋Š” ๊ต‰์žฅํžˆ ๋งŽ๊ธฐ ๋•Œ๋ฌธ์— ์ž์ฃผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ๋“ค ์œ„์ฃผ๋กœ ์ฐพ์•„์„œ ์ •๋ฆฌํ•˜์‹œ๋ฉด ์ข‹์Šต๋‹ˆ๋‹ค. ํŠนํžˆ๋‚˜ ์„ ํƒ์ž, ๋ฐ•์Šค๋ชจ๋ธ, media query, Flexbox, Grid ์ •๋„๋Š” ํ•„์ˆ˜์ ์œผ๋กœ ์•Œ๊ณ  ๊ณ„์…”์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๐Ÿ’ก ์ฐธ๊ณ  ๋ ˆํผ๋Ÿฐ์Šค

2. CSS in JS

CSS in JSarrow-up-right

์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋ฅผ ์ด์šฉํ•ด ์Šคํƒ€์ผ ์ปดํฌ๋„ŒํŠธ ํ˜•ํƒœ๋กœ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ํ•ต์‹ฌ

๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ

์ฐธ๊ณ  ๋ ˆํผ๋Ÿฐ์Šค

  1. Scoped styles

  2. Critical CSS

  3. Smarter optimisations

  4. Package management

  5. Non-browser styling

  1. Thinking in components โœ… ์ปดํฌ๋„ŒํŠธ๋กœ ์‚ฌ๊ณ ํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์ด ํ•ต์‹ฌ

  2. CSS-in-JS leverages the full power of the JavaScript ecosystem to enhance CSS.

  3. True rules isolation

  4. Scoped selectors

  5. Vendor Prefixing

  6. Code sharing

  7. Only the styles which are currently in use on your screen are also in the DOM (react-jss).

  8. Dead code elimination

  9. Unit tests for CSS

2023๋…„ 4์›” ๊ธฐ์ค€์œผ๋กœ styled-components > JSS > Emotion ์ˆœ์„œ

์„ฑ๋Šฅ ์ด์Šˆ

CSS-in-JS์™€ ์„ฑ๋Šฅ (2021)arrow-up-right Why We're Breaking Up with CSS-in-JS (2022)arrow-up-right โ†’ CSS ํŒŒ์ผ๊ณผ JS ํŒŒ์ผ ๋กœ๋”ฉ์˜ ์ฐจ์ด

CSS๋Š” ๋ณ‘๋ ฌ๋กœ ๋กœ๋”ฉํ•  ์ˆ˜ ์žˆ๊ณ  ์†๋„๊ฐ€ ๋น ๋ฅธ๋ฐ, JS๋ฅผ ์ด์šฉํ•˜๋ฉด ๋กœ๋”ฉ์ด ๋‹ค ๋๋‚˜๊ณ  ๋‚˜์„œ์•ผ ๋ฌด์–ธ๊ฐ€๋ฅผ ์ง„ํ–‰ํ•  ์ˆ˜ ์žˆ์Œ

๋Œ€์•ˆ

  • Linariaarrow-up-right

    • Zero-Runtime CSS in JS

    • CSS๋ฅผ ํ‰๋ฒ”ํ•œ ํ…์ŠคํŠธ๋กœ ์ž‘์„ฑ

    • React์— ์ข…์†์ ์ด์ง€ ์•Š์ง€๋งŒ, React Styled Component๋„ ์ง€์›ํ•จ

  • vanilla-extractarrow-up-right

    • Zero-runtime Stylesheets in TypeScript

    • CSS๋ฅผ ์˜ค๋ธŒ์ ํŠธ ํ˜•ํƒœ๋กœ ํ‘œํ˜„

    • React์˜ Inline Style๊ณผ ์œ ์‚ฌ

    • React์™€ ๋ฌด๊ด€ํ•˜๊ฒŒ ์‚ฌ์šฉ ๊ฐ€๋Šฅ

Last updated