@rune-kit/rune 2.8.0 → 2.11.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.
- package/LICENSE +21 -21
- package/README.md +68 -34
- package/agents/adversary.md +27 -0
- package/agents/architect.md +19 -29
- package/agents/asset-creator.md +18 -4
- package/agents/audit.md +25 -4
- package/agents/autopsy.md +19 -4
- package/agents/ba.md +35 -0
- package/agents/brainstorm.md +31 -4
- package/agents/browser-pilot.md +21 -4
- package/agents/coder.md +21 -29
- package/agents/completion-gate.md +20 -4
- package/agents/constraint-check.md +18 -4
- package/agents/context-engine.md +22 -4
- package/agents/context-pack.md +32 -0
- package/agents/cook.md +41 -4
- package/agents/db.md +19 -4
- package/agents/debug.md +33 -4
- package/agents/dependency-doctor.md +20 -4
- package/agents/deploy.md +27 -4
- package/agents/design.md +22 -4
- package/agents/doc-processor.md +27 -0
- package/agents/docs-seeker.md +19 -4
- package/agents/docs.md +31 -0
- package/agents/fix.md +37 -4
- package/agents/git.md +29 -0
- package/agents/hallucination-guard.md +20 -4
- package/agents/incident.md +21 -4
- package/agents/integrity-check.md +18 -4
- package/agents/journal.md +19 -4
- package/agents/launch.md +32 -4
- package/agents/logic-guardian.md +26 -11
- package/agents/marketing.md +23 -4
- package/agents/mcp-builder.md +26 -0
- package/agents/neural-memory.md +30 -0
- package/agents/onboard.md +22 -4
- package/agents/perf.md +21 -4
- package/agents/plan.md +29 -4
- package/agents/preflight.md +22 -4
- package/agents/problem-solver.md +20 -4
- package/agents/rescue.md +23 -4
- package/agents/research.md +19 -4
- package/agents/researcher.md +19 -29
- package/agents/retro.md +32 -0
- package/agents/review-intake.md +20 -4
- package/agents/review.md +32 -4
- package/agents/reviewer.md +20 -28
- package/agents/safeguard.md +19 -4
- package/agents/sast.md +18 -4
- package/agents/scaffold.md +41 -0
- package/agents/scanner.md +19 -28
- package/agents/scope-guard.md +18 -4
- package/agents/scout.md +23 -4
- package/agents/sentinel-env.md +26 -0
- package/agents/sentinel.md +33 -4
- package/agents/sequential-thinking.md +20 -4
- package/agents/session-bridge.md +24 -4
- package/agents/skill-forge.md +22 -4
- package/agents/skill-router.md +26 -4
- package/agents/slides.md +24 -0
- package/agents/surgeon.md +19 -4
- package/agents/team.md +30 -4
- package/agents/test.md +36 -4
- package/agents/trend-scout.md +17 -4
- package/agents/verification.md +20 -4
- package/agents/video-creator.md +20 -4
- package/agents/watchdog.md +19 -4
- package/agents/worktree.md +17 -4
- package/commands/rune.md +168 -168
- package/compiler/__tests__/analytics.test.js +370 -0
- package/compiler/adapters/openclaw.js +2 -2
- package/compiler/analytics.js +385 -0
- package/compiler/bin/rune.js +68 -2
- package/compiler/dashboard.js +883 -0
- package/compiler/transforms/branding.js +1 -1
- package/contexts/dev.md +34 -34
- package/contexts/research.md +43 -43
- package/contexts/review.md +55 -55
- package/extensions/ai-ml/PACK.md +88 -88
- package/extensions/ai-ml/skills/ai-agents.md +172 -172
- package/extensions/ai-ml/skills/code-sandbox.md +187 -187
- package/extensions/ai-ml/skills/deep-research.md +146 -146
- package/extensions/ai-ml/skills/embedding-search.md +66 -66
- package/extensions/ai-ml/skills/fine-tuning-guide.md +74 -74
- package/extensions/ai-ml/skills/llm-architect.md +125 -125
- package/extensions/ai-ml/skills/llm-integration.md +64 -64
- package/extensions/ai-ml/skills/prompt-patterns.md +72 -72
- package/extensions/ai-ml/skills/rag-patterns.md +66 -66
- package/extensions/ai-ml/skills/web-extraction.md +114 -114
- package/extensions/analytics/PACK.md +92 -92
- package/extensions/analytics/skills/ab-testing.md +72 -72
- package/extensions/analytics/skills/dashboard-patterns.md +83 -83
- package/extensions/analytics/skills/data-validation.md +68 -68
- package/extensions/analytics/skills/funnel-analysis.md +81 -81
- package/extensions/analytics/skills/sql-patterns.md +57 -57
- package/extensions/analytics/skills/statistical-analysis.md +79 -79
- package/extensions/analytics/skills/tracking-setup.md +71 -71
- package/extensions/backend/PACK.md +104 -104
- package/extensions/backend/skills/api-patterns.md +84 -84
- package/extensions/backend/skills/async-pipeline.md +193 -193
- package/extensions/backend/skills/auth-patterns.md +97 -97
- package/extensions/backend/skills/background-jobs.md +133 -133
- package/extensions/backend/skills/caching-patterns.md +108 -108
- package/extensions/backend/skills/cli-generation.md +133 -133
- package/extensions/backend/skills/database-patterns.md +87 -87
- package/extensions/backend/skills/middleware-patterns.md +104 -104
- package/extensions/chrome-ext/PACK.md +93 -93
- package/extensions/chrome-ext/skills/cws-preflight.md +143 -143
- package/extensions/chrome-ext/skills/cws-publish.md +104 -104
- package/extensions/chrome-ext/skills/ext-ai-integration.md +251 -251
- package/extensions/chrome-ext/skills/ext-messaging.md +139 -139
- package/extensions/chrome-ext/skills/ext-storage.md +133 -133
- package/extensions/chrome-ext/skills/mv3-scaffold.md +164 -164
- package/extensions/content/PACK.md +96 -96
- package/extensions/content/skills/blog-patterns.md +88 -88
- package/extensions/content/skills/cms-integration.md +131 -131
- package/extensions/content/skills/content-scoring.md +107 -107
- package/extensions/content/skills/i18n.md +83 -83
- package/extensions/content/skills/mdx-authoring.md +137 -137
- package/extensions/content/skills/reference.md +1014 -1014
- package/extensions/content/skills/seo-patterns.md +67 -67
- package/extensions/content/skills/video-repurpose.md +153 -153
- package/extensions/devops/PACK.md +101 -101
- package/extensions/devops/skills/chaos-testing.md +67 -67
- package/extensions/devops/skills/ci-cd.md +75 -75
- package/extensions/devops/skills/docker.md +58 -58
- package/extensions/devops/skills/edge-serverless.md +163 -163
- package/extensions/devops/skills/infra-as-code.md +158 -158
- package/extensions/devops/skills/kubernetes.md +110 -110
- package/extensions/devops/skills/monitoring.md +57 -57
- package/extensions/devops/skills/server-setup.md +64 -64
- package/extensions/devops/skills/ssl-domain.md +42 -42
- package/extensions/ecommerce/PACK.md +116 -116
- package/extensions/ecommerce/skills/cart-system.md +79 -79
- package/extensions/ecommerce/skills/inventory-mgmt.md +102 -102
- package/extensions/ecommerce/skills/order-management.md +126 -126
- package/extensions/ecommerce/skills/payment-integration.md +472 -472
- package/extensions/ecommerce/skills/shopify-dev.md +69 -69
- package/extensions/ecommerce/skills/subscription-billing.md +93 -93
- package/extensions/ecommerce/skills/tax-compliance.md +117 -117
- package/extensions/gamedev/PACK.md +142 -142
- package/extensions/gamedev/skills/asset-pipeline.md +74 -74
- package/extensions/gamedev/skills/audio-system.md +129 -129
- package/extensions/gamedev/skills/camera-system.md +87 -87
- package/extensions/gamedev/skills/ecs.md +98 -98
- package/extensions/gamedev/skills/game-loops.md +72 -72
- package/extensions/gamedev/skills/input-system.md +199 -199
- package/extensions/gamedev/skills/multiplayer.md +180 -180
- package/extensions/gamedev/skills/particles.md +105 -105
- package/extensions/gamedev/skills/physics-engine.md +89 -89
- package/extensions/gamedev/skills/scene-management.md +146 -146
- package/extensions/gamedev/skills/threejs-patterns.md +90 -90
- package/extensions/gamedev/skills/webgl.md +71 -71
- package/extensions/mobile/PACK.md +106 -106
- package/extensions/mobile/skills/app-store-connect.md +152 -152
- package/extensions/mobile/skills/app-store-prep.md +66 -66
- package/extensions/mobile/skills/deep-linking.md +109 -109
- package/extensions/mobile/skills/flutter.md +60 -60
- package/extensions/mobile/skills/ios-build-pipeline.md +142 -142
- package/extensions/mobile/skills/native-bridge.md +66 -66
- package/extensions/mobile/skills/ota-updates.md +97 -97
- package/extensions/mobile/skills/push-notifications.md +111 -111
- package/extensions/mobile/skills/react-native.md +82 -82
- package/extensions/saas/PACK.md +116 -116
- package/extensions/saas/skills/billing-integration.md +200 -200
- package/extensions/saas/skills/feature-flags.md +130 -130
- package/extensions/saas/skills/multi-tenant.md +103 -103
- package/extensions/saas/skills/onboarding-flow.md +139 -139
- package/extensions/saas/skills/subscription-flow.md +95 -95
- package/extensions/saas/skills/team-management.md +144 -144
- package/extensions/security/PACK.md +99 -99
- package/extensions/security/skills/api-security.md +140 -140
- package/extensions/security/skills/compliance.md +68 -68
- package/extensions/security/skills/owasp-audit.md +64 -64
- package/extensions/security/skills/pentest-patterns.md +77 -77
- package/extensions/security/skills/secret-mgmt.md +65 -65
- package/extensions/security/skills/supply-chain.md +65 -65
- package/extensions/trading/PACK.md +80 -80
- package/extensions/trading/skills/chart-components.md +55 -55
- package/extensions/trading/skills/experiment-loop.md +125 -125
- package/extensions/trading/skills/fintech-patterns.md +47 -47
- package/extensions/trading/skills/indicator-library.md +58 -58
- package/extensions/trading/skills/quant-analysis.md +111 -111
- package/extensions/trading/skills/realtime-data.md +58 -58
- package/extensions/trading/skills/trade-logic.md +104 -104
- package/extensions/ui/PACK.md +130 -130
- package/extensions/ui/skills/a11y-audit.md +91 -91
- package/extensions/ui/skills/animation-patterns.md +127 -106
- package/extensions/ui/skills/component-patterns.md +100 -75
- package/extensions/ui/skills/design-decision.md +108 -108
- package/extensions/ui/skills/design-system.md +68 -68
- package/extensions/ui/skills/landing-patterns.md +155 -155
- package/extensions/ui/skills/palette-picker.md +173 -173
- package/extensions/ui/skills/react-health.md +90 -90
- package/extensions/ui/skills/type-system.md +125 -125
- package/extensions/ui/skills/web-vitals.md +153 -153
- package/extensions/zalo/PACK.md +145 -145
- package/extensions/zalo/skills/zalo-oa-mcp.md +317 -317
- package/extensions/zalo/skills/zalo-oa-messaging.md +429 -429
- package/extensions/zalo/skills/zalo-oa-setup.md +236 -236
- package/extensions/zalo/skills/zalo-oa-webhook.md +189 -189
- package/extensions/zalo/skills/zalo-personal-messaging.md +194 -194
- package/extensions/zalo/skills/zalo-personal-setup.md +153 -153
- package/extensions/zalo/skills/zalo-rate-guard.md +219 -219
- package/hooks/auto-format/index.cjs +48 -48
- package/hooks/context-watch/index.cjs +95 -68
- package/hooks/hooks.json +111 -111
- package/hooks/metrics-collector/index.cjs +86 -42
- package/hooks/post-session-reflect/index.cjs +189 -153
- package/hooks/pre-compact/index.cjs +95 -95
- package/hooks/run-hook.cmd +1 -1
- package/hooks/secrets-scan/index.cjs +100 -100
- package/hooks/session-start/index.cjs +71 -65
- package/hooks/typecheck/index.cjs +65 -65
- package/package.json +63 -63
- package/references/ui-pro-max-data/LICENSE-UI-PRO-MAX +21 -21
- package/references/ui-pro-max-data/charts.csv +26 -26
- package/references/ui-pro-max-data/colors.csv +161 -161
- package/references/ui-pro-max-data/styles.csv +68 -68
- package/references/ui-pro-max-data/typography.csv +74 -74
- package/references/ui-pro-max-data/ui-reasoning.csv +162 -162
- package/references/ui-pro-max-data/ux-guidelines.csv +99 -99
- package/skills/adversary/SKILL.md +283 -283
- package/skills/asset-creator/SKILL.md +157 -157
- package/skills/audit/SKILL.md +148 -2
- package/skills/autopsy/SKILL.md +335 -259
- package/skills/autopsy/references/repo-analysis-patterns.md +113 -0
- package/skills/ba/SKILL.md +72 -2
- package/skills/brainstorm/SKILL.md +342 -341
- package/skills/browser-pilot/SKILL.md +168 -168
- package/skills/constraint-check/SKILL.md +165 -165
- package/skills/context-engine/SKILL.md +404 -404
- package/skills/cook/SKILL.md +917 -834
- package/skills/cook/references/output-format.md +33 -0
- package/skills/db/SKILL.md +273 -272
- package/skills/debug/SKILL.md +465 -443
- package/skills/dependency-doctor/SKILL.md +265 -235
- package/skills/deploy/SKILL.md +274 -231
- package/skills/design/DESIGN-REFERENCE.md +365 -365
- package/skills/design/SKILL.md +589 -482
- package/skills/doc-processor/SKILL.md +254 -254
- package/skills/docs/SKILL.md +374 -373
- package/skills/docs-seeker/SKILL.md +177 -177
- package/skills/fix/SKILL.md +330 -308
- package/skills/git/SKILL.md +339 -339
- package/skills/graft/SKILL.md +352 -0
- package/skills/graft/references/challenge-framework.md +98 -0
- package/skills/graft/references/mode-decision.md +44 -0
- package/skills/hallucination-guard/SKILL.md +219 -219
- package/skills/incident/SKILL.md +254 -251
- package/skills/integrity-check/SKILL.md +169 -169
- package/skills/journal/SKILL.md +240 -238
- package/skills/launch/SKILL.md +344 -342
- package/skills/logic-guardian/SKILL.md +251 -251
- package/skills/marketing/SKILL.md +290 -245
- package/skills/mcp-builder/SKILL.md +425 -423
- package/skills/mcp-builder/references/auto-discovery-pattern.md +169 -0
- package/skills/neural-memory/SKILL.md +362 -362
- package/skills/onboard/SKILL.md +404 -403
- package/skills/perf/SKILL.md +346 -346
- package/skills/plan/SKILL.md +433 -370
- package/skills/plan/references/feature-map.md +84 -0
- package/skills/preflight/SKILL.md +415 -396
- package/skills/problem-solver/SKILL.md +380 -284
- package/skills/rescue/SKILL.md +474 -450
- package/skills/retro/SKILL.md +5 -1
- package/skills/review/SKILL.md +612 -535
- package/skills/review-intake/SKILL.md +249 -249
- package/skills/safeguard/SKILL.md +200 -200
- package/skills/sast/SKILL.md +190 -190
- package/skills/scaffold/SKILL.md +328 -286
- package/skills/scope-guard/SKILL.md +180 -162
- package/skills/scout/SKILL.md +263 -263
- package/skills/sentinel/SKILL.md +382 -353
- package/skills/sentinel-env/SKILL.md +254 -254
- package/skills/sequential-thinking/SKILL.md +234 -234
- package/skills/session-bridge/SKILL.md +543 -397
- package/skills/skill-forge/SKILL.md +581 -539
- package/skills/skill-router/{skill.md → SKILL.md} +30 -2
- package/skills/surgeon/SKILL.md +215 -215
- package/skills/team/SKILL.md +556 -514
- package/skills/test/SKILL.md +614 -587
- package/skills/trend-scout/SKILL.md +145 -145
- package/skills/verification/SKILL.md +326 -325
- package/skills/video-creator/SKILL.md +201 -201
- package/skills/watchdog/SKILL.md +168 -168
- package/skills/worktree/SKILL.md +140 -140
|
@@ -1,106 +1,127 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: "animation-patterns"
|
|
3
|
-
pack: "@rune/ui"
|
|
4
|
-
description: "Motion design patterns — micro-interactions, page transitions, scroll animations, loading states. Applies CSS transitions, Framer Motion, or GSAP based on project stack. Always respects prefers-reduced-motion."
|
|
5
|
-
model: sonnet
|
|
6
|
-
tools: [Read, Edit, Write, Grep, Glob, Bash]
|
|
7
|
-
---
|
|
8
|
-
|
|
9
|
-
# animation-patterns
|
|
10
|
-
|
|
11
|
-
Motion design patterns — micro-interactions, page transitions, scroll animations, loading states. Applies CSS transitions, Framer Motion, or GSAP based on project stack. Always respects `prefers-reduced-motion`.
|
|
12
|
-
|
|
13
|
-
#### Workflow
|
|
14
|
-
|
|
15
|
-
**Step 1 — Detect interaction points**
|
|
16
|
-
Use Grep to find hover handlers (`onMouseEnter`, `:hover`), route changes (Next.js `useRouter`, SvelteKit `goto`), and loading states (`isLoading`, `isPending`). Read component files to understand where motion can add feedback or polish.
|
|
17
|
-
|
|
18
|
-
**Step 2 — Apply micro-interactions**
|
|
19
|
-
For each interaction point, select the appropriate pattern: hover → scale + shadow lift; button click → press-down (scale 0.97); data load → skeleton pulse then fade-in; route change → slide or fade transition. Emit the updated component with motion classes or Framer Motion variants.
|
|
20
|
-
|
|
21
|
-
**Step 3 — Audit reduced-motion compliance**
|
|
22
|
-
Use Grep to find every animation/transition declaration. Verify each is wrapped in a `prefers-reduced-motion: no-preference` media query or uses Framer Motion's `useReducedMotion()` hook. Flag any that are not.
|
|
23
|
-
|
|
24
|
-
**Step 4 — Page transition patterns**
|
|
25
|
-
Apply View Transitions API for same-document navigations (SvelteKit, Astro, vanilla JS). For React/Next.js, use Framer Motion `AnimatePresence` + `layoutId` for shared layout animations. Emit transition wrapper component with both strategies.
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
```
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
}
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
}
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
1
|
+
---
|
|
2
|
+
name: "animation-patterns"
|
|
3
|
+
pack: "@rune/ui"
|
|
4
|
+
description: "Motion design patterns — micro-interactions, page transitions, scroll animations, loading states. Applies CSS transitions, Framer Motion, or GSAP based on project stack. Always respects prefers-reduced-motion."
|
|
5
|
+
model: sonnet
|
|
6
|
+
tools: [Read, Edit, Write, Grep, Glob, Bash]
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# animation-patterns
|
|
10
|
+
|
|
11
|
+
Motion design patterns — micro-interactions, page transitions, scroll animations, loading states. Applies CSS transitions, Framer Motion, or GSAP based on project stack. Always respects `prefers-reduced-motion`.
|
|
12
|
+
|
|
13
|
+
#### Workflow
|
|
14
|
+
|
|
15
|
+
**Step 1 — Detect interaction points**
|
|
16
|
+
Use Grep to find hover handlers (`onMouseEnter`, `:hover`), route changes (Next.js `useRouter`, SvelteKit `goto`), and loading states (`isLoading`, `isPending`). Read component files to understand where motion can add feedback or polish.
|
|
17
|
+
|
|
18
|
+
**Step 2 — Apply micro-interactions**
|
|
19
|
+
For each interaction point, select the appropriate pattern: hover → scale + shadow lift; button click → press-down (scale 0.97); data load → skeleton pulse then fade-in; route change → slide or fade transition. Emit the updated component with motion classes or Framer Motion variants.
|
|
20
|
+
|
|
21
|
+
**Step 3 — Audit reduced-motion compliance**
|
|
22
|
+
Use Grep to find every animation/transition declaration. Verify each is wrapped in a `prefers-reduced-motion: no-preference` media query or uses Framer Motion's `useReducedMotion()` hook. Flag any that are not.
|
|
23
|
+
|
|
24
|
+
**Step 4 — Page transition patterns**
|
|
25
|
+
Apply View Transitions API for same-document navigations (SvelteKit, Astro, vanilla JS). For React/Next.js, use Framer Motion `AnimatePresence` + `layoutId` for shared layout animations. Emit transition wrapper component with both strategies.
|
|
26
|
+
|
|
27
|
+
**Step 5 — Mood-to-Animation Timing**
|
|
28
|
+
|
|
29
|
+
If `.rune/design-system.md` contains a `## Mood` section, read the selected mood and apply the matching motion profile. This ensures animation feel aligns with the product's emotional intent — not just technical correctness.
|
|
30
|
+
|
|
31
|
+
| Mood | Duration | Easing | Hover | Enter/Exit | Scroll | Signature |
|
|
32
|
+
|------|----------|--------|-------|------------|--------|-----------|
|
|
33
|
+
| **Impressed** | 0.8-1.2s | `ease-out` | Scale 1.03 + deep shadow | Fade-up 24px | Parallax layers | Staggered reveals with 100ms delay between items |
|
|
34
|
+
| **Excited** | 0.4-0.6s | `spring(1, 80, 10)` | Scale 1.06 + color shift | Slide-in from edge | Snap scroll | Overshoot on entry (1.56 bounce), pulse on data change |
|
|
35
|
+
| **Calm** | 0.6-0.8s | `ease-out-quad` | Subtle opacity 0.8→1 | Slow fade 300ms | Gentle float | Breathing rhythm on idle elements (opacity 0.7↔1, 4s loop) |
|
|
36
|
+
| **Confident** | 0.3-0.5s | `ease` | Precise underline/border | Clean slide 16px | None or minimal | Sharp, decisive — no overshoot, no bounce |
|
|
37
|
+
| **Playful** | 0.4-0.6s | `spring(1, 100, 12)` | Wobble or tilt (rotate ±2°) | Bounce-in from bottom | Elastic snap | Squish on click (scaleX 1.05, scaleY 0.95), emoji-like feedback |
|
|
38
|
+
| **Techy** | 0.15-0.3s | `ease-out` | Glow border or underline | Instant or 100ms fade | Sticky headers | Typewriter text, cursor blink, terminal-feel transitions |
|
|
39
|
+
| **Professional** | 0.2-0.3s | `ease` | Background tint only | Simple fade | Fixed header | Minimal — motion serves function, never decoration |
|
|
40
|
+
| **Inspired** | 0.5-0.8s | `cubic-bezier(0.4, 0, 0.2, 1)` | Reveal hidden detail | Scroll-driven enter | Parallax + reveal | Cinematic — content appears as user discovers, like turning pages |
|
|
41
|
+
|
|
42
|
+
**Usage rules:**
|
|
43
|
+
1. Read mood from `.rune/design-system.md` → select matching row → apply as default motion tokens
|
|
44
|
+
2. If no mood defined, fall back to **Professional** (safest, least opinionated)
|
|
45
|
+
3. ALL timing values must be wrapped in `prefers-reduced-motion` check — mood doesn't override accessibility
|
|
46
|
+
4. Mood overrides generic Step 2 micro-interactions where they conflict
|
|
47
|
+
|
|
48
|
+
#### Example
|
|
49
|
+
|
|
50
|
+
```tsx
|
|
51
|
+
// Tailwind micro-interaction with reduced-motion respect
|
|
52
|
+
<button
|
|
53
|
+
className="
|
|
54
|
+
transform transition-all duration-200 ease-out
|
|
55
|
+
hover:scale-105 hover:shadow-md
|
|
56
|
+
active:scale-95
|
|
57
|
+
motion-reduce:transform-none motion-reduce:transition-none
|
|
58
|
+
"
|
|
59
|
+
>
|
|
60
|
+
Confirm
|
|
61
|
+
</button>
|
|
62
|
+
|
|
63
|
+
// Framer Motion with reduced-motion hook
|
|
64
|
+
const prefersReduced = useReducedMotion()
|
|
65
|
+
|
|
66
|
+
<motion.div
|
|
67
|
+
initial={{ opacity: 0, y: prefersReduced ? 0 : 16 }}
|
|
68
|
+
animate={{ opacity: 1, y: 0 }}
|
|
69
|
+
transition={{ duration: prefersReduced ? 0 : 0.25 }}
|
|
70
|
+
/>
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
```tsx
|
|
74
|
+
// Shared layout animation — card expands to modal (Framer Motion)
|
|
75
|
+
// Works because both use the same layoutId="card-{id}"
|
|
76
|
+
function CardGrid({ items }: { items: Item[] }) {
|
|
77
|
+
const [selected, setSelected] = useState<string | null>(null)
|
|
78
|
+
return (
|
|
79
|
+
<>
|
|
80
|
+
{items.map((item) => (
|
|
81
|
+
<motion.div
|
|
82
|
+
key={item.id}
|
|
83
|
+
layoutId={`card-${item.id}`}
|
|
84
|
+
onClick={() => setSelected(item.id)}
|
|
85
|
+
className="rounded-xl bg-[var(--bg-card)] border border-[var(--border)] cursor-pointer"
|
|
86
|
+
>
|
|
87
|
+
<motion.h3 layoutId={`title-${item.id}`}>{item.title}</motion.h3>
|
|
88
|
+
</motion.div>
|
|
89
|
+
))}
|
|
90
|
+
|
|
91
|
+
<AnimatePresence>
|
|
92
|
+
{selected && (
|
|
93
|
+
<motion.div
|
|
94
|
+
layoutId={`card-${selected}`}
|
|
95
|
+
className="fixed inset-8 z-50 rounded-2xl bg-[var(--bg-card)] p-8"
|
|
96
|
+
>
|
|
97
|
+
<motion.h3 layoutId={`title-${selected}`} className="text-h2 font-bold">
|
|
98
|
+
{items.find(i => i.id === selected)?.title}
|
|
99
|
+
</motion.h3>
|
|
100
|
+
<button onClick={() => setSelected(null)} aria-label="Close">
|
|
101
|
+
<X aria-hidden="true" />
|
|
102
|
+
</button>
|
|
103
|
+
</motion.div>
|
|
104
|
+
)}
|
|
105
|
+
</AnimatePresence>
|
|
106
|
+
</>
|
|
107
|
+
)
|
|
108
|
+
}
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
```css
|
|
112
|
+
/* View Transitions API — SvelteKit / Astro page transitions */
|
|
113
|
+
/* In app.css or global stylesheet */
|
|
114
|
+
@media (prefers-reduced-motion: no-preference) {
|
|
115
|
+
::view-transition-old(root) {
|
|
116
|
+
animation: 200ms ease-out both fade-out;
|
|
117
|
+
}
|
|
118
|
+
::view-transition-new(root) {
|
|
119
|
+
animation: 250ms ease-in both fade-in;
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
@keyframes fade-out { from { opacity: 1; } to { opacity: 0; } }
|
|
124
|
+
@keyframes fade-in { from { opacity: 0; } to { opacity: 1; } }
|
|
125
|
+
|
|
126
|
+
/* SvelteKit: enable in svelte.config.js → experimental: { viewTransitions: true } */
|
|
127
|
+
```
|
|
@@ -1,75 +1,100 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: "component-patterns"
|
|
3
|
-
pack: "@rune/ui"
|
|
4
|
-
description: "Component architecture patterns — compound components, render props, composition, slots. Detects prop-heavy components and guides refactoring toward composable, maintainable architectures."
|
|
5
|
-
model: sonnet
|
|
6
|
-
tools: [Read, Edit, Write, Grep, Glob, Bash]
|
|
7
|
-
---
|
|
8
|
-
|
|
9
|
-
# component-patterns
|
|
10
|
-
|
|
11
|
-
Component architecture patterns — compound components, render props, composition, slots. Detects prop-heavy components and guides refactoring toward composable, maintainable architectures.
|
|
12
|
-
|
|
13
|
-
#### Workflow
|
|
14
|
-
|
|
15
|
-
**Step 1 — Detect prop-heavy components**
|
|
16
|
-
Use Grep to find component signatures with more than 8 props (`interface \w+Props \{` then count fields, or scan function parameter lists). Read each flagged file to understand the component's responsibilities.
|
|
17
|
-
|
|
18
|
-
**Step 2 — Classify and suggest pattern**
|
|
19
|
-
For each flagged component, classify by smell: boolean-flag hell → compound component; render logic branching → render props or slots; deeply nested data → context + provider. Output a refactor plan with the specific pattern to apply.
|
|
20
|
-
|
|
21
|
-
**Step 3 — Emit refactored scaffold**
|
|
22
|
-
Write the refactored component skeleton following the compound component pattern. Do not overwrite the original — emit to a `*.refactored.tsx` file for review.
|
|
23
|
-
|
|
24
|
-
**Step 4 — Composition vs inheritance + slot patterns**
|
|
25
|
-
After structural refactor, audit for slot opportunities (Svelte `<slot>`, Vue `v-slot`, React `children` with typed slots). Enforce: prefer composition (pass components as props) over inheritance (extend base class). Flag any `extends React.Component` or class-based patterns for migration.
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
1
|
+
---
|
|
2
|
+
name: "component-patterns"
|
|
3
|
+
pack: "@rune/ui"
|
|
4
|
+
description: "Component architecture patterns — compound components, render props, composition, slots. Detects prop-heavy components and guides refactoring toward composable, maintainable architectures."
|
|
5
|
+
model: sonnet
|
|
6
|
+
tools: [Read, Edit, Write, Grep, Glob, Bash]
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# component-patterns
|
|
10
|
+
|
|
11
|
+
Component architecture patterns — compound components, render props, composition, slots. Detects prop-heavy components and guides refactoring toward composable, maintainable architectures.
|
|
12
|
+
|
|
13
|
+
#### Workflow
|
|
14
|
+
|
|
15
|
+
**Step 1 — Detect prop-heavy components**
|
|
16
|
+
Use Grep to find component signatures with more than 8 props (`interface \w+Props \{` then count fields, or scan function parameter lists). Read each flagged file to understand the component's responsibilities.
|
|
17
|
+
|
|
18
|
+
**Step 2 — Classify and suggest pattern**
|
|
19
|
+
For each flagged component, classify by smell: boolean-flag hell → compound component; render logic branching → render props or slots; deeply nested data → context + provider. Output a refactor plan with the specific pattern to apply.
|
|
20
|
+
|
|
21
|
+
**Step 3 — Emit refactored scaffold**
|
|
22
|
+
Write the refactored component skeleton following the compound component pattern. Do not overwrite the original — emit to a `*.refactored.tsx` file for review.
|
|
23
|
+
|
|
24
|
+
**Step 4 — Composition vs inheritance + slot patterns**
|
|
25
|
+
After structural refactor, audit for slot opportunities (Svelte `<slot>`, Vue `v-slot`, React `children` with typed slots). Enforce: prefer composition (pass components as props) over inheritance (extend base class). Flag any `extends React.Component` or class-based patterns for migration.
|
|
26
|
+
|
|
27
|
+
**Step 5 — Bento Card Archetypes**
|
|
28
|
+
|
|
29
|
+
When designing card-based layouts, apply named archetypes instead of uniform grids. Each archetype has a specific interaction model and animation signature. Mix archetypes within a page to create visual hierarchy.
|
|
30
|
+
|
|
31
|
+
| Archetype | Content Type | Layout | Interaction | Animation |
|
|
32
|
+
|-----------|-------------|--------|-------------|-----------|
|
|
33
|
+
| **Intelligent List** | Ranked/sortable items (leaderboard, top assets, recent activity) | Vertical stack, auto-reorders | Drag to reorder, click to expand | `layoutId` shared animation on reorder — items slide to new position (Framer Motion `layout` prop) |
|
|
34
|
+
| **Command Input** | Search, AI prompt, quick actions | Single input + dropdown results | Type to filter, keyboard nav, Enter to execute | Typewriter placeholder text + shimmer gradient on focus + results fade-in with 50ms stagger |
|
|
35
|
+
| **Live Status** | Real-time metrics (uptime, price, active users) | Compact card, number-dominant | Hover for sparkline/history | Breathing pulse on idle (opacity 0.85↔1, 3s), overshoot scale on value change (spring) |
|
|
36
|
+
| **Wide Data Stream** | Horizontal feed (news, transactions, timeline) | Full-width horizontal scroll or infinite carousel | Swipe/drag, auto-advance optional | Infinite scroll with momentum, snap to item, fade edges to signal overflow |
|
|
37
|
+
| **Contextual Panel** | Detail view, settings, metadata | Expandable from parent card or sidebar | Click parent → panel slides in | Stagger children (50ms each), float-in from right (translateX 24px → 0) |
|
|
38
|
+
|
|
39
|
+
**Anti-patterns for card layouts:**
|
|
40
|
+
- ❌ **Uniform grid** — all cards same size, same padding, same content structure = AI signature
|
|
41
|
+
- ❌ **Card soup** — cards with no clear grouping or hierarchy
|
|
42
|
+
- ❌ **Static bento** — bento layout without interaction model = decorative, not functional
|
|
43
|
+
|
|
44
|
+
**Composition rules:**
|
|
45
|
+
1. A page should use 2-4 archetypes max — more = visual noise
|
|
46
|
+
2. **Live Status** cards cluster together (dashboard KPI row)
|
|
47
|
+
3. **Intelligent List** is the primary content area — usually takes 60%+ of viewport
|
|
48
|
+
4. **Command Input** is a singleton — ONE per page, always accessible (often pinned top or Cmd+K)
|
|
49
|
+
5. **Wide Data Stream** breaks vertical rhythm — use as section separator between dense blocks
|
|
50
|
+
6. **Contextual Panel** is secondary — triggered by interaction, never shown by default on load
|
|
51
|
+
|
|
52
|
+
#### Example
|
|
53
|
+
|
|
54
|
+
```tsx
|
|
55
|
+
// BEFORE: prop-heavy (9 props, hard to extend)
|
|
56
|
+
<Modal title="..." open footer actions size variant onClose onConfirm loading />
|
|
57
|
+
|
|
58
|
+
// AFTER: compound component pattern
|
|
59
|
+
<Modal open onClose={handleClose}>
|
|
60
|
+
<Modal.Header>Confirm Action</Modal.Header>
|
|
61
|
+
<Modal.Body>Are you sure?</Modal.Body>
|
|
62
|
+
<Modal.Footer>
|
|
63
|
+
<Button variant="ghost" onClick={handleClose}>Cancel</Button>
|
|
64
|
+
<Button variant="primary" loading={isLoading} onClick={handleConfirm}>
|
|
65
|
+
Confirm
|
|
66
|
+
</Button>
|
|
67
|
+
</Modal.Footer>
|
|
68
|
+
</Modal>
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
```tsx
|
|
72
|
+
// Svelte slot pattern — composition over prop drilling
|
|
73
|
+
// Caller decides what goes in header/footer, component owns layout
|
|
74
|
+
<Card>
|
|
75
|
+
<svelte:fragment slot="header">
|
|
76
|
+
<h3 class="text-h3 font-semibold">Usage this month</h3>
|
|
77
|
+
</svelte:fragment>
|
|
78
|
+
|
|
79
|
+
<MetricChart data={usage} />
|
|
80
|
+
|
|
81
|
+
<svelte:fragment slot="footer">
|
|
82
|
+
<a href="/billing" class="text-sm text-[var(--primary)]">View invoice</a>
|
|
83
|
+
</svelte:fragment>
|
|
84
|
+
</Card>
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
```tsx
|
|
88
|
+
// React typed children slots via discriminated union
|
|
89
|
+
type ModalSlot = { as: 'header' | 'body' | 'footer'; children: React.ReactNode }
|
|
90
|
+
|
|
91
|
+
function resolveSlots(children: React.ReactNode) {
|
|
92
|
+
const slots: Record<string, React.ReactNode> = {}
|
|
93
|
+
React.Children.forEach(children, (child) => {
|
|
94
|
+
if (React.isValidElement<ModalSlot>(child) && child.props.as) {
|
|
95
|
+
slots[child.props.as] = child.props.children
|
|
96
|
+
}
|
|
97
|
+
})
|
|
98
|
+
return slots
|
|
99
|
+
}
|
|
100
|
+
```
|
|
@@ -1,108 +1,108 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: "design-decision"
|
|
3
|
-
pack: "@rune/ui"
|
|
4
|
-
description: "Product domain → style mapping. Given a product category, outputs a complete design recommendation: visual style, palette, typography pairing, component aesthetic, and a design-system.md scaffold."
|
|
5
|
-
model: sonnet
|
|
6
|
-
tools: [Read, Edit, Write, Grep, Glob, Bash]
|
|
7
|
-
---
|
|
8
|
-
|
|
9
|
-
# design-decision
|
|
10
|
-
|
|
11
|
-
Product domain → style mapping. Given a product category, outputs a complete design recommendation: visual style, palette, typography pairing, component aesthetic, and a `design-system.md` scaffold. Bridges the gap between "I need to build a UI" and "I know exactly what it should look like."
|
|
12
|
-
|
|
13
|
-
#### Workflow
|
|
14
|
-
|
|
15
|
-
**Step 1 — Classify product domain**
|
|
16
|
-
Read `CLAUDE.md`, `README.md`, or ask: "What problem does this product solve? Who uses it?" Map to one of the 9 domains below.
|
|
17
|
-
|
|
18
|
-
**Step 2 — Recommend style stack**
|
|
19
|
-
Apply the domain → style matrix. Output: visual style name, palette slug, typography pairing, component aesthetic, and 3 reference patterns to avoid ("do NOT do X").
|
|
20
|
-
|
|
21
|
-
**Step 3 — Generate design-system.md**
|
|
22
|
-
Emit a `design-system.md` file in the project root (or `.rune/`) with: color tokens (CSS custom properties), font pairing (Google Fonts link), spacing scale, component aesthetic rules, and anti-patterns for this domain.
|
|
23
|
-
|
|
24
|
-
#### Domain → Style Matrix
|
|
25
|
-
|
|
26
|
-
The matrix below provides default mappings. When `references/ui-pro-max-data/styles.csv` is available, query it for **84 additional styles** with industry-specific parameters — filter by domain column for expanded recommendations beyond these 10 defaults.
|
|
27
|
-
|
|
28
|
-
```
|
|
29
|
-
Domain Style Palette Typography Component Aesthetic
|
|
30
|
-
─────────────────────────────────────────────────────────────────────────────────────────────
|
|
31
|
-
Fintech/Trading Dark + Precision midnight-profit Space Grotesk+Mono Dense tables, data overlays
|
|
32
|
-
Healthcare Clean + Calm clean-clinic DM Sans+DM Serif Rounded, soft, spacious
|
|
33
|
-
Education Warm + Friendly warm-academy* Fredoka+Nunito Illustrated, playful cards
|
|
34
|
-
Gaming Dark + Neon neon-arena Rajdhani+Exo 2 Hard edges, glow effects
|
|
35
|
-
Ecommerce Trust + Focused trust-cart Inter+Inter Product-first, clean CTA
|
|
36
|
-
SaaS/Dashboard Precision + Flex slate-precision Space Grotesk+Inter Data-dense, sidebar nav
|
|
37
|
-
Social/Community Vibrant + Engaged gradient-social* Inter+Inter Avatar-heavy, reaction UX
|
|
38
|
-
News/Content Readable + Neutral neutral-ink* Playfair+Source Serif Wide columns, drop caps
|
|
39
|
-
Productivity Minimal + Calm calm-focus* Inter+Inter (weight) Almost no decoration
|
|
40
|
-
DevTools Terminal + Crisp terminal-dark JetBrains Mono+Inter Code blocks, mono emphasis
|
|
41
|
-
|
|
42
|
-
* Palette not shown in palette-picker example block — generate with same CSS custom props pattern.
|
|
43
|
-
```
|
|
44
|
-
|
|
45
|
-
#### Extended Data (UI/UX Pro Max)
|
|
46
|
-
|
|
47
|
-
When `references/ui-pro-max-data/` exists:
|
|
48
|
-
- `styles.csv` — 84 styles with color params, animation, WCAG levels, mobile flags
|
|
49
|
-
- `typography.csv` — 73 font pairings with Google Fonts URLs, Tailwind config, mood keywords
|
|
50
|
-
- `ui-reasoning.csv` — 161 industry-specific reasoning rules (filter by domain)
|
|
51
|
-
- Query: filter CSV by domain/category column → get expanded recommendations
|
|
52
|
-
|
|
53
|
-
#### Style Characteristic Reference
|
|
54
|
-
|
|
55
|
-
```
|
|
56
|
-
glassmorphism When: premium SaaS landing, dark bg hero. Avoid: dense data tables (illegible).
|
|
57
|
-
CSS: background: rgba(255,255,255,0.05); backdrop-filter: blur(12px);
|
|
58
|
-
border: 1px solid rgba(255,255,255,0.1); border-radius: 16px;
|
|
59
|
-
|
|
60
|
-
neubrutalism When: bold brand statement, startup, creative tool. Avoid: healthcare, finance.
|
|
61
|
-
CSS: border: 2px solid #000; box-shadow: 4px 4px 0 #000;
|
|
62
|
-
background: #ffe600; (or other saturated fill)
|
|
63
|
-
|
|
64
|
-
claymorphism When: education, kids, consumer apps. Avoid: enterprise, B2B data tools.
|
|
65
|
-
CSS: border-radius: 20px; box-shadow: 0 8px 0 rgba(0,0,0,0.15),
|
|
66
|
-
inset 0 -4px 0 rgba(0,0,0,0.1); (inflated, soft look)
|
|
67
|
-
|
|
68
|
-
aurora/gradient When: landing page hero ONLY, used sparingly. AVOID as overall theme.
|
|
69
|
-
CSS: background: conic-gradient(from 180deg at 50% 50%, ...); opacity: 0.15;
|
|
70
|
-
(subtle, behind content — never the main visual)
|
|
71
|
-
|
|
72
|
-
flat/minimal When: productivity, devtools, content. Best default for B2B SaaS.
|
|
73
|
-
CSS: No shadows except --shadow-sm. Single accent color. Whitespace-heavy.
|
|
74
|
-
|
|
75
|
-
dark-precision When: fintech, devtools, monitoring. Default dark bg with high-contrast accents.
|
|
76
|
-
CSS: bg #0f172a or darker; mono fonts for data; green/red semantic signals.
|
|
77
|
-
```
|
|
78
|
-
|
|
79
|
-
#### Example — Generated design-system.md
|
|
80
|
-
|
|
81
|
-
```markdown
|
|
82
|
-
# Design System: [Product Name]
|
|
83
|
-
|
|
84
|
-
## Domain
|
|
85
|
-
SaaS Dashboard — B2B productivity tool for engineering teams
|
|
86
|
-
|
|
87
|
-
## Visual Style
|
|
88
|
-
Flat/Minimal with Slate Precision palette. Dark mode default.
|
|
89
|
-
Do NOT use gradient blobs, glassmorphism panels, or Lucide icons.
|
|
90
|
-
|
|
91
|
-
## Color Tokens
|
|
92
|
-
[→ See palette.css — generated by palette-picker, slate-precision]
|
|
93
|
-
|
|
94
|
-
## Typography
|
|
95
|
-
Pairing: Space Grotesk (headings, 600–700) + Inter (body, 400–500)
|
|
96
|
-
[→ See Google Fonts link in type-system output]
|
|
97
|
-
|
|
98
|
-
## Component Rules
|
|
99
|
-
- Cards: bg-card + border border-[var(--border)] + rounded-lg. NO drop shadows on cards.
|
|
100
|
-
- Buttons: primary = bg-primary text-white. ghost = border + transparent bg.
|
|
101
|
-
- Icons: Phosphor Icons only. Weight: regular for UI, fill for status indicators.
|
|
102
|
-
- Data tables: zebra stripe with bg-elevated on odd rows. Mono font for numbers.
|
|
103
|
-
|
|
104
|
-
## Anti-Patterns for This Domain
|
|
105
|
-
- No centered hero with 2-button CTA
|
|
106
|
-
- No gradient backgrounds
|
|
107
|
-
- No uniform card grid (vary card sizes by content importance)
|
|
108
|
-
```
|
|
1
|
+
---
|
|
2
|
+
name: "design-decision"
|
|
3
|
+
pack: "@rune/ui"
|
|
4
|
+
description: "Product domain → style mapping. Given a product category, outputs a complete design recommendation: visual style, palette, typography pairing, component aesthetic, and a design-system.md scaffold."
|
|
5
|
+
model: sonnet
|
|
6
|
+
tools: [Read, Edit, Write, Grep, Glob, Bash]
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# design-decision
|
|
10
|
+
|
|
11
|
+
Product domain → style mapping. Given a product category, outputs a complete design recommendation: visual style, palette, typography pairing, component aesthetic, and a `design-system.md` scaffold. Bridges the gap between "I need to build a UI" and "I know exactly what it should look like."
|
|
12
|
+
|
|
13
|
+
#### Workflow
|
|
14
|
+
|
|
15
|
+
**Step 1 — Classify product domain**
|
|
16
|
+
Read `CLAUDE.md`, `README.md`, or ask: "What problem does this product solve? Who uses it?" Map to one of the 9 domains below.
|
|
17
|
+
|
|
18
|
+
**Step 2 — Recommend style stack**
|
|
19
|
+
Apply the domain → style matrix. Output: visual style name, palette slug, typography pairing, component aesthetic, and 3 reference patterns to avoid ("do NOT do X").
|
|
20
|
+
|
|
21
|
+
**Step 3 — Generate design-system.md**
|
|
22
|
+
Emit a `design-system.md` file in the project root (or `.rune/`) with: color tokens (CSS custom properties), font pairing (Google Fonts link), spacing scale, component aesthetic rules, and anti-patterns for this domain.
|
|
23
|
+
|
|
24
|
+
#### Domain → Style Matrix
|
|
25
|
+
|
|
26
|
+
The matrix below provides default mappings. When `references/ui-pro-max-data/styles.csv` is available, query it for **84 additional styles** with industry-specific parameters — filter by domain column for expanded recommendations beyond these 10 defaults.
|
|
27
|
+
|
|
28
|
+
```
|
|
29
|
+
Domain Style Palette Typography Component Aesthetic
|
|
30
|
+
─────────────────────────────────────────────────────────────────────────────────────────────
|
|
31
|
+
Fintech/Trading Dark + Precision midnight-profit Space Grotesk+Mono Dense tables, data overlays
|
|
32
|
+
Healthcare Clean + Calm clean-clinic DM Sans+DM Serif Rounded, soft, spacious
|
|
33
|
+
Education Warm + Friendly warm-academy* Fredoka+Nunito Illustrated, playful cards
|
|
34
|
+
Gaming Dark + Neon neon-arena Rajdhani+Exo 2 Hard edges, glow effects
|
|
35
|
+
Ecommerce Trust + Focused trust-cart Inter+Inter Product-first, clean CTA
|
|
36
|
+
SaaS/Dashboard Precision + Flex slate-precision Space Grotesk+Inter Data-dense, sidebar nav
|
|
37
|
+
Social/Community Vibrant + Engaged gradient-social* Inter+Inter Avatar-heavy, reaction UX
|
|
38
|
+
News/Content Readable + Neutral neutral-ink* Playfair+Source Serif Wide columns, drop caps
|
|
39
|
+
Productivity Minimal + Calm calm-focus* Inter+Inter (weight) Almost no decoration
|
|
40
|
+
DevTools Terminal + Crisp terminal-dark JetBrains Mono+Inter Code blocks, mono emphasis
|
|
41
|
+
|
|
42
|
+
* Palette not shown in palette-picker example block — generate with same CSS custom props pattern.
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
#### Extended Data (UI/UX Pro Max)
|
|
46
|
+
|
|
47
|
+
When `references/ui-pro-max-data/` exists:
|
|
48
|
+
- `styles.csv` — 84 styles with color params, animation, WCAG levels, mobile flags
|
|
49
|
+
- `typography.csv` — 73 font pairings with Google Fonts URLs, Tailwind config, mood keywords
|
|
50
|
+
- `ui-reasoning.csv` — 161 industry-specific reasoning rules (filter by domain)
|
|
51
|
+
- Query: filter CSV by domain/category column → get expanded recommendations
|
|
52
|
+
|
|
53
|
+
#### Style Characteristic Reference
|
|
54
|
+
|
|
55
|
+
```
|
|
56
|
+
glassmorphism When: premium SaaS landing, dark bg hero. Avoid: dense data tables (illegible).
|
|
57
|
+
CSS: background: rgba(255,255,255,0.05); backdrop-filter: blur(12px);
|
|
58
|
+
border: 1px solid rgba(255,255,255,0.1); border-radius: 16px;
|
|
59
|
+
|
|
60
|
+
neubrutalism When: bold brand statement, startup, creative tool. Avoid: healthcare, finance.
|
|
61
|
+
CSS: border: 2px solid #000; box-shadow: 4px 4px 0 #000;
|
|
62
|
+
background: #ffe600; (or other saturated fill)
|
|
63
|
+
|
|
64
|
+
claymorphism When: education, kids, consumer apps. Avoid: enterprise, B2B data tools.
|
|
65
|
+
CSS: border-radius: 20px; box-shadow: 0 8px 0 rgba(0,0,0,0.15),
|
|
66
|
+
inset 0 -4px 0 rgba(0,0,0,0.1); (inflated, soft look)
|
|
67
|
+
|
|
68
|
+
aurora/gradient When: landing page hero ONLY, used sparingly. AVOID as overall theme.
|
|
69
|
+
CSS: background: conic-gradient(from 180deg at 50% 50%, ...); opacity: 0.15;
|
|
70
|
+
(subtle, behind content — never the main visual)
|
|
71
|
+
|
|
72
|
+
flat/minimal When: productivity, devtools, content. Best default for B2B SaaS.
|
|
73
|
+
CSS: No shadows except --shadow-sm. Single accent color. Whitespace-heavy.
|
|
74
|
+
|
|
75
|
+
dark-precision When: fintech, devtools, monitoring. Default dark bg with high-contrast accents.
|
|
76
|
+
CSS: bg #0f172a or darker; mono fonts for data; green/red semantic signals.
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
#### Example — Generated design-system.md
|
|
80
|
+
|
|
81
|
+
```markdown
|
|
82
|
+
# Design System: [Product Name]
|
|
83
|
+
|
|
84
|
+
## Domain
|
|
85
|
+
SaaS Dashboard — B2B productivity tool for engineering teams
|
|
86
|
+
|
|
87
|
+
## Visual Style
|
|
88
|
+
Flat/Minimal with Slate Precision palette. Dark mode default.
|
|
89
|
+
Do NOT use gradient blobs, glassmorphism panels, or Lucide icons.
|
|
90
|
+
|
|
91
|
+
## Color Tokens
|
|
92
|
+
[→ See palette.css — generated by palette-picker, slate-precision]
|
|
93
|
+
|
|
94
|
+
## Typography
|
|
95
|
+
Pairing: Space Grotesk (headings, 600–700) + Inter (body, 400–500)
|
|
96
|
+
[→ See Google Fonts link in type-system output]
|
|
97
|
+
|
|
98
|
+
## Component Rules
|
|
99
|
+
- Cards: bg-card + border border-[var(--border)] + rounded-lg. NO drop shadows on cards.
|
|
100
|
+
- Buttons: primary = bg-primary text-white. ghost = border + transparent bg.
|
|
101
|
+
- Icons: Phosphor Icons only. Weight: regular for UI, fill for status indicators.
|
|
102
|
+
- Data tables: zebra stripe with bg-elevated on odd rows. Mono font for numbers.
|
|
103
|
+
|
|
104
|
+
## Anti-Patterns for This Domain
|
|
105
|
+
- No centered hero with 2-button CTA
|
|
106
|
+
- No gradient backgrounds
|
|
107
|
+
- No uniform card grid (vary card sizes by content importance)
|
|
108
|
+
```
|