timelabs 0.1.0 → 0.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +30 -20
- package/package.json +1 -1
- package/skills/web-design/claude-code/SKILL.md +270 -0
- package/skills/web-design/claude-code/analyze/analyze-benchmark-rules.md +229 -0
- package/skills/web-design/claude-code/analyze/analyze-benchmark.md +302 -0
- package/skills/web-design/claude-code/analyze/analyze-mockup.md +572 -0
- package/skills/web-design/claude-code/collect/collect-app.md +258 -0
- package/skills/web-design/claude-code/collect/collect-desktop.md +231 -0
- package/skills/web-design/claude-code/collect/collect-hybrid.md +222 -0
- package/skills/web-design/claude-code/collect/collect-style.md +155 -0
- package/skills/web-design/claude-code/collect/collect-type.md +42 -0
- package/skills/web-design/claude-code/collect/collect-video.md +239 -0
- package/skills/web-design/claude-code/collect/collect-web.md +279 -0
- package/skills/web-design/claude-code/defs/ai-recommend/01-style-design-recommend.md +64 -0
- package/skills/web-design/claude-code/defs/ai-recommend.md +58 -0
- package/skills/web-design/claude-code/defs/app-layouts/02-utility.md +54 -0
- package/skills/web-design/claude-code/defs/app-layouts/03-social.md +71 -0
- package/skills/web-design/claude-code/defs/app-layouts/04-game.md +54 -0
- package/skills/web-design/claude-code/defs/app-layouts/05-fintech.md +62 -0
- package/skills/web-design/claude-code/defs/app-layouts/06-healthcare.md +66 -0
- package/skills/web-design/claude-code/defs/app-layouts/07-ecommerce.md +63 -0
- package/skills/web-design/claude-code/defs/app-layouts/08-education.md +88 -0
- package/skills/web-design/claude-code/defs/app-layouts/09-creative.md +86 -0
- package/skills/web-design/claude-code/defs/app-layouts.md +59 -0
- package/skills/web-design/claude-code/defs/app-motions/01-utility.md +51 -0
- package/skills/web-design/claude-code/defs/app-motions/02-social.md +55 -0
- package/skills/web-design/claude-code/defs/app-motions/03-game.md +52 -0
- package/skills/web-design/claude-code/defs/app-motions/04-fintech.md +52 -0
- package/skills/web-design/claude-code/defs/app-motions/05-healthcare.md +52 -0
- package/skills/web-design/claude-code/defs/app-motions/06-ecommerce.md +55 -0
- package/skills/web-design/claude-code/defs/app-motions/07-education.md +54 -0
- package/skills/web-design/claude-code/defs/app-motions/08-creative.md +53 -0
- package/skills/web-design/claude-code/defs/app-motions/10-intensity-preset-motion.md +12 -0
- package/skills/web-design/claude-code/defs/app-motions.md +64 -0
- package/skills/web-design/claude-code/defs/component-specs/01-set-component.md +24 -0
- package/skills/web-design/claude-code/defs/component-specs/02-features-flow.md +51 -0
- package/skills/web-design/claude-code/defs/component-specs/03-system-visual.md +193 -0
- package/skills/web-design/claude-code/defs/component-specs/04-interaction-pattern-visual.md +61 -0
- package/skills/web-design/claude-code/defs/component-specs/domains/admin.md +55 -0
- package/skills/web-design/claude-code/defs/component-specs/domains/dashboard.md +60 -0
- package/skills/web-design/claude-code/defs/component-specs/domains/erp.md +68 -0
- package/skills/web-design/claude-code/defs/component-specs/domains/saas.md +65 -0
- package/skills/web-design/claude-code/defs/component-specs.md +24 -0
- package/skills/web-design/claude-code/defs/design-guide-sections.md +37 -0
- package/skills/web-design/claude-code/defs/desktop-layouts/01-utility.md +69 -0
- package/skills/web-design/claude-code/defs/desktop-layouts/02-data.md +71 -0
- package/skills/web-design/claude-code/defs/desktop-layouts/03-creative.md +73 -0
- package/skills/web-design/claude-code/defs/desktop-layouts/04-communication.md +71 -0
- package/skills/web-design/claude-code/defs/desktop-layouts/05-game.md +73 -0
- package/skills/web-design/claude-code/defs/desktop-layouts/06-business.md +74 -0
- package/skills/web-design/claude-code/defs/desktop-layouts.md +49 -0
- package/skills/web-design/claude-code/defs/desktop-motions/01-utility.md +56 -0
- package/skills/web-design/claude-code/defs/desktop-motions/02-data.md +60 -0
- package/skills/web-design/claude-code/defs/desktop-motions/03-creative.md +60 -0
- package/skills/web-design/claude-code/defs/desktop-motions/04-communication.md +57 -0
- package/skills/web-design/claude-code/defs/desktop-motions/05-game.md +55 -0
- package/skills/web-design/claude-code/defs/desktop-motions/06-business.md +52 -0
- package/skills/web-design/claude-code/defs/desktop-motions.md +75 -0
- package/skills/web-design/claude-code/defs/hybrid-layouts/01-web_mobile.md +81 -0
- package/skills/web-design/claude-code/defs/hybrid-layouts/02-web_desktop.md +78 -0
- package/skills/web-design/claude-code/defs/hybrid-layouts/03-mobile_desktop.md +79 -0
- package/skills/web-design/claude-code/defs/hybrid-layouts/04-all.md +81 -0
- package/skills/web-design/claude-code/defs/hybrid-layouts.md +49 -0
- package/skills/web-design/claude-code/defs/hybrid-motions/01-web_mobile.md +69 -0
- package/skills/web-design/claude-code/defs/hybrid-motions/02-web_desktop.md +69 -0
- package/skills/web-design/claude-code/defs/hybrid-motions/03-mobile_desktop.md +74 -0
- package/skills/web-design/claude-code/defs/hybrid-motions/04-all.md +96 -0
- package/skills/web-design/claude-code/defs/hybrid-motions/07-intensity-preset-motion.md +16 -0
- package/skills/web-design/claude-code/defs/hybrid-motions.md +65 -0
- package/skills/web-design/claude-code/defs/ia-patterns/01-management-dashboard.md +37 -0
- package/skills/web-design/claude-code/defs/ia-patterns/05-video.md +33 -0
- package/skills/web-design/claude-code/defs/ia-patterns/06-video_saas-saas.md +37 -0
- package/skills/web-design/claude-code/defs/ia-patterns.md +85 -0
- package/skills/web-design/claude-code/defs/icon-mappings/04-mapping-design-system.md +25 -0
- package/skills/web-design/claude-code/defs/icon-mappings.md +49 -0
- package/skills/web-design/claude-code/defs/icon-usage.md +56 -0
- package/skills/web-design/claude-code/defs/illustration-guide.md +44 -0
- package/skills/web-design/claude-code/defs/image-strategies/01-landing.md +76 -0
- package/skills/web-design/claude-code/defs/image-strategies/02-dashboard.md +51 -0
- package/skills/web-design/claude-code/defs/image-strategies/03-ecommerce.md +47 -0
- package/skills/web-design/claude-code/defs/image-strategies/04-blog.md +58 -0
- package/skills/web-design/claude-code/defs/image-strategies/05-saas.md +56 -0
- package/skills/web-design/claude-code/defs/image-strategies/06-portfolio.md +62 -0
- package/skills/web-design/claude-code/defs/image-strategies/08-strategy-common-image.md +57 -0
- package/skills/web-design/claude-code/defs/image-strategies.md +58 -0
- package/skills/web-design/claude-code/defs/seo-guide.md +79 -0
- package/skills/web-design/claude-code/defs/styles/02-style-list.md +421 -0
- package/skills/web-design/claude-code/defs/styles/03-custom-animation-keyframes.md +39 -0
- package/skills/web-design/claude-code/defs/styles.md +50 -0
- package/skills/web-design/claude-code/defs/tokens/01-token-format.md +75 -0
- package/skills/web-design/claude-code/defs/tokens/02-token-scope.md +251 -0
- package/skills/web-design/claude-code/defs/tokens.md +24 -0
- package/skills/web-design/claude-code/defs/video-compositions/01-composition-single.md +66 -0
- package/skills/web-design/claude-code/defs/video-compositions/02-composition-multi.md +66 -0
- package/skills/web-design/claude-code/defs/video-compositions/03-composition-parametric.md +81 -0
- package/skills/web-design/claude-code/defs/video-compositions.md +37 -0
- package/skills/web-design/claude-code/defs/video-motions/01-animation-basic.md +49 -0
- package/skills/web-design/claude-code/defs/video-motions/02-animation.md +52 -0
- package/skills/web-design/claude-code/defs/video-motions/03-reference.md +17 -0
- package/skills/web-design/claude-code/defs/video-motions/05-pattern-composition.md +61 -0
- package/skills/web-design/claude-code/defs/video-motions/06-transition-effects.md +49 -0
- package/skills/web-design/claude-code/defs/video-motions/07-audio-sync.md +29 -0
- package/skills/web-design/claude-code/defs/video-motions.md +55 -0
- package/skills/web-design/claude-code/defs/web-layouts/01-landing.md +101 -0
- package/skills/web-design/claude-code/defs/web-layouts/02-dashboard.md +85 -0
- package/skills/web-design/claude-code/defs/web-layouts/03-ecommerce.md +73 -0
- package/skills/web-design/claude-code/defs/web-layouts/04-blog.md +69 -0
- package/skills/web-design/claude-code/defs/web-layouts/05-saas.md +83 -0
- package/skills/web-design/claude-code/defs/web-layouts/06-portfolio.md +62 -0
- package/skills/web-design/claude-code/defs/web-layouts.md +38 -0
- package/skills/web-design/claude-code/defs/web-motions/01-landing.md +91 -0
- package/skills/web-design/claude-code/defs/web-motions/02-dashboard.md +55 -0
- package/skills/web-design/claude-code/defs/web-motions/03-ecommerce.md +52 -0
- package/skills/web-design/claude-code/defs/web-motions/04-blog.md +57 -0
- package/skills/web-design/claude-code/defs/web-motions/05-saas.md +49 -0
- package/skills/web-design/claude-code/defs/web-motions/06-portfolio.md +73 -0
- package/skills/web-design/claude-code/defs/web-motions/08-intensity-preset-motion.md +14 -0
- package/skills/web-design/claude-code/defs/web-motions.md +55 -0
- package/skills/web-design/claude-code/gen/gen-design-guide/01-project-overview.md +304 -0
- package/skills/web-design/claude-code/gen/gen-design-guide-interaction/01-interaction-motion.md +129 -0
- package/skills/web-design/claude-code/gen/gen-design-guide-interaction/04-project-video.md +69 -0
- package/skills/web-design/claude-code/gen/gen-design-guide-interaction.md +45 -0
- package/skills/web-design/claude-code/gen/gen-design-guide.md +43 -0
- package/skills/web-design/claude-code/gen/gen-tokens/01-generate-process.md +318 -0
- package/skills/web-design/claude-code/gen/gen-tokens/02-structure-output-file.md +31 -0
- package/skills/web-design/claude-code/gen/gen-tokens/03-connect-frontend.md +150 -0
- package/skills/web-design/claude-code/gen/gen-tokens.md +54 -0
- package/skills/web-design/claude-code/gen/gen-video.md +73 -0
- package/skills/web-design/claude-code/verify/verify-components.md +52 -0
- package/skills/web-design/claude-code/verify/verify-motions.md +74 -0
- package/skills/web-design/claude-code/verify/verify-pipeline.md +69 -0
- package/skills/web-design/claude-code/verify/verify-report.md +75 -0
- package/skills/web-design/claude-code/verify/verify-responsive.md +49 -0
- package/skills/web-design/claude-code/verify/verify-tokens.md +84 -0
- package/skills/test-skill/claude-code/SKILL.md +0 -7
- package/skills/test-skill/cursor/test-skill.md +0 -7
- package/skills/test-skill/openclaw/SKILL.md +0 -13
- package/skills/test-skill/skill.json +0 -6
|
@@ -0,0 +1,193 @@
|
|
|
1
|
+
# 비주얼 Variant 시스템 (121종)
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
각 컴포넌트의 비주얼 variant를 정의합니다. gen-design-guide.md에서 스타일별로 CSS/HTML 코드를 생성할 때 이 정의를 참조합니다.
|
|
5
|
+
|
|
6
|
+
### Card (18종)
|
|
7
|
+
|
|
8
|
+
| # | Variant | 배경 | 이미지/아이콘 | 호버 인터랙션 |
|
|
9
|
+
|---|---------|------|-------------|-------------|
|
|
10
|
+
| 1 | `plain` | solid color | 없음 | shadow 강화 |
|
|
11
|
+
| 2 | `media-top` | 이미지 | `<img>` 상단 (aspect-ratio 16/9) | image zoom 1→1.05 |
|
|
12
|
+
| 3 | `media-left` | 이미지 | `<img>` 좌측 40% | image zoom 1→1.05 |
|
|
13
|
+
| 4 | `media-bg` | `background-image` cover | 전체 커버 + dark overlay 60% | overlay 60%→40%, 이미지 scale 1→1.08 |
|
|
14
|
+
| 5 | `media-bg-bottom` | `background-image` cover | 전체 커버 + 하단 gradient overlay | gradient 투명→불투명 비율 변화 |
|
|
15
|
+
| 6 | `icon-top` | solid 또는 pattern | 아이콘 48px 중앙 정렬 | icon bounce (-translate-y-1) |
|
|
16
|
+
| 7 | `icon-left` | solid | 아이콘 40px 좌측 | icon morph (scale 1.1 + rotate 5deg) |
|
|
17
|
+
| 8 | `icon-circle` | solid | 아이콘 32px in 원형 배경 56px | circle scale 1→1.1 + 색상 shift |
|
|
18
|
+
| 9 | `stat` | solid | 트렌드 아이콘 16px + 변화량 | counter-up 애니메이션 (숫자) |
|
|
19
|
+
| 10 | `testimonial` | solid 또는 subtle | 아바타 48px 원형 | 미묘한 shadow 변화 |
|
|
20
|
+
| 11 | `pricing` | solid 또는 gradient (추천 플랜) | 체크 아이콘 16px 리스트 | border 색상 강조, 추천 플랜 scale 1.02 |
|
|
21
|
+
| 12 | `profile` | solid | 아바타 80px + 소셜 아이콘 20px | 이미지 opacity 0.8→1 + 소셜 아이콘 color shift |
|
|
22
|
+
| 13 | `product` | 이미지 | `<img>` 상단 (aspect-ratio 1/1 or 4/3) | image zoom 1→1.08 + shadow 강화 |
|
|
23
|
+
| 14 | `gradient-border` | transparent 내부 | 선택적 | glow 강화 (box-shadow spread) |
|
|
24
|
+
| 15 | `glass` | backdrop-blur + 반투명 | 선택적 | blur 12→16px, opacity 변화 |
|
|
25
|
+
| 16 | `pattern-bg` | SVG pattern repeat | 선택적 | pattern opacity 0.05→0.1 |
|
|
26
|
+
| 17 | `split-color` | 2-tone (상/하 또는 좌/우) | 선택적 | 분할선 위치 이동 (50%→55%) |
|
|
27
|
+
| 18 | `stacked` | solid + ::before/::after 겹침 | 선택적 | 위로 -translate-y-2 + 뒤 카드 노출 |
|
|
28
|
+
|
|
29
|
+
### Hero Section (12종)
|
|
30
|
+
|
|
31
|
+
| # | Variant | 배경 | 주요 요소 | 스크롤/호버 인터랙션 |
|
|
32
|
+
|---|---------|------|----------|-------------------|
|
|
33
|
+
| 1 | `fullbleed-image` | `background-image` cover + overlay | 중앙 텍스트 + CTA | parallax (background-attachment: fixed) |
|
|
34
|
+
| 2 | `fullbleed-video` | `<video>` autoplay muted loop + overlay | 중앙 텍스트 + CTA | 없음 (prefers-reduced-motion: 정지 이미지 대체) |
|
|
35
|
+
| 3 | `split-image-right` | 좌 solid + 우 이미지 50% | 좌측 텍스트 + CTA | 이미지 float-up (translate-y -10px) |
|
|
36
|
+
| 4 | `split-image-left` | 좌 이미지 50% + 우 solid | 우측 텍스트 + CTA | 이미지 float-up (translate-y -10px) |
|
|
37
|
+
| 5 | `gradient-only` | gradient | 중앙 텍스트 + CTA | gradient position shift (background-position animate) |
|
|
38
|
+
| 6 | `pattern` | SVG/CSS pattern repeat | 텍스트 + CTA | pattern subtle animate (background-position) |
|
|
39
|
+
| 7 | `particle` | CSS particle 또는 canvas | 텍스트 + CTA | interactive particle (마우스 추적) |
|
|
40
|
+
| 8 | `illustration` | solid + 일러스트 (우측/하단) | 텍스트 좌측, 일러스트 우측 | 일러스트 bounce (translate-y 반복) |
|
|
41
|
+
| 9 | `carousel` | 이미지 슬라이더 + overlay | 텍스트 + 네비게이션 dot/arrow | auto slide (fade or slide 전환) |
|
|
42
|
+
| 10 | `mosaic` | 다중 이미지 그리드 + overlay | 중앙 텍스트 | 개별 이미지 hover zoom |
|
|
43
|
+
| 11 | `text-only` | solid 또는 subtle gradient | 대형 타이포 중심 | text gradient animate (background-clip: text) |
|
|
44
|
+
| 12 | `3d-object` | solid 또는 gradient | 3D 요소 + 텍스트 | rotate on scroll (transform: perspective) |
|
|
45
|
+
|
|
46
|
+
### Navigation (8종)
|
|
47
|
+
|
|
48
|
+
| # | Variant | 배경 | 아이콘 | 인터랙션 |
|
|
49
|
+
|---|---------|------|--------|---------|
|
|
50
|
+
| 1 | `solid` | 불투명 solid color | 메뉴 아이콘 24px | 메뉴 hover: bg subtle |
|
|
51
|
+
| 2 | `transparent` | transparent → 스크롤 시 solid | 흰색→기본 전환 | scroll trigger (backdrop 추가) |
|
|
52
|
+
| 3 | `glass` | backdrop-blur + 반투명 | currentColor | hover: blur 강화 |
|
|
53
|
+
| 4 | `gradient` | gradient | 흰색 아이콘 | 없음 |
|
|
54
|
+
| 5 | `bordered` | transparent + border-bottom | 기본 색상 | hover: border-primary |
|
|
55
|
+
| 6 | `floating` | solid + shadow + rounded + margin | 아이콘 + 알림 뱃지 | scroll: 떠오름 + shadow 강화 |
|
|
56
|
+
| 7 | `sidebar-fixed` | solid 또는 pattern + border-right | 아이콘 24px + 라벨 | hover: bg highlight, 축소 모드: 아이콘만 |
|
|
57
|
+
| 8 | `bottom-tab` | solid + top-shadow | 아이콘 24px + 라벨 | 활성: icon 색상 + indicator bar/dot |
|
|
58
|
+
|
|
59
|
+
### Button (14종)
|
|
60
|
+
|
|
61
|
+
| # | Variant | 배경 | 아이콘 | 호버 인터랙션 |
|
|
62
|
+
|---|---------|------|--------|-------------|
|
|
63
|
+
| 1 | `solid` | solid primary | 선택적 | darken 15%, shadow 추가 |
|
|
64
|
+
| 2 | `outline` | transparent + border | 선택적 | bg 채움 전환 (transparent → primary) |
|
|
65
|
+
| 3 | `ghost` | transparent | 선택적 | subtle bg (primary/5%) |
|
|
66
|
+
| 4 | `gradient` | gradient | 선택적 | gradient position shift |
|
|
67
|
+
| 5 | `glass` | backdrop-blur + 반투명 | 선택적 | blur 강화 + border 밝아짐 |
|
|
68
|
+
| 6 | `icon-only` | solid 또는 transparent | 아이콘 20px | bg scale 또는 circle ripple |
|
|
69
|
+
| 7 | `icon-left` | solid | 좌 아이콘 16~20px | icon 정지, 전체 버튼 효과 |
|
|
70
|
+
| 8 | `icon-right` | solid | 우 아이콘 (arrow) 16~20px | arrow translateX +4px |
|
|
71
|
+
| 9 | `loading` | solid (disabled opacity) | spinner 애니메이션 20px | 없음 (disabled 상태) |
|
|
72
|
+
| 10 | `pill` | solid + rounded-full | 선택적 | shadow lift (-translate-y-0.5) |
|
|
73
|
+
| 11 | `neon-glow` | transparent + neon border | 선택적 | glow spread 확장 (box-shadow) |
|
|
74
|
+
| 12 | `3d-push` | solid + bottom shadow | 선택적 | active: translateY +2px, shadow 줄임 |
|
|
75
|
+
| 13 | `sweep-fill` | transparent → solid (left→right) | 선택적 | ::before width 0→100% 채우기 |
|
|
76
|
+
| 14 | `split` | 2-tone (텍스트 영역 + 아이콘 영역) | 우측 분리 아이콘 | 아이콘 영역 색상 darken |
|
|
77
|
+
|
|
78
|
+
### Section / Content Block (15종)
|
|
79
|
+
|
|
80
|
+
| # | Variant | 배경 | 구분선 | 인터랙션 |
|
|
81
|
+
|---|---------|------|--------|---------|
|
|
82
|
+
| 1 | `solid` | 단색 배경 | 없음 | 없음 |
|
|
83
|
+
| 2 | `gradient` | gradient | 없음 | 없음 |
|
|
84
|
+
| 3 | `image-bg` | `background-image` cover + overlay | 없음 | parallax 가능 |
|
|
85
|
+
| 4 | `image-bg-fixed` | `background-attachment: fixed` + overlay | 없음 | 스크롤 시 이미지 고정 |
|
|
86
|
+
| 5 | `pattern` | SVG/CSS pattern repeat | 없음 | 없음 |
|
|
87
|
+
| 6 | `texture` | 미세 텍스처 (노이즈/린넨/종이) | 없음 | 없음 |
|
|
88
|
+
| 7 | `wave-top` | solid | 상단 wave SVG | 없음 |
|
|
89
|
+
| 8 | `wave-both` | solid | 상하 wave SVG | 없음 |
|
|
90
|
+
| 9 | `diagonal` | solid | 대각선 clip-path | 없음 |
|
|
91
|
+
| 10 | `curved` | solid | 곡선 border-radius 대형 | 없음 |
|
|
92
|
+
| 11 | `split-2col` | 좌 이미지 50% + 우 solid 50% | 없음 | 이미지 hover zoom |
|
|
93
|
+
| 12 | `split-offset` | 이미지가 섹션 경계 넘어 걸침 (negative margin) | 없음 | 이미지 float up |
|
|
94
|
+
| 13 | `floating-cards` | gradient 또는 pattern | 없음 | 카드별 개별 호버 |
|
|
95
|
+
| 14 | `glass-panel` | backdrop-blur 패널 | 없음 | hover: blur 강화 |
|
|
96
|
+
| 15 | `dark-light-toggle` | 교차 색상 (짝수: light, 홀수: dark) | 없음 | 없음 |
|
|
97
|
+
|
|
98
|
+
### Input / Form (10종)
|
|
99
|
+
|
|
100
|
+
| # | Variant | 배경/보더 | 아이콘 | Focus 인터랙션 |
|
|
101
|
+
|---|---------|----------|--------|--------------|
|
|
102
|
+
| 1 | `outline` | transparent + border | 없음 | border-color → primary |
|
|
103
|
+
| 2 | `filled` | 채움 bg + border 없음 | 없음 | bg 밝아짐 |
|
|
104
|
+
| 3 | `underline` | transparent + border-bottom만 | 없음 | underline 색상 primary + width 확장 |
|
|
105
|
+
| 4 | `icon-prefix` | outline/filled + 좌측 아이콘 | 아이콘 20px 좌측 | icon 색상 → primary |
|
|
106
|
+
| 5 | `icon-suffix` | outline/filled + 우측 아이콘 | 아이콘 20px 우측 (검색/clear) | icon click action |
|
|
107
|
+
| 6 | `icon-both` | outline/filled + 양쪽 아이콘 | 좌 20px + 우 20px | 양쪽 icon 색상 → primary |
|
|
108
|
+
| 7 | `floating-label` | outline/filled + 라벨 이동 | 선택적 | label translateY (-100%) + scale(0.85) |
|
|
109
|
+
| 8 | `glass` | backdrop-blur + 반투명 border | 선택적 | blur 강화 + border 밝아짐 |
|
|
110
|
+
| 9 | `pill` | rounded-full + outline/filled | 선택적 | shadow glow (box-shadow primary/20%) |
|
|
111
|
+
| 10 | `search-expand` | 아이콘만 표시 → 클릭 시 확장 | 검색 아이콘 20px | width 40px→240px + input 표시 |
|
|
112
|
+
|
|
113
|
+
### List / Table (8종)
|
|
114
|
+
|
|
115
|
+
| # | Variant | 배경/구분 | 아이콘/이미지 | 호버 인터랙션 |
|
|
116
|
+
|---|---------|----------|-------------|-------------|
|
|
117
|
+
| 1 | `simple` | divider (border-bottom) | 없음 | bg highlight (primary/5%) |
|
|
118
|
+
| 2 | `icon-list` | divider | 좌 아이콘 20px | icon color shift → primary |
|
|
119
|
+
| 3 | `avatar-list` | divider | 아바타 40px 원형 | row highlight |
|
|
120
|
+
| 4 | `thumbnail-list` | divider | 좌 썸네일 60×60 rounded | image zoom 1→1.05 |
|
|
121
|
+
| 5 | `status-list` | divider | 우측 상태 뱃지/아이콘 16px | 없음 |
|
|
122
|
+
| 6 | `striped-table` | 교차 행 배경색 (짝수 행 bg-alt) | 선택적 | row highlight |
|
|
123
|
+
| 7 | `bordered-table` | 셀 border + 헤더 bg-alt | 정렬 아이콘 14px | row highlight |
|
|
124
|
+
| 8 | `card-list` | 각 행이 카드 (shadow + rounded) | 선택적 | card lift (-translate-y-1 + shadow 강화) |
|
|
125
|
+
|
|
126
|
+
### Modal / Dialog (6종)
|
|
127
|
+
|
|
128
|
+
| # | Variant | 오버레이 | 컨테이너 | 진입 애니메이션 |
|
|
129
|
+
|---|---------|---------|----------|--------------|
|
|
130
|
+
| 1 | `center` | bg-black/50 | 중앙 고정 rounded | scale 0.95→1 + opacity 0→1 (0.2s ease-out) |
|
|
131
|
+
| 2 | `glass` | backdrop-blur-sm | 중앙 backdrop-blur rounded | scale 0.95→1 + blur-in (0.2s) |
|
|
132
|
+
| 3 | `fullscreen` | 없음 | 전체 화면 | slide-up (translateY 100%→0) (0.3s ease-out) |
|
|
133
|
+
| 4 | `drawer-right` | bg-black/30 | 우측 고정 h-full | slide-left (translateX 100%→0) (0.3s ease-out) |
|
|
134
|
+
| 5 | `drawer-bottom` | bg-black/30 | 하단 고정 w-full rounded-t | slide-up (translateY 100%→0) (0.3s ease-out) |
|
|
135
|
+
| 6 | `image-header` | bg-black/50 | 상단 이미지 + 하단 콘텐츠 | scale 0.95→1 + opacity (0.2s) |
|
|
136
|
+
|
|
137
|
+
### Toast / Alert (6종)
|
|
138
|
+
|
|
139
|
+
| # | Variant | 배경 | 아이콘 | 애니메이션 |
|
|
140
|
+
|---|---------|------|--------|-----------|
|
|
141
|
+
| 1 | `solid` | 시맨틱 색상 (success/warning/error/info) | 상태 아이콘 20px | slide-in-right + fade-out (0.3s) |
|
|
142
|
+
| 2 | `outline` | transparent + 시맨틱 border | 상태 아이콘 20px | slide-in-right (0.3s) |
|
|
143
|
+
| 3 | `glass` | backdrop-blur + 반투명 | 상태 아이콘 20px | slide-in-right + blur-in (0.3s) |
|
|
144
|
+
| 4 | `left-accent` | white/surface + 좌측 시맨틱 border-4 | 상태 아이콘 20px | slide-in-right (0.3s) |
|
|
145
|
+
| 5 | `icon-circle` | white/surface | 아이콘 24px in 시맨틱 원형 bg 36px | scale-in (0.2s) |
|
|
146
|
+
| 6 | `progress` | white/surface + 하단 progress bar | 상태 아이콘 20px | slide-in + progress width 100%→0% |
|
|
147
|
+
|
|
148
|
+
### Badge / Tag (6종)
|
|
149
|
+
|
|
150
|
+
| # | Variant | 배경 | 아이콘 | 인터랙션 |
|
|
151
|
+
|---|---------|------|--------|---------|
|
|
152
|
+
| 1 | `solid` | 시맨틱/accent 배경 | 없음 | 없음 |
|
|
153
|
+
| 2 | `outline` | transparent + border | 없음 | 없음 |
|
|
154
|
+
| 3 | `dot` | transparent/subtle | 좌측 dot 8px (시맨틱 색상) | 없음 |
|
|
155
|
+
| 4 | `icon-badge` | solid/subtle | 좌측 아이콘 14px | 없음 |
|
|
156
|
+
| 5 | `pill-dismiss` | solid + 우측 X 버튼 | close 아이콘 14px | X hover: bg darken |
|
|
157
|
+
| 6 | `gradient` | gradient 배경 | 없음 | 없음 |
|
|
158
|
+
|
|
159
|
+
### Footer (8종)
|
|
160
|
+
|
|
161
|
+
| # | Variant | 배경 | 구분선 | 특수 요소 |
|
|
162
|
+
|---|---------|------|--------|----------|
|
|
163
|
+
| 1 | `simple` | solid dark | 상단 border-top | 카피라이트 + 링크 1줄 |
|
|
164
|
+
| 2 | `multi-column` | solid dark | 상단 border-top | 3~4 컬럼 링크 + 하단 카피라이트 |
|
|
165
|
+
| 3 | `wave-top` | solid dark | 상단 wave SVG | 멀티 컬럼 + wave |
|
|
166
|
+
| 4 | `gradient` | gradient | 없음 | 링크 + 카피라이트 |
|
|
167
|
+
| 5 | `cta-footer` | 2-tone (상단 CTA 배경 + 하단 dark) | CTA/footer 구분 | 상단 CTA 배너 + 하단 링크 |
|
|
168
|
+
| 6 | `image-bg` | `background-image` + dark overlay | 없음 | 링크 (white 텍스트) |
|
|
169
|
+
| 7 | `social-icons` | solid dark | 없음 | 소셜 아이콘 20px 중심 + 최소 텍스트 |
|
|
170
|
+
| 8 | `newsletter` | solid 또는 gradient | 없음 | 이메일 인풋 + 구독 CTA + 링크 |
|
|
171
|
+
|
|
172
|
+
### Skeleton / Loading (5종)
|
|
173
|
+
|
|
174
|
+
| # | Variant | 형태 | 애니메이션 |
|
|
175
|
+
|---|---------|------|-----------|
|
|
176
|
+
| 1 | `pulse` | 컨텐츠 형태 회색 블록 (rounded) | opacity 0.5↔1 반복 (1.5s infinite) |
|
|
177
|
+
| 2 | `shimmer` | 컨텐츠 형태 회색 블록 | 좌→우 gradient sweep (1.5s infinite) |
|
|
178
|
+
| 3 | `blur-up` | LQIP 블러 이미지 → 원본 | blur 20px→0 (0.5s ease-out, 로드 완료 시) |
|
|
179
|
+
| 4 | `dominant-color` | 이미지 대표색 배경 → 원본 | color→image cross-fade (0.3s) |
|
|
180
|
+
| 5 | `content-placeholder` | 텍스트 줄/이미지/아바타 형태 유지 | shimmer 또는 pulse 선택 |
|
|
181
|
+
|
|
182
|
+
### Empty State (5종)
|
|
183
|
+
|
|
184
|
+
| # | Variant | 비주얼 | 일러스트/아이콘 | 크기 |
|
|
185
|
+
|---|---------|--------|----------------|------|
|
|
186
|
+
| 1 | `illustration` | 일러스트 + 제목 + 설명 + CTA | SVG 일러스트 200~300px | 페이지 레벨 |
|
|
187
|
+
| 2 | `icon-large` | 대형 아이콘 + 제목 + 설명 | 아이콘 64px (muted color) | 페이지/섹션 |
|
|
188
|
+
| 3 | `minimal` | 텍스트 + 링크만 | 없음 | 카드 내부 |
|
|
189
|
+
| 4 | `action-card` | 카드 형태 + 아이콘 + 설명 + CTA | 아이콘 48px | 섹션 내부 |
|
|
190
|
+
| 5 | `animated` | 애니메이션 일러스트 + 텍스트 | Lottie/CSS animation | 페이지 레벨 |
|
|
191
|
+
|
|
192
|
+
---
|
|
193
|
+
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
# 비주얼 인터랙션 패턴 사전
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
컴포넌트 variant에서 참조하는 인터랙션 패턴의 CSS 구현 가이드입니다.
|
|
5
|
+
|
|
6
|
+
### 이미지 인터랙션
|
|
7
|
+
|
|
8
|
+
| 패턴명 | 기본 상태 | 호버 상태 | CSS transition |
|
|
9
|
+
|--------|----------|----------|---------------|
|
|
10
|
+
| `image-zoom` | `transform: scale(1)` | `transform: scale(1.05~1.1)` | `transform 0.4s ease` |
|
|
11
|
+
| `image-reveal` | `opacity: 0.2; filter: blur(2px)` | `opacity: 0.6; filter: blur(0)` | `opacity 0.4s, filter 0.4s ease` |
|
|
12
|
+
| `overlay-fade` | `::after opacity: 0.6~0.8` | `::after opacity: 0.3~0.4` | `opacity 0.3s ease-out` |
|
|
13
|
+
| `image-grayscale` | `filter: grayscale(100%)` | `filter: grayscale(0)` | `filter 0.5s ease` |
|
|
14
|
+
| `image-float` | `transform: translateY(0)` | `transform: translateY(-10px)` | `transform 0.4s ease` |
|
|
15
|
+
| `parallax` | `background-attachment: fixed` | 스크롤 속도 차이 | CSS only 또는 JS (GSAP) |
|
|
16
|
+
| `ken-burns` | `transform: scale(1)` | `transform: scale(1.1) translate(-2%, -1%)` | `transform 20s ease infinite` |
|
|
17
|
+
|
|
18
|
+
### 요소 인터랙션
|
|
19
|
+
|
|
20
|
+
| 패턴명 | 기본 상태 | 호버 상태 | CSS transition |
|
|
21
|
+
|--------|----------|----------|---------------|
|
|
22
|
+
| `lift` | `transform: none; shadow: sm` | `translateY(-2~4px); shadow: lg` | `transform 0.2s, box-shadow 0.2s ease` |
|
|
23
|
+
| `tilt-3d` | `perspective(1000px)` | `rotateY(5deg) rotateX(3deg)` | JS (마우스 트래킹) |
|
|
24
|
+
| `glow-expand` | `box-shadow: 0 0 0 rgba(...)` | `box-shadow: 0 0 20~30px rgba(...)` | `box-shadow 0.3s ease` |
|
|
25
|
+
| `border-glow` | `border-color: subtle` | `border-color: primary + box-shadow` | `border-color 0.2s, box-shadow 0.3s` |
|
|
26
|
+
| `stacked-reveal` | `::before translateY(0)` | `::before translateY(8px) rotate(2deg)` | `transform 0.3s ease` |
|
|
27
|
+
| `split-shift` | 분할 위치 50% | 분할 위치 45%~55% | `background-size 0.4s ease` |
|
|
28
|
+
|
|
29
|
+
### 텍스트/아이콘 인터랙션
|
|
30
|
+
|
|
31
|
+
| 패턴명 | 기본 상태 | 호버 상태 | CSS transition |
|
|
32
|
+
|--------|----------|----------|---------------|
|
|
33
|
+
| `icon-morph` | `transform: none` | `scale(1.2) rotate(15deg)` | `transform 0.2s ease` |
|
|
34
|
+
| `icon-bounce` | `transform: none` | `translateY(-2px)` | `transform 0.2s ease` |
|
|
35
|
+
| `icon-shift` | `transform: none` | `translateX(4px)` | `transform 0.2s ease` |
|
|
36
|
+
| `icon-color` | `color: secondary` | `color: primary` | `color 0.2s ease` |
|
|
37
|
+
| `text-underline-grow` | `::after width: 0` | `::after width: 100%` | `width 0.3s ease` |
|
|
38
|
+
| `text-gradient-animate` | `background-position: 0%` | `background-position: 100%` | `background-position 3s ease infinite` |
|
|
39
|
+
| `counter-up` | `display: 0` | 목표 숫자까지 카운트 | JS (IntersectionObserver + requestAnimationFrame) |
|
|
40
|
+
| `text-slide-up` | `translateY(10px); opacity: 0` | `translateY(0); opacity: 1` | `transform 0.3s, opacity 0.3s ease` |
|
|
41
|
+
|
|
42
|
+
### 진입 애니메이션 (스크롤 트리거)
|
|
43
|
+
|
|
44
|
+
| 패턴명 | 초기 상태 | 진입 상태 | 트리거 |
|
|
45
|
+
|--------|----------|----------|--------|
|
|
46
|
+
| `fade-in` | `opacity: 0` | `opacity: 1` | IntersectionObserver |
|
|
47
|
+
| `fade-up` | `opacity: 0; translateY(20px)` | `opacity: 1; translateY(0)` | IntersectionObserver |
|
|
48
|
+
| `fade-left` | `opacity: 0; translateX(-20px)` | `opacity: 1; translateX(0)` | IntersectionObserver |
|
|
49
|
+
| `fade-right` | `opacity: 0; translateX(20px)` | `opacity: 1; translateX(0)` | IntersectionObserver |
|
|
50
|
+
| `scale-in` | `opacity: 0; scale(0.95)` | `opacity: 1; scale(1)` | IntersectionObserver |
|
|
51
|
+
| `stagger` | 자식 요소 순차 delay (50~100ms) | 각 요소 fade-up | IntersectionObserver + delay |
|
|
52
|
+
|
|
53
|
+
### 전환 애니메이션 (모달/드로어)
|
|
54
|
+
|
|
55
|
+
| 패턴명 | 닫힘 | 열림 | duration |
|
|
56
|
+
|--------|------|------|----------|
|
|
57
|
+
| `modal-scale` | `scale(0.95); opacity: 0` | `scale(1); opacity: 1` | 0.2s ease-out |
|
|
58
|
+
| `slide-up` | `translateY(100%)` | `translateY(0)` | 0.3s ease-out |
|
|
59
|
+
| `slide-right` | `translateX(100%)` | `translateX(0)` | 0.3s ease-out |
|
|
60
|
+
| `slide-left` | `translateX(-100%)` | `translateX(0)` | 0.3s ease-out |
|
|
61
|
+
| `blur-in` | `backdrop-filter: blur(0)` | `backdrop-filter: blur(8px)` | 0.2s ease |
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
# Admin/CMS 도메인 컴포넌트 스펙
|
|
2
|
+
|
|
3
|
+
> 참조: defs/component-specs.md (기본 컴포넌트)
|
|
4
|
+
> 용도: 관리자 패널, CMS, 백오피스
|
|
5
|
+
|
|
6
|
+
## 컴포넌트 목록
|
|
7
|
+
|
|
8
|
+
### CRUD Table
|
|
9
|
+
- DataTable 기반 + 생성/수정/삭제 인라인
|
|
10
|
+
- 벌크 액션 (다중 선택 → 일괄 처리)
|
|
11
|
+
- 소프트 삭제 (휴지통)
|
|
12
|
+
- 감사 로그 (누가 언제 수정)
|
|
13
|
+
- CSV/Excel 내보내기
|
|
14
|
+
|
|
15
|
+
### ContentEditor
|
|
16
|
+
- 리치 텍스트 에디터 (WYSIWYG)
|
|
17
|
+
- 마크다운 모드 전환
|
|
18
|
+
- 이미지/동영상 임베드
|
|
19
|
+
- 코드 블록 (syntax highlighting)
|
|
20
|
+
- 테이블 삽입
|
|
21
|
+
- 자동 저장 + 버전 관리
|
|
22
|
+
- SEO 메타데이터 편집 패널
|
|
23
|
+
|
|
24
|
+
### UserManager
|
|
25
|
+
- 사용자 목록 (검색/필터/정렬)
|
|
26
|
+
- 역할(Role) 관리 (RBAC)
|
|
27
|
+
- 권한(Permission) 매트릭스
|
|
28
|
+
- 사용자 초대 (이메일)
|
|
29
|
+
- 활동 로그
|
|
30
|
+
|
|
31
|
+
### FileManager
|
|
32
|
+
- 폴더/파일 트리 뷰
|
|
33
|
+
- 드래그 앤 드롭 업로드
|
|
34
|
+
- 이미지 미리보기/썸네일
|
|
35
|
+
- 파일 검색
|
|
36
|
+
- 용량 표시
|
|
37
|
+
|
|
38
|
+
### NotificationCenter
|
|
39
|
+
- 알림 드롭다운
|
|
40
|
+
- 읽음/안읽음 상태
|
|
41
|
+
- 알림 유형별 아이콘
|
|
42
|
+
- 시간순 정렬
|
|
43
|
+
- 알림 설정 패널
|
|
44
|
+
|
|
45
|
+
### ActivityLog
|
|
46
|
+
- 타임라인 형식
|
|
47
|
+
- 필터 (사용자/액션/날짜)
|
|
48
|
+
- 상세 diff 보기
|
|
49
|
+
- 실시간 업데이트 (WebSocket)
|
|
50
|
+
|
|
51
|
+
### SettingsForm
|
|
52
|
+
- 카테고리별 탭/사이드바
|
|
53
|
+
- 토글 스위치 그룹
|
|
54
|
+
- 저장/취소/되돌리기
|
|
55
|
+
- 변경 사항 표시 (dirty state)
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
# Dashboard 도메인 컴포넌트 스펙
|
|
2
|
+
|
|
3
|
+
> 참조: defs/component-specs.md (기본 컴포넌트)
|
|
4
|
+
> 용도: 데이터 대시보드, 모니터링, 분석 도구
|
|
5
|
+
|
|
6
|
+
## 컴포넌트 목록
|
|
7
|
+
|
|
8
|
+
### StatCard
|
|
9
|
+
- 주요 지표 (KPI) 숫자
|
|
10
|
+
- 증감 표시 (↑↓, 퍼센트, 색상)
|
|
11
|
+
- 미니 차트 (sparkline)
|
|
12
|
+
- 기간 선택 (일/주/월/연)
|
|
13
|
+
- 아이콘 + 라벨
|
|
14
|
+
- 로딩 스켈레톤
|
|
15
|
+
|
|
16
|
+
### ChartWidget
|
|
17
|
+
- 차트 타입: Line, Bar, Pie, Doughnut, Area, Scatter
|
|
18
|
+
- 반응형 리사이즈
|
|
19
|
+
- 툴팁 (hover)
|
|
20
|
+
- 범례 (토글 가능)
|
|
21
|
+
- 줌/팬
|
|
22
|
+
- 데이터 라벨
|
|
23
|
+
- 실시간 업데이트
|
|
24
|
+
|
|
25
|
+
### DataGrid
|
|
26
|
+
- 정렬/필터/검색
|
|
27
|
+
- 컬럼 커스터마이징
|
|
28
|
+
- 행 클릭 → 상세 드릴다운
|
|
29
|
+
- 페이지네이션/무한 스크롤
|
|
30
|
+
- 내보내기 (CSV/PDF)
|
|
31
|
+
|
|
32
|
+
### DateRangePicker
|
|
33
|
+
- 캘린더 UI (듀얼 패널)
|
|
34
|
+
- 프리셋 (오늘, 7일, 30일, 분기, 연간)
|
|
35
|
+
- 커스텀 범위 입력
|
|
36
|
+
- 비교 기간 선택
|
|
37
|
+
|
|
38
|
+
### KPIBoard
|
|
39
|
+
- 그리드 배치 (드래그 앤 드롭)
|
|
40
|
+
- 위젯 추가/제거
|
|
41
|
+
- 레이아웃 저장 (사용자별)
|
|
42
|
+
- 전체화면 모드
|
|
43
|
+
|
|
44
|
+
### Heatmap
|
|
45
|
+
- 시간×카테고리 매트릭스
|
|
46
|
+
- 색상 범례
|
|
47
|
+
- 셀 클릭 → 상세
|
|
48
|
+
- 툴팁
|
|
49
|
+
|
|
50
|
+
### FunnelChart
|
|
51
|
+
- 단계별 전환률
|
|
52
|
+
- 절대 수/비율 표시
|
|
53
|
+
- 이탈률 표시
|
|
54
|
+
- 호버 상세
|
|
55
|
+
|
|
56
|
+
### AlertBanner
|
|
57
|
+
- 심각도별 색상 (info/warning/error/critical)
|
|
58
|
+
- 닫기/스누즈
|
|
59
|
+
- 액션 버튼
|
|
60
|
+
- 실시간 알림 연동
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
# ERP 도메인 컴포넌트 스펙
|
|
2
|
+
|
|
3
|
+
> 참조: defs/component-specs.md (기본 컴포넌트)
|
|
4
|
+
> 용도: ERP, 재고/물류 관리, 생산 관리, 회계 시스템
|
|
5
|
+
|
|
6
|
+
## 컴포넌트 목록
|
|
7
|
+
|
|
8
|
+
### DataTable 고급
|
|
9
|
+
- 정렬 (다중 컬럼)
|
|
10
|
+
- 필터링 (컬럼별 + 글로벌)
|
|
11
|
+
- 페이지네이션 (서버사이드)
|
|
12
|
+
- 행 선택 (단일/다중/전체)
|
|
13
|
+
- 인라인 편집
|
|
14
|
+
- 컬럼 리사이즈/리오더
|
|
15
|
+
- 고정 헤더/컬럼 (sticky)
|
|
16
|
+
- 행 확장 (nested data)
|
|
17
|
+
- 가상 스크롤링 (10,000+ 행)
|
|
18
|
+
- 컬럼 그룹핑
|
|
19
|
+
- 요약 행 (합계, 평균)
|
|
20
|
+
- 셀 병합
|
|
21
|
+
|
|
22
|
+
### FormBuilder
|
|
23
|
+
- 동적 폼 생성 (JSON 스키마 기반)
|
|
24
|
+
- 다단계 폼 (wizard)
|
|
25
|
+
- 조건부 필드 표시/숨김
|
|
26
|
+
- 폼 유효성 검사 (실시간)
|
|
27
|
+
- 자동 저장 (debounce)
|
|
28
|
+
- 폼 히스토리/되돌리기
|
|
29
|
+
|
|
30
|
+
### TreeView
|
|
31
|
+
- 계층 데이터 표시 (무제한 depth)
|
|
32
|
+
- 드래그 앤 드롭 (노드 이동)
|
|
33
|
+
- 체크박스 선택 (부모-자식 연동)
|
|
34
|
+
- 지연 로딩 (가상화)
|
|
35
|
+
- 검색/필터
|
|
36
|
+
- 컨텍스트 메뉴
|
|
37
|
+
|
|
38
|
+
### MasterDetail
|
|
39
|
+
- 좌측 목록 + 우측 상세
|
|
40
|
+
- 목록/상세 비율 조절 (드래그)
|
|
41
|
+
- 상세 패널 탭 구성
|
|
42
|
+
- 인라인 편집 모드
|
|
43
|
+
|
|
44
|
+
### Gantt Chart
|
|
45
|
+
- 타임라인 뷰 (일/주/월)
|
|
46
|
+
- 태스크 바 드래그
|
|
47
|
+
- 의존성 화살표
|
|
48
|
+
- 마일스톤 마커
|
|
49
|
+
- 리소스 할당 뷰
|
|
50
|
+
|
|
51
|
+
### ApprovalFlow
|
|
52
|
+
- 결재 라인 시각화 (세로/가로)
|
|
53
|
+
- 상태 표시 (대기/승인/반려/참조)
|
|
54
|
+
- 결재 코멘트
|
|
55
|
+
- 위임/대결 표시
|
|
56
|
+
|
|
57
|
+
### NumberInput
|
|
58
|
+
- 통화 포맷 (₩, $, €)
|
|
59
|
+
- 천 단위 콤마
|
|
60
|
+
- 소수점 자릿수 제한
|
|
61
|
+
- 범위 검증 (min/max)
|
|
62
|
+
- 증감 버튼 (stepper)
|
|
63
|
+
|
|
64
|
+
### StatusTimeline
|
|
65
|
+
- 프로세스 단계 시각화
|
|
66
|
+
- 현재 단계 하이라이트
|
|
67
|
+
- 과거 이력 목록
|
|
68
|
+
- 담당자/시간 표시
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
# SaaS 도메인 컴포넌트 스펙
|
|
2
|
+
|
|
3
|
+
> 참조: defs/component-specs.md (기본 컴포넌트)
|
|
4
|
+
> 용도: SaaS, 구독형 서비스, 멀티테넌트
|
|
5
|
+
|
|
6
|
+
## 컴포넌트 목록
|
|
7
|
+
|
|
8
|
+
### PricingTable
|
|
9
|
+
- 플랜 비교 (2~4열)
|
|
10
|
+
- 기능 체크리스트 (✓/✗/부분)
|
|
11
|
+
- 월간/연간 토글 (할인율 표시)
|
|
12
|
+
- 추천 플랜 하이라이트
|
|
13
|
+
- CTA 버튼 (플랜별)
|
|
14
|
+
- 기업용 "문의하기" 옵션
|
|
15
|
+
- 반응형 (모바일: 스와이프 카드)
|
|
16
|
+
|
|
17
|
+
### OnboardingWizard
|
|
18
|
+
- 단계 프로그레스 바
|
|
19
|
+
- 스텝별 콘텐츠 (설명 + 입력)
|
|
20
|
+
- 건너뛰기/되돌아가기
|
|
21
|
+
- 완료 축하 화면 (confetti)
|
|
22
|
+
- 체크리스트 (남은 설정)
|
|
23
|
+
|
|
24
|
+
### SettingsPanel
|
|
25
|
+
- 카테고리 사이드바
|
|
26
|
+
- 프로필 설정
|
|
27
|
+
- 팀/조직 설정
|
|
28
|
+
- 알림 설정 (채널별 토글)
|
|
29
|
+
- 통합(Integration) 설정
|
|
30
|
+
- API 키 관리
|
|
31
|
+
- 빌링/구독 관리
|
|
32
|
+
|
|
33
|
+
### UsageMeter
|
|
34
|
+
- 사용량 바 (% 표시)
|
|
35
|
+
- 한도 경고 (80%, 90%, 100%)
|
|
36
|
+
- 업그레이드 CTA
|
|
37
|
+
- 사용 내역 차트 (일별)
|
|
38
|
+
- 리소스별 분류
|
|
39
|
+
|
|
40
|
+
### TeamManagement
|
|
41
|
+
- 멤버 목록 (아바타, 역할, 상태)
|
|
42
|
+
- 초대 (이메일/링크)
|
|
43
|
+
- 역할 변경 드롭다운
|
|
44
|
+
- 제거 확인 모달
|
|
45
|
+
- 팀 활동 요약
|
|
46
|
+
|
|
47
|
+
### BillingDashboard
|
|
48
|
+
- 현재 플랜 정보
|
|
49
|
+
- 다음 결제일/금액
|
|
50
|
+
- 결제 수단 관리
|
|
51
|
+
- 인보이스 목록/다운로드
|
|
52
|
+
- 플랜 변경/취소
|
|
53
|
+
|
|
54
|
+
### FeatureGate
|
|
55
|
+
- 플랜별 기능 잠금 UI
|
|
56
|
+
- 업그레이드 프롬프트 (인라인)
|
|
57
|
+
- "Pro" 배지 표시
|
|
58
|
+
- 미리보기 모드 (블러 + CTA)
|
|
59
|
+
|
|
60
|
+
### IntegrationCard
|
|
61
|
+
- 앱 아이콘 + 이름 + 설명
|
|
62
|
+
- 연결/해제 토글
|
|
63
|
+
- 설정 드롭다운
|
|
64
|
+
- 상태 표시 (연결됨/오류/미설정)
|
|
65
|
+
- 카테고리 필터
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
# project_type별 컴포넌트 & 기능 흐름
|
|
2
|
+
|
|
3
|
+
> 참조: `gen/gen-design-guide.md` 섹션 4, 6에서 사용
|
|
4
|
+
> Dependencies: 없음 (독립 참조 데이터)
|
|
5
|
+
|
|
6
|
+
## project_type별 컴포넌트 세트 (섹션 4)
|
|
7
|
+
|
|
8
|
+
> 상세: `defs/component-specs/01-set-component.md` 참조
|
|
9
|
+
|
|
10
|
+
## project_type별 기능 흐름 (섹션 6)
|
|
11
|
+
|
|
12
|
+
> 상세: `defs/component-specs/02-features-flow.md` 참조
|
|
13
|
+
|
|
14
|
+
1. **로그인**: 이메일+비밀번호, 5회 실패 잠금, 중복 로그인 감지, 세션 만료 30분
|
|
15
|
+
## 비주얼 Variant 시스템 (121종)
|
|
16
|
+
|
|
17
|
+
> 상세: `defs/component-specs/03-system-visual.md` 참조
|
|
18
|
+
|
|
19
|
+
각 컴포넌트의 비주얼 variant를 정의합니다. gen-design-guide.md에서 스타일별로 CSS/HTML 코드를 생성할 때 이 정의를 참조합니다.
|
|
20
|
+
## 비주얼 인터랙션 패턴 사전
|
|
21
|
+
|
|
22
|
+
> 상세: `defs/component-specs/04-interaction-pattern-visual.md` 참조
|
|
23
|
+
|
|
24
|
+
컴포넌트 variant에서 참조하는 인터랙션 패턴의 CSS 구현 가이드입니다.
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
# 디자인 가이드 섹션 정의
|
|
2
|
+
|
|
3
|
+
> 참조: `gen/gen-design-guide.md`에서 사용
|
|
4
|
+
> Dependencies: `defs/ia-patterns.md`, `defs/component-specs.md`, `defs/icon-mappings.md`, `defs/image-strategies.md`
|
|
5
|
+
|
|
6
|
+
## 섹션 구성 (8개)
|
|
7
|
+
|
|
8
|
+
| 번호 | 섹션명 | full | style_only | 참조 파일 |
|
|
9
|
+
|------|--------|------|------------|----------|
|
|
10
|
+
| 1 | 프로젝트 개요 | O | O | (인라인) |
|
|
11
|
+
| 2 | 정보 구조 (IA) | O | X | `defs/ia-patterns.md` |
|
|
12
|
+
| 3 | 스타일 가이드 | O | O | (인라인) |
|
|
13
|
+
| 3e | 이미지 전략 | O | X | `defs/image-strategies.md` |
|
|
14
|
+
| 4 | 컴포넌트 스펙 | O | O | `defs/component-specs.md` |
|
|
15
|
+
| 5 | 상태 & 피드백 | O | X | (인라인) |
|
|
16
|
+
| 6 | 기능 흐름 | O | X | `defs/component-specs.md` |
|
|
17
|
+
| 7 | 인터랙션 & 모션 | O | X | `defs/styles.md` (스타일별 패턴) |
|
|
18
|
+
| 8 | 참조 & 벤치마킹 | O | X | `defs/icon-mappings.md` |
|
|
19
|
+
|
|
20
|
+
## 아이콘 매핑 참조
|
|
21
|
+
|
|
22
|
+
섹션 4e 아이콘 매핑은 `defs/icon-mappings.md`를 참조합니다.
|
|
23
|
+
|
|
24
|
+
## 이미지 전략 참조
|
|
25
|
+
|
|
26
|
+
섹션 3e 이미지 전략은 `defs/image-strategies.md`를 참조합니다.
|
|
27
|
+
|
|
28
|
+
## 샘플 데이터 표기 규칙 (공통)
|
|
29
|
+
|
|
30
|
+
| 항목 | 형식 | 예시 |
|
|
31
|
+
|---|---|---|
|
|
32
|
+
| 날짜/시간 | ISO 기반 | `2025-01-15 14:30:22` |
|
|
33
|
+
| 숫자 | 천단위 콤마 | `1,234,567` |
|
|
34
|
+
| 퍼센트 | 소수점 1자리 | `45.2%` |
|
|
35
|
+
| 파일 크기 | 자동 단위 | `2.4 GB` |
|
|
36
|
+
| 시간 경과 | 자연어 | `3분 전`, `2시간 전` |
|
|
37
|
+
| 사용자 이름 | 현지어 | `김관리`, `이보안` |
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
# 1. 유틸리티/도구 (`utility`)
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
### desktop_utility_single — 단일 패널 (Single Panel)
|
|
5
|
+
|
|
6
|
+
```
|
|
7
|
+
┌─────────────────────────────────┐
|
|
8
|
+
│ [Title Bar] ─ □ ✕ │
|
|
9
|
+
├─────────────────────────────────┤
|
|
10
|
+
│ [Toolbar] 🔧 ⚙️ 📁 💾 │
|
|
11
|
+
├─────────────────────────────────┤
|
|
12
|
+
│ │
|
|
13
|
+
│ Main Content │
|
|
14
|
+
│ (단일 기능 영역) │
|
|
15
|
+
│ │
|
|
16
|
+
├─────────────────────────────────┤
|
|
17
|
+
│ [Status Bar] │
|
|
18
|
+
└─────────────────────────────────┘
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
- **특징**: 하나의 핵심 기능에 집중, 미니멀 UI
|
|
22
|
+
- **적합**: 계산기, 단위 변환, 텍스트 편집기, 스크린샷 도구
|
|
23
|
+
- **핵심 화면**: 메인 기능, 설정(모달)
|
|
24
|
+
|
|
25
|
+
### desktop_utility_multipane — 멀티 패인 (Multi-Pane)
|
|
26
|
+
|
|
27
|
+
```
|
|
28
|
+
┌─────────────────────────────────┐
|
|
29
|
+
│ [Title Bar] ─ □ ✕ │
|
|
30
|
+
├────────┬────────────────────────┤
|
|
31
|
+
│ [Toolbar] 🔧 ⚙️ │
|
|
32
|
+
├────────┼────────────────────────┤
|
|
33
|
+
│ │ │
|
|
34
|
+
│ Nav │ Main Content │
|
|
35
|
+
│ Tree │ (작업 영역) │
|
|
36
|
+
│ │ │
|
|
37
|
+
│ 📁 │ │
|
|
38
|
+
│ 📁 │ │
|
|
39
|
+
│ 📁 │ │
|
|
40
|
+
├────────┴────────────────────────┤
|
|
41
|
+
│ [Status Bar] │
|
|
42
|
+
└─────────────────────────────────┘
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
- **특징**: 좌측 트리/리스트 + 우측 콘텐츠, 리사이즈 가능
|
|
46
|
+
- **적합**: 파일 매니저, FTP 클라이언트, 설정 관리, SSH 터미널
|
|
47
|
+
- **핵심 화면**: 내비게이션 트리, 콘텐츠 뷰, 설정
|
|
48
|
+
|
|
49
|
+
### desktop_utility_compact — 컴팩트 위젯 (Compact Widget)
|
|
50
|
+
|
|
51
|
+
```
|
|
52
|
+
┌───────────────────┐
|
|
53
|
+
│ [≡] Widget [✕] │
|
|
54
|
+
├───────────────────┤
|
|
55
|
+
│ ┌───────────┐ │
|
|
56
|
+
│ │ Status │ │
|
|
57
|
+
│ │ Display │ │
|
|
58
|
+
│ └───────────┘ │
|
|
59
|
+
│ [Action] [More] │
|
|
60
|
+
└───────────────────┘
|
|
61
|
+
(항상 최상위)
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
- **특징**: 소형 고정 창, 항상 위, 시스템 트레이 연동
|
|
65
|
+
- **적합**: 시계, 시스템 모니터, 클립보드 매니저, 런처
|
|
66
|
+
- **핵심 화면**: 위젯 뷰, 확장 뷰, 트레이 메뉴
|
|
67
|
+
|
|
68
|
+
---
|
|
69
|
+
|