์์ฆ Tailwind CSS๋ฅผ 3์์ 4๋ก ์ฌ๋ฆฌ๋ ์์ ์ ์งํํ๊ณ ์๋ค. ์์๋ณด๋ค ๋ง์ ์ด์๊ฐ ์์๋๋ฐ, ๊ทธ๋์ EmotionCSS์ PandaCSS๋ง ๋ค๋ค์์ Tailwind์ ๋ฌธ๋ฒ๊ณผ ๋์ ๋ฐฉ์์ด ๊ฝค ๋ฏ์ค์๋ค. ํนํ ๋ฒ์ ๋ง ์ฌ๋ ธ๋๋ฐ๋ ๊ฐ์ ํด๋์ค์์ ๊ธฐ๋ํ ๊ฐ๊ณผ ์ค์ ๊ฒฐ๊ณผ๊ฐ ํฌ๊ฒ ๋ฌ๋ผ ๋ ์ด์์์ด ๊นจ์ ธ๋ฒ๋ ธ๋๋ฐ, ์ด๋ฅผ ํด๊ฒฐํ๋ ค๋ฉด ๋จผ์ Tailwind v4์ spacing ๊ณ์ฐ ๋ฐฉ์์ ์ดํดํ ํ์๊ฐ ์์๋ค. ์ด๋ฒ ๊ธ์์ ์งง๊ฒ ์ ๋ฆฌํด ๋ณด์๋ค.
PandaCSS์ Tailwind v4์ ์ฐจ์ด
PandaCSS (ํ ํฐ ๋งคํ)
PandaCSS๋ spacing์ design tokens์์ ์ง์ ์ ์ํ๋ค.
์๋ฅผ ๋ค์ด, ์๋์ ๊ฐ์ด ํ ํฐ์ด ์ ์๋ผ ์๋ค๋ฉด ํญ์ ๊ณ ์ ๋ ๊ฐ์ด ์ถ๋ ฅ๋๊ธฐ ๋๋ฌธ์ ๋ค๋ฅธ ๊ฒฐ๊ณผ๊ฐ ๋์ฌ ์ ์๋ค.
{ "spacing": { "1": { "value": "0.25rem" }, // 4px
"2": { "value": "0.5rem" }, // 8px
"96": { "value": "24rem" } // 384px } }- h="96" โ height: var(--spacing-96) โ ํญ์ 384px
์ฆ, Panda๋ ํ ํฐ โ ๊ฐ ๋งคํ๋ง ์์ผ๋ฏ๋ก ์์ธก์ด ํญ์ ๋์ผํ๋ค.
Tailwind v4 (์ ํ ๊ณ์ฐ)
v3๊น์ง๋ Panda์ ๋น์ทํ๊ฒ ๊ณ ์ ๊ฐ์ ๋ฆฌํดํ์ง๋ง, v4๋ถํฐ๋ spacing ์ ํธ ์ ์ฒด๊ฐ --spacing์ด๋ผ๋ ๋จ์ผ ํ ํฐ์ ๊ธฐ์ค์ผ๋ก ๊ณ์ฐ๋๋ค.
/* v4 */
.h-96 { height: calc(var(--spacing) * 96); }- Tailwind ๊ธฐ๋ณธ๊ฐ: --spacing: 0.25 rem (4px ๋จ์)
- ๋ฐ๋ผ์ h-96 = 96 ร 0.25rem = 24 rem = 384px
์ฆ, v4์์๋ ์ซ์ ๊ฐ์ด ์ค์ ๊ธธ์ด๊ฐ ์๋๋ผ ์คํ ์ด๊ณ , ํด๋น ๊ฐ์ --spacing ๊ฐ์ ๋ฐ๋ผ ๋ฌ๋ผ์ง๋ค.


v3 / v4์ ๋์์ธ ํ ํฐ ์ถฉ๋
์ฐ๋ฆฌ ํ์ ๋์์ธ ํ ํฐ์ ํฝ์ ๋จ์๋ฅผ ๊ธฐ์ค์ผ๋ก ์ง์ ๋์ด ์์๊ธฐ ๋๋ฌธ์ ํ ์ผ์๋ v4๋ก ๋ฒ์ ์ด ์ ๋ฐ์ดํธ๋๋ฉด์ ๊ฐ์ ํด๋์ค์ธ๋ฐ ๊ธฐ๋์น์ ์ค์ ๊ฐ ๋ฌ๋ผ ๋ ์ด์์์ด ์ ๋ถ ๊นจ์ง๊ฒ ๋ ๊ฒ์ด๋ค.
ํด๊ฒฐ: --spacing์ 1px ๊ธฐ๋ฐ์ผ๋ก ์ฌ์ ์
์ ์ญ์์ --spacing์ 1px ๋จ์๋ก ๋ฎ์ด์จ์ ์ซ์ ์ ํธ = ํฝ์ ๋ก ๋ง์ถฐ์ฃผ์๋ค.
@layer theme {
:root {
--spacing: 0.0625rem; /* 1px */
}
}์ด์ ๋ชจ๋ spacing ์ ํธ์ ํฝ์ ๋จ์๋ก ๊ณ์ฐ๋๋ฉด์ ๋ ์ด์์ ์ด์๊ฐ ํด๊ฒฐ๋์๋ค.
- h-96 = 96px
- p-4 = 4px
- m-8 = 8px
https://tailwindcss.com/blog/tailwindcss-v4#dynamic-utility-values-and-variants
[Tailwind CSS v4.0
We just released Tailwind CSS v4.0 โ an all-new version of the framework optimized for performance and flexibility, with a reimagined configuration and customization experience, and taking full advantage of the latest advancements the web platform has to
tailwindcss.com](https://tailwindcss.com/blog/tailwindcss-v4#dynamic-utility-values-and-variants)
v3๋ฅผ ์จ๋ณธ ์ ์ด ์์ด์, ๋ฐ๋์์ ๋์ ์ฅ์ ์ด ๊ถ๊ธํด ์ฐพ์๋ณด์๋ค.
- ๋๊ดํธ ํ์ ์์
- v3์์๋ scale์ ์๋ ๊ฐ์ด๋ฉด ๋ฐ๋์ w-[188px]์ฒ๋ผ ์ฌ์ฉํ๊ฑฐ๋ ์ปค์คํ ์ด ํ์ํ๋ค.
- v4์์๋ ๊ทธ๋ฅ w-47์ฒ๋ผ ์ ์๋ง ์ฐ๋ฉด ๋๊ธฐ ๋๋ฌธ์ ์ฝ๋๊ฐ ํจ์ฌ ์งง๊ณ ๊น๋ํด์ง.
- ์ค์ผ์ผ ์ผ๊ด์ฑ ํ๋ณด
- margin, padding, width, height ๋ฑ spacing ๊ด๋ จ ์ ํธ์ด ์ ๋ถ --spacing ํ๋์ ๊ท์น์ผ๋ก ํต์ผ๋๋ค.
- ํ ๋ด์์ ๋จ์ ๊ณ์ฐ ๋ฐฉ์์ด ์ ๊ฐ๊ฐ์ผ ์ผ์ด ์ค์ด๋ ๋ค.
- ํ
๋ง ํ์ฅ ์ฉ์ด
- --spacing ๊ฐ์ 0.25rem ๋์ 1px ๊ฐ์ ์ปค์คํ ๊ฐ์ผ๋ก ์ฌ์ ์ํ๋ฉด, ๋ชจ๋ spacing ์ ํธ์ด ํ ๋ฒ์ ์ฌ๊ณ์ฐ๋๋ค.
- ๋์์ธ ์์คํ ์ ๋จ์ ์ ์ฑ ์ Tailwind์ ๊ทธ๋๋ก ๋ น์ผ ์ ์๋ค.
- ๋ฐํ์ ์ปค์คํฐ๋ง์ด์ง ๊ฐ๋ฅ
- CSS ๋ณ์ ๊ธฐ๋ฐ์ด๋ผ JS๋ก --spacing์ ๋ฐ๊พธ๋ฉด ์ฑ ์ ์ฒด spacing์ด ์ฆ์ ์ฌ์ ์ฉ๋๋ค.
v3


v4

'๐ WIL' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| i18next-parser ์ฌ์ฉํด์ ๋ฒ์ญ ํ๋ก์ธ์ค ๊ฐ์ ํ๊ธฐ (2) | 2025.09.20 |
|---|---|
| Storybook v8 preset ์๋ฌ ํธ๋ฌ๋ธ์ํ (0) | 2025.08.31 |
| ๋ฃจํธ ๋จ์ผ ์ค์น vs ์ํฌ์คํ์ด์ค ์ค์น (3) | 2025.08.17 |
| ์ด๋ฏธ์ง ์๋ํฐ ๋ง๋ค๊ธฐ-1 (2) | 2025.08.10 |
| 8์ ์ฒซ์งธ ์ฃผ.. (6) | 2025.08.03 |