-
Notifications
You must be signed in to change notification settings - Fork 4
Styling Library: Emotion
JDesignSystem์์๋ ํจ์จ์ ์ด๊ณ ๊ฐ๋ ฅํ ์คํ์ผ๋ง์ ์ํด Emotion์ CSS-in-JS ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ก ์ฑํํ์์ต๋๋ค.
์ Emotion์ธ๊ฐ์?
-
CSS-in-JS
Emotion์ CSS-in-JS ๋ฐฉ์์ ์ง์ํ๋ฉฐ, ์ด๋ ํ๋ก์ ํธ์์ ๋ง์ ์ด์ ์ ์ ๊ณตํฉ๋๋ค. ์ด ๋ฐฉ๋ฒ์ CSS ์คํ์ผ์ JavaScript ํ์ผ ๋ด์ ์ง์ ์์ฑํ ์ ์๊ฒ ํด์ค์ผ๋ก์จ, ์คํ์ผ๊ณผ ์ปดํฌ๋ํธ ๋ก์ง์ ํจ์จ์ ์ผ๋ก ๊ด๋ฆฌํ ์ ์๊ฒ ํฉ๋๋ค.
-
์ ์ฐํ ์คํ์ผ๋ง ( CSS props )
Emotion์ ์คํ์ผ ์ ๋ณด๋ฅผ ์ปดํฌ๋ํธ์ prop ์ฒ๋ผ ์ง์ ์ ๋ฌํ ์ ์์ต๋๋ค. ๋์์ธ ์์คํ ์ ํน์ฑ์ ์ฌ์ฉ์๊ฐ ์ค์ ํ ํ๋กํผํฐ์ ๋ฐ๋ผ ๋ค์ํ๊ฒ ๋์์ธ์ ๋ฐ๊ฟ์ค์ผ ํ๋๋ฐ, ์ด ๋ ์ ์ฐํ๊ฒ ์คํ์ผ๋ง์ ์กฐ์ํด์ค ์ ์๋ค๋ ์ฅ์ ์ด ์์ต๋๋ค. ๋ํ ์คํ์ผ๋ง์ด ๋น๋๊ณผ์ ์ด ์๋ ๋ฐํ์ ํ๊ฒฝ์์ ์๋ํ๊ธฐ ๋๋ฌธ์ props๊ฐ ๋์ ์ผ๋ก ๋ณ๊ฒฝ๋ ๋๋ง๋ค ๋ฐํ์์์ ์คํ์ผ๋ง๋ ๋์ ์ผ๋ก ๋ณ๊ฒฝ๋๊ฒ ๋ฉ๋๋ค.
-
๋ธ๋ผ์ฐ์ Vendor Prefix ์๋ ์ค์
webkit, moz, ms ๋ฑ ๋ธ๋ผ์ฐ์ ์ ๋ง๋ ๋ฒค๋ ํ๋ฆฌํฝ์ค๋ฅผ ์๋์ผ๋ก ์ค์ ํด์ค, CSS์ ํน์ ์์ฑ์ด ๋ชจ๋ ๋ธ๋ผ์ฐ์ ์ ์์ ์ ์ผ๋ก ๋์ํ๊ฒ ๋ฉ๋๋ค. ์ด๋ก ์ธํด, CSS๋ฅผ ์์ฑํ๋ ๊ณผ์ ์ด ํจ์ฌ ๊ฐ๊ฒฐํ๊ณ ์ง๊ด์ ์ด๊ฒ ๋ฉ๋๋ค.
-
SSR ์ง์
Emotion์ SSR์ ์ง์ํด ํ์ด์ง๋ฅผ ๋ ๋๋งํ๋๋ฐ ํ์ํ ๋ชจ๋ ๋ฐ์ดํฐ์ HTML ๋งํฌ์ ์ ์๋ฒ์์ ์์ฑํ ํ ํด๋ผ์ด์ธํธ์ ์ ๋ฌํฉ๋๋ค. ์ด๋ก ์ธํด ์ฌ์ฉ์๋ ๋น ๋ฅด๊ฒ ์์ ํ ๋ ๋๋ง๋ ํ์ด์ง๋ฅผ ๋ณผ ์ ์๊ฒ ๋์ด ์ฌ์ฉ์ ๊ฒฝํ์ ๋์์ด ๋ฉ๋๋ค.
-
์คํ์ผ ์ ๋ณด ์ต์ ํ
Emotion์ CSS prop์ ์ ๋ฌ๋ ์คํ์ผ ์ ๋ณด๋ฅผ ํด์ํ์ฌ ์ค์ CSS ์ฝ๋๋ฅผ ์์ฑํ๊ฒ ๋ฉ๋๋ค. ์ด ๊ณผ์ ์์ ์คํ์ผ ์ ๋ณด๋ฅผ ์ต์ ํํ์ฌ ๋ถํ์ํ ์คํ์ผ ์ค์ ์ด ์ต์ข CSS ์ฝ๋์ ํฌํจ๋์ง ์๋๋ก ๋ง๋ค์ด์ฃผ๊ธฐ ๋๋ฌธ์ ์น ์ฑ๋ฅ์ ๋์์ด ๋ฉ๋๋ค.
ํ CSS-in-JS(ex. styled-components) ์ ๋นํด ์กฐ๊ธ ๋ ๊ฐ๋ณ๊ณ ๋น ๋ฅธ ํผํฌ๋จผ์ค๋ฅผ ๊ฐ์ง๊ณ ์์ต๋๋ค.
์ฌ์ฉ์์
์ธ๊น๋ง๊น.