@brunosps00/dev-workflow 0.1.2 → 0.2.0

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.
Files changed (79) hide show
  1. package/README.md +2 -3
  2. package/lib/constants.js +2 -17
  3. package/lib/install-deps.js +5 -0
  4. package/package.json +1 -1
  5. package/scaffold/en/commands/dw-analyze-project.md +5 -0
  6. package/scaffold/en/commands/dw-brainstorm.md +8 -0
  7. package/scaffold/en/commands/dw-create-techspec.md +8 -0
  8. package/scaffold/en/commands/dw-functional-doc.md +1 -0
  9. package/scaffold/en/commands/dw-help.md +17 -2
  10. package/scaffold/en/commands/dw-redesign-ui.md +117 -0
  11. package/scaffold/en/commands/dw-refactoring-analysis.md +5 -0
  12. package/scaffold/en/commands/dw-run-qa.md +6 -0
  13. package/scaffold/pt-br/commands/dw-analyze-project.md +5 -0
  14. package/scaffold/pt-br/commands/dw-brainstorm.md +8 -0
  15. package/scaffold/pt-br/commands/dw-create-techspec.md +8 -0
  16. package/scaffold/pt-br/commands/dw-functional-doc.md +1 -0
  17. package/scaffold/pt-br/commands/dw-help.md +15 -0
  18. package/scaffold/pt-br/commands/dw-redesign-ui.md +117 -0
  19. package/scaffold/pt-br/commands/dw-refactoring-analysis.md +5 -0
  20. package/scaffold/pt-br/commands/dw-run-qa.md +6 -0
  21. package/scaffold/skills/ui-ux-pro-max/LICENSE +21 -0
  22. package/scaffold/skills/ui-ux-pro-max/SKILL.md +659 -0
  23. package/scaffold/skills/ui-ux-pro-max/data/_sync_all.py +414 -0
  24. package/scaffold/skills/ui-ux-pro-max/data/app-interface.csv +31 -0
  25. package/scaffold/skills/ui-ux-pro-max/data/charts.csv +26 -0
  26. package/scaffold/skills/ui-ux-pro-max/data/colors.csv +162 -0
  27. package/scaffold/skills/ui-ux-pro-max/data/design.csv +1776 -0
  28. package/scaffold/skills/ui-ux-pro-max/data/draft.csv +1779 -0
  29. package/scaffold/skills/ui-ux-pro-max/data/google-fonts.csv +1924 -0
  30. package/scaffold/skills/ui-ux-pro-max/data/icons.csv +106 -0
  31. package/scaffold/skills/ui-ux-pro-max/data/landing.csv +35 -0
  32. package/scaffold/skills/ui-ux-pro-max/data/products.csv +162 -0
  33. package/scaffold/skills/ui-ux-pro-max/data/react-performance.csv +45 -0
  34. package/scaffold/skills/ui-ux-pro-max/data/stacks/angular.csv +51 -0
  35. package/scaffold/skills/ui-ux-pro-max/data/stacks/astro.csv +54 -0
  36. package/scaffold/skills/ui-ux-pro-max/data/stacks/flutter.csv +53 -0
  37. package/scaffold/skills/ui-ux-pro-max/data/stacks/html-tailwind.csv +56 -0
  38. package/scaffold/skills/ui-ux-pro-max/data/stacks/jetpack-compose.csv +53 -0
  39. package/scaffold/skills/ui-ux-pro-max/data/stacks/laravel.csv +51 -0
  40. package/scaffold/skills/ui-ux-pro-max/data/stacks/nextjs.csv +53 -0
  41. package/scaffold/skills/ui-ux-pro-max/data/stacks/nuxt-ui.csv +51 -0
  42. package/scaffold/skills/ui-ux-pro-max/data/stacks/nuxtjs.csv +59 -0
  43. package/scaffold/skills/ui-ux-pro-max/data/stacks/react-native.csv +52 -0
  44. package/scaffold/skills/ui-ux-pro-max/data/stacks/react.csv +54 -0
  45. package/scaffold/skills/ui-ux-pro-max/data/stacks/shadcn.csv +61 -0
  46. package/scaffold/skills/ui-ux-pro-max/data/stacks/svelte.csv +54 -0
  47. package/scaffold/skills/ui-ux-pro-max/data/stacks/swiftui.csv +51 -0
  48. package/scaffold/skills/ui-ux-pro-max/data/stacks/threejs.csv +54 -0
  49. package/scaffold/skills/ui-ux-pro-max/data/stacks/vue.csv +50 -0
  50. package/scaffold/skills/ui-ux-pro-max/data/styles.csv +85 -0
  51. package/scaffold/skills/ui-ux-pro-max/data/typography.csv +74 -0
  52. package/scaffold/skills/ui-ux-pro-max/data/ui-reasoning.csv +162 -0
  53. package/scaffold/skills/ui-ux-pro-max/data/ux-guidelines.csv +100 -0
  54. package/scaffold/skills/ui-ux-pro-max/scripts/core.py +262 -0
  55. package/scaffold/skills/ui-ux-pro-max/scripts/design_system.py +1148 -0
  56. package/scaffold/skills/ui-ux-pro-max/scripts/search.py +114 -0
  57. package/scaffold/skills/ui-ux-pro-max/skills/brand/SKILL.md +97 -0
  58. package/scaffold/skills/ui-ux-pro-max/skills/design/SKILL.md +302 -0
  59. package/scaffold/skills/ui-ux-pro-max/skills/design-system/SKILL.md +244 -0
  60. package/scaffold/skills/ui-ux-pro-max/templates/base/quick-reference.md +297 -0
  61. package/scaffold/skills/ui-ux-pro-max/templates/base/skill-content.md +358 -0
  62. package/scaffold/skills/ui-ux-pro-max/templates/platforms/agent.json +21 -0
  63. package/scaffold/skills/ui-ux-pro-max/templates/platforms/augment.json +18 -0
  64. package/scaffold/skills/ui-ux-pro-max/templates/platforms/claude.json +21 -0
  65. package/scaffold/skills/ui-ux-pro-max/templates/platforms/codebuddy.json +21 -0
  66. package/scaffold/skills/ui-ux-pro-max/templates/platforms/codex.json +21 -0
  67. package/scaffold/skills/ui-ux-pro-max/templates/platforms/continue.json +21 -0
  68. package/scaffold/skills/ui-ux-pro-max/templates/platforms/copilot.json +21 -0
  69. package/scaffold/skills/ui-ux-pro-max/templates/platforms/cursor.json +21 -0
  70. package/scaffold/skills/ui-ux-pro-max/templates/platforms/droid.json +21 -0
  71. package/scaffold/skills/ui-ux-pro-max/templates/platforms/gemini.json +21 -0
  72. package/scaffold/skills/ui-ux-pro-max/templates/platforms/kilocode.json +21 -0
  73. package/scaffold/skills/ui-ux-pro-max/templates/platforms/kiro.json +21 -0
  74. package/scaffold/skills/ui-ux-pro-max/templates/platforms/opencode.json +21 -0
  75. package/scaffold/skills/ui-ux-pro-max/templates/platforms/qoder.json +21 -0
  76. package/scaffold/skills/ui-ux-pro-max/templates/platforms/roocode.json +21 -0
  77. package/scaffold/skills/ui-ux-pro-max/templates/platforms/trae.json +21 -0
  78. package/scaffold/skills/ui-ux-pro-max/templates/platforms/warp.json +18 -0
  79. package/scaffold/skills/ui-ux-pro-max/templates/platforms/windsurf.json +21 -0
