baldart 3.6.2
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/CHANGELOG.md +599 -0
- package/README.md +566 -0
- package/VERSION +1 -0
- package/bin/baldart.js +143 -0
- package/framework/.claude/agents/REGISTRY.md +169 -0
- package/framework/.claude/agents/api-perf-cost-auditor.md +291 -0
- package/framework/.claude/agents/code-reviewer.md +350 -0
- package/framework/.claude/agents/codebase-architect.md +391 -0
- package/framework/.claude/agents/coder.md +291 -0
- package/framework/.claude/agents/deep-human-insight.md +198 -0
- package/framework/.claude/agents/doc-reviewer.md +440 -0
- package/framework/.claude/agents/email-deliverability-architect.md +193 -0
- package/framework/.claude/agents/hybrid-ml-architect.md +285 -0
- package/framework/.claude/agents/hyper-gamification-designer.md +149 -0
- package/framework/.claude/agents/legal-counsel-gdpr.md +179 -0
- package/framework/.claude/agents/marketing-conversion-strategist.md +162 -0
- package/framework/.claude/agents/motion-expert.md +108 -0
- package/framework/.claude/agents/onboarding-architect-lead.md +230 -0
- package/framework/.claude/agents/plan-auditor.md +546 -0
- package/framework/.claude/agents/prd-card-writer.md +372 -0
- package/framework/.claude/agents/prd.md +744 -0
- package/framework/.claude/agents/qa-sentinel.md +305 -0
- package/framework/.claude/agents/remotion-animator-orchestrator.md +218 -0
- package/framework/.claude/agents/security-reviewer.md +276 -0
- package/framework/.claude/agents/senior-researcher.md +175 -0
- package/framework/.claude/agents/seo-analytics-strategist.md +156 -0
- package/framework/.claude/agents/skill-improver.md +61 -0
- package/framework/.claude/agents/ui-expert.md +191 -0
- package/framework/.claude/agents/visual-designer.md +190 -0
- package/framework/.claude/agents/website-orchestrator.md +118 -0
- package/framework/.claude/agents/wiki-curator.md +145 -0
- package/framework/.claude/commands/baldart-push.md +15 -0
- package/framework/.claude/commands/check.md +237 -0
- package/framework/.claude/commands/codexreview.md +203 -0
- package/framework/.claude/commands/design-review.md +11 -0
- package/framework/.claude/commands/issue-review.md +34 -0
- package/framework/.claude/commands/new.md +331 -0
- package/framework/.claude/commands/qa.md +257 -0
- package/framework/.claude/hooks/framework-edit-gate.js +208 -0
- package/framework/.claude/hooks/lint-before-commit.sh.template +66 -0
- package/framework/.claude/settings.local.json.example +32 -0
- package/framework/.claude/skills/api-design-principles/SKILL.md +567 -0
- package/framework/.claude/skills/api-design-principles/assets/api-design-checklist.md +155 -0
- package/framework/.claude/skills/api-design-principles/assets/rest-api-template.py +182 -0
- package/framework/.claude/skills/api-design-principles/references/graphql-schema-design.md +583 -0
- package/framework/.claude/skills/api-design-principles/references/rest-best-practices.md +408 -0
- package/framework/.claude/skills/baldart-push/SKILL.md +222 -0
- package/framework/.claude/skills/bug/SKILL.md +200 -0
- package/framework/.claude/skills/bug/references/logging-patterns.md +174 -0
- package/framework/.claude/skills/capture/SKILL.md +125 -0
- package/framework/.claude/skills/capture/references/synthesis-template.md +42 -0
- package/framework/.claude/skills/context-primer/SKILL.md +189 -0
- package/framework/.claude/skills/copywriting/SKILL.md +273 -0
- package/framework/.claude/skills/copywriting/references/copy-frameworks.md +338 -0
- package/framework/.claude/skills/copywriting/references/natural-transitions.md +252 -0
- package/framework/.claude/skills/doc-writing-for-rag/SKILL.md +119 -0
- package/framework/.claude/skills/doc-writing-for-rag/references/before-after-examples.md +291 -0
- package/framework/.claude/skills/doc-writing-for-rag/references/compact-templates.md +183 -0
- package/framework/.claude/skills/doc-writing-for-rag/references/frontmatter-minimal.md +112 -0
- package/framework/.claude/skills/doc-writing-for-rag/references/line-count-targets.md +110 -0
- package/framework/.claude/skills/doc-writing-for-rag/references/schemas-and-errors.md +129 -0
- package/framework/.claude/skills/find-skills/SKILL.md +133 -0
- package/framework/.claude/skills/frontend-design/LICENSE.txt +177 -0
- package/framework/.claude/skills/frontend-design/SKILL.md +84 -0
- package/framework/.claude/skills/gamification-design/SKILL.md +130 -0
- package/framework/.claude/skills/issue-review/SKILL.md +45 -0
- package/framework/.claude/skills/kie-ai/SKILL.md +262 -0
- package/framework/.claude/skills/kie-ai/references/models-catalog.md +272 -0
- package/framework/.claude/skills/kie-ai/scripts/kie_api.sh +209 -0
- package/framework/.claude/skills/kie-ai/scripts/remove_greenscreen.py +69 -0
- package/framework/.claude/skills/kie-ai/scripts/setup_api_key.sh +77 -0
- package/framework/.claude/skills/motion-design/LICENSE +21 -0
- package/framework/.claude/skills/motion-design/README.md +82 -0
- package/framework/.claude/skills/motion-design/SKILL.md +336 -0
- package/framework/.claude/skills/motion-design/director/choreography.md +93 -0
- package/framework/.claude/skills/motion-design/director/context-adaptation.md +83 -0
- package/framework/.claude/skills/motion-design/director/core-philosophy.md +53 -0
- package/framework/.claude/skills/motion-design/director/decision-framework.md +91 -0
- package/framework/.claude/skills/motion-design/director/disney-principles.md +102 -0
- package/framework/.claude/skills/motion-design/director/emotion-mapping.md +71 -0
- package/framework/.claude/skills/motion-design/director/motion-personality.md +89 -0
- package/framework/.claude/skills/motion-design/director/narrative-structure.md +62 -0
- package/framework/.claude/skills/motion-design/patterns/ambient-continuous.md +81 -0
- package/framework/.claude/skills/motion-design/patterns/entrance-exit.md +82 -0
- package/framework/.claude/skills/motion-design/patterns/multi-element.md +69 -0
- package/framework/.claude/skills/motion-design/patterns/state-feedback.md +96 -0
- package/framework/.claude/skills/motion-design/reference/property-selection.md +95 -0
- package/framework/.claude/skills/motion-design/reference/quality-checklist.md +67 -0
- package/framework/.claude/skills/motion-design/reference/timing-easing-tables.md +106 -0
- package/framework/.claude/skills/motion-design/reference/troubleshooting.md +73 -0
- package/framework/.claude/skills/new/SKILL.md +1687 -0
- package/framework/.claude/skills/playwright-skill/API_REFERENCE.md +652 -0
- package/framework/.claude/skills/playwright-skill/SKILL.md +157 -0
- package/framework/.claude/skills/playwright-skill/package.json +26 -0
- package/framework/.claude/skills/prd/SKILL.md +228 -0
- package/framework/.claude/skills/prd/assets/card-template.yml +232 -0
- package/framework/.claude/skills/prd/assets/epic-template.yml +190 -0
- package/framework/.claude/skills/prd/assets/prd-template.md +230 -0
- package/framework/.claude/skills/prd/assets/state-template.md +78 -0
- package/framework/.claude/skills/prd/references/api-perf-gate.md +152 -0
- package/framework/.claude/skills/prd/references/audit-phase.md +478 -0
- package/framework/.claude/skills/prd/references/backlog-phase.md +145 -0
- package/framework/.claude/skills/prd/references/discovery-phase.md +359 -0
- package/framework/.claude/skills/prd/references/impact-analysis.md +233 -0
- package/framework/.claude/skills/prd/references/prd-add-phase.md +214 -0
- package/framework/.claude/skills/prd/references/prd-writing-phase.md +145 -0
- package/framework/.claude/skills/prd/references/research-phase.md +216 -0
- package/framework/.claude/skills/prd/references/ui-design-phase.md +61 -0
- package/framework/.claude/skills/prd/references/validation-phase.md +72 -0
- package/framework/.claude/skills/prd-add/SKILL.md +222 -0
- package/framework/.claude/skills/prd-add/references/impact-analysis.md +233 -0
- package/framework/.claude/skills/remotion-best-practices/SKILL.md +48 -0
- package/framework/.claude/skills/remotion-best-practices/rules/3d.md +86 -0
- package/framework/.claude/skills/remotion-best-practices/rules/animations.md +29 -0
- package/framework/.claude/skills/remotion-best-practices/rules/assets/charts-bar-chart.tsx +173 -0
- package/framework/.claude/skills/remotion-best-practices/rules/assets/text-animations-typewriter.tsx +100 -0
- package/framework/.claude/skills/remotion-best-practices/rules/assets/text-animations-word-highlight.tsx +108 -0
- package/framework/.claude/skills/remotion-best-practices/rules/assets.md +78 -0
- package/framework/.claude/skills/remotion-best-practices/rules/audio.md +169 -0
- package/framework/.claude/skills/remotion-best-practices/rules/calculate-metadata.md +104 -0
- package/framework/.claude/skills/remotion-best-practices/rules/can-decode.md +75 -0
- package/framework/.claude/skills/remotion-best-practices/rules/charts.md +58 -0
- package/framework/.claude/skills/remotion-best-practices/rules/compositions.md +141 -0
- package/framework/.claude/skills/remotion-best-practices/rules/display-captions.md +184 -0
- package/framework/.claude/skills/remotion-best-practices/rules/extract-frames.md +229 -0
- package/framework/.claude/skills/remotion-best-practices/rules/fonts.md +152 -0
- package/framework/.claude/skills/remotion-best-practices/rules/get-audio-duration.md +58 -0
- package/framework/.claude/skills/remotion-best-practices/rules/get-video-dimensions.md +68 -0
- package/framework/.claude/skills/remotion-best-practices/rules/get-video-duration.md +58 -0
- package/framework/.claude/skills/remotion-best-practices/rules/gifs.md +141 -0
- package/framework/.claude/skills/remotion-best-practices/rules/images.md +130 -0
- package/framework/.claude/skills/remotion-best-practices/rules/import-srt-captions.md +69 -0
- package/framework/.claude/skills/remotion-best-practices/rules/light-leaks.md +73 -0
- package/framework/.claude/skills/remotion-best-practices/rules/lottie.md +67 -0
- package/framework/.claude/skills/remotion-best-practices/rules/maps.md +401 -0
- package/framework/.claude/skills/remotion-best-practices/rules/measuring-dom-nodes.md +34 -0
- package/framework/.claude/skills/remotion-best-practices/rules/measuring-text.md +143 -0
- package/framework/.claude/skills/remotion-best-practices/rules/parameters.md +98 -0
- package/framework/.claude/skills/remotion-best-practices/rules/sequencing.md +118 -0
- package/framework/.claude/skills/remotion-best-practices/rules/subtitles.md +36 -0
- package/framework/.claude/skills/remotion-best-practices/rules/tailwind.md +11 -0
- package/framework/.claude/skills/remotion-best-practices/rules/text-animations.md +20 -0
- package/framework/.claude/skills/remotion-best-practices/rules/timing.md +179 -0
- package/framework/.claude/skills/remotion-best-practices/rules/transcribe-captions.md +70 -0
- package/framework/.claude/skills/remotion-best-practices/rules/transitions.md +197 -0
- package/framework/.claude/skills/remotion-best-practices/rules/transparent-videos.md +106 -0
- package/framework/.claude/skills/remotion-best-practices/rules/trimming.md +52 -0
- package/framework/.claude/skills/remotion-best-practices/rules/videos.md +171 -0
- package/framework/.claude/skills/seo-audit/SKILL.md +394 -0
- package/framework/.claude/skills/seo-audit/references/aeo-geo-patterns.md +279 -0
- package/framework/.claude/skills/seo-audit/references/ai-writing-detection.md +190 -0
- package/framework/.claude/skills/simplify/SKILL.md +137 -0
- package/framework/.claude/skills/skill-creator/LICENSE.txt +202 -0
- package/framework/.claude/skills/skill-creator/SKILL.md +356 -0
- package/framework/.claude/skills/skill-creator/references/output-patterns.md +82 -0
- package/framework/.claude/skills/skill-creator/references/workflows.md +28 -0
- package/framework/.claude/skills/skill-creator/scripts/init_skill.py +303 -0
- package/framework/.claude/skills/skill-creator/scripts/package_skill.py +110 -0
- package/framework/.claude/skills/skill-creator/scripts/quick_validate.py +95 -0
- package/framework/.claude/skills/ui-design/SKILL.md +199 -0
- package/framework/.claude/skills/ui-design/references/component-discovery.md +54 -0
- package/framework/.claude/skills/ui-design/references/evaluation.md +171 -0
- package/framework/.claude/skills/ui-design/references/generation.md +109 -0
- package/framework/.claude/skills/ui-design/references/inventory.md +59 -0
- package/framework/.claude/skills/webapp-testing/LICENSE.txt +202 -0
- package/framework/.claude/skills/webapp-testing/SKILL.md +123 -0
- package/framework/.claude/skills/webapp-testing/examples/console_logging.py +35 -0
- package/framework/.claude/skills/webapp-testing/examples/element_discovery.py +40 -0
- package/framework/.claude/skills/webapp-testing/examples/static_html_automation.py +33 -0
- package/framework/.claude/skills/webapp-testing/scripts/with_server.py +106 -0
- package/framework/.claude/skills/worktree-manager/SKILL.md +680 -0
- package/framework/AGENTS.md +240 -0
- package/framework/agents/api-contracts.md +137 -0
- package/framework/agents/architecture.md +145 -0
- package/framework/agents/coding-standards.md +148 -0
- package/framework/agents/data-model.md +110 -0
- package/framework/agents/deployment-protocol.md +232 -0
- package/framework/agents/design-review.md +172 -0
- package/framework/agents/env-reference.md +171 -0
- package/framework/agents/github-issue-subagent.md +252 -0
- package/framework/agents/index.md +261 -0
- package/framework/agents/llm-wiki-methodology.md +216 -0
- package/framework/agents/maintenance-protocol.md +305 -0
- package/framework/agents/observability.md +162 -0
- package/framework/agents/performance.md +155 -0
- package/framework/agents/project-context.md +145 -0
- package/framework/agents/runbook.md +208 -0
- package/framework/agents/security.md +168 -0
- package/framework/agents/skills-mapping.md +286 -0
- package/framework/agents/testing.md +111 -0
- package/framework/agents/workflows.md +215 -0
- package/framework/docs/PROJECT-CONFIGURATION.md +336 -0
- package/framework/docs/references/brand-guidelines.md +170 -0
- package/framework/docs/references/ui-guidelines.template.md +182 -0
- package/framework/routines/code-review.routine.yml +46 -0
- package/framework/routines/doc-review.routine.yml +45 -0
- package/framework/routines/ds-drift.routine.yml +52 -0
- package/framework/routines/full-sweep.routine.yml +51 -0
- package/framework/routines/index.yml +70 -0
- package/framework/routines/skill-improve.routine.yml +50 -0
- package/framework/routines/wiki-review.routine.yml +45 -0
- package/framework/templates/baldart.config.template.yml +113 -0
- package/framework/templates/breaking-change-checklist.md +484 -0
- package/framework/templates/feature-card.template.yml +125 -0
- package/framework/templates/overlays/README.md +44 -0
- package/framework/templates/overlays/copywriting.fidelity-example.md +62 -0
- package/framework/templates/overlays/ui-design.fidelity-example.md +75 -0
- package/framework/templates/skill-project-context.snippet.md +19 -0
- package/framework/templates/spec.template.md +208 -0
- package/package.json +51 -0
- package/src/commands/add.js +229 -0
- package/src/commands/configure.js +385 -0
- package/src/commands/doctor.js +486 -0
- package/src/commands/migrate.js +185 -0
- package/src/commands/push.js +0 -0
- package/src/commands/routines.js +269 -0
- package/src/commands/status.js +130 -0
- package/src/commands/update.js +419 -0
- package/src/commands/version.js +88 -0
- package/src/utils/contamination.js +400 -0
- package/src/utils/git.js +181 -0
- package/src/utils/hooks.js +152 -0
- package/src/utils/routine-adapters/claude-code-cloud.js +78 -0
- package/src/utils/routine-adapters/cron.js +138 -0
- package/src/utils/routine-adapters/github-actions.js +141 -0
- package/src/utils/routine-adapters/index.js +21 -0
- package/src/utils/routines.js +166 -0
- package/src/utils/state.js +143 -0
- package/src/utils/symlinks.js +425 -0
- package/src/utils/ui.js +133 -0
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
# Disney's 12 Principles — UI Adapted
|
|
2
|
+
|
|
3
|
+
## 1. Squash and Stretch
|
|
4
|
+
|
|
5
|
+
- Squash: scale ~[1.2, 0.8]; Stretch: ~[0.85, 1.15]
|
|
6
|
+
- Impact: 2-4 frames (30-65ms); Recovery: 4-8 frames (65-130ms)
|
|
7
|
+
- Preserve volume: width +20% → height decreases proportionally
|
|
8
|
+
- Skip for premium/luxury brands
|
|
9
|
+
|
|
10
|
+
## 2. Anticipation
|
|
11
|
+
|
|
12
|
+
- Small motion opposite to main direction before action
|
|
13
|
+
- Duration: 100-200ms, magnitude: 10-20% of main action
|
|
14
|
+
- Button: scale down 3% before expanding; Card: shift 5-10px away first
|
|
15
|
+
- Skip for micro-feedback (<150ms)
|
|
16
|
+
|
|
17
|
+
## 3. Staging
|
|
18
|
+
|
|
19
|
+
- Dim non-hero elements to 40-60% opacity; optional 2-4px blur
|
|
20
|
+
- Hero enters 100-200ms after supporting elements
|
|
21
|
+
- One primary action per timing beat
|
|
22
|
+
|
|
23
|
+
## 4. Straight Ahead vs. Pose to Pose
|
|
24
|
+
|
|
25
|
+
| Approach | Feel | Best For |
|
|
26
|
+
|----------|------|----------|
|
|
27
|
+
| Straight Ahead | Fluid, spontaneous | Particles, ambient, generative art |
|
|
28
|
+
| Pose to Pose | Planned, controlled | UI transitions, state changes |
|
|
29
|
+
|
|
30
|
+
## 5. Follow Through and Overlapping Action
|
|
31
|
+
|
|
32
|
+
- Child delay: 50-150ms behind parent
|
|
33
|
+
- Trailing elements: offset stop times by 100-200ms
|
|
34
|
+
- Use spring easing for trailing parts (lower stiffness = more trailing)
|
|
35
|
+
|
|
36
|
+
## 6. Slow In and Slow Out
|
|
37
|
+
|
|
38
|
+
| Context | Easing | Why |
|
|
39
|
+
|---------|--------|-----|
|
|
40
|
+
| Entrance | ease-out | Arrives smoothly |
|
|
41
|
+
| Exit | ease-in | Departs quickly |
|
|
42
|
+
| On-screen | ease-in-out | Smooth journey |
|
|
43
|
+
| Ambient loop | sine ease-in-out | Seamless |
|
|
44
|
+
|
|
45
|
+
**NEVER** linear for spatial movement. Linear only for: rotation, progress bars, timers.
|
|
46
|
+
|
|
47
|
+
## 7. Arcs
|
|
48
|
+
|
|
49
|
+
- Add 10-20px perpendicular offset at path midpoint
|
|
50
|
+
- Subtle (5px) for corporate, pronounced (20px+) for playful
|
|
51
|
+
- Mechanical UIs can use straight paths intentionally
|
|
52
|
+
|
|
53
|
+
## 8. Secondary Action
|
|
54
|
+
|
|
55
|
+
- Amplitude: 30-50% of primary; timing: 50-100ms after primary
|
|
56
|
+
- Different easing than primary
|
|
57
|
+
- Examples: card enters → shadow grows; button presses → ripple expands
|
|
58
|
+
|
|
59
|
+
## 9. Timing
|
|
60
|
+
|
|
61
|
+
| Weight/Mood | Duration |
|
|
62
|
+
|-------------|----------|
|
|
63
|
+
| Heavy (modals, pages) | 400-800ms |
|
|
64
|
+
| Light (tooltips, toggles) | 100-250ms |
|
|
65
|
+
| Sad/serious | 600ms+ |
|
|
66
|
+
| Happy/light | 200-400ms |
|
|
67
|
+
| Urgent | 100-200ms |
|
|
68
|
+
|
|
69
|
+
Enter-exit asymmetry: entrances 30-50% longer than exits.
|
|
70
|
+
|
|
71
|
+
## 10. Exaggeration
|
|
72
|
+
|
|
73
|
+
| Personality | Exaggeration |
|
|
74
|
+
|-------------|-------------|
|
|
75
|
+
| Playful | 15-25% |
|
|
76
|
+
| Energetic | 20-30% |
|
|
77
|
+
| Corporate | 0-5% |
|
|
78
|
+
| Premium | 0% |
|
|
79
|
+
|
|
80
|
+
- Scale overshoot: 10-30% beyond target; rotation: ±5-15°
|
|
81
|
+
|
|
82
|
+
## 11. Solid Drawing
|
|
83
|
+
|
|
84
|
+
- Maintain consistent proportions across keyframes
|
|
85
|
+
- Use scale + rotation together for depth
|
|
86
|
+
- Shadow behavior matches implied light source
|
|
87
|
+
|
|
88
|
+
## 12. Appeal
|
|
89
|
+
|
|
90
|
+
- Smooth curves over sharp angles; satisfying timing
|
|
91
|
+
- Personality consistency across all elements
|
|
92
|
+
- Appeal killers: jerky motion, inconsistent timing, abrupt stops, uniform animation
|
|
93
|
+
|
|
94
|
+
## Combining Principles
|
|
95
|
+
|
|
96
|
+
| Recipe | Principles Used |
|
|
97
|
+
|--------|----------------|
|
|
98
|
+
| Button press | Anticipation + Squash/Stretch + Follow-Through + Secondary + Timing |
|
|
99
|
+
| Card entrance | Anticipation + Arcs + Slow In/Out + Follow-Through + Staging |
|
|
100
|
+
| Success celebration | Exaggeration + Secondary + Timing + Squash/Stretch + Appeal |
|
|
101
|
+
| Error shake | Timing + Slow In/Out + Staging (no exaggeration) |
|
|
102
|
+
| Loading spinner | Timing + Slow In/Out + Appeal |
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
# Emotion-to-Motion Mapping
|
|
2
|
+
|
|
3
|
+
## Core Table
|
|
4
|
+
|
|
5
|
+
| Emotion | Character | Path | Easing | Duration |
|
|
6
|
+
|---------|----------|------|--------|----------|
|
|
7
|
+
| Joy/Delight | Bouncy, arcs, overshoot | Curved, upward | ease-out-back | 200-400ms |
|
|
8
|
+
| Calm/Serenity | Smooth, flowing | Gentle curves | sine ease-in-out | 500-1000ms |
|
|
9
|
+
| Urgency/Alert | Sharp, fast, direct | Straight lines | ease-out | 100-200ms |
|
|
10
|
+
| Sadness/Weight | Slow, downward | Drooping curves | cubic ease-in-out | 600-1200ms |
|
|
11
|
+
| Surprise/Impact | Sudden, expanding | Radial outward | ease-out-expo | 150-300ms |
|
|
12
|
+
| Elegance/Grace | Slow, controlled | Long smooth arcs | (0.4, 0, 0.2, 1) | 400-700ms |
|
|
13
|
+
| Playfulness | Bouncy, irregular | Arcs, squiggly | ease-out-back | 200-350ms |
|
|
14
|
+
| Confidence | Direct, decisive | Straight, horizontal | ease-out | 200-400ms |
|
|
15
|
+
| Curiosity | Exploratory, varied | Mixed, circular | varied | 300-500ms |
|
|
16
|
+
| Tenderness | Soft, gentle | Very subtle curves | soft ease-in-out | 600-1000ms |
|
|
17
|
+
|
|
18
|
+
## Path as Emotional Language
|
|
19
|
+
|
|
20
|
+
| Path Type | Connotation |
|
|
21
|
+
|-----------|------------|
|
|
22
|
+
| Angular/sharp | Tense, urgent, mechanical |
|
|
23
|
+
| Curved/smooth | Relaxed, friendly, organic |
|
|
24
|
+
| Spiral | Playful, whimsical |
|
|
25
|
+
| Straight diagonal | Dynamic, purposeful |
|
|
26
|
+
| Vertical up | Growth, achievement |
|
|
27
|
+
| Vertical down | Settling, gravity |
|
|
28
|
+
| Horizontal | Journey, progress |
|
|
29
|
+
| Radial outward | Explosion, release |
|
|
30
|
+
| Radial inward | Focus, convergence |
|
|
31
|
+
|
|
32
|
+
## Emotional Intensity
|
|
33
|
+
|
|
34
|
+
| Intensity | Characteristics | When |
|
|
35
|
+
|-----------|----------------|------|
|
|
36
|
+
| Low | Subtle opacity, tiny shifts | Ambient, routine |
|
|
37
|
+
| Medium | Visible but not demanding | Most UI interactions |
|
|
38
|
+
| High | Demands attention, large displacement | Errors, celebrations, onboarding |
|
|
39
|
+
|
|
40
|
+
## Color Psychology
|
|
41
|
+
|
|
42
|
+
| Color | Emotion | Animation Pairing |
|
|
43
|
+
|-------|---------|------------------|
|
|
44
|
+
| Blue | Trust, calm | Smooth, medium transitions |
|
|
45
|
+
| Green | Success, growth | Upward, expansion, gentle overshoot |
|
|
46
|
+
| Red | Alert, urgency | Sharp, fast, horizontal shakes |
|
|
47
|
+
| Orange | Energy, warmth | Bouncy, diagonal paths |
|
|
48
|
+
| Purple | Premium, mystery | Slow reveals, elegant easing |
|
|
49
|
+
| Yellow | Optimism, caution | Quick pulses |
|
|
50
|
+
| Teal | Modern, clarity | Clean, snappy transitions |
|
|
51
|
+
|
|
52
|
+
### Color Transition Rules
|
|
53
|
+
- Success: transition TO green (don't start with it)
|
|
54
|
+
- Error: flash red then settle (don't sustain)
|
|
55
|
+
- Warning: pulse yellow/amber for urgency
|
|
56
|
+
- Neutral: use opacity rather than color change
|
|
57
|
+
|
|
58
|
+
## Context-Based Emotion Defaults
|
|
59
|
+
|
|
60
|
+
| Context | Default Emotion |
|
|
61
|
+
|---------|----------------|
|
|
62
|
+
| Form success | Joy + Confidence |
|
|
63
|
+
| Validation error | Mild urgency |
|
|
64
|
+
| Page load | Calm + Confidence |
|
|
65
|
+
| Navigation | Confidence |
|
|
66
|
+
| Notification | Mild surprise |
|
|
67
|
+
| Loading | Calm |
|
|
68
|
+
| Onboarding | Curiosity + Delight |
|
|
69
|
+
| Dashboard | Calm + Confidence |
|
|
70
|
+
| Purchase complete | Joy + Confidence |
|
|
71
|
+
| Delete/remove | Calm (respectful departure) |
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
# Motion Personality
|
|
2
|
+
|
|
3
|
+
## Four Archetypes
|
|
4
|
+
|
|
5
|
+
### Playful
|
|
6
|
+
|
|
7
|
+
| Parameter | Value |
|
|
8
|
+
|-----------|-------|
|
|
9
|
+
| Duration | 150-300ms |
|
|
10
|
+
| Easing | ease-out-back / bouncy springs |
|
|
11
|
+
| Overshoot | 10-20% |
|
|
12
|
+
| Paths | Arcs and curves, never straight |
|
|
13
|
+
| Squash-stretch | Yes, on impacts |
|
|
14
|
+
|
|
15
|
+
Signature: bounce settle, squash-stretch on press, rotation wobble, bright color pops, varied stagger timing.
|
|
16
|
+
Use for: children's apps, casual games, social media, celebrations, onboarding, creative tools.
|
|
17
|
+
|
|
18
|
+
### Premium / Luxury
|
|
19
|
+
|
|
20
|
+
| Parameter | Value |
|
|
21
|
+
|-----------|-------|
|
|
22
|
+
| Duration | 350-600ms |
|
|
23
|
+
| Easing | cubic-bezier(0.4, 0, 0.2, 1) |
|
|
24
|
+
| Overshoot | 0% |
|
|
25
|
+
| Paths | Smooth curves, subtle parallax |
|
|
26
|
+
| Squash-stretch | Never |
|
|
27
|
+
|
|
28
|
+
Signature: slow fades, subtle scale (98%→100%), generous pauses, minimal properties (opacity+one), ultra-smooth.
|
|
29
|
+
Use for: fashion, finance, luxury brands, premium SaaS, portfolios, editorial.
|
|
30
|
+
|
|
31
|
+
### Corporate / Professional
|
|
32
|
+
|
|
33
|
+
| Parameter | Value |
|
|
34
|
+
|-----------|-------|
|
|
35
|
+
| Duration | 200-400ms |
|
|
36
|
+
| Easing | cubic-bezier(0.2, 0, 0, 1) |
|
|
37
|
+
| Overshoot | 0-3% |
|
|
38
|
+
| Paths | Mostly straight, small arcs for emphasis |
|
|
39
|
+
| Squash-stretch | No |
|
|
40
|
+
|
|
41
|
+
Signature: consistent timing, clear state transitions, functional motion, predictable patterns, uniform stagger.
|
|
42
|
+
Use for: enterprise, dashboards, business tools, admin, healthcare, banking.
|
|
43
|
+
|
|
44
|
+
### Energetic / Dynamic
|
|
45
|
+
|
|
46
|
+
| Parameter | Value |
|
|
47
|
+
|-----------|-------|
|
|
48
|
+
| Duration | 100-250ms |
|
|
49
|
+
| Easing | ease-out-expo / elastic |
|
|
50
|
+
| Overshoot | 15-30% |
|
|
51
|
+
| Paths | Dramatic arcs, large displacement, diagonal |
|
|
52
|
+
| Squash-stretch | Yes, exaggerated |
|
|
53
|
+
|
|
54
|
+
Signature: large scale changes (50-150%), fast color transitions, particle bursts, accelerating stagger, bold edge entrances.
|
|
55
|
+
Use for: gaming, sports, music, events, marketing, fitness apps.
|
|
56
|
+
|
|
57
|
+
## Keyword Matching
|
|
58
|
+
|
|
59
|
+
| Keywords | Archetype |
|
|
60
|
+
|----------|-----------|
|
|
61
|
+
| fun, whimsical, bouncy, cute, friendly | Playful |
|
|
62
|
+
| elegant, minimal, luxury, sophisticated | Premium |
|
|
63
|
+
| clean, professional, business, dashboard | Corporate |
|
|
64
|
+
| dynamic, energetic, bold, exciting | Energetic |
|
|
65
|
+
| (unspecified) + UI | Corporate (default) |
|
|
66
|
+
| (unspecified) + illustration | Playful (default) |
|
|
67
|
+
|
|
68
|
+
## Brand Motion Identity
|
|
69
|
+
|
|
70
|
+
Define three constants for recognizable motion:
|
|
71
|
+
|
|
72
|
+
### 1. Signature Easing (80% of animations)
|
|
73
|
+
Playful: ease-out-back | Premium: (0.4,0,0.2,1) | Corporate: (0.2,0,0,1) | Energetic: ease-out-expo
|
|
74
|
+
|
|
75
|
+
### 2. Duration Palette
|
|
76
|
+
|
|
77
|
+
| Tier | Playful | Premium | Corporate | Energetic |
|
|
78
|
+
|------|---------|---------|-----------|-----------|
|
|
79
|
+
| Quick | 150ms | 350ms | 200ms | 100ms |
|
|
80
|
+
| Standard | 250ms | 500ms | 300ms | 180ms |
|
|
81
|
+
| Slow | 400ms | 800ms | 450ms | 300ms |
|
|
82
|
+
|
|
83
|
+
### 3. Entrance Pattern
|
|
84
|
+
Playful: bounce up from below | Premium: slow fade + scale 98%→100% | Corporate: slide right + opacity | Energetic: snap from edge + overshoot
|
|
85
|
+
|
|
86
|
+
## Mixing Archetypes
|
|
87
|
+
- 90% primary archetype; specific moments can borrow another
|
|
88
|
+
- Ease into personality shifts, don't snap
|
|
89
|
+
- Example: corporate dashboard borrows Playful for success state only
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
# Narrative Structure
|
|
2
|
+
|
|
3
|
+
## Four-Act Structure
|
|
4
|
+
|
|
5
|
+
### Act 1: Anticipation (10-20%)
|
|
6
|
+
- Wind-up: small motion opposite to main direction
|
|
7
|
+
- Gathering: elements pull together before dispersing
|
|
8
|
+
- Dimming: context fades for focus; Tension: hold compressed ~50ms
|
|
9
|
+
- Skip for <150ms interactions and hover states
|
|
10
|
+
|
|
11
|
+
### Act 2: Action (30-50%)
|
|
12
|
+
Peak energy. The primary communicative motion.
|
|
13
|
+
- Fast+direct (sharp easing) → alerts
|
|
14
|
+
- Smooth+flowing (gentle easing, curves) → transitions
|
|
15
|
+
- Explosive+expanding (expo, radial) → celebrations
|
|
16
|
+
- Controlled+precise (linear-ish) → data charts
|
|
17
|
+
|
|
18
|
+
### Act 3: Reaction (10-20%)
|
|
19
|
+
- Shadows adjust: 50-100ms after primary
|
|
20
|
+
- Siblings shift: 50-150ms after primary
|
|
21
|
+
- Environment ripples: 100-200ms after primary
|
|
22
|
+
- Counter-motion: simultaneous with action
|
|
23
|
+
- Skip for simple toggles/checkboxes
|
|
24
|
+
|
|
25
|
+
### Act 4: Resolution (20-30%)
|
|
26
|
+
- Overshoot settle (spring/back-easing); opacity reaches final (ease-out)
|
|
27
|
+
- 100-200ms breathing room before next motion
|
|
28
|
+
- Even 50ms of settling transforms the feel
|
|
29
|
+
|
|
30
|
+
## Scaling to Duration
|
|
31
|
+
|
|
32
|
+
| Total | Anticipation | Action | Reaction | Resolution |
|
|
33
|
+
|-------|-------------|--------|----------|------------|
|
|
34
|
+
| 100-200ms | skip | 60-70% | skip | 30-40% |
|
|
35
|
+
| 200-400ms | 10-15% | 40-50% | 10-15% | 25-30% |
|
|
36
|
+
| 400-800ms | 15-20% | 30-40% | 15-20% | 20-25% |
|
|
37
|
+
| 800ms+ | 20% | 30-35% | 15-20% | 25-30% |
|
|
38
|
+
|
|
39
|
+
## Multi-Beat Narratives
|
|
40
|
+
|
|
41
|
+
Transitions: overlap (fluid) | sequential (clear) | simultaneous (parallel)
|
|
42
|
+
|
|
43
|
+
Progressions:
|
|
44
|
+
- **Build-Up**: low → rising → peak → settling
|
|
45
|
+
- **Cycle**: depart → peak → return → repeat
|
|
46
|
+
- **Impact**: sudden action → ripple → slow settle
|
|
47
|
+
|
|
48
|
+
## By Personality
|
|
49
|
+
|
|
50
|
+
| Personality | Anticipation | Action | Resolution |
|
|
51
|
+
|------------|-------------|--------|------------|
|
|
52
|
+
| Playful | Exaggerated wind-up | Bouncy, overshoot | Wobble settle |
|
|
53
|
+
| Premium | Subtle tension | Smooth, controlled | Elegant ease |
|
|
54
|
+
| Corporate | Minimal/none | Direct, efficient | Clean stop |
|
|
55
|
+
| Energetic | Quick gather | Explosive | Fast snap |
|
|
56
|
+
|
|
57
|
+
## Common Patterns
|
|
58
|
+
|
|
59
|
+
- **Reveal**: tension (dim, scale 95%) → emerge (100%, full opacity) → surroundings adjust → settled
|
|
60
|
+
- **Departure**: gather (scale 98%) → exit → close gap → layout settles
|
|
61
|
+
- **Transformation**: destabilize (vibration) → morph → secondary appears → new state breathing
|
|
62
|
+
- **Celebration**: compress (50-100ms) → burst (scale, particles) → settle → calm with positive state
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
# Ambient & Continuous Patterns
|
|
2
|
+
|
|
3
|
+
Ambient amplitude: 10-20% of primary motion. Never compete for attention.
|
|
4
|
+
|
|
5
|
+
## Breathing / Pulse
|
|
6
|
+
|
|
7
|
+
- Scale oscillation 0.98-1.02, sine ease-in-out, 2000-4000ms/cycle
|
|
8
|
+
- Alt: opacity oscillation 0.7-1.0
|
|
9
|
+
|
|
10
|
+
| Context | Scale Range | Duration | Opacity Range |
|
|
11
|
+
|---------|-----------|----------|--------------|
|
|
12
|
+
| Active indicator | 0.95-1.05 | 2000ms | 0.6-1.0 |
|
|
13
|
+
| Waiting/idle | 0.98-1.02 | 3000ms | 0.8-1.0 |
|
|
14
|
+
| Background element | 0.99-1.01 | 4000ms | 0.9-1.0 |
|
|
15
|
+
| CTA attention | 0.97-1.03 | 2500ms | 0.7-1.0 |
|
|
16
|
+
|
|
17
|
+
Pulsing >±5% scale becomes attention-demanding.
|
|
18
|
+
|
|
19
|
+
## Floating / Hovering
|
|
20
|
+
|
|
21
|
+
- Y position ±5-15px, sine ease-in-out, 3000-5000ms/cycle
|
|
22
|
+
- Optional: slight rotation ±2-3°, offset 30% of position cycle
|
|
23
|
+
|
|
24
|
+
**Layered floating** (multiple elements — different durations prevent sync):
|
|
25
|
+
- Element 1: 4000ms, ±10px
|
|
26
|
+
- Element 2: 5500ms, ±8px (offset 30%)
|
|
27
|
+
- Element 3: 3500ms, ±12px (offset 60%)
|
|
28
|
+
|
|
29
|
+
## Gradient Shift
|
|
30
|
+
|
|
31
|
+
- Background-position or gradient angle shift
|
|
32
|
+
- Duration: 8000-20000ms/cycle; range: ±10-20% position or ±15° angle
|
|
33
|
+
- Easing: linear or sine; should be imperceptible at a glance
|
|
34
|
+
|
|
35
|
+
## Parallax
|
|
36
|
+
|
|
37
|
+
| Layer | Speed Ratio | Content |
|
|
38
|
+
|-------|------------|---------|
|
|
39
|
+
| Foreground | 1.0x | Interactive, text |
|
|
40
|
+
| Midground | 0.5x | Decorative, cards |
|
|
41
|
+
| Background | 0.2x | Patterns, scenery |
|
|
42
|
+
| Deep background | 0.1x | Texture, atmospheric |
|
|
43
|
+
|
|
44
|
+
**Scroll-driven**: total displacement <100px; avoid on mobile; never parallax text
|
|
45
|
+
**Mouse-driven**: foreground 10-20px max, background 5-10px opposite direction, 100-200ms interpolation
|
|
46
|
+
|
|
47
|
+
## Continuous Rotation
|
|
48
|
+
|
|
49
|
+
- Spinners: linear easing, 1000-2000ms/revolution
|
|
50
|
+
|
|
51
|
+
| Variant | Speed | Use Case |
|
|
52
|
+
|---------|-------|----------|
|
|
53
|
+
| Slow spin | 10-30s/rev | Background decoration |
|
|
54
|
+
| Gear-like | 3-5s/rev | Technical/mechanical |
|
|
55
|
+
| Orbital | 5-15s/rev | Space/science theme |
|
|
56
|
+
| Wobble | 2-4s/cycle, sine | Playful idle |
|
|
57
|
+
|
|
58
|
+
## Shimmer / Gleam
|
|
59
|
+
|
|
60
|
+
- Gradient sweep left-to-right, 1500-2500ms/sweep
|
|
61
|
+
- Pause 2000-5000ms between sweeps
|
|
62
|
+
- Opacity gradient: 0%→30%→0%
|
|
63
|
+
- Use for: skeleton loading, premium accents, "new" badges
|
|
64
|
+
|
|
65
|
+
## Particle Ambient
|
|
66
|
+
|
|
67
|
+
### Snow/Falling: 10-20 elements, 20-60px/s down, ±10-20px drift, 3-8px, 30-70% opacity
|
|
68
|
+
### Dust/Motes: 5-10 elements, 10-30px/s mixed, 2-5px, 20-50% opacity
|
|
69
|
+
### Sparkle/Stars: 8-15 elements, opacity pulse 0→100%→0, 500-1500ms/sparkle, random stagger
|
|
70
|
+
|
|
71
|
+
**Performance**: <20 ambient elements, transform+opacity only, larger/fewer over small/numerous
|
|
72
|
+
|
|
73
|
+
## Combining Ambient Layers
|
|
74
|
+
|
|
75
|
+
| Layer | Type | Example |
|
|
76
|
+
|-------|------|---------|
|
|
77
|
+
| Background | Gradient shift or parallax | Slow color temperature change |
|
|
78
|
+
| Midground | Floating or particles | Gentle floating elements |
|
|
79
|
+
| Foreground | Breathing or shimmer | Subtle pulse on content |
|
|
80
|
+
|
|
81
|
+
Total ambient: max 20% of primary motion's visual energy.
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
# Entrance & Exit Patterns
|
|
2
|
+
|
|
3
|
+
## Entrance Strategies
|
|
4
|
+
|
|
5
|
+
### 1. Direct Entrance (Slide In)
|
|
6
|
+
- Position + opacity; offset 20-40px + opacity 0 → final position + opacity 1
|
|
7
|
+
- Easing: ease-out; duration 200-350ms
|
|
8
|
+
|
|
9
|
+
| Personality | Offset | Easing | Overshoot |
|
|
10
|
+
|------------|--------|--------|-----------|
|
|
11
|
+
| Playful | 30-50px | ease-out-back | 10-15% |
|
|
12
|
+
| Premium | 15-25px | (0.4, 0, 0.2, 1) | 0% |
|
|
13
|
+
| Corporate | 20-30px | (0.2, 0, 0, 1) | 0-3% |
|
|
14
|
+
| Energetic | 40-80px | ease-out-expo | 15-25% |
|
|
15
|
+
|
|
16
|
+
Direction: below=arrival, right=forward, left=back, above=dropdown/authority.
|
|
17
|
+
|
|
18
|
+
### 2. Emergent Entrance (Scale In)
|
|
19
|
+
- Scale + opacity; start 85-95% + opacity 0 → 100% + opacity 1
|
|
20
|
+
- Duration 250-400ms
|
|
21
|
+
|
|
22
|
+
| Personality | Start Scale | Easing | Overshoot |
|
|
23
|
+
|------------|------------|--------|-----------|
|
|
24
|
+
| Playful | 70-80% | ease-out-back | 10-20% |
|
|
25
|
+
| Premium | 95-98% | (0.4, 0, 0.2, 1) | 0% |
|
|
26
|
+
| Corporate | 90-95% | (0.2, 0, 0, 1) | 0-3% |
|
|
27
|
+
| Energetic | 50-70% | ease-out-expo | 15-30% |
|
|
28
|
+
|
|
29
|
+
Best for: modals, dialogs, notifications, popovers, tooltips.
|
|
30
|
+
|
|
31
|
+
### 3. Reveal Entrance (Clip/Mask)
|
|
32
|
+
- clip-path or mask + opacity; 300-500ms, ease-out
|
|
33
|
+
- Directions: top-to-bottom (dramatic), L-to-R (reading order), center-out (focus), edge-in (contained)
|
|
34
|
+
|
|
35
|
+
### 4. Assembled Entrance (Multi-Part)
|
|
36
|
+
- Parts arrive from different positions; stagger 50-100ms; total 300-600ms
|
|
37
|
+
- Best for: icon assembly, logo builds, data viz construction
|
|
38
|
+
|
|
39
|
+
## Exit Strategies
|
|
40
|
+
|
|
41
|
+
**Rule**: Exits = 65-75% of entrance duration.
|
|
42
|
+
|
|
43
|
+
### 1. Direct Exit (Slide Out)
|
|
44
|
+
- Offset 20-40px + opacity 0; ease-in; 150-250ms
|
|
45
|
+
|
|
46
|
+
### 2. Dissolve Exit (Fade Out)
|
|
47
|
+
- Opacity (+ optional scale to 98%); ease-in; 150-250ms
|
|
48
|
+
- Best for: gentle departures, backgrounding, crossfades
|
|
49
|
+
|
|
50
|
+
### 3. Collapse Exit (Shrink Out)
|
|
51
|
+
- Scale 85-95% + opacity 0; ease-in; 150-250ms
|
|
52
|
+
- Best for: deletion, closing modals, dismissal
|
|
53
|
+
|
|
54
|
+
### 4. Transfer Exit (Move Away)
|
|
55
|
+
- Position toward destination + scale shrink; ease-in-out; 250-400ms
|
|
56
|
+
- Best for: add-to-cart, save-to-collection, move-to-folder
|
|
57
|
+
|
|
58
|
+
## Entrance-Exit Continuity
|
|
59
|
+
- Eye follows naturally from exit to entrance
|
|
60
|
+
- Exit point near entry point when possible
|
|
61
|
+
- 100-150ms timing overlap between exit and entrance
|
|
62
|
+
- Same easing family for paired entrance-exit
|
|
63
|
+
|
|
64
|
+
## Common Recipes
|
|
65
|
+
|
|
66
|
+
### Notification Slide-In
|
|
67
|
+
1. Slide from right + opacity (250ms, ease-out)
|
|
68
|
+
2. Overshoot 3-5% (corporate) or 10-15% (playful)
|
|
69
|
+
3. Icon appears (100ms, 50ms delay)
|
|
70
|
+
|
|
71
|
+
### Toast Dismiss
|
|
72
|
+
1. Slide toward edge + opacity (180ms, ease-in)
|
|
73
|
+
2. Remaining toasts shift up (200ms, ease-in-out)
|
|
74
|
+
|
|
75
|
+
### Dropdown Open
|
|
76
|
+
1. Scale Y 0→100% (200ms, ease-out)
|
|
77
|
+
2. Items stagger fade in (30ms apart, 50ms after container)
|
|
78
|
+
|
|
79
|
+
### Page Transition (Forward)
|
|
80
|
+
1. Current page slides left + fades (300ms, ease-in)
|
|
81
|
+
2. New page from right + fades in (400ms, ease-out, 100ms delay)
|
|
82
|
+
3. Shared elements morph (400ms, ease-in-out)
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
# Multi-Element Patterns
|
|
2
|
+
|
|
3
|
+
## Stagger Recipes
|
|
4
|
+
|
|
5
|
+
### List Items
|
|
6
|
+
- Slide up 20px + fade (200ms, ease-out); stagger 40-60ms; total <400ms for 8 items
|
|
7
|
+
|
|
8
|
+
| Personality | Duration | Stagger | Easing |
|
|
9
|
+
|------------|---------|---------|--------|
|
|
10
|
+
| Playful | 250ms | 60ms | ease-out-back |
|
|
11
|
+
| Premium | 350ms | 80ms | (0.4, 0, 0.2, 1) |
|
|
12
|
+
| Corporate | 200ms | 50ms | (0.2, 0, 0, 1) |
|
|
13
|
+
| Energetic | 150ms | 30ms | ease-out-expo |
|
|
14
|
+
|
|
15
|
+
### Grid Cards
|
|
16
|
+
- Scale from 95% + fade (250ms, ease-out); stagger 50-80ms reading order; +20ms per new row
|
|
17
|
+
- Shadow 50ms after card. Alt patterns: center-out, column-first, random
|
|
18
|
+
|
|
19
|
+
### Navigation Items
|
|
20
|
+
- Slide from side + fade (180ms, ease-out); stagger 30-50ms; total <300ms
|
|
21
|
+
|
|
22
|
+
### Dashboard Widgets
|
|
23
|
+
```
|
|
24
|
+
0ms — Skeletons visible
|
|
25
|
+
100ms — Hero metric (250ms, ease-out)
|
|
26
|
+
200ms — Widgets begin (200ms each, 60ms stagger)
|
|
27
|
+
350ms — Hero complete, chart draws (300ms)
|
|
28
|
+
500ms — All landed
|
|
29
|
+
650ms — Ambient pulse begins
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
## Coordinated Sequences
|
|
33
|
+
|
|
34
|
+
### Modal with Content
|
|
35
|
+
0ms: backdrop dims (200ms) → 50ms: modal scales 95%→100% (300ms) → 200ms: title → 280ms: body → 350ms: buttons → 400ms: close button. Content in reading order.
|
|
36
|
+
|
|
37
|
+
### Tab Switch
|
|
38
|
+
0ms: indicator slides (250ms, ease-in-out) + old fades (150ms) → 100ms: new content from tab direction (200ms) → 150ms: elements stagger (40ms)
|
|
39
|
+
|
|
40
|
+
### Accordion
|
|
41
|
+
Expand: arrow rotates (150ms) + height expands (250ms) + content fades at 50ms (200ms); siblings shift (200ms). Collapse: reverse, ease-in.
|
|
42
|
+
|
|
43
|
+
### Page Transition
|
|
44
|
+
Current slides left+fades (300ms, ease-in) → new from right (400ms, ease-out, 100ms delay) → hero scales in → content staggers (50ms). Optional shared element morph (400ms).
|
|
45
|
+
|
|
46
|
+
### Drag and Drop
|
|
47
|
+
Drag: lift (scale 1.03, 150ms); others shift (200ms). Drop: settle (scale 1.0, 200ms); gaps close.
|
|
48
|
+
|
|
49
|
+
## Choreography Rules
|
|
50
|
+
|
|
51
|
+
### Timing Overlap
|
|
52
|
+
0%=methodical | 25%=brisk (standard) | 50%=fluid | 75%=rapid (energetic)
|
|
53
|
+
|
|
54
|
+
### Group Rules
|
|
55
|
+
- Same easing family; different durations/delays fine
|
|
56
|
+
- Exception: secondary/ambient can differ
|
|
57
|
+
|
|
58
|
+
### Shared Origin
|
|
59
|
+
Motion from trigger point; closer=first; farther=more delay
|
|
60
|
+
|
|
61
|
+
### Counter-Motion
|
|
62
|
+
|
|
63
|
+
| Hero Does | Counter-Motion |
|
|
64
|
+
|-----------|---------------|
|
|
65
|
+
| Slides right | Background left (20-30%) |
|
|
66
|
+
| Scales up | Shadow spreads |
|
|
67
|
+
| Lifts up | Shadow drops+softens |
|
|
68
|
+
| Rotates CW | Ambient CCW |
|
|
69
|
+
| Expands | Siblings compress |
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
# State & Feedback Patterns
|
|
2
|
+
|
|
3
|
+
## Button Press
|
|
4
|
+
|
|
5
|
+
### Playful
|
|
6
|
+
- Press: scale 0.95 (60ms, ease-out); Release: overshoot 1.05 (80ms); Settle: 1.0 (120ms, spring)
|
|
7
|
+
- Secondary: shadow shrinks/grows; color darkens/brightens. Total ~260ms
|
|
8
|
+
|
|
9
|
+
### Premium
|
|
10
|
+
- Press: scale 0.98 (80ms); Release: 1.0 (150ms, no overshoot)
|
|
11
|
+
- Opacity dims to 90% on press. Total ~230ms
|
|
12
|
+
|
|
13
|
+
### Corporate
|
|
14
|
+
- Press: scale 0.97 (60ms); Release: 1.0 (100ms); overshoot 0-2%
|
|
15
|
+
- Background darkens 10%. Total ~160ms
|
|
16
|
+
|
|
17
|
+
## Hover States
|
|
18
|
+
|
|
19
|
+
| Element | Effect | Duration |
|
|
20
|
+
|---------|--------|----------|
|
|
21
|
+
| Button | Scale 1.02-1.05 | <100ms |
|
|
22
|
+
| Card | Scale 1.01-1.02 + shadow lift | <100ms |
|
|
23
|
+
| Link | Color change + underline | <100ms |
|
|
24
|
+
| Icon | Scale 1.1 + rotation 2-5° | <100ms |
|
|
25
|
+
| Image | Scale 1.03 (overflow hidden) | 150ms |
|
|
26
|
+
|
|
27
|
+
Hover enter <100ms; hover exit 150-200ms (slower = polished).
|
|
28
|
+
|
|
29
|
+
## Toggle / Switch
|
|
30
|
+
- Thumb slides (120-180ms, ease-in-out); track color transitions simultaneously
|
|
31
|
+
- Slight squash in movement direction
|
|
32
|
+
- Playful: bounce at destination; Premium: smooth, no overshoot
|
|
33
|
+
|
|
34
|
+
## Success State
|
|
35
|
+
|
|
36
|
+
### Checkmark Success
|
|
37
|
+
1. Container: scale 0.9→1.0 (200ms, ease-out-back, 5-10% overshoot)
|
|
38
|
+
2. Checkmark: stroke draw (150ms, ease-out, 100ms delay)
|
|
39
|
+
3. Color: to green (200ms); ambient glow/particles (300ms)
|
|
40
|
+
4. Total: 400-500ms
|
|
41
|
+
|
|
42
|
+
### Confirmation Badge
|
|
43
|
+
1. Badge scales from 0 (200ms, ease-out-back)
|
|
44
|
+
2. Text fades in (150ms, 50ms delay)
|
|
45
|
+
3. Background pulse (300ms, sine)
|
|
46
|
+
|
|
47
|
+
### Payment Success
|
|
48
|
+
1. Spinner → checkmark crossfade (200ms)
|
|
49
|
+
2. Checkmark draws (200ms); container → success color (200ms)
|
|
50
|
+
3. Text fades in (200ms, 100ms delay); optional confetti (300-500ms)
|
|
51
|
+
|
|
52
|
+
## Error State
|
|
53
|
+
|
|
54
|
+
### Error Shake
|
|
55
|
+
- Horizontal oscillation ±10-15px, 2-3 cycles decreasing amplitude
|
|
56
|
+
- ease-in-out, 300-400ms total; red tint; no overshoot; settles at origin
|
|
57
|
+
|
|
58
|
+
### Inline Validation
|
|
59
|
+
1. Error text slides down + fades in (200ms)
|
|
60
|
+
2. Border → red (150ms); icon scales in (150ms, 50ms delay)
|
|
61
|
+
3. Optional single shake (200ms)
|
|
62
|
+
|
|
63
|
+
### Form Submission Error
|
|
64
|
+
1. Button returns to normal (200ms)
|
|
65
|
+
2. Error message slides in (250ms)
|
|
66
|
+
3. Affected fields highlight red (150ms, staggered 30ms)
|
|
67
|
+
4. Smooth scroll to first error (300ms, ease-in-out)
|
|
68
|
+
|
|
69
|
+
## Loading States
|
|
70
|
+
|
|
71
|
+
### Spinner
|
|
72
|
+
- Continuous 360°, linear, 1000-1500ms/rev; optional breathing pulse (2-3s)
|
|
73
|
+
|
|
74
|
+
### Skeleton
|
|
75
|
+
- Gradient sweep L→R, 1500-2000ms; base 10-20% opacity, peak 30-40%
|
|
76
|
+
|
|
77
|
+
### Progress Bar
|
|
78
|
+
- Width/transform, ease-in-out; optional color milestones + shimmer
|
|
79
|
+
|
|
80
|
+
### Indeterminate
|
|
81
|
+
- Oscillating position/width, 1500-2500ms, ease-in-out; continuous, never frantic
|
|
82
|
+
|
|
83
|
+
## Warning State
|
|
84
|
+
1. Yellow/amber border (150ms)
|
|
85
|
+
2. Warning icon scales in (150ms, subtle overshoot)
|
|
86
|
+
3. Optional icon pulse (2-3s, sine); text fades in (200ms, 50ms delay)
|
|
87
|
+
|
|
88
|
+
## Disabled / Enabled
|
|
89
|
+
|
|
90
|
+
- **Disabling**: opacity to 50-60% (200ms); optional scale to 98%
|
|
91
|
+
- **Enabling**: opacity to 100% (200ms); optional scale pulse 98%→100%
|
|
92
|
+
|
|
93
|
+
## Focus States
|
|
94
|
+
- Focus ring: scale 95%→100% + opacity (150ms)
|
|
95
|
+
- Card focus: scale 1.01, shadow increase (150ms)
|
|
96
|
+
- Tab nav focus: <100ms; must work with reduced-motion
|