# [[Tailwind CSS v4|Tailwind CSS v4]] ## πŸ“Œ Brief Summary [[Tailwind CSS|Tailwind CSS]] v4λŠ” [[JavaScript|JavaScript]] μ„€μ • 파일 λŒ€μ‹  CSS μš°μ„ (CSS-first) μ•„ν‚€ν…μ²˜λ₯Ό λ„μž…ν•˜μ—¬ ν”„λ‘ νŠΈμ—”λ“œ μŠ€νƒ€μΌλ§μ˜ νŒ¨λŸ¬λ‹€μž„μ„ μ „ν™˜ν•œ ν”„λ ˆμž„μ›Œν¬μž…λ‹ˆλ‹€ [1-3]. Rust 기반의 Oxide 엔진을 νƒ‘μž¬ν•˜μ—¬ κΈ°μ‘΄ λŒ€λΉ„ λΉŒλ“œ 속도λ₯Ό λΉ„μ•½μ μœΌλ‘œ ν–₯μƒμ‹œμΌ°μœΌλ©°, λ„€μ΄ν‹°λΈŒ CSS λ³€μˆ˜λ₯Ό 톡해 λ””μžμΈ 토큰을 직접 μ œμ–΄ν•  수 μžˆλ„λ‘ μ§€μ›ν•©λ‹ˆλ‹€ [3, 4]. 이λ₯Ό 톡해 제둜 컨피그(Zero Config) ν™˜κ²½μ„ μ œκ³΅ν•˜κ³  λŸ°νƒ€μž„ μžλ°”μŠ€ν¬λ¦½νŠΈμ˜ μ˜€λ²„ν—€λ“œ 없이 ν™•μž₯ κ°€λŠ₯ν•œ λ””μžμΈ μ‹œμŠ€ν…œκ³Ό ν…Œλ§ˆ κΈ°λŠ₯을 효율적으둜 κ΅¬ν˜„ν•  수 μžˆμŠ΅λ‹ˆλ‹€ [3, 4]. ## πŸ“– Core Content * **CSS μš°μ„  μ•„ν‚€ν…μ²˜(CSS-First [[Architecture|Architecture]]):** Tailwind CSS v4의 κ°€μž₯ 큰 ꡬ쑰적 λ³€ν™”λŠ” 기쑴의 `tailwind.config.js`λ₯Ό ν†΅ν•œ JavaScript 기반 μ„€μ •μ—μ„œ λ²—μ–΄λ‚˜ CSS 파일 λ‚΄μ—μ„œ 직접 섀정을 κ΄€λ¦¬ν•œλ‹€λŠ” μ μž…λ‹ˆλ‹€ [1-3]. κ°œλ°œμžλŠ” `@source` μ§€μ‹œμ–΄(directive)λ₯Ό 톡해 μœ ν‹Έλ¦¬ν‹° 클래슀λ₯Ό μŠ€μΊ”ν•  μ½˜ν…μΈ  경둜λ₯Ό μ„ μ–Έν•˜κ³ , `@theme` μ§€μ‹œμ–΄λ₯Ό μ‚¬μš©ν•΄ ν…Œλ§ˆμ™€ λ””μžμΈ 토큰을 μ •μ˜ν•©λ‹ˆλ‹€ [5, 6]. * **ν…Œλ§ˆ λ³€μˆ˜(Theme variables) 및 λ„€μ΄ν‹°λΈŒ CSS λ³€μˆ˜:** `@theme` 블둝 내에 λ””μžμΈ 토큰(예: `--color-mint-500`)을 μ •μ˜ν•˜λ©΄, μ΄λŠ” λ„€μ΄ν‹°λΈŒ CSS λ³€μˆ˜λ‘œ λ…ΈμΆœλ  뿐만 μ•„λ‹ˆλΌ `bg-mint-500`, `text-mint-500`κ³Ό 같은 μœ ν‹Έλ¦¬ν‹° ν΄λž˜μŠ€λ“€μ„ μžλ™μœΌλ‘œ μƒμ„±ν•©λ‹ˆλ‹€ [2, 7-9]. μ΄λŸ¬ν•œ λ„€μ΄ν‹°λΈŒ CSS λ³€μˆ˜ μ ‘κ·Ό 방식은 닀크 λͺ¨λ“œλ‚˜ λΈŒλžœλ“œ ν…Œλ§ˆμ™€ 같은 λŸ°νƒ€μž„ ν…Œλ§ˆ μ „ν™˜μ„ JavaScript λ¬Έλ§₯(Context) μ—…λ°μ΄νŠΈ 없이도 μ†μ‰½κ²Œ κ΅¬ν˜„ν•  수 있게 ν•΄μ€λ‹ˆλ‹€ [3, 10]. λ˜ν•œ `var()`λ₯Ό μ‚¬μš©ν•˜μ—¬ μž„μ˜μ˜ κ°’μ΄λ‚˜ 인라인 μŠ€νƒ€μΌμ—μ„œ λ””μžμΈ 토큰을 직접 μ°Έμ‘°ν•˜λŠ” 것도 κ°€λŠ₯ν•΄μ‘ŒμŠ΅λ‹ˆλ‹€ [9, 11]. * **압도적인 μ„±λŠ₯ ν–₯상 (Oxide μ—”μ§„):** Tailwind v4λŠ” Rust둜 μž‘μ„±λœ μƒˆλ‘œμš΄ Oxide 엔진을 λ„μž…ν•˜μ—¬ κΈ°μ‘΄ 버전에 λΉ„ν•΄ μ„±λŠ₯이 크게 ν–₯μƒλ˜μ—ˆμŠ΅λ‹ˆλ‹€ [3, 4, 12]. 전체 λΉŒλ“œ μ†λ„λŠ” μ΅œλŒ€ 10λ°°, 증뢄 λΉŒλ“œ(incremental builds)λŠ” 100λ°° 이상 빨라쑌으며, 거의 즉각적인 HMR(Hot Module Replacement)을 μ œκ³΅ν•©λ‹ˆλ‹€ [3, 4, 13]. μžλ°”μŠ€ν¬λ¦½νŠΈ μ‹€ν–‰ 없이 λΉŒλ“œ νƒ€μž„μ— 정적 CSSλ₯Ό μƒμ„±ν•˜κΈ° λ•Œλ¬Έμ—, λΈŒλΌμš°μ €κ°€ μŠ€νƒ€μΌμ„ λ„€μ΄ν‹°λΈŒν•˜κ²Œ ꡬ문 뢄석할 수 μžˆμ–΄ μ„œλ²„ CPU μ§€μ—° μ‹œκ°„κ³Ό Time to First Byte(TTFB)λ₯Ό 크게 μ€„μž…λ‹ˆλ‹€ [14, 15]. * **ν™•μž₯ κ°€λŠ₯ν•œ λ””μžμΈ μ‹œμŠ€ν…œ 섀계:** Tailwind v4λŠ” μΈκ°„μ˜ 인지 μˆ˜μ€€μ— 맞좰 κ· μΌν•œ 밝기 단계λ₯Ό μ œκ³΅ν•˜λŠ” OKLCH 색상 μ‹œμŠ€ν…œμ„ μ±„νƒν•˜μ—¬ 일관성 μžˆλŠ” 색상 μŠ€μΌ€μΌμ„ μ‰½κ²Œ ꡬ좕할 수 μžˆμŠ΅λ‹ˆλ‹€ [10]. λ˜ν•œ, CVA(Class Variance Authority)와 같은 도ꡬλ₯Ό ν•¨κ»˜ μ‚¬μš©ν•˜λ©΄ μ»΄νŒŒμš΄λ“œ μ»΄ν¬λ„ŒνŠΈ([[Compound Components|Compound Components]]) νŒ¨ν„΄μœΌλ‘œ λ³΅μž‘ν•œ UI μ»΄ν¬λ„ŒνŠΈ λ³€ν˜•(variant)을 직관적이고 ν™•μž₯μ„± 있게 관리할 수 μžˆμŠ΅λ‹ˆλ‹€ [6, 16]. ## πŸ”— Knowledge Connections - **Related Topics:** [[Design Tokens|Design Tokens]], CSS-in-JS, React Server Components, [[Compound Components|Compound Components]] - **Projects/Contexts:** [[Next.js App Router|Next.js App Router]], [[Scalable Design Systems|Scalable DesignSystems]] - **Contradictions/Notes:** μ†ŒμŠ€μ— λ”°λ₯΄λ©΄ Tailwind CSS v4λŠ” JS μ˜€λ²„ν—€λ“œκ°€ μ—†λŠ” 정적 CSS μƒμ„±μœΌλ‘œ 인해 [[Core Web Vitals|Core Web Vitals]] μ΅œμ ν™”μ™€ SSR ν™˜κ²½μ— μœ λ¦¬ν•œ 반면, Styled Components와 같은 λŸ°νƒ€μž„ 기반 CSS-in-JS λΌμ΄λΈŒλŸ¬λ¦¬λŠ” 동적 μŠ€νƒ€μΌλ§μ— 강점이 μžˆμ§€λ§Œ μŠ€νƒ€μΌ 생성 및 μ£Όμž… κ³Όμ •μ—μ„œ JavaScript μ„±λŠ₯ μ˜€λ²„ν—€λ“œκ°€ λ°œμƒν•˜λ©° [[React Server Components|React Server Components]](RSC)μ™€μ˜ κΈ°λ³Έ ν˜Έν™˜μ„±μ΄ λΆ€μ‘±ν•˜λ‹€λŠ” 차이점을 κ°€μ§‘λ‹ˆλ‹€ [14, 17-19]. --- *Last updated: 2026-04-26*