본문 바로가기
Frontend2026년 5월 17일6분 읽기

CSS 프레임워크 2026 — Tailwind v4 vs UnoCSS vs Panda 결정 가이드

YS
김영삼
조회 863
CSS 프레임워크 2026 — Tailwind v4 vs UnoCSS vs Panda 결정 가이드

핵심 요약

2026년 5월 현재 React/Vue 진영에서 사실상 표준은 Tailwind v4지만, UnoCSS와 Panda CSS가 각자 다른 축에서 도전 중. Tailwind v4는 Oxide 엔진으로 빌드 100ms대 진입, UnoCSS는 프리셋 자유도와 attributify, Panda는 zero-runtime CSS-in-JS와 타입 안전 토큰이 차별점. 결론부터: 디자인 시스템이 중심이면 Panda, 빠른 프로토타이핑은 Tailwind, 멀티 프레임워크·커스텀 DSL은 UnoCSS.

1. Tailwind v4 — Oxide의 진짜 실력

v4가 1년 넘게 안정화되면서 Rust 기반 Oxide 엔진이 모든 작업을 통합. CSS-first 설정으로 tailwind.config.js가 사라졌고 @theme 디렉티브로 토큰을 선언한다.

/* app.css */
@import "tailwindcss";

@theme {
  --color-brand-500: oklch(0.72 0.18 250);
  --font-display: "Pretendard Variable", sans-serif;
  --spacing-card: 1.25rem;
}

JIT 컴파일이 incremental로 동작해서 HMR 시 변경된 클래스만 추가 빌드. 50만 라인 모노레포에서 초기 빌드 380ms, 증분 8ms.

2. UnoCSS — 프리셋이라는 자유

// uno.config.ts
import { defineConfig, presetWind3, presetAttributify, presetIcons } from 'unocss'

export default defineConfig({
  presets: [presetWind3(), presetAttributify(), presetIcons()],
  shortcuts: {
    'btn': 'px-4 py-2 rounded bg-blue-500 text-white hover:bg-blue-600',
  },
  rules: [
    [/^m-(\d+)$/, ([, d]) => ({ margin: d + 'px' })],
  ],
})

attributify 모드를 켜면 <button bg="blue-500 hover:blue-600" text="white"> 같은 문법이 가능. 단, 가독성 호불호가 심하다.

3. Panda CSS — 타입 안전 zero-runtime

import { css } from 'styled-system/css'
import { button } from 'styled-system/recipes'

<button className={button({ size: 'lg', variant: 'solid' })}>
  <span className={css({ color: 'brand.500', fontSize: 'xl' })}>Hello</span>
</button>

토큰·레시피가 모두 타입 추론되어 오타나 잘못된 토큰명은 컴파일 에러. 디자인 시스템 운영팀에 강력하다.

4. 빌드 성능 실측

Next.js 15 + React 19 프로젝트, 컴포넌트 1200개, 클래스 사용처 4.2만개 기준.

지표Tailwind v4UnoCSSPanda
cold build CSS380ms290ms1.2s
HMR (1 클래스 추가)8ms5ms180ms
최종 CSS 크기42KB38KB61KB
JS 추가 번들003.2KB

5. DX — 자동완성과 디버깅

Tailwind는 공식 VSCode 익스텐션이 가장 성숙. 클래스 자동완성, 호버 시 CSS 미리보기, prettier-plugin-tailwindcss로 정렬까지 자동. UnoCSS는 별도 인스펙터(웹 UI)가 강력하지만 자동완성은 살짝 느리다. Panda는 타입 기반이라 자동완성·리네이밍이 IDE에서 그대로 동작 — 토큰 변경 시 사용처 추적이 즉시 가능.

6. 디자인 토큰과 다크모드

// Panda semantic token
tokens: {
  colors: { gray100: { value: '#f3f4f6' } }
},
semanticTokens: {
  colors: {
    bg: { value: { base: '{colors.gray100}', _dark: '{colors.gray900}' } }
  }
}

7. 마이그레이션 함정

Tailwind v3 -> v4는 공식 codemod가 95% 처리하지만 @apply 남용 프로젝트는 수동 정리 필요. UnoCSS로 옮길 땐 임의값 문법이 약간 달라 정규식 치환 한 번. Panda로 옮기는 건 사실상 재작성 — 클래스 문자열을 함수 호출로 바꿔야 해서 1주 이상 잡아야 한다.

8. 팀 규모별 결정

상황추천이유
스타트업, 빠른 MVPTailwind v4학습 자료·LLM 지원 최다
디자인 시스템 보유 50명+Panda토큰 타입 안전성·레시피
Vue·Svelte·Astro 혼용UnoCSS프레임워크 중립·프리셋
아이콘 100종 이상UnoCSSpresetIcons로 zero-config

참고

  • tailwindcss.com/docs/v4-beta
  • unocss.dev
  • panda-css.com

댓글 0

아직 댓글이 없습니다.
Ctrl+Enter로 등록