@@ -0,0 +1,244 @@
1
+ ---
2
+ name: ckm:design-system
3
+ description: Token architecture, component specifications, and slide generation. Three-layer tokens (primitive→semantic→component), CSS variables, spacing/typography scales, component specs, strategic slide creation. Use for design tokens, systematic design, brand-compliant presentations.
4
+ argument-hint: "[component or token]"
5
+ license: MIT
6
+ metadata:
7
+ author: claudekit
8
+ version: "1.0.0"
9
+ ---
10
+
11
+ # Design System
12
+
13
+ Token architecture, component specifications, systematic design, slide generation.
14
+
15
+ ## When to Use
16
+
17
+ - Design token creation
18
+ - Component state definitions
19
+ - CSS variable systems
20
+ - Spacing/typography scales
21
+ - Design-to-code handoff
22
+ - Tailwind theme configuration
23
+ - **Slide/presentation generation**
24
+
25
+ ## Token Architecture
26
+
27
+ Load: `references/token-architecture.md`
28
+
29
+ ### Three-Layer Structure
30
+
31
+ ```
32
+ Primitive (raw values)
33
+
34
+ Semantic (purpose aliases)
35
+
36
+ Component (component-specific)
37
+ ```
38
+
39
+ **Example:**
40
+ ```css
41
+ /* Primitive */
42
+ --color-blue-600: #2563EB;
43
+
44
+ /* Semantic */
45
+ --color-primary: var(--color-blue-600);
46
+
47
+ /* Component */
48
+ --button-bg: var(--color-primary);
49
+ ```
50
+
51
+ ## Quick Start
52
+
53
+ **Generate tokens:**
54
+ ```bash
55
+ node scripts/generate-tokens.cjs --config tokens.json -o tokens.css
56
+ ```
57
+
58
+ **Validate usage:**
59
+ ```bash
60
+ node scripts/validate-tokens.cjs --dir src/
61
+ ```
62
+
63
+ ## References
64
+
65
+ | Topic | File |
66
+ |-------|------|
67
+ | Token Architecture | `references/token-architecture.md` |
68
+ | Primitive Tokens | `references/primitive-tokens.md` |
69
+ | Semantic Tokens | `references/semantic-tokens.md` |
70
+ | Component Tokens | `references/component-tokens.md` |
71
+ | Component Specs | `references/component-specs.md` |
72
+ | States & Variants | `references/states-and-variants.md` |
73
+ | Tailwind Integration | `references/tailwind-integration.md` |
74
+
75
+ ## Component Spec Pattern
76
+
77
+ | Property | Default | Hover | Active | Disabled |
78
+ |----------|---------|-------|--------|----------|
79
+ | Background | primary | primary-dark | primary-darker | muted |
80
+ | Text | white | white | white | muted-fg |
81
+ | Border | none | none | none | muted-border |
82
+ | Shadow | sm | md | none | none |
83
+
84
+ ## Scripts
85
+
86
+ | Script | Purpose |
87
+ |--------|---------|
88
+ | `generate-tokens.cjs` | Generate CSS from JSON token config |
89
+ | `validate-tokens.cjs` | Check for hardcoded values in code |
90
+ | `search-slides.py` | BM25 search + contextual recommendations |
91
+ | `slide-token-validator.py` | Validate slide HTML for token compliance |
92
+ | `fetch-background.py` | Fetch images from Pexels/Unsplash |
93
+
94
+ ## Templates
95
+
96
+ | Template | Purpose |
97
+ |----------|---------|
98
+ | `design-tokens-starter.json` | Starter JSON with three-layer structure |
99
+
100
+ ## Integration
101
+
102
+ **With brand:** Extract primitives from brand colors/typography
103
+ **With ui-styling:** Component tokens → Tailwind config
104
+
105
+ **Skill Dependencies:** brand, ui-styling
106
+ **Primary Agents:** ui-ux-designer, frontend-developer
107
+
108
+ ## Slide System
109
+
110
+ Brand-compliant presentations using design tokens + Chart.js + contextual decision system.
111
+
112
+ ### Source of Truth
113
+
114
+ | File | Purpose |
115
+ |------|---------|
116
+ | `docs/brand-guidelines.md` | Brand identity, voice, colors |
117
+ | `assets/design-tokens.json` | Token definitions (primitive→semantic→component) |
118
+ | `assets/design-tokens.css` | CSS variables (import in slides) |
119
+ | `assets/css/slide-animations.css` | CSS animation library |
120
+
121
+ ### Slide Search (BM25)
122
+
123
+ ```bash
124
+ # Basic search (auto-detect domain)
125
+ python scripts/search-slides.py "investor pitch"
126
+
127
+ # Domain-specific search
128
+ python scripts/search-slides.py "problem agitation" -d copy
129
+ python scripts/search-slides.py "revenue growth" -d chart
130
+
131
+ # Contextual search (Premium System)
132
+ python scripts/search-slides.py "problem slide" --context --position 2 --total 9
133
+ python scripts/search-slides.py "cta" --context --position 9 --prev-emotion frustration
134
+ ```
135
+
136
+ ### Decision System CSVs
137
+
138
+ | File | Purpose |
139
+ |------|---------|
140
+ | `data/slide-strategies.csv` | 15 deck structures + emotion arcs + sparkline beats |
141
+ | `data/slide-layouts.csv` | 25 layouts + component variants + animations |
142
+ | `data/slide-layout-logic.csv` | Goal → Layout + break_pattern flag |
143
+ | `data/slide-typography.csv` | Content type → Typography scale |
144
+ | `data/slide-color-logic.csv` | Emotion → Color treatment |
145
+ | `data/slide-backgrounds.csv` | Slide type → Image category (Pexels/Unsplash) |
146
+ | `data/slide-copy.csv` | 25 copywriting formulas (PAS, AIDA, FAB) |
147
+ | `data/slide-charts.csv` | 25 chart types with Chart.js config |
148
+
149
+ ### Contextual Decision Flow
150
+
151
+ ```
152
+ 1. Parse goal/context
153
+
154
+ 2. Search slide-strategies.csv → Get strategy + emotion beats
155
+
156
+ 3. For each slide:
157
+ a. Query slide-layout-logic.csv → layout + break_pattern
158
+ b. Query slide-typography.csv → type scale
159
+ c. Query slide-color-logic.csv → color treatment
160
+ d. Query slide-backgrounds.csv → image if needed
161
+ e. Apply animation class from slide-animations.css
162
+
163
+ 4. Generate HTML with design tokens
164
+
165
+ 5. Validate with slide-token-validator.py
166
+ ```
167
+
168
+ ### Pattern Breaking (Duarte Sparkline)
169
+
170
+ Premium decks alternate between emotions for engagement:
171
+ ```
172
+ "What Is" (frustration) ↔ "What Could Be" (hope)
173
+ ```
174
+
175
+ System calculates pattern breaks at 1/3 and 2/3 positions.
176
+
177
+ ### Slide Requirements
178
+
179
+ **ALL slides MUST:**
180
+ 1. Import `assets/design-tokens.css` - single source of truth
181
+ 2. Use CSS variables: `var(--color-primary)`, `var(--slide-bg)`, etc.
182
+ 3. Use Chart.js for charts (NOT CSS-only bars)
183
+ 4. Include navigation (keyboard arrows, click, progress bar)
184
+ 5. Center align content
185
+ 6. Focus on persuasion/conversion
186
+
187
+ ### Chart.js Integration
188
+
189
+ ```html
190
+ <script src="https://cdn.jsdelivr.net/npm/chart.js@4.4.1/dist/chart.umd.min.js"></script>
191
+
192
+ <canvas id="revenueChart"></canvas>
193
+ <script>
194
+ new Chart(document.getElementById('revenueChart'), {
195
+ type: 'line',
196
+ data: {
197
+ labels: ['Sep', 'Oct', 'Nov', 'Dec'],
198
+ datasets: [{
199
+ data: [5, 12, 28, 45],
200
+ borderColor: '#FF6B6B', // Use brand coral
201
+ backgroundColor: 'rgba(255, 107, 107, 0.1)',
202
+ fill: true,
203
+ tension: 0.4
204
+ }]
205
+ }
206
+ });
207
+ </script>
208
+ ```
209
+
210
+ ### Token Compliance
211
+
212
+ ```css
213
+ /* CORRECT - uses token */
214
+ background: var(--slide-bg);
215
+ color: var(--color-primary);
216
+ font-family: var(--typography-font-heading);
217
+
218
+ /* WRONG - hardcoded */
219
+ background: #0D0D0D;
220
+ color: #FF6B6B;
221
+ font-family: 'Space Grotesk';
222
+ ```
223
+
224
+ ### Reference Implementation
225
+
226
+ Working example with all features:
227
+ ```
228
+ assets/designs/slides/claudekit-pitch-251223.html
229
+ ```
230
+
231
+ ### Command
232
+
233
+ ```bash
234
+ /slides:create "10-slide investor pitch for ClaudeKit Marketing"
235
+ ```
236
+
237
+ ## Best Practices
238
+
239
+ 1. Never use raw hex in components - always reference tokens
240
+ 2. Semantic layer enables theme switching (light/dark)
241
+ 3. Component tokens enable per-component customization
242
+ 4. Use HSL format for opacity control
243
+ 5. Document every token's purpose
244
+ 6. **Slides must import design-tokens.css and use var() exclusively**
@@ -0,0 +1,297 @@
1
+ ## When to Apply
2
+
3
+ 当任务涉及 **UI 结构、视觉设计决策、交互模式或用户体验质量控制** 时,应使用此 Skill。
4
+
5
+ ### Must Use
6
+
7
+ 在以下情况必须调用此 Skill:
8
+
9
+ - 设计新的页面(Landing Page、Dashboard、Admin、SaaS、Mobile App)
10
+ - 创建或重构 UI 组件(按钮、弹窗、表单、表格、图表等)
11
+ - 选择配色方案、字体系统、间距规范或布局体系
12
+ - 审查 UI 代码的用户体验、可访问性或视觉一致性
13
+ - 实现导航结构、动效或响应式行为
14
+ - 做产品层级的设计决策(风格、信息层级、品牌表达)
15
+ - 提升界面的感知质量、清晰度或可用性
16
+
17
+ ### Recommended
18
+
19
+ 在以下情况建议使用此 Skill:
20
+
21
+ - UI 看起来"不够专业",但原因不明确
22
+ - 收到可用性或体验方面的反馈
23
+ - 准备上线前的 UI 质量优化
24
+ - 需要对齐跨平台设计(Web / iOS / Android)
25
+ - 构建设计系统或可复用组件库
26
+
27
+ ### Skip
28
+
29
+ 在以下情况无需使用此 Skill:
30
+
31
+ - 纯后端逻辑开发
32
+ - 仅涉及 API 或数据库设计
33
+ - 与界面无关的性能优化
34
+ - 基础设施或 DevOps 工作
35
+ - 非视觉类脚本或自动化任务
36
+
37
+ **判断准则**:如果任务会改变某个功能 **看起来如何、使用起来如何、如何运动或如何被交互**,就应该使用此 Skill。
38
+
39
+ ## Rule Categories by Priority
40
+
41
+ *供人工/AI 查阅:按 1→10 决定先关注哪类规则;需要细则时用 `--domain <Domain>` 查询。脚本不读取本表。*
42
+
43
+ | Priority | Category | Impact | Domain | Key Checks (Must Have) | Anti-Patterns (Avoid) |
44
+ |----------|----------|--------|--------|------------------------|------------------------|
45
+ | 1 | Accessibility | CRITICAL | `ux` | Contrast 4.5:1, Alt text, Keyboard nav, Aria-labels | Removing focus rings, Icon-only buttons without labels |
46
+ | 2 | Touch & Interaction | CRITICAL | `ux` | Min size 44×44px, 8px+ spacing, Loading feedback | Reliance on hover only, Instant state changes (0ms) |
47
+ | 3 | Performance | HIGH | `ux` | WebP/AVIF, Lazy loading, Reserve space (CLS &lt; 0.1) | Layout thrashing, Cumulative Layout Shift |
48
+ | 4 | Style Selection | HIGH | `style`, `product` | Match product type, Consistency, SVG icons (no emoji) | Mixing flat & skeuomorphic randomly, Emoji as icons |
49
+ | 5 | Layout & Responsive | HIGH | `ux` | Mobile-first breakpoints, Viewport meta, No horizontal scroll | Horizontal scroll, Fixed px container widths, Disable zoom |
50
+ | 6 | Typography & Color | MEDIUM | `typography`, `color` | Base 16px, Line-height 1.5, Semantic color tokens | Text &lt; 12px body, Gray-on-gray, Raw hex in components |
51
+ | 7 | Animation | MEDIUM | `ux` | Duration 150–300ms, Motion conveys meaning, Spatial continuity | Decorative-only animation, Animating width/height, No reduced-motion |
52
+ | 8 | Forms & Feedback | MEDIUM | `ux` | Visible labels, Error near field, Helper text, Progressive disclosure | Placeholder-only label, Errors only at top, Overwhelm upfront |
53
+ | 9 | Navigation Patterns | HIGH | `ux` | Predictable back, Bottom nav ≤5, Deep linking | Overloaded nav, Broken back behavior, No deep links |
54
+ | 10 | Charts & Data | LOW | `chart` | Legends, Tooltips, Accessible colors | Relying on color alone to convey meaning |
55
+
56
+ ## Quick Reference
57
+
58
+ ### 1. Accessibility (CRITICAL)
59
+
60
+ - `color-contrast` - Minimum 4.5:1 ratio for normal text (large text 3:1); Material Design
61
+ - `focus-states` - Visible focus rings on interactive elements (2–4px; Apple HIG, MD)
62
+ - `alt-text` - Descriptive alt text for meaningful images
63
+ - `aria-labels` - aria-label for icon-only buttons; accessibilityLabel in native (Apple HIG)
64
+ - `keyboard-nav` - Tab order matches visual order; full keyboard support (Apple HIG)
65
+ - `form-labels` - Use label with for attribute
66
+ - `skip-links` - Skip to main content for keyboard users
67
+ - `heading-hierarchy` - Sequential h1→h6, no level skip
68
+ - `color-not-only` - Don't convey info by color alone (add icon/text)
69
+ - `dynamic-type` - Support system text scaling; avoid truncation as text grows (Apple Dynamic Type, MD)
70
+ - `reduced-motion` - Respect prefers-reduced-motion; reduce/disable animations when requested (Apple Reduced Motion API, MD)
71
+ - `voiceover-sr` - Meaningful accessibilityLabel/accessibilityHint; logical reading order for VoiceOver/screen readers (Apple HIG, MD)
72
+ - `escape-routes` - Provide cancel/back in modals and multi-step flows (Apple HIG)
73
+ - `keyboard-shortcuts` - Preserve system and a11y shortcuts; offer keyboard alternatives for drag-and-drop (Apple HIG)
74
+
75
+ ### 2. Touch & Interaction (CRITICAL)
76
+
77
+ - `touch-target-size` - Min 44×44pt (Apple) / 48×48dp (Material); extend hit area beyond visual bounds if needed
78
+ - `touch-spacing` - Minimum 8px/8dp gap between touch targets (Apple HIG, MD)
79
+ - `hover-vs-tap` - Use click/tap for primary interactions; don't rely on hover alone
80
+ - `loading-buttons` - Disable button during async operations; show spinner or progress
81
+ - `error-feedback` - Clear error messages near problem
82
+ - `cursor-pointer` - Add cursor-pointer to clickable elements (Web)
83
+ - `gesture-conflicts` - Avoid horizontal swipe on main content; prefer vertical scroll
84
+ - `tap-delay` - Use touch-action: manipulation to reduce 300ms delay (Web)
85
+ - `standard-gestures` - Use platform standard gestures consistently; don't redefine (e.g. swipe-back, pinch-zoom) (Apple HIG)
86
+ - `system-gestures` - Don't block system gestures (Control Center, back swipe, etc.) (Apple HIG)
87
+ - `press-feedback` - Visual feedback on press (ripple/highlight; MD state layers)
88
+ - `haptic-feedback` - Use haptic for confirmations and important actions; avoid overuse (Apple HIG)
89
+ - `gesture-alternative` - Don't rely on gesture-only interactions; always provide visible controls for critical actions
90
+ - `safe-area-awareness` - Keep primary touch targets away from notch, Dynamic Island, gesture bar and screen edges
91
+ - `no-precision-required` - Avoid requiring pixel-perfect taps on small icons or thin edges
92
+ - `swipe-clarity` - Swipe actions must show clear affordance or hint (chevron, label, tutorial)
93
+ - `drag-threshold` - Use a movement threshold before starting drag to avoid accidental drags
94
+
95
+ ### 3. Performance (HIGH)
96
+
97
+ - `image-optimization` - Use WebP/AVIF, responsive images (srcset/sizes), lazy load non-critical assets
98
+ - `image-dimension` - Declare width/height or use aspect-ratio to prevent layout shift (Core Web Vitals: CLS)
99
+ - `font-loading` - Use font-display: swap/optional to avoid invisible text (FOIT); reserve space to reduce layout shift (MD)
100
+ - `font-preload` - Preload only critical fonts; avoid overusing preload on every variant
101
+ - `critical-css` - Prioritize above-the-fold CSS (inline critical CSS or early-loaded stylesheet)
102
+ - `lazy-loading` - Lazy load non-hero components via dynamic import / route-level splitting
103
+ - `bundle-splitting` - Split code by route/feature (React Suspense / Next.js dynamic) to reduce initial load and TTI
104
+ - `third-party-scripts` - Load third-party scripts async/defer; audit and remove unnecessary ones (MD)
105
+ - `reduce-reflows` - Avoid frequent layout reads/writes; batch DOM reads then writes
106
+ - `content-jumping` - Reserve space for async content to avoid layout jumps (Core Web Vitals: CLS)
107
+ - `lazy-load-below-fold` - Use loading="lazy" for below-the-fold images and heavy media
108
+ - `virtualize-lists` - Virtualize lists with 50+ items to improve memory efficiency and scroll performance
109
+ - `main-thread-budget` - Keep per-frame work under ~16ms for 60fps; move heavy tasks off main thread (HIG, MD)
110
+ - `progressive-loading` - Use skeleton screens / shimmer instead of long blocking spinners for >1s operations (Apple HIG)
111
+ - `input-latency` - Keep input latency under ~100ms for taps/scrolls (Material responsiveness standard)
112
+ - `tap-feedback-speed` - Provide visual feedback within 100ms of tap (Apple HIG)
113
+ - `debounce-throttle` - Use debounce/throttle for high-frequency events (scroll, resize, input)
114
+ - `offline-support` - Provide offline state messaging and basic fallback (PWA / mobile)
115
+ - `network-fallback` - Offer degraded modes for slow networks (lower-res images, fewer animations)
116
+
117
+ ### 4. Style Selection (HIGH)
118
+
119
+ - `style-match` - Match style to product type (use `--design-system` for recommendations)
120
+ - `consistency` - Use same style across all pages
121
+ - `no-emoji-icons` - Use SVG icons (Heroicons, Lucide), not emojis
122
+ - `color-palette-from-product` - Choose palette from product/industry (search `--domain color`)
123
+ - `effects-match-style` - Shadows, blur, radius aligned with chosen style (glass / flat / clay etc.)
124
+ - `platform-adaptive` - Respect platform idioms (iOS HIG vs Material): navigation, controls, typography, motion
125
+ - `state-clarity` - Make hover/pressed/disabled states visually distinct while staying on-style (Material state layers)
126
+ - `elevation-consistent` - Use a consistent elevation/shadow scale for cards, sheets, modals; avoid random shadow values
127
+ - `dark-mode-pairing` - Design light/dark variants together to keep brand, contrast, and style consistent
128
+ - `icon-style-consistent` - Use one icon set/visual language (stroke width, corner radius) across the product
129
+ - `system-controls` - Prefer native/system controls over fully custom ones; only customize when branding requires it (Apple HIG)
130
+ - `blur-purpose` - Use blur to indicate background dismissal (modals, sheets), not as decoration (Apple HIG)
131
+ - `primary-action` - Each screen should have only one primary CTA; secondary actions visually subordinate (Apple HIG)
132
+
133
+ ### 5. Layout & Responsive (HIGH)
134
+
135
+ - `viewport-meta` - width=device-width initial-scale=1 (never disable zoom)
136
+ - `mobile-first` - Design mobile-first, then scale up to tablet and desktop
137
+ - `breakpoint-consistency` - Use systematic breakpoints (e.g. 375 / 768 / 1024 / 1440)
138
+ - `readable-font-size` - Minimum 16px body text on mobile (avoids iOS auto-zoom)
139
+ - `line-length-control` - Mobile 35–60 chars per line; desktop 60–75 chars
140
+ - `horizontal-scroll` - No horizontal scroll on mobile; ensure content fits viewport width
141
+ - `spacing-scale` - Use 4pt/8dp incremental spacing system (Material Design)
142
+ - `touch-density` - Keep component spacing comfortable for touch: not cramped, not causing mis-taps
143
+ - `container-width` - Consistent max-width on desktop (max-w-6xl / 7xl)
144
+ - `z-index-management` - Define layered z-index scale (e.g. 0 / 10 / 20 / 40 / 100 / 1000)
145
+ - `fixed-element-offset` - Fixed navbar/bottom bar must reserve safe padding for underlying content
146
+ - `scroll-behavior` - Avoid nested scroll regions that interfere with the main scroll experience
147
+ - `viewport-units` - Prefer min-h-dvh over 100vh on mobile
148
+ - `orientation-support` - Keep layout readable and operable in landscape mode
149
+ - `content-priority` - Show core content first on mobile; fold or hide secondary content
150
+ - `visual-hierarchy` - Establish hierarchy via size, spacing, contrast — not color alone
151
+
152
+ ### 6. Typography & Color (MEDIUM)
153
+
154
+ - `line-height` - Use 1.5-1.75 for body text
155
+ - `line-length` - Limit to 65-75 characters per line
156
+ - `font-pairing` - Match heading/body font personalities
157
+ - `font-scale` - Consistent type scale (e.g. 12 14 16 18 24 32)
158
+ - `contrast-readability` - Darker text on light backgrounds (e.g. slate-900 on white)
159
+ - `text-styles-system` - Use platform type system: iOS 11 Dynamic Type styles / Material 5 type roles (display, headline, title, body, label) (HIG, MD)
160
+ - `weight-hierarchy` - Use font-weight to reinforce hierarchy: Bold headings (600–700), Regular body (400), Medium labels (500) (MD)
161
+ - `color-semantic` - Define semantic color tokens (primary, secondary, error, surface, on-surface) not raw hex in components (Material color system)
162
+ - `color-dark-mode` - Dark mode uses desaturated / lighter tonal variants, not inverted colors; test contrast separately (HIG, MD)
163
+ - `color-accessible-pairs` - Foreground/background pairs must meet 4.5:1 (AA) or 7:1 (AAA); use tools to verify (WCAG, MD)
164
+ - `color-not-decorative-only` - Functional color (error red, success green) must include icon/text; avoid color-only meaning (HIG, MD)
165
+ - `truncation-strategy` - Prefer wrapping over truncation; when truncating use ellipsis and provide full text via tooltip/expand (Apple HIG)
166
+ - `letter-spacing` - Respect default letter-spacing per platform; avoid tight tracking on body text (HIG, MD)
167
+ - `number-tabular` - Use tabular/monospaced figures for data columns, prices, and timers to prevent layout shift
168
+ - `whitespace-balance` - Use whitespace intentionally to group related items and separate sections; avoid visual clutter (Apple HIG)
169
+
170
+ ### 7. Animation (MEDIUM)
171
+
172
+ - `duration-timing` - Use 150–300ms for micro-interactions; complex transitions ≤400ms; avoid >500ms (MD)
173
+ - `transform-performance` - Use transform/opacity only; avoid animating width/height/top/left
174
+ - `loading-states` - Show skeleton or progress indicator when loading exceeds 300ms
175
+ - `excessive-motion` - Animate 1-2 key elements per view max
176
+ - `easing` - Use ease-out for entering, ease-in for exiting; avoid linear for UI transitions
177
+ - `motion-meaning` - Every animation must express a cause-effect relationship, not just be decorative (Apple HIG)
178
+ - `state-transition` - State changes (hover / active / expanded / collapsed / modal) should animate smoothly, not snap
179
+ - `continuity` - Page/screen transitions should maintain spatial continuity (shared element, directional slide) (Apple HIG)
180
+ - `parallax-subtle` - Use parallax sparingly; must respect reduced-motion and not cause disorientation (Apple HIG)
181
+ - `spring-physics` - Prefer spring/physics-based curves over linear or cubic-bezier for natural feel (Apple HIG fluid animations)
182
+ - `exit-faster-than-enter` - Exit animations shorter than enter (~60–70% of enter duration) to feel responsive (MD motion)
183
+ - `stagger-sequence` - Stagger list/grid item entrance by 30–50ms per item; avoid all-at-once or too-slow reveals (MD)
184
+ - `shared-element-transition` - Use shared element / hero transitions for visual continuity between screens (MD, HIG)
185
+ - `interruptible` - Animations must be interruptible; user tap/gesture cancels in-progress animation immediately (Apple HIG)
186
+ - `no-blocking-animation` - Never block user input during an animation; UI must stay interactive (Apple HIG)
187
+ - `fade-crossfade` - Use crossfade for content replacement within the same container (MD)
188
+ - `scale-feedback` - Subtle scale (0.95–1.05) on press for tappable cards/buttons; restore on release (HIG, MD)
189
+ - `gesture-feedback` - Drag, swipe, and pinch must provide real-time visual response tracking the finger (MD Motion)
190
+ - `hierarchy-motion` - Use translate/scale direction to express hierarchy: enter from below = deeper, exit upward = back (MD)
191
+ - `motion-consistency` - Unify duration/easing tokens globally; all animations share the same rhythm and feel
192
+ - `opacity-threshold` - Fading elements should not linger below opacity 0.2; either fade fully or remain visible
193
+ - `modal-motion` - Modals/sheets should animate from their trigger source (scale+fade or slide-in) for spatial context (HIG, MD)
194
+ - `navigation-direction` - Forward navigation animates left/up; backward animates right/down — keep direction logically consistent (HIG)
195
+ - `layout-shift-avoid` - Animations must not cause layout reflow or CLS; use transform for position changes
196
+
197
+ ### 8. Forms & Feedback (MEDIUM)
198
+
199
+ - `input-labels` - Visible label per input (not placeholder-only)
200
+ - `error-placement` - Show error below the related field
201
+ - `submit-feedback` - Loading then success/error state on submit
202
+ - `required-indicators` - Mark required fields (e.g. asterisk)
203
+ - `empty-states` - Helpful message and action when no content
204
+ - `toast-dismiss` - Auto-dismiss toasts in 3-5s
205
+ - `confirmation-dialogs` - Confirm before destructive actions
206
+ - `input-helper-text` - Provide persistent helper text below complex inputs, not just placeholder (Material Design)
207
+ - `disabled-states` - Disabled elements use reduced opacity (0.38–0.5) + cursor change + semantic attribute (MD)
208
+ - `progressive-disclosure` - Reveal complex options progressively; don't overwhelm users upfront (Apple HIG)
209
+ - `inline-validation` - Validate on blur (not keystroke); show error only after user finishes input (MD)
210
+ - `input-type-keyboard` - Use semantic input types (email, tel, number) to trigger the correct mobile keyboard (HIG, MD)
211
+ - `password-toggle` - Provide show/hide toggle for password fields (MD)
212
+ - `autofill-support` - Use autocomplete / textContentType attributes so the system can autofill (HIG, MD)
213
+ - `undo-support` - Allow undo for destructive or bulk actions (e.g. "Undo delete" toast) (Apple HIG)
214
+ - `success-feedback` - Confirm completed actions with brief visual feedback (checkmark, toast, color flash) (MD)
215
+ - `error-recovery` - Error messages must include a clear recovery path (retry, edit, help link) (HIG, MD)
216
+ - `multi-step-progress` - Multi-step flows show step indicator or progress bar; allow back navigation (MD)
217
+ - `form-autosave` - Long forms should auto-save drafts to prevent data loss on accidental dismissal (Apple HIG)
218
+ - `sheet-dismiss-confirm` - Confirm before dismissing a sheet/modal with unsaved changes (Apple HIG)
219
+ - `error-clarity` - Error messages must state cause + how to fix (not just "Invalid input") (HIG, MD)
220
+ - `field-grouping` - Group related fields logically (fieldset/legend or visual grouping) (MD)
221
+ - `read-only-distinction` - Read-only state should be visually and semantically different from disabled (MD)
222
+ - `focus-management` - After submit error, auto-focus the first invalid field (WCAG, MD)
223
+ - `error-summary` - For multiple errors, show summary at top with anchor links to each field (WCAG)
224
+ - `touch-friendly-input` - Mobile input height ≥44px to meet touch target requirements (Apple HIG)
225
+ - `destructive-emphasis` - Destructive actions use semantic danger color (red) and are visually separated from primary actions (HIG, MD)
226
+ - `toast-accessibility` - Toasts must not steal focus; use aria-live="polite" for screen reader announcement (WCAG)
227
+ - `aria-live-errors` - Form errors use aria-live region or role="alert" to notify screen readers (WCAG)
228
+ - `contrast-feedback` - Error and success state colors must meet 4.5:1 contrast ratio (WCAG, MD)
229
+ - `timeout-feedback` - Request timeout must show clear feedback with retry option (MD)
230
+
231
+ ### 9. Navigation Patterns (HIGH)
232
+
233
+ - `bottom-nav-limit` - Bottom navigation max 5 items; use labels with icons (Material Design)
234
+ - `drawer-usage` - Use drawer/sidebar for secondary navigation, not primary actions (Material Design)
235
+ - `back-behavior` - Back navigation must be predictable and consistent; preserve scroll/state (Apple HIG, MD)
236
+ - `deep-linking` - All key screens must be reachable via deep link / URL for sharing and notifications (Apple HIG, MD)
237
+ - `tab-bar-ios` - iOS: use bottom Tab Bar for top-level navigation (Apple HIG)
238
+ - `top-app-bar-android` - Android: use Top App Bar with navigation icon for primary structure (Material Design)
239
+ - `nav-label-icon` - Navigation items must have both icon and text label; icon-only nav harms discoverability (MD)
240
+ - `nav-state-active` - Current location must be visually highlighted (color, weight, indicator) in navigation (HIG, MD)
241
+ - `nav-hierarchy` - Primary nav (tabs/bottom bar) vs secondary nav (drawer/settings) must be clearly separated (MD)
242
+ - `modal-escape` - Modals and sheets must offer a clear close/dismiss affordance; swipe-down to dismiss on mobile (Apple HIG)
243
+ - `search-accessible` - Search must be easily reachable (top bar or tab); provide recent/suggested queries (MD)
244
+ - `breadcrumb-web` - Web: use breadcrumbs for 3+ level deep hierarchies to aid orientation (MD)
245
+ - `state-preservation` - Navigating back must restore previous scroll position, filter state, and input (HIG, MD)
246
+ - `gesture-nav-support` - Support system gesture navigation (iOS swipe-back, Android predictive back) without conflict (HIG, MD)
247
+ - `tab-badge` - Use badges on nav items sparingly to indicate unread/pending; clear after user visits (HIG, MD)
248
+ - `overflow-menu` - When actions exceed available space, use overflow/more menu instead of cramming (MD)
249
+ - `bottom-nav-top-level` - Bottom nav is for top-level screens only; never nest sub-navigation inside it (MD)
250
+ - `adaptive-navigation` - Large screens (≥1024px) prefer sidebar; small screens use bottom/top nav (Material Adaptive)
251
+ - `back-stack-integrity` - Never silently reset the navigation stack or unexpectedly jump to home (HIG, MD)
252
+ - `navigation-consistency` - Navigation placement must stay the same across all pages; don't change by page type
253
+ - `avoid-mixed-patterns` - Don't mix Tab + Sidebar + Bottom Nav at the same hierarchy level
254
+ - `modal-vs-navigation` - Modals must not be used for primary navigation flows; they break the user's path (HIG)
255
+ - `focus-on-route-change` - After page transition, move focus to main content region for screen reader users (WCAG)
256
+ - `persistent-nav` - Core navigation must remain reachable from deep pages; don't hide it entirely in sub-flows (HIG, MD)
257
+ - `destructive-nav-separation` - Dangerous actions (delete account, logout) must be visually and spatially separated from normal nav items (HIG, MD)
258
+ - `empty-nav-state` - When a nav destination is unavailable, explain why instead of silently hiding it (MD)
259
+
260
+ ### 10. Charts & Data (LOW)
261
+
262
+ - `chart-type` - Match chart type to data type (trend → line, comparison → bar, proportion → pie/donut)
263
+ - `color-guidance` - Use accessible color palettes; avoid red/green only pairs for colorblind users (WCAG, MD)
264
+ - `data-table` - Provide table alternative for accessibility; charts alone are not screen-reader friendly (WCAG)
265
+ - `pattern-texture` - Supplement color with patterns, textures, or shapes so data is distinguishable without color (WCAG, MD)
266
+ - `legend-visible` - Always show legend; position near the chart, not detached below a scroll fold (MD)
267
+ - `tooltip-on-interact` - Provide tooltips/data labels on hover (Web) or tap (mobile) showing exact values (HIG, MD)
268
+ - `axis-labels` - Label axes with units and readable scale; avoid truncated or rotated labels on mobile
269
+ - `responsive-chart` - Charts must reflow or simplify on small screens (e.g. horizontal bar instead of vertical, fewer ticks)
270
+ - `empty-data-state` - Show meaningful empty state when no data exists ("No data yet" + guidance), not a blank chart (MD)
271
+ - `loading-chart` - Use skeleton or shimmer placeholder while chart data loads; don't show an empty axis frame
272
+ - `animation-optional` - Chart entrance animations must respect prefers-reduced-motion; data should be readable immediately (HIG)
273
+ - `large-dataset` - For 1000+ data points, aggregate or sample; provide drill-down for detail instead of rendering all (MD)
274
+ - `number-formatting` - Use locale-aware formatting for numbers, dates, currencies on axes and labels (HIG, MD)
275
+ - `touch-target-chart` - Interactive chart elements (points, segments) must have ≥44pt tap area or expand on touch (Apple HIG)
276
+ - `no-pie-overuse` - Avoid pie/donut for >5 categories; switch to bar chart for clarity
277
+ - `contrast-data` - Data lines/bars vs background ≥3:1; data text labels ≥4.5:1 (WCAG)
278
+ - `legend-interactive` - Legends should be clickable to toggle series visibility (MD)
279
+ - `direct-labeling` - For small datasets, label values directly on the chart to reduce eye travel
280
+ - `tooltip-keyboard` - Tooltip content must be keyboard-reachable and not rely on hover alone (WCAG)
281
+ - `sortable-table` - Data tables must support sorting with aria-sort indicating current sort state (WCAG)
282
+ - `axis-readability` - Axis ticks must not be cramped; maintain readable spacing, auto-skip on small screens
283
+ - `data-density` - Limit information density per chart to avoid cognitive overload; split into multiple charts if needed
284
+ - `trend-emphasis` - Emphasize data trends over decoration; avoid heavy gradients/shadows that obscure the data
285
+ - `gridline-subtle` - Grid lines should be low-contrast (e.g. gray-200) so they don't compete with data
286
+ - `focusable-elements` - Interactive chart elements (points, bars, slices) must be keyboard-navigable (WCAG)
287
+ - `screen-reader-summary` - Provide a text summary or aria-label describing the chart's key insight for screen readers (WCAG)
288
+ - `error-state-chart` - Data load failure must show error message with retry action, not a broken/empty chart
289
+ - `export-option` - For data-heavy products, offer CSV/image export of chart data
290
+ - `drill-down-consistency` - Drill-down interactions must maintain a clear back-path and hierarchy breadcrumb
291
+ - `time-scale-clarity` - Time series charts must clearly label time granularity (day/week/month) and allow switching
292
+
293
+ ## How to Use
294
+
295
+ Search specific domains using the CLI tool below.
296
+
297
+ ---