Communitygithub.com

hamzacakmakk/design-system-generator

토큰 기반 디자인 시스템(색상, 타이포그래피, 간격, 둥글기, 그림자, 모션)을 생성하거나 확장합니다. 라이트/다크 테마, 대비 검증, 컴포넌트 가이드라인 및 문서를 포함하며, CSS 변수, Tailwind 테마 설정 또는 JSON 토큰으로 제공됩니다.

design-system-generator란 무엇인가요?

Design System Generator는 일관된 제품 스타일링을 위해 토큰 기반 디자인 시스템을 구축하거나 확장하는 AI 어시스턴트 기술입니다. 사용자가 디자인 시스템, 테마, 스타일 가이드, 토큰, 브랜드 팔레트 또는 '일관된 스타일링'을 요청할 때 활성화되며, 최소한의 결정 집합으로 제품 일관성을 달성하는 데 초점을 맞춥니다. 이 기술은 Primitive(원시), Semantic(의미), Component(컴포넌트) 세 가지 레이어로 구성된 토큰 아키텍처를 제공하며, WCAG 2 대비 기준을 자동으로 계산하고 문서화합니다. CSS 변수, Tailwind 테마 구성, JSON 토큰(W3C Design Tokens Community Group 형식) 등 다양한 출력 형식을 지원하며, 기존 프로젝트로의 마이그레이션 가이드도 포함합니다. 주로 웹 플랫폼(Claude Code, Cursor, Codex)에서 사용되며, `frontend-design` 스킬이 설치된 경우 해당 스킬의 참조 토큰을 활용하여 더 빠르게 시작할 수 있습니다.

지원 대상~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/hamzacakmakk/claude-frontend-skills/tree/HEAD/skills/design-system-generator

즐겨 사용하는 AI에게 물어보기

이 에이전트 스킬이 미리 로드된 새 채팅을 엽니다.

문서

디자인 시스템 생성기

제품을 일관되게 만드는 가장 작은 시스템을 구축하세요. 디자인 시스템은 많은 값의 집합이 아니라 결정의 집합입니다. 아무도 사용하지 않는 방대한 스케일보다, 적고 잘 이름 지어진 토큰이 더 낫습니다.

frontend-design 스킬이 설치되어 있다면, frontend-design/references/tokens.md에 완전한 대비 검증된 스타터 세트가 포함되어 있습니다. 그것을 시작점으로 삼아 적응하세요.

1. 입력

  • 현재 CSS, Tailwind 설정, 테마 파일, 컴포넌트 라이브러리, 브랜드 에셋 등 존재하는 것을 읽습니다. 실제 사용 중인 값(색상, 글꼴 크기, 간격, 둥글기)과 각 값의 발생 빈도를 조사합니다.
  • 제품의 톤, 플랫폼(웹, iOS, Android), 밀도, 다크 모드 및 고대비 모드 필요 여부를 명확히 하거나(또는 추론하여 명시합니다).

2. 아키텍처: 세 가지 레이어

  1. 원시 토큰: 중립적인 이름을 가진 원시 값입니다. --gray-50 ... --gray-950, --blue-600, --space-4, --radius-md. 컴포넌트에서 직접 사용하지 않습니다.
  2. 의미 토큰: 목적 기반 별칭입니다. --bg, --surface, --surface-sunken, --border, --border-strong, --text, --text-muted, --text-subtle, --accent, --accent-fg, --accent-subtle, --focus-ring, --success, --warning, --danger, --info (+ -subtle 변형). 테마는 이를 교체합니다.
  3. 컴포넌트 토큰(필요한 경우에만): --button-height-md, --input-border, --card-padding. 컴포넌트가 독립적으로 테마를 지정해야 할 때 추가합니다.

이름 규칙: category-role-variant-state (--text-muted, --accent-hover). 의미 토큰에는 색상 이름을 사용하지 않습니다(--accent이지 --blue가 아닙니다).

