Skip to content

Styling Library: Emotion

yoycode edited this page Jun 14, 2023 · 3 revisions

JDesignSystem์—์„œ๋Š” ํšจ์œจ์ ์ด๊ณ  ๊ฐ•๋ ฅํ•œ ์Šคํƒ€์ผ๋ง์„ ์œ„ํ•ด Emotion์„ CSS-in-JS ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋กœ ์ฑ„ํƒํ•˜์˜€์Šต๋‹ˆ๋‹ค.

์™œ Emotion์ธ๊ฐ€์š”?

  1. CSS-in-JS

    Emotion์€ CSS-in-JS ๋ฐฉ์‹์„ ์ง€์›ํ•˜๋ฉฐ, ์ด๋Š” ํ”„๋กœ์ ํŠธ์—์„œ ๋งŽ์€ ์ด์ ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ์ด ๋ฐฉ๋ฒ•์€ CSS ์Šคํƒ€์ผ์„ JavaScript ํŒŒ์ผ ๋‚ด์— ์ง์ ‘ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์คŒ์œผ๋กœ์จ, ์Šคํƒ€์ผ๊ณผ ์ปดํฌ๋„ŒํŠธ ๋กœ์ง์„ ํšจ์œจ์ ์œผ๋กœ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค.

  2. ์œ ์—ฐํ•œ ์Šคํƒ€์ผ๋ง ( CSS props )

    Emotion์€ ์Šคํƒ€์ผ ์ •๋ณด๋ฅผ ์ปดํฌ๋„ŒํŠธ์˜ prop ์ฒ˜๋Ÿผ ์ง์ ‘ ์ „๋‹ฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋””์ž์ธ ์‹œ์Šคํ…œ์˜ ํŠน์„ฑ์ƒ ์‚ฌ์šฉ์ž๊ฐ€ ์„ค์ •ํ•œ ํ”„๋กœํผํ‹ฐ์— ๋”ฐ๋ผ ๋‹ค์–‘ํ•˜๊ฒŒ ๋””์ž์ธ์„ ๋ฐ”๊ฟ”์ค˜์•ผ ํ•˜๋Š”๋ฐ, ์ด ๋•Œ ์œ ์—ฐํ•˜๊ฒŒ ์Šคํƒ€์ผ๋ง์„ ์กฐ์ž‘ํ•ด์ค„ ์ˆ˜ ์žˆ๋‹ค๋Š” ์žฅ์ ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ ์Šคํƒ€์ผ๋ง์ด ๋นŒ๋“œ๊ณผ์ •์ด ์•„๋‹Œ ๋Ÿฐํƒ€์ž„ ํ™˜๊ฒฝ์—์„œ ์ž‘๋™ํ•˜๊ธฐ ๋•Œ๋ฌธ์— props๊ฐ€ ๋™์ ์œผ๋กœ ๋ณ€๊ฒฝ๋  ๋•Œ๋งˆ๋‹ค ๋Ÿฐํƒ€์ž„์—์„œ ์Šคํƒ€์ผ๋ง๋„ ๋™์ ์œผ๋กœ ๋ณ€๊ฒฝ๋˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

  3. ๋ธŒ๋ผ์šฐ์ € Vendor Prefix ์ž๋™ ์„ค์ •

    webkit, moz, ms ๋“ฑ ๋ธŒ๋ผ์šฐ์ €์— ๋งž๋Š” ๋ฒค๋” ํ”„๋ฆฌํ”ฝ์Šค๋ฅผ ์ž๋™์œผ๋กœ ์„ค์ •ํ•ด์ค˜, CSS์˜ ํŠน์ • ์†์„ฑ์ด ๋ชจ๋“  ๋ธŒ๋ผ์šฐ์ €์— ์•ˆ์ •์ ์œผ๋กœ ๋™์ž‘ํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ์ด๋กœ ์ธํ•ด, CSS๋ฅผ ์ž‘์„ฑํ•˜๋Š” ๊ณผ์ •์ด ํ›จ์”ฌ ๊ฐ„๊ฒฐํ•˜๊ณ  ์ง๊ด€์ ์ด๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

  4. SSR ์ง€์›

    Emotion์€ SSR์„ ์ง€์›ํ•ด ํŽ˜์ด์ง€๋ฅผ ๋ Œ๋”๋งํ•˜๋Š”๋ฐ ํ•„์š”ํ•œ ๋ชจ๋“  ๋ฐ์ดํ„ฐ์™€ HTML ๋งˆํฌ์—…์„ ์„œ๋ฒ„์—์„œ ์ƒ์„ฑํ•œ ํ›„ ํด๋ผ์ด์–ธํŠธ์— ์ „๋‹ฌํ•ฉ๋‹ˆ๋‹ค. ์ด๋กœ ์ธํ•ด ์‚ฌ์šฉ์ž๋Š” ๋น ๋ฅด๊ฒŒ ์™„์ „ํžˆ ๋ Œ๋”๋ง๋œ ํŽ˜์ด์ง€๋ฅผ ๋ณผ ์ˆ˜ ์žˆ๊ฒŒ ๋˜์–ด ์‚ฌ์šฉ์ž ๊ฒฝํ—˜์— ๋„์›€์ด ๋ฉ๋‹ˆ๋‹ค.

  5. ์Šคํƒ€์ผ ์ •๋ณด ์ตœ์ ํ™”

    Emotion์€ CSS prop์— ์ „๋‹ฌ๋œ ์Šคํƒ€์ผ ์ •๋ณด๋ฅผ ํ•ด์„ํ•˜์—ฌ ์‹ค์ œ CSS ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ์ด ๊ณผ์ •์—์„œ ์Šคํƒ€์ผ ์ •๋ณด๋ฅผ ์ตœ์ ํ™”ํ•˜์—ฌ ๋ถˆํ•„์š”ํ•œ ์Šคํƒ€์ผ ์„ค์ •์ด ์ตœ์ข… CSS ์ฝ”๋“œ์— ํฌํ•จ๋˜์ง€ ์•Š๋„๋ก ๋งŒ๋“ค์–ด์ฃผ๊ธฐ ๋•Œ๋ฌธ์— ์›น ์„ฑ๋Šฅ์— ๋„์›€์ด ๋ฉ๋‹ˆ๋‹ค.

ํƒ€ CSS-in-JS(ex. styled-components) ์— ๋น„ํ•ด ์กฐ๊ธˆ ๋” ๊ฐ€๋ณ๊ณ  ๋น ๋ฅธ ํผํฌ๋จผ์Šค๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

์‚ฌ์šฉ์˜ˆ์‹œ

์“ธ๊นŒ๋ง๊นŒ

.

Clone this wiki locally