contextos-agents 1.5.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/.agents/AGENTS.md +421 -0
- package/.agents/adapters/aider/export.js +137 -0
- package/.agents/adapters/claude/export.js +55 -0
- package/.agents/adapters/copilot/export.js +107 -0
- package/.agents/adapters/cursor/export.js +210 -0
- package/.agents/adapters/gemini/export.js +115 -0
- package/.agents/adapters/shared.js +119 -0
- package/.agents/adapters/zed/export.js +111 -0
- package/.agents/core/profiles/backend.yaml +47 -0
- package/.agents/core/profiles/enterprise.yaml +46 -0
- package/.agents/core/profiles/frontend.yaml +46 -0
- package/.agents/core/profiles/hackathon.yaml +45 -0
- package/.agents/core/profiles/mvp.yaml +43 -0
- package/.agents/core/profiles/startup.yaml +48 -0
- package/.agents/core/skills/adapters/EXAMPLES.md +19 -0
- package/.agents/core/skills/adapters/SKILL.md +105 -0
- package/.agents/core/skills/adapters/TROUBLESHOOTING.md +7 -0
- package/.agents/core/skills/adapters/VALIDATION.json +12 -0
- package/.agents/core/skills/adapters/skill.yaml +10 -0
- package/.agents/core/skills/architecture-diagrams/SKILL.md +108 -0
- package/.agents/core/skills/architecture-diagrams/VALIDATION.json +12 -0
- package/.agents/core/skills/architecture-diagrams/skill.yaml +8 -0
- package/.agents/core/skills/brutalist-design/SKILL.md +150 -0
- package/.agents/core/skills/brutalist-design/VALIDATION.json +12 -0
- package/.agents/core/skills/brutalist-design/skill.yaml +8 -0
- package/.agents/core/skills/context-manager/EXAMPLES.md +19 -0
- package/.agents/core/skills/context-manager/SKILL.md +126 -0
- package/.agents/core/skills/context-manager/TROUBLESHOOTING.md +7 -0
- package/.agents/core/skills/context-manager/VALIDATION.json +12 -0
- package/.agents/core/skills/context-manager/skill.yaml +10 -0
- package/.agents/core/skills/context-os/EXAMPLES.md +21 -0
- package/.agents/core/skills/context-os/SKILL.md +169 -0
- package/.agents/core/skills/context-os/TROUBLESHOOTING.md +7 -0
- package/.agents/core/skills/context-os/VALIDATION.json +12 -0
- package/.agents/core/skills/context-os/packs.yaml +59 -0
- package/.agents/core/skills/context-os/references/context-rules.md +68 -0
- package/.agents/core/skills/context-os/references/pipeline.md +119 -0
- package/.agents/core/skills/context-os/references/project-graph.md +103 -0
- package/.agents/core/skills/context-os/rules.yaml +135 -0
- package/.agents/core/skills/context-os/skill.yaml +10 -0
- package/.agents/core/skills/database/EXAMPLES.md +74 -0
- package/.agents/core/skills/database/SKILL.md +101 -0
- package/.agents/core/skills/database/TROUBLESHOOTING.md +18 -0
- package/.agents/core/skills/database/VALIDATION.json +11 -0
- package/.agents/core/skills/database/skill.yaml +25 -0
- package/.agents/core/skills/ddd/EXAMPLES.md +42 -0
- package/.agents/core/skills/ddd/SKILL.md +247 -0
- package/.agents/core/skills/ddd/TROUBLESHOOTING.md +19 -0
- package/.agents/core/skills/ddd/VALIDATION.json +12 -0
- package/.agents/core/skills/ddd/ddd.md +178 -0
- package/.agents/core/skills/ddd/skill.yaml +10 -0
- package/.agents/core/skills/decisions/EXAMPLES.md +35 -0
- package/.agents/core/skills/decisions/SKILL.md +90 -0
- package/.agents/core/skills/decisions/TROUBLESHOOTING.md +13 -0
- package/.agents/core/skills/decisions/VALIDATION.json +12 -0
- package/.agents/core/skills/decisions/skill.yaml +10 -0
- package/.agents/core/skills/docker/EXAMPLES.md +56 -0
- package/.agents/core/skills/docker/SKILL.md +63 -0
- package/.agents/core/skills/docker/TROUBLESHOOTING.md +18 -0
- package/.agents/core/skills/docker/VALIDATION.json +11 -0
- package/.agents/core/skills/docker/skill.yaml +23 -0
- package/.agents/core/skills/engineering-workflow/EXAMPLES.md +57 -0
- package/.agents/core/skills/engineering-workflow/SKILL.md +343 -0
- package/.agents/core/skills/engineering-workflow/TROUBLESHOOTING.md +19 -0
- package/.agents/core/skills/engineering-workflow/VALIDATION.json +12 -0
- package/.agents/core/skills/engineering-workflow/skill.yaml +13 -0
- package/.agents/core/skills/fastapi/EXAMPLES.md +36 -0
- package/.agents/core/skills/fastapi/SKILL.md +148 -0
- package/.agents/core/skills/fastapi/TROUBLESHOOTING.md +19 -0
- package/.agents/core/skills/fastapi/VALIDATION.json +12 -0
- package/.agents/core/skills/fastapi/fastapi.md +112 -0
- package/.agents/core/skills/fastapi/skill.yaml +10 -0
- package/.agents/core/skills/gemini-precision/SKILL.md +169 -0
- package/.agents/core/skills/gemini-precision/VALIDATION.json +12 -0
- package/.agents/core/skills/gemini-precision/skill.yaml +9 -0
- package/.agents/core/skills/generators/EXAMPLES.md +19 -0
- package/.agents/core/skills/generators/SKILL.md +112 -0
- package/.agents/core/skills/generators/TROUBLESHOOTING.md +7 -0
- package/.agents/core/skills/generators/VALIDATION.json +12 -0
- package/.agents/core/skills/generators/skill.yaml +10 -0
- package/.agents/core/skills/generators/templates/API.md +77 -0
- package/.agents/core/skills/generators/templates/ARCHITECTURE.md +70 -0
- package/.agents/core/skills/generators/templates/DATABASE.md +42 -0
- package/.agents/core/skills/generators/templates/DECISION.md +46 -0
- package/.agents/core/skills/generators/templates/PRD.md +67 -0
- package/.agents/core/skills/generators/templates/PROJECT_GRAPH.md +56 -0
- package/.agents/core/skills/generators/templates/ROADMAP.md +51 -0
- package/.agents/core/skills/generators/templates/TASKS.md +43 -0
- package/.agents/core/skills/generators/templates/UI.md +73 -0
- package/.agents/core/skills/graphify/EXAMPLES.md +73 -0
- package/.agents/core/skills/graphify/SKILL.md +130 -0
- package/.agents/core/skills/graphify/VALIDATION.json +12 -0
- package/.agents/core/skills/graphify/skill.yaml +13 -0
- package/.agents/core/skills/gstack-roles/EXAMPLES.md +23 -0
- package/.agents/core/skills/gstack-roles/SKILL.md +152 -0
- package/.agents/core/skills/gstack-roles/TROUBLESHOOTING.md +13 -0
- package/.agents/core/skills/gstack-roles/VALIDATION.json +12 -0
- package/.agents/core/skills/gstack-roles/skill.yaml +12 -0
- package/.agents/core/skills/impeccable-design/EXAMPLES.md +26 -0
- package/.agents/core/skills/impeccable-design/SKILL.md +201 -0
- package/.agents/core/skills/impeccable-design/TROUBLESHOOTING.md +19 -0
- package/.agents/core/skills/impeccable-design/VALIDATION.json +12 -0
- package/.agents/core/skills/impeccable-design/skill.yaml +14 -0
- package/.agents/core/skills/interview-me/SKILL.md +97 -0
- package/.agents/core/skills/interview-me/VALIDATION.json +12 -0
- package/.agents/core/skills/interview-me/skill.yaml +8 -0
- package/.agents/core/skills/microservices/EXAMPLES.md +38 -0
- package/.agents/core/skills/microservices/SKILL.md +164 -0
- package/.agents/core/skills/microservices/TROUBLESHOOTING.md +19 -0
- package/.agents/core/skills/microservices/VALIDATION.json +12 -0
- package/.agents/core/skills/microservices/microservices.md +119 -0
- package/.agents/core/skills/microservices/skill.yaml +10 -0
- package/.agents/core/skills/minimalist-design/SKILL.md +113 -0
- package/.agents/core/skills/minimalist-design/VALIDATION.json +12 -0
- package/.agents/core/skills/minimalist-design/skill.yaml +8 -0
- package/.agents/core/skills/nestjs/EXAMPLES.md +40 -0
- package/.agents/core/skills/nestjs/SKILL.md +139 -0
- package/.agents/core/skills/nestjs/TROUBLESHOOTING.md +19 -0
- package/.agents/core/skills/nestjs/VALIDATION.json +12 -0
- package/.agents/core/skills/nestjs/nestjs.md +103 -0
- package/.agents/core/skills/nestjs/skill.yaml +10 -0
- package/.agents/core/skills/nextjs/EXAMPLES.md +40 -0
- package/.agents/core/skills/nextjs/SKILL.md +163 -0
- package/.agents/core/skills/nextjs/TROUBLESHOOTING.md +19 -0
- package/.agents/core/skills/nextjs/VALIDATION.json +12 -0
- package/.agents/core/skills/nextjs/nextjs.md +67 -0
- package/.agents/core/skills/nextjs/skill.yaml +10 -0
- package/.agents/core/skills/node/EXAMPLES.md +80 -0
- package/.agents/core/skills/node/SKILL.md +128 -0
- package/.agents/core/skills/node/TROUBLESHOOTING.md +19 -0
- package/.agents/core/skills/node/VALIDATION.json +12 -0
- package/.agents/core/skills/node/node.md +87 -0
- package/.agents/core/skills/node/skill.yaml +10 -0
- package/.agents/core/skills/performance/EXAMPLES.md +30 -0
- package/.agents/core/skills/performance/SKILL.md +75 -0
- package/.agents/core/skills/performance/TROUBLESHOOTING.md +19 -0
- package/.agents/core/skills/performance/VALIDATION.json +12 -0
- package/.agents/core/skills/performance/performance.md +52 -0
- package/.agents/core/skills/performance/skill.yaml +10 -0
- package/.agents/core/skills/ponytail-mindset/EXAMPLES.md +45 -0
- package/.agents/core/skills/ponytail-mindset/SKILL.md +193 -0
- package/.agents/core/skills/ponytail-mindset/TROUBLESHOOTING.md +19 -0
- package/.agents/core/skills/ponytail-mindset/VALIDATION.json +12 -0
- package/.agents/core/skills/ponytail-mindset/skill.yaml +14 -0
- package/.agents/core/skills/react/EXAMPLES.md +79 -0
- package/.agents/core/skills/react/SKILL.md +132 -0
- package/.agents/core/skills/react/TROUBLESHOOTING.md +19 -0
- package/.agents/core/skills/react/VALIDATION.json +12 -0
- package/.agents/core/skills/react/react.md +93 -0
- package/.agents/core/skills/react/skill.yaml +10 -0
- package/.agents/core/skills/react-best-practices/SKILL.md +155 -0
- package/.agents/core/skills/react-best-practices/VALIDATION.json +12 -0
- package/.agents/core/skills/react-best-practices/skill.yaml +10 -0
- package/.agents/core/skills/redesign-audit/SKILL.md +117 -0
- package/.agents/core/skills/redesign-audit/VALIDATION.json +12 -0
- package/.agents/core/skills/redesign-audit/skill.yaml +8 -0
- package/.agents/core/skills/security/EXAMPLES.md +64 -0
- package/.agents/core/skills/security/SKILL.md +158 -0
- package/.agents/core/skills/security/TROUBLESHOOTING.md +19 -0
- package/.agents/core/skills/security/VALIDATION.json +12 -0
- package/.agents/core/skills/security/security.md +106 -0
- package/.agents/core/skills/security/skill.yaml +10 -0
- package/.agents/core/skills/soft-design/SKILL.md +108 -0
- package/.agents/core/skills/soft-design/VALIDATION.json +12 -0
- package/.agents/core/skills/soft-design/skill.yaml +8 -0
- package/.agents/core/skills/state-management/EXAMPLES.md +56 -0
- package/.agents/core/skills/state-management/SKILL.md +48 -0
- package/.agents/core/skills/state-management/TROUBLESHOOTING.md +18 -0
- package/.agents/core/skills/state-management/VALIDATION.json +11 -0
- package/.agents/core/skills/state-management/skill.yaml +22 -0
- package/.agents/core/skills/subagent-orchestrator/SKILL.md +100 -0
- package/.agents/core/skills/subagent-orchestrator/VALIDATION.json +12 -0
- package/.agents/core/skills/subagent-orchestrator/skill.yaml +8 -0
- package/.agents/core/skills/system-design/EXAMPLES.md +75 -0
- package/.agents/core/skills/system-design/SKILL.md +419 -0
- package/.agents/core/skills/system-design/TROUBLESHOOTING.md +19 -0
- package/.agents/core/skills/system-design/VALIDATION.json +12 -0
- package/.agents/core/skills/system-design/skill.yaml +13 -0
- package/.agents/core/skills/system-design/system-design.md +112 -0
- package/.agents/core/skills/testing/EXAMPLES.md +71 -0
- package/.agents/core/skills/testing/SKILL.md +70 -0
- package/.agents/core/skills/testing/TROUBLESHOOTING.md +18 -0
- package/.agents/core/skills/testing/VALIDATION.json +11 -0
- package/.agents/core/skills/testing/skill.yaml +26 -0
- package/.agents/core/skills/typescript/EXAMPLES.md +64 -0
- package/.agents/core/skills/typescript/SKILL.md +112 -0
- package/.agents/core/skills/typescript/TROUBLESHOOTING.md +19 -0
- package/.agents/core/skills/typescript/VALIDATION.json +12 -0
- package/.agents/core/skills/typescript/skill.yaml +10 -0
- package/.agents/core/skills/typescript/typescript.md +71 -0
- package/.agents/core/skills/ui-design/EXAMPLES.md +21 -0
- package/.agents/core/skills/ui-design/SKILL.md +124 -0
- package/.agents/core/skills/ui-design/TROUBLESHOOTING.md +19 -0
- package/.agents/core/skills/ui-design/VALIDATION.json +12 -0
- package/.agents/core/skills/ui-design/skill.yaml +10 -0
- package/.agents/core/skills/ui-design/ui.md +88 -0
- package/.agents/core/skills/ui-ux-pro/EXAMPLES.md +62 -0
- package/.agents/core/skills/ui-ux-pro/SKILL.md +375 -0
- package/.agents/core/skills/ui-ux-pro/TROUBLESHOOTING.md +19 -0
- package/.agents/core/skills/ui-ux-pro/VALIDATION.json +12 -0
- package/.agents/core/skills/ui-ux-pro/skill.yaml +13 -0
- package/.agents/core/skills/ux-design/EXAMPLES.md +36 -0
- package/.agents/core/skills/ux-design/SKILL.md +116 -0
- package/.agents/core/skills/ux-design/TROUBLESHOOTING.md +19 -0
- package/.agents/core/skills/ux-design/VALIDATION.json +12 -0
- package/.agents/core/skills/ux-design/skill.yaml +10 -0
- package/.agents/core/skills/ux-design/ux.md +80 -0
- package/.agents/core/skills/vercel-optimize/SKILL.md +83 -0
- package/.agents/core/skills/vercel-optimize/VALIDATION.json +12 -0
- package/.agents/core/skills/vercel-optimize/skill.yaml +10 -0
- package/.agents/core/skills/web-accessibility/EXAMPLES.md +39 -0
- package/.agents/core/skills/web-accessibility/SKILL.md +170 -0
- package/.agents/core/skills/web-accessibility/TROUBLESHOOTING.md +19 -0
- package/.agents/core/skills/web-accessibility/VALIDATION.json +12 -0
- package/.agents/core/skills/web-accessibility/accessibility.md +63 -0
- package/.agents/core/skills/web-accessibility/skill.yaml +10 -0
- package/.agents/ctx.js +370 -0
- package/.agents/generated/claude/skills/adapters/SKILL.md +126 -0
- package/.agents/generated/claude/skills/architecture-diagrams/SKILL.md +101 -0
- package/.agents/generated/claude/skills/brutalist-design/SKILL.md +145 -0
- package/.agents/generated/claude/skills/context-manager/SKILL.md +147 -0
- package/.agents/generated/claude/skills/context-os/SKILL.md +191 -0
- package/.agents/generated/claude/skills/database/SKILL.md +191 -0
- package/.agents/generated/claude/skills/ddd/SKILL.md +305 -0
- package/.agents/generated/claude/skills/decisions/SKILL.md +134 -0
- package/.agents/generated/claude/skills/docker/SKILL.md +135 -0
- package/.agents/generated/claude/skills/engineering-workflow/SKILL.md +414 -0
- package/.agents/generated/claude/skills/fastapi/SKILL.md +200 -0
- package/.agents/generated/claude/skills/gemini-precision/SKILL.md +161 -0
- package/.agents/generated/claude/skills/generators/SKILL.md +133 -0
- package/.agents/generated/claude/skills/graphify/SKILL.md +198 -0
- package/.agents/generated/claude/skills/gstack-roles/SKILL.md +184 -0
- package/.agents/generated/claude/skills/impeccable-design/SKILL.md +241 -0
- package/.agents/generated/claude/skills/interview-me/SKILL.md +90 -0
- package/.agents/generated/claude/skills/microservices/SKILL.md +218 -0
- package/.agents/generated/claude/skills/minimalist-design/SKILL.md +108 -0
- package/.agents/generated/claude/skills/nestjs/SKILL.md +195 -0
- package/.agents/generated/claude/skills/nextjs/SKILL.md +219 -0
- package/.agents/generated/claude/skills/node/SKILL.md +224 -0
- package/.agents/generated/claude/skills/performance/SKILL.md +121 -0
- package/.agents/generated/claude/skills/ponytail-mindset/SKILL.md +252 -0
- package/.agents/generated/claude/skills/react/SKILL.md +227 -0
- package/.agents/generated/claude/skills/react-best-practices/SKILL.md +146 -0
- package/.agents/generated/claude/skills/redesign-audit/SKILL.md +112 -0
- package/.agents/generated/claude/skills/security/SKILL.md +237 -0
- package/.agents/generated/claude/skills/soft-design/SKILL.md +103 -0
- package/.agents/generated/claude/skills/state-management/SKILL.md +120 -0
- package/.agents/generated/claude/skills/subagent-orchestrator/SKILL.md +93 -0
- package/.agents/generated/claude/skills/system-design/SKILL.md +507 -0
- package/.agents/generated/claude/skills/testing/SKILL.md +157 -0
- package/.agents/generated/claude/skills/typescript/SKILL.md +192 -0
- package/.agents/generated/claude/skills/ui-design/SKILL.md +161 -0
- package/.agents/generated/claude/skills/ui-ux-pro/SKILL.md +451 -0
- package/.agents/generated/claude/skills/ux-design/SKILL.md +168 -0
- package/.agents/generated/claude/skills/vercel-optimize/SKILL.md +76 -0
- package/.agents/generated/claude/skills/web-accessibility/SKILL.md +225 -0
- package/.agents/generated/gemini/skills/adapters/SKILL.md +135 -0
- package/.agents/generated/gemini/skills/architecture-diagrams/SKILL.md +107 -0
- package/.agents/generated/gemini/skills/brutalist-design/SKILL.md +151 -0
- package/.agents/generated/gemini/skills/context-manager/SKILL.md +156 -0
- package/.agents/generated/gemini/skills/context-os/SKILL.md +200 -0
- package/.agents/generated/gemini/skills/database/SKILL.md +200 -0
- package/.agents/generated/gemini/skills/ddd/SKILL.md +314 -0
- package/.agents/generated/gemini/skills/decisions/SKILL.md +143 -0
- package/.agents/generated/gemini/skills/docker/SKILL.md +144 -0
- package/.agents/generated/gemini/skills/engineering-workflow/SKILL.md +423 -0
- package/.agents/generated/gemini/skills/fastapi/SKILL.md +209 -0
- package/.agents/generated/gemini/skills/gemini-precision/SKILL.md +167 -0
- package/.agents/generated/gemini/skills/generators/SKILL.md +142 -0
- package/.agents/generated/gemini/skills/graphify/SKILL.md +205 -0
- package/.agents/generated/gemini/skills/gstack-roles/SKILL.md +193 -0
- package/.agents/generated/gemini/skills/impeccable-design/SKILL.md +250 -0
- package/.agents/generated/gemini/skills/interview-me/SKILL.md +96 -0
- package/.agents/generated/gemini/skills/microservices/SKILL.md +227 -0
- package/.agents/generated/gemini/skills/minimalist-design/SKILL.md +114 -0
- package/.agents/generated/gemini/skills/nestjs/SKILL.md +204 -0
- package/.agents/generated/gemini/skills/nextjs/SKILL.md +298 -0
- package/.agents/generated/gemini/skills/node/SKILL.md +323 -0
- package/.agents/generated/gemini/skills/performance/SKILL.md +185 -0
- package/.agents/generated/gemini/skills/ponytail-mindset/SKILL.md +261 -0
- package/.agents/generated/gemini/skills/react/SKILL.md +332 -0
- package/.agents/generated/gemini/skills/react-best-practices/SKILL.md +152 -0
- package/.agents/generated/gemini/skills/redesign-audit/SKILL.md +118 -0
- package/.agents/generated/gemini/skills/security/SKILL.md +355 -0
- package/.agents/generated/gemini/skills/soft-design/SKILL.md +109 -0
- package/.agents/generated/gemini/skills/state-management/SKILL.md +129 -0
- package/.agents/generated/gemini/skills/subagent-orchestrator/SKILL.md +99 -0
- package/.agents/generated/gemini/skills/system-design/SKILL.md +631 -0
- package/.agents/generated/gemini/skills/testing/SKILL.md +166 -0
- package/.agents/generated/gemini/skills/typescript/SKILL.md +275 -0
- package/.agents/generated/gemini/skills/ui-design/SKILL.md +170 -0
- package/.agents/generated/gemini/skills/ui-ux-pro/SKILL.md +460 -0
- package/.agents/generated/gemini/skills/ux-design/SKILL.md +177 -0
- package/.agents/generated/gemini/skills/vercel-optimize/SKILL.md +82 -0
- package/.agents/generated/gemini/skills/web-accessibility/SKILL.md +300 -0
- package/.agents/mcp/runtime.py +454 -0
- package/.agents/mcp/server.mjs +189373 -0
- package/.agents/plugins.js +574 -0
- package/.agents/profiles.js +267 -0
- package/.agents/resolver.js +336 -0
- package/.agents/skills-index.json +200 -0
- package/.agents/skills.json +6 -0
- package/.agents/validate.js +500 -0
- package/LICENSE +21 -0
- package/README.md +415 -0
- package/benchmarks/gemini-issues.js +533 -0
- package/bin/index.js +458 -0
- package/package.json +70 -0
- package/registry.json +53 -0
- package/registry.schema.json +32 -0
|
@@ -0,0 +1,451 @@
|
|
|
1
|
+
# ui-ux-pro
|
|
2
|
+
|
|
3
|
+
## Overview
|
|
4
|
+
|
|
5
|
+
Professional UI/UX design standard banning AI clichés (pure black #000000, purple-blue gradients, card-in-card nesting). Enforces Tailwind CSS v4 @theme, semantic HSL palettes, and refined micro-interactions.
|
|
6
|
+
|
|
7
|
+
## When to Use
|
|
8
|
+
|
|
9
|
+
Activate during planning and implementation of modern web user interfaces, landing pages, SaaS dashboards, and consumer-facing web apps.
|
|
10
|
+
|
|
11
|
+
## Rules & Patterns
|
|
12
|
+
|
|
13
|
+
Inspired by [nextlevelbuilder/ui-ux-pro-max-skill](https://github.com/nextlevelbuilder/ui-ux-pro-max-skill).
|
|
14
|
+
|
|
15
|
+
## Core Principle
|
|
16
|
+
|
|
17
|
+
> Great design is invisible. Bad design is obvious. You will never produce obvious AI design.
|
|
18
|
+
|
|
19
|
+
## Pre-flight Check & Brief Inference
|
|
20
|
+
|
|
21
|
+
Before starting a design implementation:
|
|
22
|
+
|
|
23
|
+
1. Infer the unwritten constraints of the domain (e.g., if it's a dev tool, assume dark mode, monospaced numbers, dense layout).
|
|
24
|
+
2. Propose a "Design Brief Inference" summarizing the intended aesthetic.
|
|
25
|
+
|
|
26
|
+
---
|
|
27
|
+
|
|
28
|
+
## [FAIL] Absolute Prohibitions (Never Do These)
|
|
29
|
+
|
|
30
|
+
### Typography Anti-Patterns
|
|
31
|
+
|
|
32
|
+
- **NEVER** use Arial, Helvetica, or system-ui defaults as primary fonts
|
|
33
|
+
- **NEVER** use Inter as the ONLY font — it is the #1 "AI-generated" visual tell when used alone
|
|
34
|
+
- [PASS] **CORRECT**: If using Inter for primary UI text, ALWAYS pair it with a strong monospace font like `JetBrains Mono` for numbers, code blocks, and technical accents to create a premium SaaS aesthetic (see Vercel, Linear)
|
|
35
|
+
- [FAIL] **WRONG**: Inter for headings, body, labels, numbers, captions — everything
|
|
36
|
+
- **NEVER** mix more than 2 font families
|
|
37
|
+
- **ALWAYS** import proper fonts from Google Fonts or similar
|
|
38
|
+
|
|
39
|
+
### Color Anti-Patterns
|
|
40
|
+
|
|
41
|
+
- **NEVER** use pure black `#000000` — always tint toward brand hue (e.g. `#0A0A0F`)
|
|
42
|
+
- **NEVER** use pure gray `#808080` — tint it (e.g. `#6B7280` has blue undertones)
|
|
43
|
+
- **NEVER** use purple-to-blue gradients — it is the #1 "AI generated" visual tell
|
|
44
|
+
- **NEVER** use neon colors for primary UI (only accents, sparingly)
|
|
45
|
+
- **ALWAYS** use HSL-based semantic palettes with clear naming
|
|
46
|
+
|
|
47
|
+
### Layout Anti-Patterns
|
|
48
|
+
|
|
49
|
+
- **NEVER** nest cards inside cards (card-in-card = instant slop flag)
|
|
50
|
+
- **NEVER** put a rounded-square icon tile above every heading
|
|
51
|
+
- **NEVER** center-align long paragraphs (> 2 lines)
|
|
52
|
+
- **NEVER** use gray text on colored backgrounds (contrast failure)
|
|
53
|
+
|
|
54
|
+
### Animation Anti-Patterns
|
|
55
|
+
|
|
56
|
+
- **NEVER** use bounce or elastic easing in raw CSS — it feels dated (circa 2014)
|
|
57
|
+
- **NEVER** add animations just to show they work
|
|
58
|
+
- **ALWAYS** use `ease-out` for enter, `ease-in` for exit, `ease-in-out` for continuous
|
|
59
|
+
|
|
60
|
+
---
|
|
61
|
+
|
|
62
|
+
## [PASS] Required Standards
|
|
63
|
+
|
|
64
|
+
### Accessibility Checklist
|
|
65
|
+
|
|
66
|
+
Before shipping any UI, verify:
|
|
67
|
+
|
|
68
|
+
- [ ] Text contrast ratio ≥ 4.5:1 for normal text (WCAG AA)
|
|
69
|
+
- [ ] Text contrast ratio ≥ 3:1 for large text (≥ 18px bold or ≥ 24px)
|
|
70
|
+
- [ ] All interactive elements have `aria-label` or visible text
|
|
71
|
+
- [ ] Touch targets are minimum 44×44px (48×48px recommended)
|
|
72
|
+
- [ ] Focus states are visible and styled (not just browser default)
|
|
73
|
+
- [ ] Images have meaningful `alt` text (or `alt=""` if decorative)
|
|
74
|
+
- [ ] Form fields have associated `<label>` elements
|
|
75
|
+
- [ ] Keyboard navigation works without mouse
|
|
76
|
+
- [ ] No color alone conveys information (use icons + text too)
|
|
77
|
+
|
|
78
|
+
### Semantic Color Palette — shadcn/ui & Tailwind CSS v4 Format
|
|
79
|
+
|
|
80
|
+
Generate palettes in the format compatible with shadcn/ui's `globals.css`. Always support both light and dark themes as this is the de-facto standard:
|
|
81
|
+
|
|
82
|
+
```css
|
|
83
|
+
@layer base {
|
|
84
|
+
:root {
|
|
85
|
+
--background: 220 13% 98%;
|
|
86
|
+
--foreground: 220 13% 9%;
|
|
87
|
+
--card: 220 13% 100%;
|
|
88
|
+
--card-foreground: 220 13% 9%;
|
|
89
|
+
--muted: 220 13% 95%;
|
|
90
|
+
--muted-foreground: 220 9% 46%;
|
|
91
|
+
--border: 220 13% 90%;
|
|
92
|
+
--input: 220 13% 90%;
|
|
93
|
+
--primary: 258 90% 56%;
|
|
94
|
+
--primary-foreground: 0 0% 100%;
|
|
95
|
+
--secondary: 220 13% 94%;
|
|
96
|
+
--secondary-foreground: 220 13% 9%;
|
|
97
|
+
--accent: 258 90% 56%;
|
|
98
|
+
--accent-foreground: 0 0% 100%;
|
|
99
|
+
--destructive: 0 84% 60%;
|
|
100
|
+
--destructive-foreground: 0 0% 100%;
|
|
101
|
+
--ring: 258 90% 56%;
|
|
102
|
+
--radius: 0.5rem;
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
.dark {
|
|
106
|
+
--background: 220 13% 9%;
|
|
107
|
+
--foreground: 210 40% 98%;
|
|
108
|
+
--card: 220 11% 13%;
|
|
109
|
+
--card-foreground: 210 40% 98%;
|
|
110
|
+
--muted: 220 11% 16%;
|
|
111
|
+
--muted-foreground: 215 16% 65%;
|
|
112
|
+
--border: 217 19% 22%;
|
|
113
|
+
--input: 217 19% 22%;
|
|
114
|
+
--primary: 258 90% 66%;
|
|
115
|
+
--primary-foreground: 0 0% 100%;
|
|
116
|
+
--secondary: 220 11% 18%;
|
|
117
|
+
--secondary-foreground: 210 40% 98%;
|
|
118
|
+
--accent: 258 90% 66%;
|
|
119
|
+
--accent-foreground: 0 0% 100%;
|
|
120
|
+
--destructive: 0 84% 60%;
|
|
121
|
+
--destructive-foreground: 0 0% 100%;
|
|
122
|
+
--ring: 258 90% 66%;
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
> **Rule**: NEVER define colors as raw hex/rgb. ALWAYS use HSL space values so Tailwind opacity modifiers (`text-primary/80`) work correctly.
|
|
128
|
+
|
|
129
|
+
### Spacing System (Tailwind)
|
|
130
|
+
|
|
131
|
+
Use Tailwind spacing utilities. **Never use arbitrary values** like `gap-[17px]`:
|
|
132
|
+
|
|
133
|
+
- `gap-1` / `p-1` — 4px micro gaps
|
|
134
|
+
- `gap-2` / `p-2` — 8px component internal
|
|
135
|
+
- `gap-4` / `p-4` — 16px standard padding
|
|
136
|
+
- `gap-6` / `p-6` — 24px section gaps
|
|
137
|
+
- `gap-8` / `p-8` — 32px block separators
|
|
138
|
+
- `gap-12` / `py-12` — 48px section separators
|
|
139
|
+
- `gap-20` / `py-20` — 80px hero spacing
|
|
140
|
+
|
|
141
|
+
### Typography Scale
|
|
142
|
+
|
|
143
|
+
Use a modular type scale (1.25 or 1.333 ratio):
|
|
144
|
+
|
|
145
|
+
```
|
|
146
|
+
xs: 11px / 0.688rem (text-xs)
|
|
147
|
+
sm: 13px / 0.813rem (text-sm)
|
|
148
|
+
base: 16px / 1rem (text-base)
|
|
149
|
+
lg: 20px / 1.25rem (text-lg)
|
|
150
|
+
xl: 24px / 1.5rem (text-xl)
|
|
151
|
+
2xl: 32px / 2rem (text-2xl)
|
|
152
|
+
3xl: 40px / 2.5rem (text-3xl)
|
|
153
|
+
4xl: 56px / 3.5rem (text-4xl)
|
|
154
|
+
```
|
|
155
|
+
|
|
156
|
+
Typography utilities:
|
|
157
|
+
|
|
158
|
+
- Long headlines: use `text-balance` (prevents orphan words)
|
|
159
|
+
- Body paragraphs: use `text-pretty` (smart line breaks)
|
|
160
|
+
- Number tables: use `tabular-nums` class (not custom CSS)
|
|
161
|
+
|
|
162
|
+
---
|
|
163
|
+
|
|
164
|
+
## Design Parameters (Taste Equalizers)
|
|
165
|
+
|
|
166
|
+
Always set and document the following three parameters (1-10 scale) before starting any design task, to escape generic AI defaults:
|
|
167
|
+
|
|
168
|
+
- **DESIGN_VARIANCE (1-10)**: Grid and Layout structures.
|
|
169
|
+
- 1-3 = Clean, centered layouts, standard grids (Enterprise, Docs).
|
|
170
|
+
- 4-7 = Asymmetric containers, off-grid elements, sticky sidebars (SaaS, Creative tools).
|
|
171
|
+
- 8-10 = Broken grids, overlapping items, editorial style (Portfolios, Agencies).
|
|
172
|
+
- **MOTION_INTENSITY (1-10)**: Animation depth.
|
|
173
|
+
- 1-3 = Basic hover states and micro-interactions only.
|
|
174
|
+
- 4-7 = Page transitions, enter/exit animations, list staggers.
|
|
175
|
+
- 8-10 = Magnetic elements, complex scroll-triggered animations (GSAP territory).
|
|
176
|
+
- **VISUAL_DENSITY (1-10)**: Information architecture.
|
|
177
|
+
- 1-3 = Luxury, airy, massive whitespace (Landing pages).
|
|
178
|
+
- 4-7 = Standard product density (Consumer apps).
|
|
179
|
+
- 8-10 = Dense, compact, dashboard-style (Pro tools, IDEs, Trading platforms).
|
|
180
|
+
|
|
181
|
+
## Adaptive Aesthetics (Project Mapping)
|
|
182
|
+
|
|
183
|
+
Select the base aesthetic based on the project domain:
|
|
184
|
+
|
|
185
|
+
- **Fintech / Enterprise**: Swiss Minimalism, Neumorphism (High trust, clean, DESIGN_VARIANCE: 2-4).
|
|
186
|
+
- **AI Tools / DevTools**: Dark OLED Luxury, Glassmorphism (Modern, tech-forward, DESIGN_VARIANCE: 5-7).
|
|
187
|
+
- **Creative / Portfolios**: Brutalism, Maximalist, Aurora (Bold, expressive, DESIGN_VARIANCE: 8-10).
|
|
188
|
+
|
|
189
|
+
## Design Memory & Consistency
|
|
190
|
+
|
|
191
|
+
**CRITICAL**: You must preserve design decisions between sessions to avoid stylistic drift.
|
|
192
|
+
Whenever you establish core UI tokens (fonts, color scales, border radii, equalizers), write them to `.interface-design/system.md`. In subsequent sessions, ALWAYS read this file before generating new components.
|
|
193
|
+
|
|
194
|
+
---
|
|
195
|
+
|
|
196
|
+
## Design Domains
|
|
197
|
+
|
|
198
|
+
### Product UI (SaaS / Dashboard / App)
|
|
199
|
+
|
|
200
|
+
- Functional over decorative
|
|
201
|
+
- Dense information where needed (use compact variants)
|
|
202
|
+
- Table zebra striping: use `5%` opacity, not hard borders
|
|
203
|
+
- Data visualization: prefer Chart.js or Recharts, label all axes
|
|
204
|
+
- Loading states: skeleton screens, never spinners alone
|
|
205
|
+
- **Empty States**: ALWAYS design the empty state for every list/table/feed. Never leave a blank screen. Include:
|
|
206
|
+
1. An illustration or meaningful icon
|
|
207
|
+
2. A helpful, context-aware message ("No results yet" not "No data")
|
|
208
|
+
3. A clear primary action CTA ("Create your first project →")
|
|
209
|
+
|
|
210
|
+
### Marketing / Landing Pages
|
|
211
|
+
|
|
212
|
+
- Hero: full viewport height, one clear CTA
|
|
213
|
+
- Social proof above the fold when possible
|
|
214
|
+
- CTA buttons: filled primary + ghost secondary (never two filled)
|
|
215
|
+
- Testimonials: real photos, full name, company
|
|
216
|
+
|
|
217
|
+
### Forms
|
|
218
|
+
|
|
219
|
+
- Label above field (not placeholder-as-label)
|
|
220
|
+
- Inline validation (show errors on blur, not on submit)
|
|
221
|
+
- Group related fields visually
|
|
222
|
+
- Progress indicator for multi-step flows
|
|
223
|
+
|
|
224
|
+
---
|
|
225
|
+
|
|
226
|
+
## Image-First Pipeline (Design Sprints)
|
|
227
|
+
|
|
228
|
+
If you have access to image generation tools (e.g., DALL-E, Midjourney integrations) and the task involves creating a net-new UI page or component, follow the **Image-First Pipeline**:
|
|
229
|
+
|
|
230
|
+
1. **Generate**: Create 1-3 reference images ("mockups", "brand boards") of the desired UI using image generation.
|
|
231
|
+
2. **Analyze**: Review the generated images for layout, spacing, and typography choices.
|
|
232
|
+
3. **Implement**: Write the code to match the aesthetic of the generated reference images.
|
|
233
|
+
|
|
234
|
+
_Do not skip straight to code for major UI overhauls without a visual reference if generation is available._
|
|
235
|
+
|
|
236
|
+
---
|
|
237
|
+
|
|
238
|
+
## UI Style Toolkit
|
|
239
|
+
|
|
240
|
+
### Glassmorphism (Use Sparingly)
|
|
241
|
+
|
|
242
|
+
```css
|
|
243
|
+
background: rgba(255, 255, 255, 0.05);
|
|
244
|
+
backdrop-filter: blur(20px);
|
|
245
|
+
border: 1px solid rgba(255, 255, 255, 0.1);
|
|
246
|
+
```
|
|
247
|
+
|
|
248
|
+
### Subtle Shadows (Dark UI)
|
|
249
|
+
|
|
250
|
+
```css
|
|
251
|
+
/* Card elevation */
|
|
252
|
+
box-shadow: 0 1px 3px rgba(0,0,0,0.4), 0 1px 2px rgba(0,0,0,0.6);
|
|
253
|
+
/* Floating element */
|
|
254
|
+
box-shadow: 0 10px 40px rgba(0,0,0,0.5), 0 0 0 1px rgba(255,255,255,0.05);
|
|
255
|
+
```
|
|
256
|
+
|
|
257
|
+
### Micro-animations
|
|
258
|
+
|
|
259
|
+
**CSS (for simple, lightweight elements):**
|
|
260
|
+
|
|
261
|
+
```css
|
|
262
|
+
/* Standard transition */
|
|
263
|
+
transition: all 0.15s ease-out;
|
|
264
|
+
/* Hover lift */
|
|
265
|
+
transform: translateY(-2px);
|
|
266
|
+
/* Button press */
|
|
267
|
+
transform: scale(0.97);
|
|
268
|
+
/* Fade in */
|
|
269
|
+
@keyframes fadeIn { from { opacity: 0; transform: translateY(8px); } }
|
|
270
|
+
```
|
|
271
|
+
|
|
272
|
+
**Framer Motion (for complex layout transitions and orchestration):**
|
|
273
|
+
|
|
274
|
+
For complex UI like modals, popovers, layout shifts, and multi-element orchestration, prefer Framer Motion over raw CSS keyframes. Keep animations quick and purposeful:
|
|
275
|
+
|
|
276
|
+
```tsx
|
|
277
|
+
// [GOOD] Modal entrance — use highly damped spring for physical feel (like Vercel/Linear)
|
|
278
|
+
<motion.div
|
|
279
|
+
initial={{ opacity: 0, scale: 0.96, y: 8 }}
|
|
280
|
+
animate={{ opacity: 1, scale: 1, y: 0 }}
|
|
281
|
+
exit={{ opacity: 0, scale: 0.96, y: 8 }}
|
|
282
|
+
transition={{ type: "spring", stiffness: 400, damping: 30 }}
|
|
283
|
+
/>
|
|
284
|
+
|
|
285
|
+
// [GOOD] List item stagger
|
|
286
|
+
<motion.li
|
|
287
|
+
initial={{ opacity: 0, x: -8 }}
|
|
288
|
+
animate={{ opacity: 1, x: 0 }}
|
|
289
|
+
transition={{ duration: 0.2, ease: "easeOut" }}
|
|
290
|
+
/>
|
|
291
|
+
|
|
292
|
+
// [BAD] Never use low damping (bouncy feel)
|
|
293
|
+
transition={{ type: "spring", stiffness: 200, damping: 8 }} // WRONG
|
|
294
|
+
```
|
|
295
|
+
|
|
296
|
+
**Rule**: `duration` must always be `< 0.3s` for micro-interactions. Respect `prefers-reduced-motion`.
|
|
297
|
+
|
|
298
|
+
---
|
|
299
|
+
|
|
300
|
+
## Domain Search Guide
|
|
301
|
+
|
|
302
|
+
When choosing styles, reference these domains:
|
|
303
|
+
|
|
304
|
+
- `style` — UI style options (glassmorphism, neobrutalism, minimalism)
|
|
305
|
+
- `typography` — Font pairing recommendations
|
|
306
|
+
- `color` — Color palettes by product type
|
|
307
|
+
- `ux` — Best practices and anti-patterns
|
|
308
|
+
- `gsap` — Animation patterns by intensity (hover, scroll, transition)
|
|
309
|
+
|
|
310
|
+
## Role Integration
|
|
311
|
+
|
|
312
|
+
---
|
|
313
|
+
|
|
314
|
+
## Tailwind CSS v4 (CSS-First Modern Architecture)
|
|
315
|
+
|
|
316
|
+
In Tailwind CSS v4, styling configuration is native CSS without `tailwind.config.js`:
|
|
317
|
+
|
|
318
|
+
```css
|
|
319
|
+
@import "tailwindcss";
|
|
320
|
+
|
|
321
|
+
@theme {
|
|
322
|
+
--color-primary: #3b82f6;
|
|
323
|
+
--color-primary-foreground: #ffffff;
|
|
324
|
+
--color-surface: #0f172a;
|
|
325
|
+
--color-surface-muted: #1e293b;
|
|
326
|
+
--font-sans: "Inter", -apple-system, sans-serif;
|
|
327
|
+
--font-mono: "JetBrains Mono", monospace;
|
|
328
|
+
}
|
|
329
|
+
```
|
|
330
|
+
|
|
331
|
+
- **Zero JavaScript Config**: Define theme variables directly in CSS `@theme`.
|
|
332
|
+
- **Native CSS Variables**: Use `var(--color-...)` for dynamic runtime theming and dark mode.
|
|
333
|
+
- **Dynamic Viewports**: Use `h-dvh` and `min-h-dvh` for full-height layouts that behave properly on mobile browsers.
|
|
334
|
+
|
|
335
|
+
---
|
|
336
|
+
|
|
337
|
+
## Core Web Vitals 2026: INP (Interaction to Next Paint)
|
|
338
|
+
|
|
339
|
+
- **Target**: INP < 200ms (replaces legacy FID).
|
|
340
|
+
- **Rule**: Never block the main thread for > 50ms during click, keypress, or tap event handlers.
|
|
341
|
+
- Wrap heavy UI updates in `startTransition`:
|
|
342
|
+
|
|
343
|
+
```tsx
|
|
344
|
+
startTransition(() => {
|
|
345
|
+
setFilter(newFilter);
|
|
346
|
+
});
|
|
347
|
+
```
|
|
348
|
+
|
|
349
|
+
- Use Web Workers or chunks for heavy client-side filtering and data processing.
|
|
350
|
+
|
|
351
|
+
---
|
|
352
|
+
|
|
353
|
+
## Code Examples
|
|
354
|
+
|
|
355
|
+
See `EXAMPLES.md` for detailed code examples.
|
|
356
|
+
|
|
357
|
+
## Validation Checklist
|
|
358
|
+
|
|
359
|
+
What to verify during the review phase before completing the task.
|
|
360
|
+
|
|
361
|
+
## Common Mistakes
|
|
362
|
+
|
|
363
|
+
Anti-patterns and things to explicitly avoid. See `TROUBLESHOOTING.md`.
|
|
364
|
+
|
|
365
|
+
## Integration Notes
|
|
366
|
+
|
|
367
|
+
How this skill interacts with other skills.
|
|
368
|
+
|
|
369
|
+
|
|
370
|
+
# UI/UX Pro Examples — Anti-patterns vs ContextOS Standard
|
|
371
|
+
|
|
372
|
+
## Example 1: Accessible Icon Button with Visible Focus States
|
|
373
|
+
|
|
374
|
+
### Anti-pattern: Anti-pattern (Missing accessible name and arbitrary color values)
|
|
375
|
+
|
|
376
|
+
```tsx
|
|
377
|
+
// BAD: inaccessible to screen readers, missing focus ring, arbitrary hex
|
|
378
|
+
<button className="bg-[#5a4fcf] p-[7px] rounded-[5px]" onClick={onClose}>
|
|
379
|
+
<XIcon />
|
|
380
|
+
</button>
|
|
381
|
+
```
|
|
382
|
+
|
|
383
|
+
### Best practice: ContextOS Standard (Semantic token scales & ARIA label)
|
|
384
|
+
|
|
385
|
+
```tsx
|
|
386
|
+
// GOOD: full keyboard accessibility, semantic tokens, focus-visible ring
|
|
387
|
+
<button
|
|
388
|
+
type="button"
|
|
389
|
+
aria-label="Close modal dialog"
|
|
390
|
+
onClick={onClose}
|
|
391
|
+
className="inline-flex items-center justify-center rounded-lg p-2 text-muted-foreground transition-colors hover:bg-accent hover:text-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2"
|
|
392
|
+
>
|
|
393
|
+
<X className="h-4 w-4" aria-hidden="true" />
|
|
394
|
+
</button>
|
|
395
|
+
```
|
|
396
|
+
|
|
397
|
+
---
|
|
398
|
+
|
|
399
|
+
## Example 2: Stat Card Hierarchy
|
|
400
|
+
|
|
401
|
+
### Anti-pattern: Anti-pattern (Flat low-contrast layout with purple-gradient cliche)
|
|
402
|
+
|
|
403
|
+
```tsx
|
|
404
|
+
// BAD: cliche AI gradient, poor typographic hierarchy
|
|
405
|
+
<div className="bg-gradient-to-r from-purple-500 to-blue-500 p-4 rounded-xl text-white">
|
|
406
|
+
<div>Total Revenue</div>
|
|
407
|
+
<div className="text-xl">$45,231.89</div>
|
|
408
|
+
</div>
|
|
409
|
+
```
|
|
410
|
+
|
|
411
|
+
### Best practice: ContextOS Standard (Refined editorial typography & subtle depth)
|
|
412
|
+
|
|
413
|
+
```tsx
|
|
414
|
+
// GOOD: high contrast, monospace numerical accent, subtle border
|
|
415
|
+
<div className="rounded-xl border border-border/50 bg-card p-6 shadow-sm transition-all hover:shadow-md">
|
|
416
|
+
<div className="flex items-center justify-between">
|
|
417
|
+
<span className="text-xs font-medium uppercase tracking-wider text-muted-foreground">
|
|
418
|
+
Total Revenue
|
|
419
|
+
</span>
|
|
420
|
+
<TrendingUp className="h-4 w-4 text-emerald-500" aria-hidden="true" />
|
|
421
|
+
</div>
|
|
422
|
+
<div className="mt-3 flex items-baseline gap-2">
|
|
423
|
+
<span className="font-mono text-3xl font-semibold tracking-tight text-foreground">
|
|
424
|
+
$45,231.89
|
|
425
|
+
</span>
|
|
426
|
+
<span className="font-mono text-xs font-medium text-emerald-600 dark:text-emerald-400">
|
|
427
|
+
+14.2%
|
|
428
|
+
</span>
|
|
429
|
+
</div>
|
|
430
|
+
</div>
|
|
431
|
+
```
|
|
432
|
+
|
|
433
|
+
# ui-ux-pro Troubleshooting & Common Mistakes
|
|
434
|
+
|
|
435
|
+
## 1. Obvious AI Design Tells
|
|
436
|
+
|
|
437
|
+
- **Symptom**: The interface immediately looks like a generic AI prototype.
|
|
438
|
+
- **Root Cause**: Using Inter alone, pure black (#000000), purple-blue gradients, and rounded icon squares above every title.
|
|
439
|
+
- **Fix**: Use tinted backgrounds (#090A0F), pair primary font with JetBrains Mono for code/numbers, use subtle border highlights.
|
|
440
|
+
|
|
441
|
+
## 2. Contrast Failures in Secondary Elements
|
|
442
|
+
|
|
443
|
+
- **Symptom**: Captions, timestamps, and borders are invisible or impossible to read.
|
|
444
|
+
- **Root Cause**: Using flat #666 or #444 grays without testing against actual background luminance.
|
|
445
|
+
- **Fix**: Always test contrast ratios (minimum 4.5:1 for body, 3:1 for graphical boundaries) using semantic theme tokens.
|
|
446
|
+
|
|
447
|
+
## 3. Nesting Cards Inside Cards
|
|
448
|
+
|
|
449
|
+
- **Symptom**: Visual claustrophobia and slop aesthetic.
|
|
450
|
+
- **Root Cause**: Putting bordered cards inside other bordered cards.
|
|
451
|
+
- **Fix**: Flatten the hierarchy. Use background surface contrast and negative space instead of border-in-border nesting.
|
|
@@ -0,0 +1,168 @@
|
|
|
1
|
+
# UX Design
|
|
2
|
+
|
|
3
|
+
## Overview
|
|
4
|
+
|
|
5
|
+
User experience and interaction design standard. Enforces progressive disclosure, predictable user flows, designed empty/loading/error states, form usability, and keyboard navigation ergonomics.
|
|
6
|
+
|
|
7
|
+
## When to Use
|
|
8
|
+
|
|
9
|
+
Activate when designing complex multi-step workflows, onboarding funnels, form validation feedback, error recovery flows, and user journeys.
|
|
10
|
+
|
|
11
|
+
## Rules & Patterns
|
|
12
|
+
<!-- Source: ux.md -->
|
|
13
|
+
|
|
14
|
+
## UX Design — Best Practices
|
|
15
|
+
|
|
16
|
+
## Information Architecture
|
|
17
|
+
|
|
18
|
+
- **Mental models** — organize content the way users think, not the way your code is structured
|
|
19
|
+
- **Card sorting** — group features into logical categories
|
|
20
|
+
- **Navigation structure** — no more than 3 clicks to any page
|
|
21
|
+
- **Naming** — use user's language, not internal jargon
|
|
22
|
+
|
|
23
|
+
## User Flows
|
|
24
|
+
|
|
25
|
+
### Design every state
|
|
26
|
+
|
|
27
|
+
Every screen has 5 states. Design ALL of them:
|
|
28
|
+
|
|
29
|
+
1. **Empty state** — first visit, no data yet. Include CTA to get started
|
|
30
|
+
2. **Loading state** — skeleton screens > spinners
|
|
31
|
+
3. **Partial state** — some data, not complete
|
|
32
|
+
4. **Ideal state** — normal usage with data
|
|
33
|
+
5. **Error state** — what went wrong and how to fix it
|
|
34
|
+
|
|
35
|
+
### Reduce cognitive load
|
|
36
|
+
|
|
37
|
+
- **Progressive disclosure** — show only what's needed now
|
|
38
|
+
- **Sensible defaults** — pre-fill what you can
|
|
39
|
+
- **Inline help** — tooltips and contextual guidance
|
|
40
|
+
- **Confirmation for destructive actions** — but NOT for every action
|
|
41
|
+
|
|
42
|
+
## Forms UX
|
|
43
|
+
|
|
44
|
+
- Show progress for multi-step forms
|
|
45
|
+
- Validate inline (on blur), not on submit
|
|
46
|
+
- Show password requirements as the user types
|
|
47
|
+
- Auto-focus the first input
|
|
48
|
+
- Use appropriate input types (email, tel, date)
|
|
49
|
+
- Disable submit button only when form is submitting, never as "validation"
|
|
50
|
+
|
|
51
|
+
## Onboarding
|
|
52
|
+
|
|
53
|
+
- **Quick win** — let users see value within 30 seconds
|
|
54
|
+
- **Minimal signup** — only ask for what's absolutely needed
|
|
55
|
+
- **Progressive onboarding** — teach features as users encounter them
|
|
56
|
+
- **Skip option** — always let users skip tutorials
|
|
57
|
+
|
|
58
|
+
## Feedback
|
|
59
|
+
|
|
60
|
+
- Every action needs feedback (success, error, pending)
|
|
61
|
+
- Use toast notifications for non-blocking feedback
|
|
62
|
+
- Use inline messages for form validation
|
|
63
|
+
- Loading states should be < 300ms before showing (avoid flash)
|
|
64
|
+
- Optimistic UI for fast-perceived actions
|
|
65
|
+
|
|
66
|
+
## Mobile UX
|
|
67
|
+
|
|
68
|
+
- Touch targets: minimum 44x44px
|
|
69
|
+
- Thumb zones — place primary actions within easy reach
|
|
70
|
+
- Bottom navigation for core actions
|
|
71
|
+
- Pull-to-refresh for content lists
|
|
72
|
+
- Haptic feedback for important actions
|
|
73
|
+
|
|
74
|
+
## Psychology Principles
|
|
75
|
+
|
|
76
|
+
- **Fitts's Law** — make important targets large and close
|
|
77
|
+
- **Hick's Law** — reduce choices to reduce decision time
|
|
78
|
+
- **Jakob's Law** — users prefer familiar patterns
|
|
79
|
+
- **Peak-End Rule** — make the last interaction great
|
|
80
|
+
- **Aesthetic-Usability Effect** — beautiful things are perceived as easier to use
|
|
81
|
+
|
|
82
|
+
## Usability Heuristics (Nielsen)
|
|
83
|
+
|
|
84
|
+
1. Visibility of system status
|
|
85
|
+
2. Match between system and real world
|
|
86
|
+
3. User control and freedom (undo, escape)
|
|
87
|
+
4. Consistency and standards
|
|
88
|
+
5. Error prevention
|
|
89
|
+
6. Recognition rather than recall
|
|
90
|
+
7. Flexibility and efficiency of use
|
|
91
|
+
8. Aesthetic and minimalist design
|
|
92
|
+
9. Help users recognize and recover from errors
|
|
93
|
+
10. Help and documentation
|
|
94
|
+
|
|
95
|
+
|
|
96
|
+
## Code Examples
|
|
97
|
+
|
|
98
|
+
See `EXAMPLES.md` for detailed code examples.
|
|
99
|
+
|
|
100
|
+
## Validation Checklist
|
|
101
|
+
|
|
102
|
+
What to verify during the review phase before completing the task.
|
|
103
|
+
|
|
104
|
+
## Common Mistakes
|
|
105
|
+
|
|
106
|
+
Anti-patterns and things to explicitly avoid. See `TROUBLESHOOTING.md`.
|
|
107
|
+
|
|
108
|
+
## Integration Notes
|
|
109
|
+
|
|
110
|
+
How this skill interacts with other skills.
|
|
111
|
+
|
|
112
|
+
|
|
113
|
+
# ux-design Examples — Anti-patterns vs ContextOS Standard
|
|
114
|
+
|
|
115
|
+
## Example 1: Destructive Actions
|
|
116
|
+
|
|
117
|
+
### Anti-pattern: Instant Deletion Without Confirmation or Recovery
|
|
118
|
+
|
|
119
|
+
```tsx
|
|
120
|
+
// BAD: Immediate delete on click, no confirmation, irreversible data loss
|
|
121
|
+
<button onClick={() => deleteProject(project.id)}>Delete</button>
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
### Best practice: ContextOS Standard (Two-Step Confirmation or Undo Toast)
|
|
125
|
+
|
|
126
|
+
```tsx
|
|
127
|
+
// GOOD: Clear confirmation dialog stating exact item name and non-reversible impact
|
|
128
|
+
<AlertDialog>
|
|
129
|
+
<AlertDialogTrigger asChild>
|
|
130
|
+
<Button variant="destructive">Delete Project</Button>
|
|
131
|
+
</AlertDialogTrigger>
|
|
132
|
+
<AlertDialogContent>
|
|
133
|
+
<AlertDialogHeader>
|
|
134
|
+
<AlertDialogTitle>Are you absolutely sure?</AlertDialogTitle>
|
|
135
|
+
<AlertDialogDescription>
|
|
136
|
+
This action cannot be undone. This will permanently delete <strong>{project.name}</strong>
|
|
137
|
+
and all associated API keys.
|
|
138
|
+
</AlertDialogDescription>
|
|
139
|
+
</AlertDialogHeader>
|
|
140
|
+
<AlertDialogFooter>
|
|
141
|
+
<AlertDialogCancel>Cancel</AlertDialogCancel>
|
|
142
|
+
<AlertDialogAction onClick={handleDelete} className="bg-destructive">
|
|
143
|
+
Delete permanently
|
|
144
|
+
</AlertDialogAction>
|
|
145
|
+
</AlertDialogFooter>
|
|
146
|
+
</AlertDialogContent>
|
|
147
|
+
</AlertDialog>
|
|
148
|
+
```
|
|
149
|
+
|
|
150
|
+
# ux-design Troubleshooting & Common Mistakes
|
|
151
|
+
|
|
152
|
+
## 1. Mystery Meat Navigation
|
|
153
|
+
|
|
154
|
+
- **Symptom**: Users don't know what icons do and have to hover to guess.
|
|
155
|
+
- **Root Cause**: Relying on ambiguous icons without text labels or tooltips.
|
|
156
|
+
- **Fix**: Pair icons with text labels wherever space permits; always provide accessible tooltips on icon-only actions.
|
|
157
|
+
|
|
158
|
+
## 2. Loss of User Input on Interruption
|
|
159
|
+
|
|
160
|
+
- **Symptom**: User accidentally clicks outside a long modal form and all typed content vanishes.
|
|
161
|
+
- **Root Cause**: Modals closing on backdrop click without checking form dirty state.
|
|
162
|
+
- **Fix**: Prevent dismiss on outside click when form has unsaved modifications, or autosave drafts to local storage.
|
|
163
|
+
|
|
164
|
+
## 3. Double-Click Submission Bugs
|
|
165
|
+
|
|
166
|
+
- **Symptom**: Users double-click a submit button on slow network, resulting in duplicate charges or items.
|
|
167
|
+
- **Root Cause**: Form buttons remaining active during in-flight network requests.
|
|
168
|
+
- **Fix**: Disable button and show spinner state as soon as form submission begins.
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
# Vercel Optimize
|
|
2
|
+
|
|
3
|
+
## Overview
|
|
4
|
+
|
|
5
|
+
Observability-first Vercel performance and cost reduction optimization skill. Evaluates deployed Next.js, SvelteKit, Nuxt, and Astro projects using production telemetry signals (`signals.json`), deterministic candidate gating, and code scanning to deliver ranked, verified architectural recommendations.
|
|
6
|
+
|
|
7
|
+
## When to Use
|
|
8
|
+
|
|
9
|
+
- When tasked with reducing Vercel bills, Function Invocations, Fast Data Transfer, or Build Minutes.
|
|
10
|
+
- When diagnosing slow serverless routes, cold starts, or Edge vs Node runtime mismatches.
|
|
11
|
+
- When evaluating caching opportunities (`stale-while-revalidate`, ISR, CDN edge caching) or Core Web Vitals degradation.
|
|
12
|
+
|
|
13
|
+
## Rules & Patterns
|
|
14
|
+
|
|
15
|
+
### 1. Prerequisites & Framework Support
|
|
16
|
+
|
|
17
|
+
- Vercel CLI v53+ with `vercel metrics`, `vercel usage`, `vercel contract`, and `vercel api`.
|
|
18
|
+
- Authenticated CLI session (`vercel login`) and linked app directory (`vercel link`).
|
|
19
|
+
- Framework support: Next.js App Router (Full), Pages Router (Supported), SvelteKit (Supported), Nuxt (Supported), Astro (Limited).
|
|
20
|
+
- Security rule: Never put auth tokens in shell commands (`VERCEL_TOKEN=...` is banned in chat/logs).
|
|
21
|
+
|
|
22
|
+
### 2. Core Doctrine & Gating Pipeline
|
|
23
|
+
|
|
24
|
+
- **Metrics First:** Recommendations start from Vercel production signals (14-day window), not repo-wide grep.
|
|
25
|
+
- **Deterministic Gates:** `scripts/gate-investigations.mjs` selects code-scope and platform-scope candidates.
|
|
26
|
+
- **Candidate-Bound Scope:** Inspect only files named by a candidate or a route-local import chain.
|
|
27
|
+
- **Version-Aware Citations:** Use only verified citations matching the target framework version.
|
|
28
|
+
- **Specific Cache Policies:** When recommending caching, state the exact cache policy and headers; keep auth-sensitive and error responses dynamic.
|
|
29
|
+
|
|
30
|
+
### 3. Recommendation Rules
|
|
31
|
+
|
|
32
|
+
- Every recommendation must trace to a launched candidate and include observed metric evidence.
|
|
33
|
+
- Cite verified files with line numbers when code changes are proposed.
|
|
34
|
+
- Use precise observed performance numbers; avoid customer-facing speculative `$N` savings formulas.
|
|
35
|
+
- Do not recommend duration reductions for Vercel Workflow runtime endpoints (`/.well-known/workflow/v1/*`).
|
|
36
|
+
|
|
37
|
+
## Code Examples
|
|
38
|
+
|
|
39
|
+
```typescript
|
|
40
|
+
// [GOOD] Next.js Route Segment Config for Caching & Edge Runtime
|
|
41
|
+
export const dynamic = 'force-static';
|
|
42
|
+
export const revalidate = 3600; // Cache at Edge for 1 hour
|
|
43
|
+
|
|
44
|
+
export default async function CachedCatalogPage() {
|
|
45
|
+
const products = await getCatalogData();
|
|
46
|
+
return <CatalogGrid items={products} />;
|
|
47
|
+
}
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
```bash
|
|
51
|
+
# Running the signals collection and gate
|
|
52
|
+
node scripts/collect-signals.mjs [projectId] > "$RUN_DIR/vercel-signals.json"
|
|
53
|
+
node scripts/scan-codebase.mjs <repo-root> > "$RUN_DIR/codebase.json"
|
|
54
|
+
node scripts/merge-signals.mjs "$RUN_DIR/vercel-signals.json" "$RUN_DIR/codebase.json" --out "$RUN_DIR/signals.json"
|
|
55
|
+
node scripts/gate-investigations.mjs "$RUN_DIR/signals.json" > "$RUN_DIR/gate.json"
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
## Validation Checklist
|
|
59
|
+
|
|
60
|
+
- [ ] Project is properly linked with valid team/personal scope (`vercel link`).
|
|
61
|
+
- [ ] Production metrics signals collected across 14-day window before inspecting code.
|
|
62
|
+
- [ ] No secrets or tokens passed in command line arguments.
|
|
63
|
+
- [ ] Recommendations grounded in specific verified file paths and line numbers.
|
|
64
|
+
- [ ] Unsafe or auth-sensitive paths kept strictly dynamic.
|
|
65
|
+
|
|
66
|
+
## Common Mistakes
|
|
67
|
+
|
|
68
|
+
- Inspecting repository source code before metric signals exist.
|
|
69
|
+
- Hardcoding `VERCEL_TOKEN` into terminal commands or prompt logs.
|
|
70
|
+
- Recommending duration reductions on long-lived streaming routes or workflow runners.
|
|
71
|
+
- Applying static caching to user-specific or authenticated routes.
|
|
72
|
+
|
|
73
|
+
## Integration Notes
|
|
74
|
+
|
|
75
|
+
- Complements `nextjs` and `react-best-practices` for server-side optimization.
|
|
76
|
+
- Pairs with `performance` and `security` skills.
|