3. 결정 사항

  • 간격: 4px 기준. 스케일 0, 2, 4, 8, 12, 16, 20, 24, 32, 40, 48, 64, 80, 96, 128. (Fluent 2와 Material 모두 4px 기반으로 구축되었으며, Tailwind의 기본 스케일도 4px 기반입니다.)
  • 타이포그래피: 한두 개의 패밀리; 모듈러 스케일(1.2 밀집, 1.25 제품, 1.333+ 편집); 크기보다 역할(display, title, heading, body, label, caption, code); 역할별 줄 높이; display 크기에만 유동 clamp() 사용.
  • 색상: 10~12단계 중립 램프(약간 따뜻하거나 차갑게, 의도적으로 선택), 하나의 악센트 램프, 네 가지 의미 색조. OKLCH로 램프를 생성하여 지각적으로 균일한 단계를 만듭니다.
  • 둥글기: 하나의 패밀리(sharp, soft 또는 round)에 3~4단계 + full.
  • 그림자: 최대 3단계(raised, floating, overlay), 2계층 중립 그림자; 다크 모드에서는 무거운 그림자보다 밝은 표면을 선호합니다.
  • 모션: 3가지 지속 시간(빠름 ~140ms, 기본 ~220ms, 느림 ~320ms), 3가지 이징(out, in, in-out), 그리고 reduced-motion 규칙.
  • 레이어: 작은 z-index 스케일(sticky, dropdown, overlay, dialog, toast, tooltip).
  • 중단점: 콘텐츠 중심; 일반적인 세트는 640, 768, 1024, 1280, 1536입니다.

4. 테마 및 대비

  • 라이트와 다크를 함께 정의합니다. 다크 모드: 거의 검은색 배경(#000 아님), 약간 흰색 텍스트(#fff 아님), 그림자에 더 밝은 표면, 악센트는 밝게 하고 약간 채도를 낮춥니다.
  • prefers-contrast: more 변형을 추가하여 테두리와 흐릿한 텍스트를 강화합니다.
  • 모든 텍스트/배경 쌍을 WCAG 2 공식으로 검증하고 비율을 공개합니다: 텍스트 4.5:1, 큰 텍스트와 의미 있는 UI(입력 테두리, 아이콘, 포커스 링) 3:1. 문서에 숫자를 포함하십시오. 계산하지 않고 "AA 준수"라고 명시하지 마십시오.

5. 결과물

프로젝트 스택에 맞게 다음을 생성합니다:

  1. tokens.css (CSS 사용자 정의 속성, 라이트 + 다크 + 고대비), 및/또는 Tailwind 테마 매핑(@theme in v4, theme.extend in v3), 및/또는 파이프라인(Style Dictionary)을 사용하는 경우 tokens.json (W3C Design Tokens Community Group 형식).
  2. 짧은 DESIGN.md 문서: 원칙(3~5줄), 대비 비율이 포함된 토큰 테이블, 타이포그래피 역할, 간격 사용 규칙, 핵심 컴포넌트(버튼, 입력, 카드, 대화상자, 테이블, 토스트)에 대한 do/don't.
  3. 선택적으로 단일 styleguide.html / story 페이지: 두 테마에서 모든 토큰과 컴포넌트 상태를 렌더링하여 시스템을 시각적으로 확인할 수 있습니다.

6. 마이그레이션 (기존 제품)

  • 기존 값을 가장 가까운 토큰에 매핑하고, 사라지는 값과 그 이유를 나열합니다.
  • 순서대로 교체합니다: 색상, 그 다음 간격, 그 다음 타이포그래피, 그 다음 둥글기와 그림자.
  • 코드베이스가 큰 경우 이전 이름을 위한 임시 별칭 레이어를 유지합니다.

체크리스트

  • 원시, 의미 및 (필요한 경우에만) 컴포넌트 레이어가 분리되어 있습니다.
  • 컴포넌트는 의미 토큰만 참조합니다.
  • 라이트, 다크 및 고대비 테마가 존재하며 모든 쌍에 대해 계산된 비율이 있습니다.
  • 간격은 4px 기반입니다. 하나의 둥글기 패밀리; 최대 세 단계의 그림자 수준.
  • 타이포그래피 역할은 display부터 caption까지 포함합니다. 최대 두 개의 패밀리, 세 개의 두께.
  • 모션 토큰에는 reduced-motion 규칙이 포함됩니다.
  • 문서는 각 토큰의 값뿐만 아니라 언제 사용해야 하는지도 설명합니다.

Individual skills in this repo

This repo contains 2 individual skills — each has its own dedicated page.

관련 스킬