Skip to content

ieoseo/seed-design

Repository files navigation

이어서 seed-design (ieoseo/seed-design)

이어서(ieoseo)의 공유 디자인 프리미티브 — 디자인 토큰·아이콘을 한 곳(소스) 에서 정의하고 Flutter 앱(Dart)·웹(CSS/TS)·문서 사이트로 자동 생성한다.

📖 문서 사이트: https://ieoseo.github.io/seed-design/ (tokens.json 에서 자동 생성)

멀티레포(ieoseo org)의 5번째 축: client(Flutter) · server(Spring Boot) · docs · landing(Next.js) · seed-design.

무엇을 공유하나

종류 공유 비고
토큰(색·라운드·타이포·모션·hue·그림자) tokens/tokens.json → CSS·Dart
아이콘(Lucide 24-grid path + 브랜드/프로바이더 SVG) icons/ → Dart 맵·웹 path 맵·SVG
컴포넌트 스펙(버튼·뱃지·칩 수치/변형) Seed* 상수·.btn 등 — 위젯 구현은 비공유
컴포넌트(위젯) Flutter 위젯 ≠ React. 각 플랫폼이 프리미티브를 소비해 따로 구현

토큰 값의 권위 = 이 repo 의 tokens/tokens.json (ADR-0032 권위 역전). client·docs 문서는 소비자다.

구조

seed-design/
├── tokens/tokens.json        # 토큰 단일 소스 (palette $참조 지원, light/dark)
├── icons/                    # lucide.json + brand/provider SVG
├── scripts/
│   ├── build.mjs             # 생성기 (무의존 Node) — 참조→타입→WCAG 3중 게이트
│   └── site.mjs              # 문서 사이트 생성기
├── lib/                      # ★ Dart 패키지 생성물 (pubspec.yaml — client 가 git 의존)
│   └── seed_{tokens,components,icons}.dart
└── dist/                     # 웹 생성물 (커밋함, CI 일치 검증)
    ├── css/{tokens,components}.css   # landing 이 npm git 의존으로 import
    ├── web/{icons,providers,fonts}.ts
    ├── svg/{brand,provider}/
    └── site/                 # 문서 사이트 → GitHub Pages 자동 배포

빌드

npm run build     # 소스 → lib/ + dist/ 재생성 (게이트: 참조·타입·WCAG 대비)
npm run check     # 빌드 후 lib/dist 가 소스와 일치하는지 검증(CI 와 동일)

소스를 바꾸면 반드시 npm run buildlib/·dist/ 를 함께 커밋한다(CI 가 일치 + Dart format/analyze 를 강제).

소비처에서 쓰기 (ADR-0036 — git 패키지 의존, 복사 없음)

  • client(Flutter): pubspec.yamlseed_design: git:package:seed_design/* import. 업데이트: flutter pub upgrade seed_design(lock 이 커밋 고정).
  • landing(Next.js): @ieoseo/seed-design npm git 의존 → @ieoseo/seed-design/css/*.css·/web/*.ts import. 업데이트: npm update @ieoseo/seed-design.

색 파생 규칙

brand.primary 만 두고 primaryHover/primarySubtle/primaryFg 는 생성기가 Flutter Color.lerp 를 미러해 파생한다 — 앱/웹 값이 정확히 일치. 2곳 이상 공유되는 원색은 palette 층 + $palette.* 참조(ADR-0034).

워크플로우 · 버저닝

  • 현재 pre-v0.1: main 직접 푸시. 커밋은 한국어 Conventional Commits, 푸시 전 npm run check.
  • pubspec/package.json 의 0.1.0 은 자리표시자 — 소비처는 main + lock 고정으로 참조하므로 버전 태그를 쓰지 않는다.
  • v0.1 태그 시점 = 앱 첫 정식(프로덕션 트랙) 릴리스와 동시 — 그때부터 이슈→브랜치→PR 필수(GitHub Flow)로 전환하고 태그 릴리스를 시작한다.

결정 근거: docs/04-ADR 0022(분리)·0032(권위·게이트)·0034(참조)·0035(문서 사이트)·0036(패키지 의존).

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors