Global Style & Theme
Global Style
์ ์ญ์ผ๋ก ์คํ์ผ์ ์ง์
createGlobalStyle
์ ์ญ ์คํ์ผ์ ์ฒ๋ฆฌํ๋ ํน๋ณํ ์คํ์ผ๋ ์ปดํฌ๋ํธ๋ฅผ ์์ฑํ๋ ํฌํผ ํจ์
์ผ๋ฐ์ ์ธ ์คํ์ผ๋ ์ปดํฌ๋ํธ๋ ์๋์ผ๋ก ํด๋์ค ๋ฒ์๊ฐ ์ง์ ๋์ด ๋ค๋ฅธ ์ปดํฌ๋ํธ๋ก๋ถํฐ ๊ฒฉ๋ฆฌ๋์ง๋ง createGlobalStyle
์ ์ด๋ฌํ ์ ํ์ด ์์ด์ ์ ์ญ ์คํ์ผ๋ง์ด ๊ฐ๋ฅํ๋ค.
์ ์ญ ์คํ์ผ์ reset css๋ฅผ ์ถ๊ฐํ์ฌ ์ด๊ธฐํ๋ ๊ฐ๋ฅํ๋ค.
Theme
๋์์ธ ์์คํ ์ ์ฒด์์ ์ฌ์ฉ๋๋ ์์, ํ์ดํฌ๊ทธ๋ํผ, ์์ด์ฝ ๋ฑ์ ๋์์ธ ์์์ ์งํฉ
ํ ๋ง๋ฅผ ์ ์ํ ๋ ๋์์ธ ์์คํ ์์ ์ฌ์ฉ๋๋ ์ปฌ๋ฌ ํ๋ ํธ, ํ์ดํฌ๊ทธ๋ํผ, ๊ฐ๊ฒฉ ๋ฑ์ ํ ํฐ์ผ๋ก ๊ด๋ฆฌํ๊ณ , ์ด๋ฅผ ์ด์ฉํด์ ๋์์ธ ์์คํ ์ ์ฒด์ ์ผ๊ด์ฑ ์๋ ๋์์ธ์ ์ ์งํ๊ณ ์์ ์ ํจ์จ์ฑ์ ๋ํ๋ค.
Token Naming
๋์ ๋ณด์ด๋ ๋จํธ์ ์ธ ์ ๋ณด๋ฅผ ๋์ด์, โ์๋ฏธโ์ ์ง์ค
๋์์ธ ์์คํ ์ฌ์ฉ์๊ฐ ํน์ ํ ํฐ์ ๋์์ธ ์๋์ ์ฌ์ฉ๋ฒ์ ์ดํดํ ์ ์๋๋ก ํ๋ ๊ฒ์ด ๊ฐ์ฅ ์ค์ํ๋ค.
์ด๋ฌํ ์ฒ ํ์ ์๋์ ๋ฐ๋ฅธ ๋์์ธ์ ๊ฐ๋ฅ์ผ ํ๋ค.
์ปฌ๋ฌ ํ ํฐ์ ์๋ก ๋ค๋ฉด ์์ ๊ฐ์ ์ฝ๋งค์ด์ง ์๊ณ ์๋๊ฐ ๋ ์ ๋ด๊ธด ์ถ์ํ๋ ๋ค์ด๋ฐ์ ์ฌ์ฉํ๋ ๊ฒ์ด ์ข๋ค,
์ถํ ์์๊ฐ์ด ๋ณ๊ฒฝ๋๋ ์ํฉ์ด ์๊ฒจ๋ ์ฝ๋ ๋ณ๊ฒฝ์ด ์ฝ๊ณ , ์ ์ง๋ณด์์ฑ์ด ๋๋ค.
ํ์ง๋ง ์ด๋ค ๊ฒฝ์ฐ๋ ์๋๊ฐ ๋ด๊ธด ๋ค์ด๋ฐ์ ์ฌ์ฉํ๊ธฐ ์ด๋ ค์ธ ์๋ ์๋ค. ์ค์ํ๊ฑด ์ผ๊ด์ฑ๊ณผ ๊ฐ๋ ์ฑ์ด๋ค.
Theme Provider
์คํ์ผ๋ ์ปดํฌ๋ํธ์์ ์ ๊ณต๋๋ ThemeProvider๋ ๋ด๋ถ์ ์ผ๋ก Context API๋ฅผ ์ฌ์ฉํ์ฌ ์์๋ค์๊ฒ ํ ๋ง ๋ฐ์ดํฐ๋ฅผ ์ ๊ณตํ๋ค.
ํ
๋ง ํ์
์ ์ธ ๋ณํฉ
์คํ์ผ ์ปดํฌ๋ํธ ํ์ ์ ์ ํ์ผ์ ์ ์ธ๋ ํ ๋ง ์ธํฐํ์ด์ค ํ์ ์ ์ฌ์ฉ์๊ฐ ๋ง๋ ํ ๋ง์ ํ์ ์ผ๋ก ํ์ฅํ๋ ค๋ฉด, ์ ์ธ ๋ณํฉ์ ์ฌ์ฉํด์ผ ํ๋ค.
์ฌ์ฉ์๊ฐ ์ ์ํ ํ ๋ง์์ ์ญ์ผ๋ก ํ์ ์ ์ถ์ถํด์ ํ์ฅํ๋ฉด ํธ-ํ๋ค.
styled.d.ts
styled.d.ts
DarkMode ๊ตฌํํ๊ธฐ
ํ ๋ง๋ฅผ ๊ฐ์๋ผ์ฐ๋ ์์ผ๋ก ๋คํฌ๋ชจ๋๋ฅผ ๊ตฌํ ๊ฐ๋ฅ
useDarkTheme
useDarkTheme
jest 'window.matchMedia
' ์ค๋ฅ
window.matchMedia
' ์ค๋ฅjest์์ ์ฌ์ฉ๋๋ jsdom์์ ๊ตฌํ๋์ง ์์ ๋ฉ์๋๋ฅผ ์ฌ์ฉํ ๋ ์ค๋ฅ๋ฅผ ๋ฐ์์ํจ๋ค.
์ด ๊ฒฝ์ฐ ๋ชจํน์ ํตํด ํด๊ฒฐ์ด ๊ฐ๋ฅํ๋ค
setupTests.ts
setupTests.ts
Last updated