styled-components
ํ์ต ํค์๋
Styled Components
์ค์น ๋ฐ ์ค์
๊ธฐ๋ณธ ๋ฌธ๋ฒ
props
attrs
Reset CSS
Global Style
Theme
๐
๐ป styled-components
CSS in JS ๋ผ์ด๋ธ๋ฌ๋ฆฌ
CSS์ ๋ฌธ์ ์ ์ ํด๊ฒฐํ๊ณ ์ ์๋ฐ์คํฌ๋ฆฝํธ ์ฝ๋๋ก CSS๋ฅผ ์์ฑํ๋ ๋ฐฉ์์ผ๋ก ์ค๊ณ
Tagged Template Literals๋ฌธ๋ฒ ์ฌ์ฉ
๐ Tagged Template Literals ES6์ ์ถ๊ฐ ๋ ๋ฌธ๋ฒ์ผ๋ก template literals ์ ๋์ฑ ๋ฐ์ ๋ ํ ํํ๋ก ํ๊ทธ๋ฅผ ์ฌ์ฉํ๋ฉด ํ ํ๋ฆฟ ๋ฆฌํฐ๋ด์ ํจ์๋ก ํ์ฑ ํ ์ ์๋ค. ํ๊ทธ ํจ์์ ์ฒซ๋ฒ์งธ ์ธ์๋ ๋ฌธ์์ด ๊ฐ์ ๋ฐฐ์ด์ ํฌํจํ๊ณ , ๋๋จธ์ง ์ธ์๋ ํํ์๊ด ๊ด๋ จ๋์ด ์๋ค.
โ๏ธ ์ค์น ๋ฐ ์ค์
ํจํค์ง ์ค์น
Babel Plugin์ SWC์์ ์ธ ์ ์๋๋ก ํฌํ ํ ๊ฒ๋ ํจ๊ป ์ค์น @swc/plugin-styled-components
โญ๏ธ SSR ์ง์ ๋ฑ์ ์ํ ๊ณต์ ๊ถ์ฅ์ฌํญ
vscode-styled-components Extention ์ค์น
.swcrcํ์ผ ์์ฑ
๊ธฐ๋ณธ ์ฌ์ฉ๋ฒ
sytel.์ํ๋ ํ๊ทธ ์ฐ๊ณ ๋ฆฌํฐ๋๋ฐฉ์์ผ๋ก css ์์ฑ๋ค์ ๋ฃ์ด์ฃผ๋ฉด ๋๋ค.
props
props๋ฅผ ์ด์ฉํด์ ํ์ฑํ ์ฌ๋ถ๋ฅผ ํํํ๊ฑฐ๋ ํน์ ์คํ์ผ์ ์ก์ ์ฃผ๊ณ ์ถ์ ๋ ์ ์ฉ
attrs
๊ธฐ๋ณธ ์์ฑ์ ์ถ๊ฐํ ์ ์๋ค. ๋ถํ์ํ๊ฒ ๋ฐ๋ณต๋๋ ์์ฑ์ ์ฒ๋ฆฌํ ๋ ์ ์ฉ
๋ฒํผ์ ๋ง๋ค ๋ ์ ๊ทน์ ์ผ๋ก ํ์ฉ
Reset CSS
styled-reset ํจํค์ง ์ค์น
styled-components ์์ Reset CSS ์ฒ๋ผ ํ๊ทธ๋ค์ ๊ธฐ๋ณธ ์์ฑ์ ์ด๊ธฐํ ํ๊ธฐ ์ํด ์ค์น
์ต์์ ์ปดํฌ๋ํธ ์ ์ฉ
Global Style
stylesํด๋ ,GlobalStyle.tsํ์ผ ์์ฑ
createGlobalStyle ์ฌ์ฉํด์ ์ ์ญ ์คํ์ผ ์ง์
์ต์์ ์ปดํฌ๋ํธ ์ ์ฉ
Theme
Theming โ
<ThemeProvider>ํ์ฉ๋์์ธ ์์คํ ์ ๊ทผ๊ฐ์ ๋ง๋ จํ๋ ํ์ฉ
ex.๋คํฌ๋ชจ๋ ๋์ํ๊ธฐ ์ฌ์
styles/defaultTheme.ts ํ์ผ ์์ฑ
defaultTheme.ts ํ์ผ ์์ฑ์ญ์ผ๋ก typeof ๋ฅผ ์ฌ์ฉํด์ Theme ํ์
์ง์ โ styles/Theme.ts ํ์ผ ์์ฑ
typeof ๋ฅผ ์ฌ์ฉํด์ Theme ํ์
์ง์ โ styles/Theme.ts ํ์ผ ์์ฑstyles/darkTheme.ts ํ์ผ ์์ฑํด์ Theme ์ผ๋ก ํ์
์ง์
darkTheme.ts ํ์ผ ์์ฑํด์ Theme ์ผ๋ก ํ์
์ง์ ์ต์์ <ThemeProvider> ์ปดํฌ๋ํธ๋ฅผ ํตํด ๊ณต๊ธ
<ThemeProvider> ์ปดํฌ๋ํธ๋ฅผ ํตํด ๊ณต๊ธ๊ณต๊ธ ๋ฐ์ theme์ ์ฌ์ฉํ๊ธฐ ์ํด์ ํ์
์ง์ ํ์ โ styled.d.ts ํ์ผ ์์ฑ
styled.d.ts ํ์ผ ์์ฑ์๋ ์ฝ๋ ์ฒ๋ผ ํ๋์ฉ ์ง์ ํด์ค๋ ๋์ง๋ง, ์์ฑ๋ค์ด ์ถ๊ฐ๋ ๊ฐ๋ฅ์ฑ์ ๊ณ ๋ คํด์
Theme.tsํ์ฉ
๋๋
๐ Theme ์๋ฏธ ์๊ฒ ์ฌ์ฉํ๊ธฐ ์ํด ์ฐธ๊ณ
๐จ window.matchMedia Error ๋ฐ์
window.matchMedia Error ๋ฐ์Jest ํ ์คํธ์์ ๋คํฌ๋ชจ๋ ๊ตฌํ์
window.matchMediaError ๋ฐ์
window.matchMedia๋ ์ฌ์ฉ์์ ์์คํ ์ค์ ์ ํ ๋ง๋ฅผ ์ธ์ํ๊ธฐ ์ํด ์ฌ์ฉํ๋ค.
Jest ๊ณต์๋ฌธ์์๋ src/setupTests.ts ํ์ผ ํด๋น ์ฝ๋ ์ฌ์ฉํด์ ์ด์๋ฅผ ํด๊ฒฐํ๋ผ๊ณ ์๋ดํ๊ณ ์๋ค.
๐ ์ฐธ๊ณ
Last updated