@maestro-ai/cli 1.0.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/README.md +59 -0
- package/content/guides/Cat/303/241logo de Stacks para Cloud Moderna.md" +119 -0
- package/content/guides/Cat/303/241logo de Stacks para Hospedagem Compartilhada.md" +147 -0
- package/content/guides/Checklist Mestre de Entrega.md +68 -0
- package/content/guides/Gates de Qualidade.md +209 -0
- package/content/guides/Guia de Adi/303/247/303/243o de Novas Funcionalidades.md" +355 -0
- package/content/guides/Guia de Chaos Engineering.md +267 -0
- package/content/guides/Guia de Debugging com IA.md +135 -0
- package/content/guides/Guia de Estrat/303/251gias de Cache.md" +352 -0
- package/content/guides/Guia de Migrations Zero-Downtime.md +311 -0
- package/content/guides/Guia de Multi-tenancy.md +368 -0
- package/content/guides/Guia de Otimiza/303/247/303/243o de Custos Cloud.md" +195 -0
- package/content/guides/Guia de Refatora/303/247/303/243o de C/303/263digo Legado com IA.md" +162 -0
- package/content/guides/Guia de SLOs e Error Budgets.md +315 -0
- package/content/guides/M/303/251tricas de Efici/303/252ncia do Desenvolvimento com IA.md" +93 -0
- package/content/guides/Rules base.md +90 -0
- package/content/prompts/README.md +203 -0
- package/content/prompts/acessibilidade/analise-acessibilidade.md +257 -0
- package/content/prompts/apis/design-api-rest.md +303 -0
- package/content/prompts/apis/idempotencia.md +254 -0
- package/content/prompts/apis/versionamento.md +313 -0
- package/content/prompts/arquitetura/arquitetura-c4-completo.md +190 -0
- package/content/prompts/arquitetura/clean-architecture.md +151 -0
- package/content/prompts/arquitetura/ddd-bounded-contexts.md +183 -0
- package/content/prompts/arquitetura/ddd-cqrs.md +176 -0
- package/content/prompts/arquitetura/modelo-dominio.md +207 -0
- package/content/prompts/arquitetura/multi-tenancy.md +235 -0
- package/content/prompts/database/migrations-zero-downtime.md +192 -0
- package/content/prompts/database/otimizacao-queries.md +296 -0
- package/content/prompts/desenvolvimento/code-review.md +301 -0
- package/content/prompts/desenvolvimento/gerar-servico.md +271 -0
- package/content/prompts/devops/docker-compose.md +336 -0
- package/content/prompts/devops/feature-flags.md +374 -0
- package/content/prompts/devops/kubernetes-deploy.md +460 -0
- package/content/prompts/devops/pipeline-cicd.md +358 -0
- package/content/prompts/devops/terraform-iac.md +502 -0
- package/content/prompts/escalabilidade/analise-performance.md +240 -0
- package/content/prompts/escalabilidade/analise-performance.txt +94 -0
- package/content/prompts/escalabilidade/caching.md +255 -0
- package/content/prompts/observabilidade/chaos-testing.md +237 -0
- package/content/prompts/observabilidade/estrategia-observabilidade.md +263 -0
- package/content/prompts/observabilidade/estrategia-observabilidade.txt +134 -0
- package/content/prompts/observabilidade/slos.md +215 -0
- package/content/prompts/produto/discovery-inicial.md +203 -0
- package/content/prompts/produto/discovery-inicial.txt +33 -0
- package/content/prompts/requisitos/refinar-requisitos.md +232 -0
- package/content/prompts/requisitos/refinar-requisitos.txt +40 -0
- package/content/prompts/seguranca/analise-seguranca.md +243 -0
- package/content/prompts/seguranca/pentest-checklist.md +333 -0
- package/content/prompts/seguranca/rate-limiting.md +356 -0
- package/content/prompts/seguranca/revisao-lgpd.md +227 -0
- package/content/prompts/seguranca/threat-modeling.md +224 -0
- package/content/prompts/testes/contract-testing.md +340 -0
- package/content/prompts/testes/gerar-testes-unitarios.md +474 -0
- package/content/prompts/testes/testes-e2e.md +460 -0
- package/content/prompts/testes/testes-integracao.md +418 -0
- package/content/prompts/testes/testes-performance.md +458 -0
- package/content/prompts/ux/gerar-ui-stitch.md +151 -0
- package/content/skills/api-patterns/SKILL.md +81 -0
- package/content/skills/api-patterns/api-style.md +42 -0
- package/content/skills/api-patterns/auth.md +24 -0
- package/content/skills/api-patterns/documentation.md +26 -0
- package/content/skills/api-patterns/graphql.md +41 -0
- package/content/skills/api-patterns/rate-limiting.md +31 -0
- package/content/skills/api-patterns/response.md +37 -0
- package/content/skills/api-patterns/rest.md +40 -0
- package/content/skills/api-patterns/scripts/api_validator.py +211 -0
- package/content/skills/api-patterns/security-testing.md +122 -0
- package/content/skills/api-patterns/trpc.md +41 -0
- package/content/skills/api-patterns/versioning.md +22 -0
- package/content/skills/app-builder/SKILL.md +75 -0
- package/content/skills/app-builder/agent-coordination.md +71 -0
- package/content/skills/app-builder/feature-building.md +53 -0
- package/content/skills/app-builder/project-detection.md +34 -0
- package/content/skills/app-builder/scaffolding.md +118 -0
- package/content/skills/app-builder/tech-stack.md +40 -0
- package/content/skills/app-builder/templates/SKILL.md +39 -0
- package/content/skills/app-builder/templates/astro-static/TEMPLATE.md +76 -0
- package/content/skills/app-builder/templates/chrome-extension/TEMPLATE.md +92 -0
- package/content/skills/app-builder/templates/cli-tool/TEMPLATE.md +88 -0
- package/content/skills/app-builder/templates/electron-desktop/TEMPLATE.md +88 -0
- package/content/skills/app-builder/templates/express-api/TEMPLATE.md +83 -0
- package/content/skills/app-builder/templates/flutter-app/TEMPLATE.md +90 -0
- package/content/skills/app-builder/templates/monorepo-turborepo/TEMPLATE.md +90 -0
- package/content/skills/app-builder/templates/nextjs-fullstack/TEMPLATE.md +82 -0
- package/content/skills/app-builder/templates/nextjs-saas/TEMPLATE.md +100 -0
- package/content/skills/app-builder/templates/nextjs-static/TEMPLATE.md +106 -0
- package/content/skills/app-builder/templates/nuxt-app/TEMPLATE.md +101 -0
- package/content/skills/app-builder/templates/python-fastapi/TEMPLATE.md +83 -0
- package/content/skills/app-builder/templates/react-native-app/TEMPLATE.md +93 -0
- package/content/skills/architecture/SKILL.md +55 -0
- package/content/skills/architecture/context-discovery.md +43 -0
- package/content/skills/architecture/examples.md +94 -0
- package/content/skills/architecture/pattern-selection.md +68 -0
- package/content/skills/architecture/patterns-reference.md +50 -0
- package/content/skills/architecture/trade-off-analysis.md +77 -0
- package/content/skills/bash-linux/SKILL.md +199 -0
- package/content/skills/behavioral-modes/SKILL.md +242 -0
- package/content/skills/brainstorming/SKILL.md +163 -0
- package/content/skills/brainstorming/dynamic-questioning.md +350 -0
- package/content/skills/clean-code/SKILL.md +201 -0
- package/content/skills/code-review-checklist/SKILL.md +109 -0
- package/content/skills/database-design/SKILL.md +52 -0
- package/content/skills/database-design/database-selection.md +43 -0
- package/content/skills/database-design/indexing.md +39 -0
- package/content/skills/database-design/migrations.md +48 -0
- package/content/skills/database-design/optimization.md +36 -0
- package/content/skills/database-design/orm-selection.md +30 -0
- package/content/skills/database-design/schema-design.md +56 -0
- package/content/skills/database-design/scripts/schema_validator.py +172 -0
- package/content/skills/deployment-procedures/SKILL.md +241 -0
- package/content/skills/doc.md +177 -0
- package/content/skills/documentation-templates/SKILL.md +194 -0
- package/content/skills/frontend-design/SKILL.md +396 -0
- package/content/skills/frontend-design/animation-guide.md +331 -0
- package/content/skills/frontend-design/color-system.md +311 -0
- package/content/skills/frontend-design/decision-trees.md +418 -0
- package/content/skills/frontend-design/motion-graphics.md +306 -0
- package/content/skills/frontend-design/scripts/accessibility_checker.py +183 -0
- package/content/skills/frontend-design/scripts/ux_audit.py +722 -0
- package/content/skills/frontend-design/typography-system.md +345 -0
- package/content/skills/frontend-design/ux-psychology.md +541 -0
- package/content/skills/frontend-design/visual-effects.md +383 -0
- package/content/skills/game-development/2d-games/SKILL.md +119 -0
- package/content/skills/game-development/3d-games/SKILL.md +135 -0
- package/content/skills/game-development/SKILL.md +167 -0
- package/content/skills/game-development/game-art/SKILL.md +185 -0
- package/content/skills/game-development/game-audio/SKILL.md +190 -0
- package/content/skills/game-development/game-design/SKILL.md +129 -0
- package/content/skills/game-development/mobile-games/SKILL.md +108 -0
- package/content/skills/game-development/multiplayer/SKILL.md +132 -0
- package/content/skills/game-development/pc-games/SKILL.md +144 -0
- package/content/skills/game-development/vr-ar/SKILL.md +123 -0
- package/content/skills/game-development/web-games/SKILL.md +150 -0
- package/content/skills/geo-fundamentals/SKILL.md +156 -0
- package/content/skills/geo-fundamentals/scripts/geo_checker.py +289 -0
- package/content/skills/i18n-localization/SKILL.md +154 -0
- package/content/skills/i18n-localization/scripts/i18n_checker.py +241 -0
- package/content/skills/intelligent-routing/SKILL.md +334 -0
- package/content/skills/lint-and-validate/SKILL.md +45 -0
- package/content/skills/lint-and-validate/scripts/lint_runner.py +172 -0
- package/content/skills/lint-and-validate/scripts/type_coverage.py +173 -0
- package/content/skills/mcp-builder/SKILL.md +176 -0
- package/content/skills/mobile-design/SKILL.md +394 -0
- package/content/skills/mobile-design/decision-trees.md +516 -0
- package/content/skills/mobile-design/mobile-backend.md +491 -0
- package/content/skills/mobile-design/mobile-color-system.md +420 -0
- package/content/skills/mobile-design/mobile-debugging.md +122 -0
- package/content/skills/mobile-design/mobile-design-thinking.md +357 -0
- package/content/skills/mobile-design/mobile-navigation.md +458 -0
- package/content/skills/mobile-design/mobile-performance.md +767 -0
- package/content/skills/mobile-design/mobile-testing.md +356 -0
- package/content/skills/mobile-design/mobile-typography.md +433 -0
- package/content/skills/mobile-design/platform-android.md +666 -0
- package/content/skills/mobile-design/platform-ios.md +561 -0
- package/content/skills/mobile-design/scripts/mobile_audit.py +670 -0
- package/content/skills/mobile-design/touch-psychology.md +537 -0
- package/content/skills/nextjs-best-practices/SKILL.md +203 -0
- package/content/skills/nodejs-best-practices/SKILL.md +333 -0
- package/content/skills/parallel-agents/SKILL.md +175 -0
- package/content/skills/performance-profiling/SKILL.md +143 -0
- package/content/skills/performance-profiling/scripts/lighthouse_audit.py +76 -0
- package/content/skills/plan-writing/SKILL.md +152 -0
- package/content/skills/powershell-windows/SKILL.md +167 -0
- package/content/skills/python-patterns/SKILL.md +441 -0
- package/content/skills/react-patterns/SKILL.md +198 -0
- package/content/skills/red-team-tactics/SKILL.md +199 -0
- package/content/skills/seo-fundamentals/SKILL.md +129 -0
- package/content/skills/seo-fundamentals/scripts/seo_checker.py +219 -0
- package/content/skills/server-management/SKILL.md +161 -0
- package/content/skills/systematic-debugging/SKILL.md +109 -0
- package/content/skills/tailwind-patterns/SKILL.md +269 -0
- package/content/skills/tdd-workflow/SKILL.md +149 -0
- package/content/skills/testing-patterns/SKILL.md +178 -0
- package/content/skills/testing-patterns/scripts/test_runner.py +219 -0
- package/content/skills/vulnerability-scanner/SKILL.md +276 -0
- package/content/skills/vulnerability-scanner/checklists.md +121 -0
- package/content/skills/vulnerability-scanner/scripts/security_scan.py +458 -0
- package/content/skills/webapp-testing/SKILL.md +187 -0
- package/content/skills/webapp-testing/scripts/playwright_runner.py +173 -0
- package/content/specialists/Especialista em Acessibilidade.md +266 -0
- package/content/specialists/Especialista em An/303/241lise de Testes.md" +434 -0
- package/content/specialists/Especialista em Arquitetura Avan/303/247ada.md" +358 -0
- package/content/specialists/Especialista em Arquitetura de Software.md +177 -0
- package/content/specialists/Especialista em Banco de Dados.md +260 -0
- package/content/specialists/Especialista em Contrato de API.md +172 -0
- package/content/specialists/Especialista em Dados e Analytics com IA.md +246 -0
- package/content/specialists/Especialista em Debugging e Troubleshooting.md +191 -0
- package/content/specialists/Especialista em Desenvolvimento Frontend.md +477 -0
- package/content/specialists/Especialista em Desenvolvimento Mobile.md +241 -0
- package/content/specialists/Especialista em Desenvolvimento e Vibe Coding Estruturado.md +417 -0
- package/content/specialists/Especialista em DevOps e Infraestrutura.md +294 -0
- package/content/specialists/Especialista em Documenta/303/247/303/243o T/303/251cnica.md" +227 -0
- package/content/specialists/Especialista em Engenharia de Requisitos com IA.md +299 -0
- package/content/specialists/Especialista em Explora/303/247/303/243o de Codebase.md" +179 -0
- package/content/specialists/Especialista em Gest/303/243o de Produto.md" +179 -0
- package/content/specialists/Especialista em Migra/303/247/303/243o e Moderniza/303/247/303/243o.md" +410 -0
- package/content/specialists/Especialista em Modelagem e Arquitetura de Dom/303/255nio com IA.md" +248 -0
- package/content/specialists/Especialista em Observabilidade.md +415 -0
- package/content/specialists/Especialista em Performance e Escalabilidade.md +373 -0
- package/content/specialists/Especialista em Plano de Execu/303/247/303/243o com IA.md" +341 -0
- package/content/specialists/Especialista em Prototipagem R/303/241pida com Google Stitch.md" +419 -0
- package/content/specialists/Especialista em Seguran/303/247a da Informa/303/247/303/243o.md" +508 -0
- package/content/specialists/Especialista em UX Design.md +453 -0
- package/content/specialists/INDEX.md +43 -0
- package/content/templates/PRD.md +165 -0
- package/content/templates/README.md +65 -0
- package/content/templates/adr.md +103 -0
- package/content/templates/arquitetura.md +279 -0
- package/content/templates/backlog.md +185 -0
- package/content/templates/checklist-seguranca.md +180 -0
- package/content/templates/contexto.md +120 -0
- package/content/templates/criterios-aceite.md +99 -0
- package/content/templates/design-banco.md +270 -0
- package/content/templates/design-doc.md +240 -0
- package/content/templates/feature.md +88 -0
- package/content/templates/historia-backend.md +84 -0
- package/content/templates/historia-frontend.md +75 -0
- package/content/templates/historia-usuario.md +125 -0
- package/content/templates/mapa-navegacao.md +133 -0
- package/content/templates/matriz-rastreabilidade.md +121 -0
- package/content/templates/modelo-dominio.md +219 -0
- package/content/templates/plano-testes.md +199 -0
- package/content/templates/prototipo-stitch.md +138 -0
- package/content/templates/requisitos.md +162 -0
- package/content/templates/slo-sli.md +197 -0
- package/content/workflows/README-MCP.md +363 -0
- package/content/workflows/brainstorm.md +113 -0
- package/content/workflows/create.md +59 -0
- package/content/workflows/debug.md +103 -0
- package/content/workflows/deploy.md +176 -0
- package/content/workflows/enhance.md +63 -0
- package/content/workflows/mcp-debug.md +506 -0
- package/content/workflows/mcp-feature.md +385 -0
- package/content/workflows/mcp-gate.md +413 -0
- package/content/workflows/mcp-next.md +388 -0
- package/content/workflows/mcp-refactor.md +600 -0
- package/content/workflows/mcp-start.md +304 -0
- package/content/workflows/mcp-status.md +400 -0
- package/content/workflows/orchestrate.md +237 -0
- package/content/workflows/plan.md +89 -0
- package/content/workflows/preview.md +81 -0
- package/content/workflows/status.md +86 -0
- package/content/workflows/test.md +144 -0
- package/content/workflows/ui-ux-pro-max.md +296 -0
- package/dist/commands/init.d.ts +6 -0
- package/dist/commands/init.js +138 -0
- package/dist/commands/update.d.ts +5 -0
- package/dist/commands/update.js +50 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.js +21 -0
- package/package.json +48 -0
|
@@ -0,0 +1,396 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: frontend-design
|
|
3
|
+
description: Design thinking and decision-making for web UI. Use when designing components, layouts, color schemes, typography, or creating aesthetic interfaces. Teaches principles, not fixed values.
|
|
4
|
+
allowed-tools: Read, Write, Edit, Glob, Grep, Bash
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Frontend Design System
|
|
8
|
+
|
|
9
|
+
> **Philosophy:** Every pixel has purpose. Restraint is luxury. User psychology drives decisions.
|
|
10
|
+
> **Core Principle:** THINK, don't memorize. ASK, don't assume.
|
|
11
|
+
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
## 🎯 Selective Reading Rule (MANDATORY)
|
|
15
|
+
|
|
16
|
+
**Read REQUIRED files always, OPTIONAL only when needed:**
|
|
17
|
+
|
|
18
|
+
| File | Status | When to Read |
|
|
19
|
+
|------|--------|--------------|
|
|
20
|
+
| [ux-psychology.md](ux-psychology.md) | 🔴 **REQUIRED** | Always read first! |
|
|
21
|
+
| [color-system.md](color-system.md) | ⚪ Optional | Color/palette decisions |
|
|
22
|
+
| [typography-system.md](typography-system.md) | ⚪ Optional | Font selection/pairing |
|
|
23
|
+
| [visual-effects.md](visual-effects.md) | ⚪ Optional | Glassmorphism, shadows, gradients |
|
|
24
|
+
| [animation-guide.md](animation-guide.md) | ⚪ Optional | Animation needed |
|
|
25
|
+
| [motion-graphics.md](motion-graphics.md) | ⚪ Optional | Lottie, GSAP, 3D |
|
|
26
|
+
| [decision-trees.md](decision-trees.md) | ⚪ Optional | Context templates |
|
|
27
|
+
|
|
28
|
+
> 🔴 **ux-psychology.md = ALWAYS READ. Others = only if relevant.**
|
|
29
|
+
|
|
30
|
+
---
|
|
31
|
+
|
|
32
|
+
## 🔧 Runtime Scripts
|
|
33
|
+
|
|
34
|
+
**Execute these for audits (don't read, just run):**
|
|
35
|
+
|
|
36
|
+
| Script | Purpose | Usage |
|
|
37
|
+
|--------|---------|-------|
|
|
38
|
+
| `scripts/ux_audit.py` | UX Psychology & Accessibility Audit | `python scripts/ux_audit.py <project_path>` |
|
|
39
|
+
|
|
40
|
+
---
|
|
41
|
+
|
|
42
|
+
## ⚠️ CRITICAL: ASK BEFORE ASSUMING (MANDATORY)
|
|
43
|
+
|
|
44
|
+
> **STOP! If the user's request is open-ended, DO NOT default to your favorites.**
|
|
45
|
+
|
|
46
|
+
### When User Prompt is Vague, ASK:
|
|
47
|
+
|
|
48
|
+
**Color not specified?** Ask:
|
|
49
|
+
> "What color palette do you prefer? (blue/green/orange/neutral/other?)"
|
|
50
|
+
|
|
51
|
+
**Style not specified?** Ask:
|
|
52
|
+
> "What style are you going for? (minimal/bold/retro/futuristic/organic?)"
|
|
53
|
+
|
|
54
|
+
**Layout not specified?** Ask:
|
|
55
|
+
> "Do you have a layout preference? (single column/grid/asymmetric/full-width?)"
|
|
56
|
+
|
|
57
|
+
### ⛔ DEFAULT TENDENCIES TO AVOID (ANTI-SAFE HARBOR):
|
|
58
|
+
|
|
59
|
+
| AI Default Tendency | Why It's Bad | Think Instead |
|
|
60
|
+
|---------------------|--------------|---------------|
|
|
61
|
+
| **Bento Grids (Modern Cliché)** | Used in every AI design | Why does this content NEED a grid? |
|
|
62
|
+
| **Hero Split (Left/Right)** | Predictable & Boring | How about Massive Typography or Vertical Narrative? |
|
|
63
|
+
| **Mesh/Aurora Gradients** | The "new" lazy background | What's a radical color pairing? |
|
|
64
|
+
| **Glassmorphism** | AI's idea of "premium" | How about solid, high-contrast flat? |
|
|
65
|
+
| **Deep Cyan / Fintech Blue** | Safe harbor from purple ban | Why not Red, Black, or Neon Green? |
|
|
66
|
+
| **"Orchestrate / Empower"** | AI-generated copywriting | How would a human say this? |
|
|
67
|
+
| Dark background + neon glow | Overused, "AI look" | What does the BRAND actually need? |
|
|
68
|
+
| **Rounded everything** | Generic/Safe | Where can I use sharp, brutalist edges? |
|
|
69
|
+
|
|
70
|
+
> 🔴 **"Every 'safe' structure you choose brings you one step closer to a generic template. TAKE RISKS."**
|
|
71
|
+
|
|
72
|
+
---
|
|
73
|
+
|
|
74
|
+
## 1. Constraint Analysis (ALWAYS FIRST)
|
|
75
|
+
|
|
76
|
+
Before any design work, ANSWER THESE or ASK USER:
|
|
77
|
+
|
|
78
|
+
| Constraint | Question | Why It Matters |
|
|
79
|
+
|------------|----------|----------------|
|
|
80
|
+
| **Timeline** | How much time? | Determines complexity |
|
|
81
|
+
| **Content** | Ready or placeholder? | Affects layout flexibility |
|
|
82
|
+
| **Brand** | Existing guidelines? | May dictate colors/fonts |
|
|
83
|
+
| **Tech** | What stack? | Affects capabilities |
|
|
84
|
+
| **Audience** | Who exactly? | Drives all visual decisions |
|
|
85
|
+
|
|
86
|
+
### Audience → Design Approach
|
|
87
|
+
|
|
88
|
+
| Audience | Think About |
|
|
89
|
+
|----------|-------------|
|
|
90
|
+
| **Gen Z** | Bold, fast, mobile-first, authentic |
|
|
91
|
+
| **Millennials** | Clean, minimal, value-driven |
|
|
92
|
+
| **Gen X** | Familiar, trustworthy, clear |
|
|
93
|
+
| **Boomers** | Readable, high contrast, simple |
|
|
94
|
+
| **B2B** | Professional, data-focused, trust |
|
|
95
|
+
| **Luxury** | Restrained elegance, whitespace |
|
|
96
|
+
|
|
97
|
+
---
|
|
98
|
+
|
|
99
|
+
## 2. UX Psychology Principles
|
|
100
|
+
|
|
101
|
+
### Core Laws (Internalize These)
|
|
102
|
+
|
|
103
|
+
| Law | Principle | Application |
|
|
104
|
+
|-----|-----------|-------------|
|
|
105
|
+
| **Hick's Law** | More choices = slower decisions | Limit options, use progressive disclosure |
|
|
106
|
+
| **Fitts' Law** | Bigger + closer = easier to click | Size CTAs appropriately |
|
|
107
|
+
| **Miller's Law** | ~7 items in working memory | Chunk content into groups |
|
|
108
|
+
| **Von Restorff** | Different = memorable | Make CTAs visually distinct |
|
|
109
|
+
| **Serial Position** | First/last remembered most | Key info at start/end |
|
|
110
|
+
|
|
111
|
+
### Emotional Design Levels
|
|
112
|
+
|
|
113
|
+
```
|
|
114
|
+
VISCERAL (instant) → First impression: colors, imagery, overall feel
|
|
115
|
+
BEHAVIORAL (use) → Using it: speed, feedback, efficiency
|
|
116
|
+
REFLECTIVE (memory) → After: "I like what this says about me"
|
|
117
|
+
```
|
|
118
|
+
|
|
119
|
+
### Trust Building
|
|
120
|
+
|
|
121
|
+
- Security indicators on sensitive actions
|
|
122
|
+
- Social proof where relevant
|
|
123
|
+
- Clear contact/support access
|
|
124
|
+
- Consistent, professional design
|
|
125
|
+
- Transparent policies
|
|
126
|
+
|
|
127
|
+
---
|
|
128
|
+
|
|
129
|
+
## 3. Layout Principles
|
|
130
|
+
|
|
131
|
+
### Golden Ratio (φ = 1.618)
|
|
132
|
+
|
|
133
|
+
```
|
|
134
|
+
Use for proportional harmony:
|
|
135
|
+
├── Content : Sidebar = roughly 62% : 38%
|
|
136
|
+
├── Each heading size = previous × 1.618 (for dramatic scale)
|
|
137
|
+
├── Spacing can follow: sm → md → lg (each × 1.618)
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
### 8-Point Grid Concept
|
|
141
|
+
|
|
142
|
+
```
|
|
143
|
+
All spacing and sizing in multiples of 8:
|
|
144
|
+
├── Tight: 4px (half-step for micro)
|
|
145
|
+
├── Small: 8px
|
|
146
|
+
├── Medium: 16px
|
|
147
|
+
├── Large: 24px, 32px
|
|
148
|
+
├── XL: 48px, 64px, 80px
|
|
149
|
+
└── Adjust based on content density
|
|
150
|
+
```
|
|
151
|
+
|
|
152
|
+
### Key Sizing Principles
|
|
153
|
+
|
|
154
|
+
| Element | Consideration |
|
|
155
|
+
|---------|---------------|
|
|
156
|
+
| **Touch targets** | Minimum comfortable tap size |
|
|
157
|
+
| **Buttons** | Height based on importance hierarchy |
|
|
158
|
+
| **Inputs** | Match button height for alignment |
|
|
159
|
+
| **Cards** | Consistent padding, breathable |
|
|
160
|
+
| **Reading width** | 45-75 characters optimal |
|
|
161
|
+
|
|
162
|
+
---
|
|
163
|
+
|
|
164
|
+
## 4. Color Principles
|
|
165
|
+
|
|
166
|
+
### 60-30-10 Rule
|
|
167
|
+
|
|
168
|
+
```
|
|
169
|
+
60% → Primary/Background (calm, neutral base)
|
|
170
|
+
30% → Secondary (supporting areas)
|
|
171
|
+
10% → Accent (CTAs, highlights, attention)
|
|
172
|
+
```
|
|
173
|
+
|
|
174
|
+
### Color Psychology (For Decision Making)
|
|
175
|
+
|
|
176
|
+
| If You Need... | Consider Hues | Avoid |
|
|
177
|
+
|----------------|---------------|-------|
|
|
178
|
+
| Trust, calm | Blue family | Aggressive reds |
|
|
179
|
+
| Growth, nature | Green family | Industrial grays |
|
|
180
|
+
| Energy, urgency | Orange, red | Passive blues |
|
|
181
|
+
| Luxury, creativity | Deep Teal, Gold, Emerald | Cheap-feeling brights |
|
|
182
|
+
| Clean, minimal | Neutrals | Overwhelming color |
|
|
183
|
+
|
|
184
|
+
### Selection Process
|
|
185
|
+
|
|
186
|
+
1. **What's the industry?** (narrows options)
|
|
187
|
+
2. **What's the emotion?** (picks primary)
|
|
188
|
+
3. **Light or dark mode?** (sets foundation)
|
|
189
|
+
4. **ASK USER** if not specified
|
|
190
|
+
|
|
191
|
+
For detailed color theory: [color-system.md](color-system.md)
|
|
192
|
+
|
|
193
|
+
---
|
|
194
|
+
|
|
195
|
+
## 5. Typography Principles
|
|
196
|
+
|
|
197
|
+
### Scale Selection
|
|
198
|
+
|
|
199
|
+
| Content Type | Scale Ratio | Feel |
|
|
200
|
+
|--------------|-------------|------|
|
|
201
|
+
| Dense UI | 1.125-1.2 | Compact, efficient |
|
|
202
|
+
| General web | 1.25 | Balanced (most common) |
|
|
203
|
+
| Editorial | 1.333 | Readable, spacious |
|
|
204
|
+
| Hero/display | 1.5-1.618 | Dramatic impact |
|
|
205
|
+
|
|
206
|
+
### Pairing Concept
|
|
207
|
+
|
|
208
|
+
```
|
|
209
|
+
Contrast + Harmony:
|
|
210
|
+
├── DIFFERENT enough for hierarchy
|
|
211
|
+
├── SIMILAR enough for cohesion
|
|
212
|
+
└── Usually: display + neutral, or serif + sans
|
|
213
|
+
```
|
|
214
|
+
|
|
215
|
+
### Readability Rules
|
|
216
|
+
|
|
217
|
+
- **Line length**: 45-75 characters optimal
|
|
218
|
+
- **Line height**: 1.4-1.6 for body text
|
|
219
|
+
- **Contrast**: Check WCAG requirements
|
|
220
|
+
- **Size**: 16px+ for body on web
|
|
221
|
+
|
|
222
|
+
For detailed typography: [typography-system.md](typography-system.md)
|
|
223
|
+
|
|
224
|
+
---
|
|
225
|
+
|
|
226
|
+
## 6. Visual Effects Principles
|
|
227
|
+
|
|
228
|
+
### Glassmorphism (When Appropriate)
|
|
229
|
+
|
|
230
|
+
```
|
|
231
|
+
Key properties:
|
|
232
|
+
├── Semi-transparent background
|
|
233
|
+
├── Backdrop blur
|
|
234
|
+
├── Subtle border for definition
|
|
235
|
+
└── ⚠️ **WARNING:** Standard blue/white glassmorphism is a modern cliché. Use it radically or not at all.
|
|
236
|
+
```
|
|
237
|
+
|
|
238
|
+
### Shadow Hierarchy
|
|
239
|
+
|
|
240
|
+
```
|
|
241
|
+
Elevation concept:
|
|
242
|
+
├── Higher elements = larger shadows
|
|
243
|
+
├── Y-offset > X-offset (light from above)
|
|
244
|
+
├── Multiple layers = more realistic
|
|
245
|
+
└── Dark mode: may need glow instead
|
|
246
|
+
```
|
|
247
|
+
|
|
248
|
+
### Gradient Usage
|
|
249
|
+
|
|
250
|
+
```
|
|
251
|
+
Harmonious gradients:
|
|
252
|
+
├── Adjacent colors on wheel (analogous)
|
|
253
|
+
├── OR same hue, different lightness
|
|
254
|
+
├── Avoid harsh complementary pairs
|
|
255
|
+
├── 🚫 **NO Mesh/Aurora Gradients** (floating blobs)
|
|
256
|
+
└── VARY from project to project radically
|
|
257
|
+
```
|
|
258
|
+
|
|
259
|
+
For complete effects guide: [visual-effects.md](visual-effects.md)
|
|
260
|
+
|
|
261
|
+
---
|
|
262
|
+
|
|
263
|
+
## 7. Animation Principles
|
|
264
|
+
|
|
265
|
+
### Timing Concept
|
|
266
|
+
|
|
267
|
+
```
|
|
268
|
+
Duration based on:
|
|
269
|
+
├── Distance (further = longer)
|
|
270
|
+
├── Size (larger = slower)
|
|
271
|
+
├── Importance (critical = clear)
|
|
272
|
+
└── Context (urgent = fast, luxury = slow)
|
|
273
|
+
```
|
|
274
|
+
|
|
275
|
+
### Easing Selection
|
|
276
|
+
|
|
277
|
+
| Action | Easing | Why |
|
|
278
|
+
|--------|--------|-----|
|
|
279
|
+
| Entering | Ease-out | Decelerate, settle in |
|
|
280
|
+
| Leaving | Ease-in | Accelerate, exit |
|
|
281
|
+
| Emphasis | Ease-in-out | Smooth, deliberate |
|
|
282
|
+
| Playful | Bounce | Fun, energetic |
|
|
283
|
+
|
|
284
|
+
### Performance
|
|
285
|
+
|
|
286
|
+
- Animate only transform and opacity
|
|
287
|
+
- Respect reduced-motion preference
|
|
288
|
+
- Test on low-end devices
|
|
289
|
+
|
|
290
|
+
For animation patterns: [animation-guide.md](animation-guide.md), for advanced: [motion-graphics.md](motion-graphics.md)
|
|
291
|
+
|
|
292
|
+
---
|
|
293
|
+
|
|
294
|
+
## 8. "Wow Factor" Checklist
|
|
295
|
+
|
|
296
|
+
### Premium Indicators
|
|
297
|
+
|
|
298
|
+
- [ ] Generous whitespace (luxury = breathing room)
|
|
299
|
+
- [ ] Subtle depth and dimension
|
|
300
|
+
- [ ] Smooth, purposeful animations
|
|
301
|
+
- [ ] Attention to detail (alignment, consistency)
|
|
302
|
+
- [ ] Cohesive visual rhythm
|
|
303
|
+
- [ ] Custom elements (not all defaults)
|
|
304
|
+
|
|
305
|
+
### Trust Builders
|
|
306
|
+
|
|
307
|
+
- [ ] Security cues where appropriate
|
|
308
|
+
- [ ] Social proof / testimonials
|
|
309
|
+
- [ ] Clear value proposition
|
|
310
|
+
- [ ] Professional imagery
|
|
311
|
+
- [ ] Consistent design language
|
|
312
|
+
|
|
313
|
+
### Emotional Triggers
|
|
314
|
+
|
|
315
|
+
- [ ] Hero that evokes intended emotion
|
|
316
|
+
- [ ] Human elements (faces, stories)
|
|
317
|
+
- [ ] Progress/achievement indicators
|
|
318
|
+
- [ ] Moments of delight
|
|
319
|
+
|
|
320
|
+
---
|
|
321
|
+
|
|
322
|
+
## 9. Anti-Patterns (What NOT to Do)
|
|
323
|
+
|
|
324
|
+
### ❌ Lazy Design Indicators
|
|
325
|
+
|
|
326
|
+
- Default system fonts without consideration
|
|
327
|
+
- Stock imagery that doesn't match
|
|
328
|
+
- Inconsistent spacing
|
|
329
|
+
- Too many competing colors
|
|
330
|
+
- Walls of text without hierarchy
|
|
331
|
+
- Inaccessible contrast
|
|
332
|
+
|
|
333
|
+
### ❌ AI Tendency Patterns (AVOID!)
|
|
334
|
+
|
|
335
|
+
- **Same colors every project**
|
|
336
|
+
- **Dark + neon as default**
|
|
337
|
+
- **Purple/violet everything (PURPLE BAN ✅)**
|
|
338
|
+
- **Bento grids for simple landing pages**
|
|
339
|
+
- **Mesh Gradients & Glow Effects**
|
|
340
|
+
- **Same layout structure / Vercel clone**
|
|
341
|
+
- **Not asking user preferences**
|
|
342
|
+
|
|
343
|
+
### ❌ Dark Patterns (Unethical)
|
|
344
|
+
|
|
345
|
+
- Hidden costs
|
|
346
|
+
- Fake urgency
|
|
347
|
+
- Forced actions
|
|
348
|
+
- Deceptive UI
|
|
349
|
+
- Confirmshaming
|
|
350
|
+
|
|
351
|
+
---
|
|
352
|
+
|
|
353
|
+
## 10. Decision Process Summary
|
|
354
|
+
|
|
355
|
+
```
|
|
356
|
+
For EVERY design task:
|
|
357
|
+
|
|
358
|
+
1. CONSTRAINTS
|
|
359
|
+
└── What's the timeline, brand, tech, audience?
|
|
360
|
+
└── If unclear → ASK
|
|
361
|
+
|
|
362
|
+
2. CONTENT
|
|
363
|
+
└── What content exists?
|
|
364
|
+
└── What's the hierarchy?
|
|
365
|
+
|
|
366
|
+
3. STYLE DIRECTION
|
|
367
|
+
└── What's appropriate for context?
|
|
368
|
+
└── If unclear → ASK (don't default!)
|
|
369
|
+
|
|
370
|
+
4. EXECUTION
|
|
371
|
+
└── Apply principles above
|
|
372
|
+
└── Check against anti-patterns
|
|
373
|
+
|
|
374
|
+
5. REVIEW
|
|
375
|
+
└── "Does this serve the user?"
|
|
376
|
+
└── "Is this different from my defaults?"
|
|
377
|
+
└── "Would I be proud of this?"
|
|
378
|
+
```
|
|
379
|
+
|
|
380
|
+
---
|
|
381
|
+
|
|
382
|
+
## Reference Files
|
|
383
|
+
|
|
384
|
+
For deeper guidance on specific areas:
|
|
385
|
+
|
|
386
|
+
- [color-system.md](color-system.md) - Color theory and selection process
|
|
387
|
+
- [typography-system.md](typography-system.md) - Font pairing and scale decisions
|
|
388
|
+
- [visual-effects.md](visual-effects.md) - Effects principles and techniques
|
|
389
|
+
- [animation-guide.md](animation-guide.md) - Motion design principles
|
|
390
|
+
- [motion-graphics.md](motion-graphics.md) - Advanced: Lottie, GSAP, SVG, 3D, Particles
|
|
391
|
+
- [decision-trees.md](decision-trees.md) - Context-specific templates
|
|
392
|
+
- [ux-psychology.md](ux-psychology.md) - User psychology deep dive
|
|
393
|
+
|
|
394
|
+
---
|
|
395
|
+
|
|
396
|
+
> **Remember:** Design is THINKING, not copying. Every project deserves fresh consideration based on its unique context and users. **Avoid the Modern SaaS Safe Harbor!**
|
|
@@ -0,0 +1,331 @@
|
|
|
1
|
+
# Animation Guidelines Reference
|
|
2
|
+
|
|
3
|
+
> Animation principles and timing psychology - learn to decide, not copy.
|
|
4
|
+
> **No fixed durations to memorize - understand what affects timing.**
|
|
5
|
+
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
## 1. Duration Principles
|
|
9
|
+
|
|
10
|
+
### What Affects Timing
|
|
11
|
+
|
|
12
|
+
```
|
|
13
|
+
Factors that determine animation speed:
|
|
14
|
+
├── DISTANCE: Further travel = longer duration
|
|
15
|
+
├── SIZE: Larger elements = slower animations
|
|
16
|
+
├── COMPLEXITY: Complex = slower to process
|
|
17
|
+
├── IMPORTANCE: Critical actions = clear feedback
|
|
18
|
+
└── CONTEXT: Urgent = fast, luxurious = slow
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
### Duration Ranges by Purpose
|
|
22
|
+
|
|
23
|
+
| Purpose | Range | Why |
|
|
24
|
+
|---------|-------|-----|
|
|
25
|
+
| Instant feedback | 50-100ms | Below perception threshold |
|
|
26
|
+
| Micro-interactions | 100-200ms | Quick but noticeable |
|
|
27
|
+
| Standard transitions | 200-300ms | Comfortable pace |
|
|
28
|
+
| Complex animations | 300-500ms | Time to follow |
|
|
29
|
+
| Page transitions | 400-600ms | Smooth handoff |
|
|
30
|
+
| **Wow/Premium Effects** | 800ms+ | Dramatic, organic spring-based, layered |
|
|
31
|
+
|
|
32
|
+
### Choosing Duration
|
|
33
|
+
|
|
34
|
+
Ask yourself:
|
|
35
|
+
1. How far is the element moving?
|
|
36
|
+
2. How important is it to notice this change?
|
|
37
|
+
3. Is the user waiting, or is this background?
|
|
38
|
+
|
|
39
|
+
---
|
|
40
|
+
|
|
41
|
+
## 2. Easing Principles
|
|
42
|
+
|
|
43
|
+
### What Easing Does
|
|
44
|
+
|
|
45
|
+
```
|
|
46
|
+
Easing = how speed changes over time
|
|
47
|
+
├── Linear: constant speed (mechanical, robotic)
|
|
48
|
+
├── Ease-out: fast start, slow end (natural entry)
|
|
49
|
+
├── Ease-in: slow start, fast end (natural exit)
|
|
50
|
+
└── Ease-in-out: slow both ends (smooth, deliberate)
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
### When to Use Each
|
|
54
|
+
|
|
55
|
+
| Easing | Best For | Feels Like |
|
|
56
|
+
|--------|----------|------------|
|
|
57
|
+
| **Ease-out** | Elements entering | Arriving, settling |
|
|
58
|
+
| **Ease-in** | Elements leaving | Departing, exiting |
|
|
59
|
+
| **Ease-in-out** | Emphasis, loops | Deliberate, smooth |
|
|
60
|
+
| **Linear** | Continuous motion | Mechanical, constant |
|
|
61
|
+
| **Bounce/Elastic** | Playful UI | Fun, energetic |
|
|
62
|
+
|
|
63
|
+
### The Pattern
|
|
64
|
+
|
|
65
|
+
```css
|
|
66
|
+
/* Entering view = ease-out (decelerate) */
|
|
67
|
+
.enter {
|
|
68
|
+
animation-timing-function: ease-out;
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
/* Leaving view = ease-in (accelerate) */
|
|
72
|
+
.exit {
|
|
73
|
+
animation-timing-function: ease-in;
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
/* Continuous = ease-in-out */
|
|
77
|
+
.continuous {
|
|
78
|
+
animation-timing-function: ease-in-out;
|
|
79
|
+
}
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
---
|
|
83
|
+
|
|
84
|
+
## 3. Micro-Interaction Principles
|
|
85
|
+
|
|
86
|
+
### What Makes Good Micro-Interactions
|
|
87
|
+
|
|
88
|
+
```
|
|
89
|
+
Purpose of micro-interactions:
|
|
90
|
+
├── FEEDBACK: Confirm the action happened
|
|
91
|
+
├── GUIDANCE: Show what's possible
|
|
92
|
+
├── STATUS: Indicate current state
|
|
93
|
+
└── DELIGHT: Small moments of joy
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
### Button States
|
|
97
|
+
|
|
98
|
+
```
|
|
99
|
+
Hover → slight visual change (lift, color, scale)
|
|
100
|
+
Active → pressed feeling (scale down, shadow change)
|
|
101
|
+
Focus → clear indicator (outline, ring)
|
|
102
|
+
Loading → progress indicator (spinner, skeleton)
|
|
103
|
+
Success → confirmation (check, color)
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
### Principles
|
|
107
|
+
|
|
108
|
+
1. **Respond immediately** (under 100ms perception)
|
|
109
|
+
2. **Match the action** (press = `scale(0.95)`, hover = `translateY(-4px) + glow`)
|
|
110
|
+
3. **Be bold but smooth** (Usta işi hissettir)
|
|
111
|
+
4. **Be consistent** (same actions = same feedback)
|
|
112
|
+
|
|
113
|
+
---
|
|
114
|
+
|
|
115
|
+
## 4. Loading States Principles
|
|
116
|
+
|
|
117
|
+
### Types by Context
|
|
118
|
+
|
|
119
|
+
| Situation | Approach |
|
|
120
|
+
|-----------|----------|
|
|
121
|
+
| Quick load (<1s) | No indicator needed |
|
|
122
|
+
| Medium (1-3s) | Spinner or simple animation |
|
|
123
|
+
| Long (3s+) | Progress bar or skeleton |
|
|
124
|
+
| Unknown duration | Indeterminate indicator |
|
|
125
|
+
|
|
126
|
+
### Skeleton Screens
|
|
127
|
+
|
|
128
|
+
```
|
|
129
|
+
Purpose: Reduce perceived wait time
|
|
130
|
+
├── Show layout shape immediately
|
|
131
|
+
├── Animate subtly (shimmer, pulse)
|
|
132
|
+
├── Replace with content when ready
|
|
133
|
+
└── Feels faster than spinner
|
|
134
|
+
```
|
|
135
|
+
|
|
136
|
+
### Progress Indicators
|
|
137
|
+
|
|
138
|
+
```
|
|
139
|
+
When to show progress:
|
|
140
|
+
├── User-initiated action
|
|
141
|
+
├── File uploads/downloads
|
|
142
|
+
├── Multi-step processes
|
|
143
|
+
└── Long operations
|
|
144
|
+
|
|
145
|
+
When NOT needed:
|
|
146
|
+
├── Very quick operations
|
|
147
|
+
├── Background tasks
|
|
148
|
+
└── Initial page loads (skeleton better)
|
|
149
|
+
```
|
|
150
|
+
|
|
151
|
+
---
|
|
152
|
+
|
|
153
|
+
## 5. Page Transitions Principles
|
|
154
|
+
|
|
155
|
+
### Transition Strategy
|
|
156
|
+
|
|
157
|
+
```
|
|
158
|
+
Simple rule: exit fast, enter slower
|
|
159
|
+
├── Outgoing content fades quickly
|
|
160
|
+
├── Incoming content animates in
|
|
161
|
+
└── Avoids "everything moving at once"
|
|
162
|
+
```
|
|
163
|
+
|
|
164
|
+
### Common Patterns
|
|
165
|
+
|
|
166
|
+
| Pattern | When to Use |
|
|
167
|
+
|---------|-------------|
|
|
168
|
+
| **Fade** | Safe default, works everywhere |
|
|
169
|
+
| **Slide** | Sequential navigation (prev/next) |
|
|
170
|
+
| **Scale** | Opening/closing modals |
|
|
171
|
+
| **Shared element** | Maintaining visual continuity |
|
|
172
|
+
|
|
173
|
+
### Direction Matching
|
|
174
|
+
|
|
175
|
+
```
|
|
176
|
+
Navigation direction = animation direction
|
|
177
|
+
├── Forward → slide from right
|
|
178
|
+
├── Backward → slide from left
|
|
179
|
+
├── Deeper → scale up from center
|
|
180
|
+
├── Back up → scale down
|
|
181
|
+
```
|
|
182
|
+
|
|
183
|
+
---
|
|
184
|
+
|
|
185
|
+
## 6. Scroll Animation Principles
|
|
186
|
+
|
|
187
|
+
### Progressive Reveal
|
|
188
|
+
|
|
189
|
+
```
|
|
190
|
+
Content appears as user scrolls:
|
|
191
|
+
├── Reduces initial cognitive load
|
|
192
|
+
├── Rewards exploration
|
|
193
|
+
├── Must not feel sluggish
|
|
194
|
+
└── Option to disable (accessibility)
|
|
195
|
+
```
|
|
196
|
+
|
|
197
|
+
### Trigger Points
|
|
198
|
+
|
|
199
|
+
| When to Trigger | Effect |
|
|
200
|
+
|-----------------|--------|
|
|
201
|
+
| Just entering viewport | Standard reveal |
|
|
202
|
+
| Centered in viewport | For emphasis |
|
|
203
|
+
| Partially visible | Earlier reveal |
|
|
204
|
+
| Fully visible | Late trigger |
|
|
205
|
+
|
|
206
|
+
### Animation Properties
|
|
207
|
+
|
|
208
|
+
- Fade in (opacity)
|
|
209
|
+
- Slide up (transform)
|
|
210
|
+
- Scale (transform)
|
|
211
|
+
- Combination of above
|
|
212
|
+
|
|
213
|
+
### Performance
|
|
214
|
+
|
|
215
|
+
- Use Intersection Observer
|
|
216
|
+
- Animate only transform/opacity
|
|
217
|
+
- Reduce on mobile if needed
|
|
218
|
+
|
|
219
|
+
---
|
|
220
|
+
|
|
221
|
+
## 7. Hover Effects Principles
|
|
222
|
+
|
|
223
|
+
### Matching Effect to Action
|
|
224
|
+
|
|
225
|
+
| Element | Effect | Intent |
|
|
226
|
+
|---------|--------|--------|
|
|
227
|
+
| **Clickable card** | Lift + shadow | "This is interactive" |
|
|
228
|
+
| **Button** | Color/brightness change | "Press me" |
|
|
229
|
+
| **Image** | Zoom/scale | "View closer" |
|
|
230
|
+
| **Link** | Underline/color | "Navigate here" |
|
|
231
|
+
|
|
232
|
+
### Principles
|
|
233
|
+
|
|
234
|
+
1. **Signal interactivity** - hover shows it's clickable
|
|
235
|
+
2. **Don't overdo it** - subtle changes work
|
|
236
|
+
3. **Match importance** - bigger change = more important
|
|
237
|
+
4. **Touch alternatives** - hover doesn't work on mobile
|
|
238
|
+
|
|
239
|
+
---
|
|
240
|
+
|
|
241
|
+
## 8. Feedback Animation Principles
|
|
242
|
+
|
|
243
|
+
### Success States
|
|
244
|
+
|
|
245
|
+
```
|
|
246
|
+
Celebrate appropriately:
|
|
247
|
+
├── Minor action → subtle check/color
|
|
248
|
+
├── Major action → more pronounced animation
|
|
249
|
+
├── Completion → satisfying animation
|
|
250
|
+
└── Match brand personality
|
|
251
|
+
```
|
|
252
|
+
|
|
253
|
+
### Error States
|
|
254
|
+
|
|
255
|
+
```
|
|
256
|
+
Draw attention without panic:
|
|
257
|
+
├── Color change (semantic red)
|
|
258
|
+
├── Shake animation (brief!)
|
|
259
|
+
├── Focus on error field
|
|
260
|
+
└── Clear messaging
|
|
261
|
+
```
|
|
262
|
+
|
|
263
|
+
### Timing
|
|
264
|
+
|
|
265
|
+
- Success: slightly longer (enjoy the moment)
|
|
266
|
+
- Error: quick (don't delay action)
|
|
267
|
+
- Loading: continuous until complete
|
|
268
|
+
|
|
269
|
+
---
|
|
270
|
+
|
|
271
|
+
## 9. Performance Principles
|
|
272
|
+
|
|
273
|
+
### What's Cheap to Animate
|
|
274
|
+
|
|
275
|
+
```
|
|
276
|
+
GPU-accelerated (FAST):
|
|
277
|
+
├── transform: translate, scale, rotate
|
|
278
|
+
└── opacity: 0 to 1
|
|
279
|
+
|
|
280
|
+
CPU-intensive (SLOW):
|
|
281
|
+
├── width, height
|
|
282
|
+
├── top, left, right, bottom
|
|
283
|
+
├── margin, padding
|
|
284
|
+
├── border-radius changes
|
|
285
|
+
└── box-shadow changes
|
|
286
|
+
```
|
|
287
|
+
|
|
288
|
+
### Optimization Strategies
|
|
289
|
+
|
|
290
|
+
1. **Animate transform/opacity** whenever possible
|
|
291
|
+
2. **Avoid layout triggers** (size/position changes)
|
|
292
|
+
3. **Use will-change sparingly** (hints to browser)
|
|
293
|
+
4. **Test on low-end devices** (not just dev machine)
|
|
294
|
+
|
|
295
|
+
### Respecting User Preferences
|
|
296
|
+
|
|
297
|
+
```css
|
|
298
|
+
@media (prefers-reduced-motion: reduce) {
|
|
299
|
+
/* Honor this preference */
|
|
300
|
+
/* Essential animations only */
|
|
301
|
+
/* Reduce or remove decorative motion */
|
|
302
|
+
}
|
|
303
|
+
```
|
|
304
|
+
|
|
305
|
+
---
|
|
306
|
+
|
|
307
|
+
## 10. Animation Decision Checklist
|
|
308
|
+
|
|
309
|
+
Before adding animation:
|
|
310
|
+
|
|
311
|
+
- [ ] **Is there a purpose?** (feedback/guidance/delight)
|
|
312
|
+
- [ ] **Is timing appropriate?** (not too fast/slow)
|
|
313
|
+
- [ ] **Did you pick correct easing?** (enter/exit/emphasis)
|
|
314
|
+
- [ ] **Is it performant?** (transform/opacity only)
|
|
315
|
+
- [ ] **Tested reduced motion?** (accessibility)
|
|
316
|
+
- [ ] **Consistent with other animations?** (same timing feel)
|
|
317
|
+
- [ ] **Not your default settings?** (variety check)
|
|
318
|
+
- [ ] **Asked user about style if unclear?**
|
|
319
|
+
|
|
320
|
+
### Anti-Patterns
|
|
321
|
+
|
|
322
|
+
- ❌ Same timing values every project
|
|
323
|
+
- ❌ Animation for animation's sake
|
|
324
|
+
- ❌ Ignoring reduced-motion preference
|
|
325
|
+
- ❌ Animating expensive properties
|
|
326
|
+
- ❌ Too many things animating at once
|
|
327
|
+
- ❌ Delays that frustrate users
|
|
328
|
+
|
|
329
|
+
---
|
|
330
|
+
|
|
331
|
+
> **Remember**: Animation is communication. Every motion should have meaning and serve the user experience.
|