id, title, category, status, canonical_id, aliases, duplicate_of, source_trust_level, confidence_score, verification_status, tags, raw_sources, last_reinforced, github_commit, tech_stack
| id |
title |
category |
status |
canonical_id |
aliases |
duplicate_of |
source_trust_level |
confidence_score |
verification_status |
tags |
raw_sources |
last_reinforced |
github_commit |
tech_stack |
| wiki-2026-0508-component-library-architecture |
Component Library Architecture |
10_Wiki/Topics |
verified |
self |
| Design System Architecture |
| UI Library Design |
|
none |
A |
0.9 |
applied |
| components |
| design-system |
| react |
| shadcn |
| radix |
|
|
2026-05-10 |
pending |
| language |
framework |
| typescript |
react-radix-shadcn |
|
Component Library Architecture
매 한 줄
"매 unstyled headless primitives + 매 style layer + 매 composition API.". 2026년 React component library 의 dominant model = Radix/Ark UI (headless behavior + a11y) + Tailwind/CSS variables (theming) + shadcn/ui (copy-not-install) + tokens (DTCG). MUI 5 의 monolithic theme 시대 → headless 시대로 매 shift.
매 핵심
매 3 layer architecture
- Behavior layer (headless): a11y, keyboard, focus, ARIA — Radix, Ark UI, React Aria.
- Style layer: Tailwind, CSS-in-JS (vanilla-extract), CSS variables.
- Composition layer: app-specific compositions of 1+2.
매 distribution model
- Package install (MUI, Chakra v3): npm install, version locked, hard to customize.
- Copy-paste (shadcn/ui): generator copies source into your repo, you own it, fully customizable.
- Hybrid (Radix + custom wrapper): primitives via npm, your styles in repo.
매 token system (DTCG / Style Dictionary)
- Primitive tokens (color.blue.500 = #3b82f6).
- Semantic tokens (color.action.primary = color.blue.500).
- Component tokens (button.bg.primary = color.action.primary).
매 응용
- Internal design system (Vercel Geist, GitHub Primer).
- Open-source kits (shadcn/ui, Mantine, Park UI).
- White-label products (multi-brand 동일 codebase).
- Cross-framework via Web Components (Spectrum Web Components).
💻 패턴
Headless primitive (Radix)
shadcn-style copy-paste component
Design tokens (DTCG JSON)
CSS variables driven theming
Polymorphic component (asChild pattern)
Storybook 8 + a11y addon
매 결정 기준
| 상황 |
Approach |
| Internal design system, full control |
shadcn/ui copy-paste + Tailwind |
| Quick prototype, full kit |
Mantine, Chakra v3 |
| Cross-framework |
Lit + Web Components |
| Strong a11y 요구 |
Radix or React Aria |
| Multi-brand white-label |
Token-driven CSS variables |
기본값: React 19 + Radix primitives + Tailwind v4 + shadcn/ui structure + DTCG tokens.
🔗 Graph
🤖 LLM 활용
언제: starting design system, refactoring 중복 UI, multi-product/brand consolidation.
언제 X: 1-page landing site (overhead 큼), heavily 3D/canvas UI (HTML primitive 안 맞음).
❌ 안티패턴
- Tightly styled primitives: behavior + style 의 강결합 — replace 시 rewrite 필요.
- Theme prop drilling: 매 component 가 theme prop 받음 — CSS variables 로.
- No tokens: hex color 직접 사용 — token system 부재 시 multi-brand 불가.
- Locked-in vendor library: MUI v3→v5 같은 대규모 breaking change — headless + own styles 가 안전.
🧪 검증 / 중복
- Verified (shadcn/ui docs 2026 / Radix UI / DTCG W3C draft / React 19 docs).
- 신뢰도 A.
🕓 Changelog
| 날짜 |
변경 |
| 2026-05-08 |
Phase 1 |
| 2026-05-10 |
Manual cleanup — 3-layer model + shadcn/Radix/DTCG 패턴 |