Tailwind CSS로 디자인 시스템 만들기

HANUI·
Tailwind CSS디자인시스템ReactCSS변수cva프론트엔드

"Tailwind는 유틸리티 클래스잖아요. 디자인 시스템이랑 맞나요?"

맞아요. 오히려 잘 맞아요.

디자인 시스템의 핵심은 일관성이거든요. 색상, 간격, 타이포그래피가 정해진 규칙대로 사용되는 것.

Tailwind는 그걸 강제해요. p-4 쓰면 무조건 16px. text-sm 쓰면 무조건 14px. 개발자마다 다른 값 쓸 일이 없어요.

기본 구조

1. 색상 토큰

이러면 bg-primary-500, text-gray-900 이렇게 쓸 수 있어요.

CSS 변수로 하면 더 좋아요

// tailwind.config.ts
colors: {
  primary: {
    500: 'var(--color-primary-500)',
    600: 'var(--color-primary-600)',
  },
}

다크 모드 전환이 자동으로 돼요.

2. 타이포그래피

반응형 타이포

CSS 변수로 처리하면 반응형도 쉬워요:

text-display-lg 하나로 모바일/PC 다 처리돼요.

3. 간격 (Spacing)

Tailwind 기본 간격 시스템 써도 되는데, 커스텀하려면:

근데 사실 Tailwind 기본 (p-4, mb-6)이 충분해요. 8px 그리드 시스템이거든요.

4. 컴포넌트 만들기

토큰 설정했으면 컴포넌트 만들어요:

cva로 타입 안전하게

자동완성도 되고 타입 체크도 돼요.

5. 프리셋으로 배포

팀에서 쓰거나 여러 프로젝트에서 재사용하려면 프리셋으로 만들어요:

실전 체크리스트

디자인 시스템 만들 때 필수 항목:

  • 색상 토큰 (primary, secondary, gray, danger, success)
  • 타이포그래피 스케일 (display, heading, body, label)
  • 간격 시스템 (8px 그리드 권장)
  • Border radius
  • Shadow
  • 기본 컴포넌트 (Button, Input, Card 등)

공공기관이라면

KRDS(한국형 웹 디자인 시스템) 따라야 해요.

색상 코드, 폰트 크기, 간격 전부 가이드가 있어요. 직접 세팅하면 하루는 걸려요.

HANUI는 KRDS 토큰이 다 적용된 Tailwind 프리셋이에요.

색상, 타이포그래피, 반응형까지 전부 KRDS 기준으로 나와요.


관련 링크

HANUI

KRDS 기반 React 컴포넌트 라이브러리. 공공 웹 개발을 더 쉽게.