tribunal-kit 5.8.4 → 6.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/.agent/ARCHITECTURE.md +219 -215
- package/.agent/agents/accessibility-reviewer.md +66 -151
- package/.agent/agents/ai-code-reviewer.md +22 -2
- package/.agent/agents/anti-pattern-reviewer.md +99 -0
- package/.agent/agents/api-architect.md +19 -2
- package/.agent/agents/backend-specialist.md +25 -3
- package/.agent/agents/cloud-engineer.md +21 -0
- package/.agent/agents/code-archaeologist.md +20 -3
- package/.agent/agents/complexity-reviewer.md +22 -2
- package/.agent/agents/database-architect.md +24 -3
- package/.agent/agents/db-latency-auditor.md +22 -2
- package/.agent/agents/debugger.md +19 -3
- package/.agent/agents/dependency-reviewer.md +19 -2
- package/.agent/agents/devops-engineer.md +24 -3
- package/.agent/agents/documentation-writer.md +21 -3
- package/.agent/agents/explorer-agent.md +21 -3
- package/.agent/agents/frontend-reviewer.md +19 -3
- package/.agent/agents/frontend-specialist.md +72 -224
- package/.agent/agents/game-developer.md +22 -3
- package/.agent/agents/interaction-reviewer.md +118 -0
- package/.agent/agents/logic-reviewer.md +18 -3
- package/.agent/agents/minimalist-reviewer.md +98 -0
- package/.agent/agents/mobile-developer.md +21 -3
- package/.agent/agents/mobile-reviewer.md +22 -2
- package/.agent/agents/orchestrator.md +19 -3
- package/.agent/agents/penetration-tester.md +22 -3
- package/.agent/agents/performance-optimizer.md +21 -3
- package/.agent/agents/performance-reviewer.md +2 -0
- package/.agent/agents/precedence-reviewer.md +19 -5
- package/.agent/agents/product-manager.md +20 -3
- package/.agent/agents/product-owner.md +22 -1
- package/.agent/agents/product-reviewer.md +98 -0
- package/.agent/agents/project-planner.md +19 -3
- package/.agent/agents/qa-automation-engineer.md +24 -3
- package/.agent/agents/resilience-reviewer.md +21 -2
- package/.agent/agents/schema-reviewer.md +21 -2
- package/.agent/agents/security-auditor.md +7 -1
- package/.agent/agents/seo-specialist.md +18 -3
- package/.agent/agents/sql-reviewer.md +22 -2
- package/.agent/agents/supervisor-agent.md +22 -3
- package/.agent/agents/swarm-worker-registry.md +7 -0
- package/.agent/agents/system-architect.md +19 -0
- package/.agent/agents/test-coverage-reviewer.md +22 -2
- package/.agent/agents/test-engineer.md +21 -2
- package/.agent/agents/throughput-optimizer.md +22 -2
- package/.agent/agents/type-safety-reviewer.md +21 -2
- package/.agent/agents/ui-ux-auditor.md +44 -242
- package/.agent/agents/ui-visual-auditor.md +99 -0
- package/.agent/agents/ux-reviewer.md +104 -0
- package/.agent/agents/visual-reviewer.md +98 -0
- package/.agent/agents/vitals-reviewer.md +23 -2
- package/.agent/history/README.md +53 -0
- package/.agent/history/case-law/cases/template-case.json +19 -0
- package/.agent/history/integrity_manifest.json +131 -33
- package/.agent/history/memory/.memory.idx +1581 -1
- package/.agent/history/memory/MEMORY.md +105 -1
- package/.agent/routing_index.json +272 -690
- package/.agent/rules/GEMINI.md +10 -12
- package/.agent/rules/GEMINI_PLANNER.md +84 -0
- package/.agent/scripts/_utils.js +28 -7
- package/.agent/scripts/case_law_manager.js +2 -0
- package/.agent/scripts/context_broker.js +152 -19
- package/.agent/scripts/guardrail_engine.js +60 -5
- package/.agent/scripts/impact_classifier.js +167 -0
- package/.agent/scripts/integrity_manifest.js +10 -4
- package/.agent/scripts/marathon_harness.js +10 -1
- package/.agent/scripts/minimal_change_engine.js +437 -0
- package/.agent/scripts/pipeline_engine.js +856 -0
- package/.agent/scripts/skill_evolution.js +36 -21
- package/.agent/scripts/socratic_gate_policy.js +60 -0
- package/.agent/scripts/swarm_dispatcher.js +65 -6
- package/.agent/scripts/token_budget_broker.js +52 -0
- package/.agent/scripts/verify_all.js +13 -0
- package/.agent/scripts/visual_audit.js +92 -0
- package/.agent/skills/12-principles-of-animation/SKILL.md +19 -10
- package/.agent/skills/60fps-animation/SKILL.md +19 -10
- package/.agent/skills/accessible-animation/SKILL.md +19 -10
- package/.agent/skills/adapt/SKILL.md +19 -10
- package/.agent/skills/advanced-rag-pipelines/SKILL.md +21 -3
- package/.agent/skills/agent-organizer/SKILL.md +21 -7
- package/.agent/skills/agentic-patterns/SKILL.md +19 -7
- package/.agent/skills/ai-prompt-injection-defense/SKILL.md +21 -7
- package/.agent/skills/animation-on-scroll/SKILL.md +19 -10
- package/.agent/skills/animation-systems/SKILL.md +19 -10
- package/.agent/skills/antfu-conventions/SKILL.md +21 -10
- package/.agent/skills/api-patterns/SKILL.md +21 -7
- package/.agent/skills/api-patterns/scripts/__pycache__/api_validator.cpython-311.pyc +0 -0
- package/.agent/skills/api-security-auditor/SKILL.md +21 -7
- package/.agent/skills/app-builder/SKILL.md +21 -7
- package/.agent/skills/apple-design/SKILL.md +19 -10
- package/.agent/skills/architecture/SKILL.md +21 -7
- package/.agent/skills/audit-and-fix/SKILL.md +19 -10
- package/.agent/skills/authentication-best-practices/SKILL.md +21 -7
- package/.agent/skills/backend-security-expert/SKILL.md +21 -7
- package/.agent/skills/baseline-ui/SKILL.md +19 -10
- package/.agent/skills/bash-linux/SKILL.md +21 -7
- package/.agent/skills/behavioral-modes/SKILL.md +19 -7
- package/.agent/skills/better-colors/SKILL.md +31 -14
- package/.agent/skills/better-ui/SKILL.md +19 -10
- package/.agent/skills/bolder/SKILL.md +19 -10
- package/.agent/skills/brainstorming/SKILL.md +17 -7
- package/.agent/skills/browser-native-ai/SKILL.md +19 -3
- package/.agent/skills/build-primitive/SKILL.md +19 -10
- package/.agent/skills/building-native-ui/SKILL.md +21 -7
- package/.agent/skills/cicd-pro/SKILL.md +21 -10
- package/.agent/skills/clarify/SKILL.md +19 -10
- package/.agent/skills/clean-code/SKILL.md +21 -7
- package/.agent/skills/cloud-architect/SKILL.md +21 -10
- package/.agent/skills/cobejs/SKILL.md +19 -10
- package/.agent/skills/code-review-checklist/SKILL.md +21 -7
- package/.agent/skills/codebase-design/SKILL.md +21 -10
- package/.agent/skills/colorize/SKILL.md +19 -10
- package/.agent/skills/compact-landing/SKILL.md +19 -10
- package/.agent/skills/company-logos/SKILL.md +19 -10
- package/.agent/skills/config-validator/SKILL.md +21 -7
- package/.agent/skills/containerization-pro/SKILL.md +21 -10
- package/.agent/skills/create-design-md/SKILL.md +19 -10
- package/.agent/skills/critique/SKILL.md +19 -10
- package/.agent/skills/csharp-developer/SKILL.md +21 -7
- package/.agent/skills/data-validation-schemas/SKILL.md +21 -7
- package/.agent/skills/database-design/SKILL.md +21 -7
- package/.agent/skills/database-design/scripts/__pycache__/schema_validator.cpython-311.pyc +0 -0
- package/.agent/skills/delight/SKILL.md +19 -10
- package/.agent/skills/deployment-procedures/SKILL.md +21 -7
- package/.agent/skills/design-lab/SKILL.md +21 -10
- package/.agent/skills/devops-engineer/SKILL.md +21 -7
- package/.agent/skills/devops-incident-responder/SKILL.md +21 -7
- package/.agent/skills/diagnosing-bugs/SKILL.md +21 -10
- package/.agent/skills/distill/SKILL.md +19 -10
- package/.agent/skills/documentation-templates/SKILL.md +21 -7
- package/.agent/skills/domain-modeling/SKILL.md +21 -10
- package/.agent/skills/edge-computing/SKILL.md +21 -7
- package/.agent/skills/emil-design-eng/SKILL.md +19 -10
- package/.agent/skills/error-resilience/SKILL.md +21 -7
- package/.agent/skills/extract-design-system/SKILL.md +21 -7
- package/.agent/skills/fabel-protocol/SKILL.md +19 -2
- package/.agent/skills/fixing-accessibility/SKILL.md +25 -14
- package/.agent/skills/fixing-metadata/SKILL.md +19 -10
- package/.agent/skills/fixing-motion-performance/SKILL.md +19 -10
- package/.agent/skills/framer-motion-expert/SKILL.md +19 -6
- package/.agent/skills/frontend-design/SKILL.md +66 -204
- package/.agent/skills/frontend-design/scripts/__pycache__/accessibility_checker.cpython-311.pyc +0 -0
- package/.agent/skills/frontend-design/scripts/__pycache__/ux_audit.cpython-311.pyc +0 -0
- package/.agent/skills/frontend-security-expert/SKILL.md +21 -7
- package/.agent/skills/game-design-expert/SKILL.md +21 -7
- package/.agent/skills/game-engineering-expert/SKILL.md +21 -7
- package/.agent/skills/generative-ui-expert/SKILL.md +19 -3
- package/.agent/skills/geo-fundamentals/SKILL.md +21 -7
- package/.agent/skills/geo-fundamentals/scripts/__pycache__/geo_checker.cpython-311.pyc +0 -0
- package/.agent/skills/git-pro/SKILL.md +21 -10
- package/.agent/skills/github-operations/SKILL.md +21 -7
- package/.agent/skills/gpt-taste/SKILL.md +19 -10
- package/.agent/skills/gsap-core/SKILL.md +21 -4
- package/.agent/skills/gsap-frameworks/SKILL.md +21 -4
- package/.agent/skills/gsap-performance/SKILL.md +20 -5
- package/.agent/skills/gsap-plugins/SKILL.md +20 -5
- package/.agent/skills/gsap-react/SKILL.md +20 -5
- package/.agent/skills/gsap-scrolltrigger/SKILL.md +21 -4
- package/.agent/skills/gsap-timeline/SKILL.md +20 -5
- package/.agent/skills/gsap-utils/SKILL.md +20 -5
- package/.agent/skills/harden/SKILL.md +19 -10
- package/.agent/skills/harness-protocol/SKILL.md +20 -4
- package/.agent/skills/i18n-localization/SKILL.md +21 -7
- package/.agent/skills/i18n-localization/scripts/__pycache__/i18n_checker.cpython-311.pyc +0 -0
- package/.agent/skills/impeccable/SKILL.md +21 -10
- package/.agent/skills/improve-codebase-architecture/SKILL.md +21 -10
- package/.agent/skills/improve-ui/SKILL.md +19 -10
- package/.agent/skills/intelligent-routing/SKILL.md +19 -7
- package/.agent/skills/knowledge-graph/SKILL.md +20 -4
- package/.agent/skills/landing-page/SKILL.md +20 -10
- package/.agent/skills/lint-and-validate/SKILL.md +21 -7
- package/.agent/skills/lint-and-validate/scripts/__pycache__/lint_runner.cpython-311.pyc +0 -0
- package/.agent/skills/lint-and-validate/scripts/__pycache__/type_coverage.cpython-311.pyc +0 -0
- package/.agent/skills/llm-engineering/SKILL.md +21 -7
- package/.agent/skills/local-first/SKILL.md +21 -7
- package/.agent/skills/local-first-architecture/SKILL.md +19 -10
- package/.agent/skills/lottie-animation/SKILL.md +19 -10
- package/.agent/skills/marquee-loop/SKILL.md +19 -10
- package/.agent/skills/masked-reveal/SKILL.md +19 -10
- package/.agent/skills/mcp-builder/SKILL.md +21 -7
- package/.agent/skills/micro-interaction/SKILL.md +19 -10
- package/.agent/skills/mobile-design/SKILL.md +21 -6
- package/.agent/skills/mobile-design/scripts/__pycache__/mobile_audit.cpython-311.pyc +0 -0
- package/.agent/skills/monorepo-management/SKILL.md +21 -7
- package/.agent/skills/morphing-icons/SKILL.md +19 -10
- package/.agent/skills/motion-engineering/SKILL.md +86 -171
- package/.agent/skills/nextjs-react-expert/SKILL.md +19 -7
- package/.agent/skills/nextjs-react-expert/scripts/__pycache__/convert_rules.cpython-311.pyc +0 -0
- package/.agent/skills/nextjs-react-expert/scripts/__pycache__/react_performance_checker.cpython-311.pyc +0 -0
- package/.agent/skills/nodejs-best-practices/SKILL.md +21 -7
- package/.agent/skills/observability/SKILL.md +21 -7
- package/.agent/skills/page-transition-animation/SKILL.md +19 -10
- package/.agent/skills/parallel-agents/SKILL.md +23 -7
- package/.agent/skills/performance-profiling/SKILL.md +21 -7
- package/.agent/skills/performance-profiling/scripts/__pycache__/lighthouse_audit.cpython-311.pyc +0 -0
- package/.agent/skills/plan-writing/SKILL.md +21 -7
- package/.agent/skills/platform-engineer/SKILL.md +21 -7
- package/.agent/skills/playwright-best-practices/SKILL.md +21 -7
- package/.agent/skills/polish/SKILL.md +19 -10
- package/.agent/skills/powershell-windows/SKILL.md +21 -7
- package/.agent/skills/pricing-page/SKILL.md +19 -10
- package/.agent/skills/product-aware-heuristics/SKILL.md +358 -0
- package/.agent/skills/progressive-blur/SKILL.md +19 -10
- package/.agent/skills/project-idioms/SKILL.md +20 -8
- package/.agent/skills/python-patterns/SKILL.md +21 -7
- package/.agent/skills/python-pro/SKILL.md +21 -6
- package/.agent/skills/quieter/SKILL.md +19 -10
- package/.agent/skills/react-doctor/SKILL.md +19 -10
- package/.agent/skills/react-specialist/SKILL.md +19 -6
- package/.agent/skills/readme-builder/SKILL.md +21 -7
- package/.agent/skills/realtime-patterns/SKILL.md +21 -7
- package/.agent/skills/red-team-tactics/SKILL.md +21 -7
- package/.agent/skills/redesign-skill/SKILL.md +19 -10
- package/.agent/skills/review-animations/SKILL.md +21 -10
- package/.agent/skills/rust-pro/SKILL.md +21 -7
- package/.agent/skills/seo-fundamentals/SKILL.md +21 -7
- package/.agent/skills/seo-fundamentals/scripts/__pycache__/seo_checker.cpython-311.pyc +0 -0
- package/.agent/skills/server-management/SKILL.md +21 -7
- package/.agent/skills/shadcn-ui-expert/SKILL.md +21 -7
- package/.agent/skills/shape/SKILL.md +19 -10
- package/.agent/skills/skill-creator/SKILL.md +21 -7
- package/.agent/skills/soft-skill/SKILL.md +19 -10
- package/.agent/skills/sounds-on-the-web/SKILL.md +19 -10
- package/.agent/skills/sql-pro/SKILL.md +21 -7
- package/.agent/skills/supabase-postgres-best-practices/SKILL.md +21 -7
- package/.agent/skills/svg-animation/SKILL.md +19 -10
- package/.agent/skills/swiftui-expert/SKILL.md +21 -7
- package/.agent/skills/swiss-design/SKILL.md +19 -10
- package/.agent/skills/system-design-pro/SKILL.md +21 -9
- package/.agent/skills/systematic-debugging/SKILL.md +21 -7
- package/.agent/skills/tailwind-patterns/SKILL.md +21 -7
- package/.agent/skills/taste-skill/SKILL.md +19 -10
- package/.agent/skills/tdd-workflow/SKILL.md +21 -10
- package/.agent/skills/test-result-analyzer/SKILL.md +18 -6
- package/.agent/skills/testing-patterns/SKILL.md +21 -7
- package/.agent/skills/testing-patterns/scripts/__pycache__/test_runner.cpython-311.pyc +0 -0
- package/.agent/skills/thermo-nuclear-code-quality-review/SKILL.md +21 -10
- package/.agent/skills/thinking-protocol/SKILL.md +20 -8
- package/.agent/skills/to-spring-or-not-to-spring/SKILL.md +19 -10
- package/.agent/skills/transitions-dev/SKILL.md +19 -10
- package/.agent/skills/trend-researcher/SKILL.md +17 -6
- package/.agent/skills/typescript-advanced/SKILL.md +21 -7
- package/.agent/skills/typeset/SKILL.md +19 -10
- package/.agent/skills/ui-reasoning-engine/SKILL.md +154 -0
- package/.agent/skills/ui-skill-packs/SKILL.md +77 -0
- package/.agent/skills/ui-skills-root/SKILL.md +21 -9
- package/.agent/skills/ui-ux-pro-max/SKILL.md +62 -583
- package/.agent/skills/ui-ux-researcher/SKILL.md +17 -6
- package/.agent/skills/vue-expert/SKILL.md +19 -6
- package/.agent/skills/vulnerability-scanner/SKILL.md +21 -7
- package/.agent/skills/vulnerability-scanner/scripts/__pycache__/security_scan.cpython-311.pyc +0 -0
- package/.agent/skills/web-accessibility-auditor/SKILL.md +21 -7
- package/.agent/skills/web-design-guidelines/SKILL.md +32 -206
- package/.agent/skills/web-quality-audit/SKILL.md +19 -10
- package/.agent/skills/webapp-testing/SKILL.md +21 -7
- package/.agent/skills/webapp-testing/scripts/__pycache__/playwright_runner.cpython-311.pyc +0 -0
- package/.agent/skills/webgpu-performance/SKILL.md +19 -3
- package/.agent/skills/whimsy-injector/SKILL.md +20 -10
- package/.agent/skills/workflow-optimizer/SKILL.md +16 -6
- package/.agent/templates/DESIGN.md +292 -0
- package/.agent/templates/design-tokens.json +137 -0
- package/.agent/workflows/acf.md +13 -6
- package/.agent/workflows/api-tester.md +15 -8
- package/.agent/workflows/audit.md +19 -8
- package/.agent/workflows/brainstorm.md +14 -9
- package/.agent/workflows/changelog.md +14 -8
- package/.agent/workflows/create.md +16 -8
- package/.agent/workflows/debug.md +15 -10
- package/.agent/workflows/deploy.md +16 -8
- package/.agent/workflows/enhance.md +15 -10
- package/.agent/workflows/fix.md +15 -8
- package/.agent/workflows/generate.md +17 -11
- package/.agent/workflows/marathon.md +15 -8
- package/.agent/workflows/migrate.md +16 -8
- package/.agent/workflows/minimal.md +94 -0
- package/.agent/workflows/orchestrate.md +15 -8
- package/.agent/workflows/performance-benchmarker.md +15 -8
- package/.agent/workflows/pipeline.md +155 -0
- package/.agent/workflows/plan.md +14 -10
- package/.agent/workflows/preview.md +14 -7
- package/.agent/workflows/refactor.md +16 -8
- package/.agent/workflows/review-ai.md +15 -7
- package/.agent/workflows/review.md +15 -7
- package/.agent/workflows/session.md +14 -7
- package/.agent/workflows/status.md +13 -7
- package/.agent/workflows/strengthen-skills.md +15 -6
- package/.agent/workflows/super-prompt.md +19 -10
- package/.agent/workflows/swarm.md +15 -7
- package/.agent/workflows/test.md +15 -8
- package/.agent/workflows/tribunal-backend.md +16 -9
- package/.agent/workflows/tribunal-database.md +15 -8
- package/.agent/workflows/tribunal-frontend.md +26 -11
- package/.agent/workflows/tribunal-full.md +29 -14
- package/.agent/workflows/tribunal-mobile.md +15 -8
- package/.agent/workflows/tribunal-performance.md +15 -8
- package/.agent/workflows/tribunal-speed.md +16 -9
- package/.agent/workflows/tribunal-ui.md +82 -0
- package/.agent/workflows/ui-ux-pro-max.md +51 -107
- package/CONTRIBUTING.md +2 -2
- package/README.md +5 -5
- package/bin/mcp-server.js +126 -76
- package/bin/wrapper.js +67 -31
- package/dist/cli.js +39 -1
- package/dist/commands/compile.js +7 -0
- package/dist/commands/context.js +8 -3
- package/dist/commands/graph.js +8 -2
- package/dist/commands/init.js +37 -2
- package/dist/commands/memory.js +119 -68
- package/dist/commands/minimal.js +71 -0
- package/dist/commands/native.js +228 -0
- package/dist/commands/optimize.js +15 -5
- package/dist/commands/validate.js +67 -0
- package/dist/esm/index.mjs +26 -32
- package/dist/mcp/server.js +4 -138
- package/dist/utils/fs.js +10 -4
- package/dist/utils/helpers.js +10 -1
- package/dist/utils/version.js +9 -2
- package/mcp_config.json +10 -1
- package/package.json +19 -15
- package/scripts/benchmark.js +58 -0
- package/scripts/sync-version.js +129 -76
- package/scripts/visual_audit.js +126 -0
|
@@ -1,632 +1,111 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: ui-ux-pro-max
|
|
3
|
-
description: The Picasso Protocol — Elite UI/UX design mastery
|
|
4
|
-
version:
|
|
5
|
-
last-updated: 2026-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
3
|
+
description: The Picasso Protocol — Elite UI/UX design mastery. Integrates the 16-step UI Reasoning Engine, Category-Specific Heuristics, and Anti-Pattern controls to generate portfolio-grade interfaces.
|
|
4
|
+
version: 3.0.0
|
|
5
|
+
last-updated: 2026-07-30
|
|
6
|
+
skills:
|
|
7
|
+
- ui-reasoning-engine
|
|
8
|
+
- product-aware-heuristics
|
|
9
|
+
- frontend-design
|
|
10
|
+
- web-design-guidelines
|
|
11
|
+
tools: Read, Grep, Glob, Bash, Edit, Write
|
|
12
|
+
scripts-binding:
|
|
13
|
+
- .agent/scripts/lint_runner.js
|
|
14
|
+
- .agent/scripts/verify_all.js
|
|
10
15
|
---
|
|
11
16
|
|
|
12
|
-
# UI/UX Pro Max
|
|
13
|
-
|
|
14
|
-
> "Good design is obvious. Great design is transparent." — Joe Sparano
|
|
15
|
-
|
|
16
|
-
This skill transforms AI-generated interfaces from generic "AI slop" into portfolio-grade work indistinguishable from a senior designer's output. Every section is a weapon against mediocrity.
|
|
17
|
+
# UI/UX Pro Max v3.0 — The Picasso Protocol
|
|
17
18
|
|
|
18
19
|
---
|
|
19
20
|
|
|
20
|
-
##
|
|
21
|
-
|
|
22
|
-
```
|
|
23
|
-
❌ Purple/violet primary color → ✅ The #1 AI cliché. Use amber, teal, coral, slate, or warm neutrals.
|
|
24
|
-
❌ Inter/Roboto/Arial as body font → ✅ Generic. Use Geist, Satoshi, Cabinet Grotesk, General Sans, or Clash Display.
|
|
25
|
-
❌ Hero: left-text + right-image → ✅ Lazy. Use full-bleed, editorial overlap, or typographic-only hero.
|
|
26
|
-
❌ Mesh gradient backgrounds → ✅ The new stock photo. Use grain, solid contrast, or layered depth.
|
|
27
|
-
❌ Border-radius: 8px on everything → ✅ Monotonous. Mix sharp (2px) and soft (20px+) radii for hierarchy.
|
|
28
|
-
❌ Gray text (#888) on white (#fff) → ✅ Fails WCAG AA (3.7:1). Minimum contrast ratio is 4.5:1.
|
|
29
|
-
❌ "Bento box" grid for everything → ✅ Overused. Directional flow, overlap, or editorial asymmetry.
|
|
30
|
-
❌ Card → Card → Card with even spacing → ✅ Visual monotony. Vary sizes, break the grid, create tension.
|
|
31
|
-
❌ box-shadow: 0 2px 8px rgba(0,0,0,0.1) → ✅ Default AI shadow. Use layered multi-shadow for realism.
|
|
32
|
-
❌ Animating opacity + translateY on load → ✅ Every AI does this. Use clip-path reveals, blur-in, or scale-from-origin.
|
|
33
|
-
❌ Using px for font-size → ✅ Use rem (scales with user preference) or clamp() for fluid type.
|
|
34
|
-
❌ White (#FFFFFF) backgrounds → ✅ Harsh. Use off-white (#FAFAF8, #F5F3EF) or tinted neutrals.
|
|
35
|
-
```
|
|
36
|
-
|
|
37
|
-
---
|
|
21
|
+
## Mandatory Pre-Flight Context Inspection
|
|
38
22
|
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
### The Spectrum of Intention
|
|
44
|
-
|
|
45
|
-
```
|
|
46
|
-
PICK ONE direction — do NOT blend without purpose:
|
|
47
|
-
|
|
48
|
-
Brutalist → Raw, exposed structure, monospace, high-contrast, no rounded corners
|
|
49
|
-
Editorial → Magazine-inspired, dramatic type scale, generous whitespace, serif headlines
|
|
50
|
-
Neo-Glassmorphism → Translucent layers, blur, light borders, floating panels, depth
|
|
51
|
-
Soft Minimal → Warm neutrals, subtle shadows, rounded forms, breathing room
|
|
52
|
-
Dark Luxury → True black (#09090B), gold/amber accents, thin weights, restrained motion
|
|
53
|
-
Neon Cyberpunk → Dark base, vivid saturated accents, glow effects, sharp geometry
|
|
54
|
-
Organic Natural → Earth tones, rounded blobs, hand-drawn feel, textured backgrounds
|
|
55
|
-
Swiss Precision → Grid-locked, Helvetica-lineage type, clinical whitespace, no decoration
|
|
56
|
-
Retro Analog → Warm grain, rounded type, muted palettes, physical texture
|
|
57
|
-
```
|
|
23
|
+
Before generating UI designs or front-end components, you MUST inspect:
|
|
24
|
+
1. Rejection Guardrails (Section 17) → Ban primary purple gradients (`from-purple-600`), Inter/Roboto defaults, left-text/right-image hero layouts, and mesh gradients
|
|
25
|
+
2. OKLCH Display-P3 Color Science (Section 29) → Use OKLCH variables with chroma `0.20`–`0.28` for accents and stepped neutral contrast (`0.04` Lightness increments)
|
|
26
|
+
3. Fluid Typographic Scaling (Section 51) → Apply `clamp()` sizes, tight negative tracking (`-0.04em`), and `text-wrap: balance` on headings
|
|
58
27
|
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
```css
|
|
62
|
-
/* EVERY project must define these before any component work */
|
|
63
|
-
:root {
|
|
64
|
-
--font-display: "Clash Display", sans-serif; /* Headlines — characterful */
|
|
65
|
-
--font-body: "Satoshi", sans-serif; /* Body — readable */
|
|
66
|
-
--font-mono: "JetBrains Mono", monospace; /* Code — purposeful */
|
|
67
|
-
|
|
68
|
-
--radius-sharp: 2px; /* Tags, badges */
|
|
69
|
-
--radius-default: 12px; /* Cards, inputs */
|
|
70
|
-
--radius-soft: 24px; /* Buttons, pills */
|
|
71
|
-
|
|
72
|
-
--shadow-subtle: 0 1px 2px rgba(0, 0, 0, 0.04), 0 1px 4px rgba(0, 0, 0, 0.04);
|
|
73
|
-
--shadow-medium: 0 4px 12px rgba(0, 0, 0, 0.06), 0 1px 3px rgba(0, 0, 0, 0.04);
|
|
74
|
-
--shadow-dramatic: 0 24px 48px rgba(0, 0, 0, 0.12), 0 8px 16px rgba(0, 0, 0, 0.06);
|
|
75
|
-
}
|
|
76
|
-
```
|
|
28
|
+
This skill transforms AI-generated interfaces from generic "AI templates" into portfolio-grade, human-crafted interfaces by running intent analysis *before* layout and styling.
|
|
77
29
|
|
|
78
30
|
---
|
|
79
31
|
|
|
80
|
-
##
|
|
81
|
-
|
|
82
|
-
**OKLCH** is the modern standard: perceptually uniform, CSS-native, and predictable across lightness levels. HSL lies about perceived brightness (yellow at 50% L looks brighter than blue at 50% L). OKLCH fixes this.
|
|
83
|
-
|
|
84
|
-
```css
|
|
85
|
-
:root {
|
|
86
|
-
/* OKLCH: oklch(lightness% chroma hue) */
|
|
87
|
-
--primary: oklch(65% 0.25 250); /* Vivid teal */
|
|
88
|
-
--primary-hover: oklch(55% 0.25 250); /* Same hue, darker */
|
|
89
|
-
--primary-subtle: oklch(95% 0.03 250); /* Tinted background */
|
|
32
|
+
## 🚨 Design Governance Guardrails (REJECTION Rules)
|
|
90
33
|
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
--gray-200: oklch(90% 0.01 250);
|
|
99
|
-
--gray-400: oklch(70% 0.01 250);
|
|
100
|
-
--gray-600: oklch(45% 0.01 250);
|
|
101
|
-
--gray-900: oklch(15% 0.01 250);
|
|
102
|
-
}
|
|
103
|
-
|
|
104
|
-
/* Dark mode — invert lightness, preserve chroma */
|
|
105
|
-
@media (prefers-color-scheme: dark) {
|
|
106
|
-
:root {
|
|
107
|
-
--gray-50: oklch(8% 0.005 250);
|
|
108
|
-
--gray-100: oklch(12% 0.008 250);
|
|
109
|
-
--gray-200: oklch(18% 0.01 250);
|
|
110
|
-
--gray-400: oklch(40% 0.01 250);
|
|
111
|
-
--gray-600: oklch(65% 0.01 250);
|
|
112
|
-
--gray-900: oklch(95% 0.01 250);
|
|
113
|
-
}
|
|
114
|
-
}
|
|
115
|
-
```
|
|
116
|
-
|
|
117
|
-
### Palette Rules
|
|
118
|
-
|
|
119
|
-
```
|
|
120
|
-
1. Primary: ONE dominant hue. Never two competing saturated colors.
|
|
121
|
-
2. Accent: Complementary or analogous to primary, used sparingly (<10% of surface area).
|
|
122
|
-
3. Neutrals: Tint your grays with the primary hue (5-10 chroma). Pure gray (#808080) looks dead.
|
|
123
|
-
4. Semantic: Red=danger, Green=success, Amber=warning — never override these cultural meanings.
|
|
124
|
-
5. Contrast: Large text (≥24px) needs 3:1 ratio. Body text needs 4.5:1. Use oklch lightness to guarantee this.
|
|
125
|
-
```
|
|
34
|
+
* ❌ **Primary Purple Accents:** Banned. Use electric blue, signal orange, coral, warm slate, or natural sage.
|
|
35
|
+
* ❌ **Inter/Roboto Defaults:** Banned. Display titles must use characterful display fonts; body text uses readable body options.
|
|
36
|
+
* ❌ **Left Text/Right Image Hero:** Banned. Use full-bleed, asymmetric overlap, or typographical layouts.
|
|
37
|
+
* ❌ **Radial Mesh Backgrounds:** Banned. Use ambient grain overlay, solid high-contrast depth, or radial tinting.
|
|
38
|
+
* ❌ **Bento Box Grid Overuse:** Banned. Break the grid intentionally for visual interest.
|
|
39
|
+
* ❌ **Flat Glassmorphic Panels:** Banned. Translucency should only be used as a rare overlay, not for main containers.
|
|
40
|
+
* ❌ **No States Feedback:** Banned. Every control must have styled states (Hover, Focus-visible, Active, Disabled).
|
|
126
41
|
|
|
127
42
|
---
|
|
128
43
|
|
|
129
|
-
##
|
|
130
|
-
|
|
131
|
-
Typography is 80% of UI design. Get this right and everything else follows.
|
|
132
|
-
|
|
133
|
-
### The Type Scale (Musical Intervals)
|
|
44
|
+
## 1. Color Gamuts & Display-P3 Color Science
|
|
134
45
|
|
|
46
|
+
Use dynamic OKLCH variables to access the wider Display-P3 color spectrum for stunning vibrancy. Perceptually uniform lightness ensures stable contrast:
|
|
135
47
|
```css
|
|
136
|
-
/* Major Third scale (1.25 ratio) — balanced for UI */
|
|
137
48
|
:root {
|
|
138
|
-
|
|
139
|
-
--
|
|
140
|
-
--
|
|
141
|
-
--
|
|
142
|
-
--
|
|
143
|
-
--
|
|
144
|
-
--text-3xl: clamp(2.441rem, 3vw + 1.5rem, 3.5rem); /* 39-56px */
|
|
145
|
-
--text-hero: clamp(3.052rem, 5vw + 1.5rem, 6rem); /* 48-96px */
|
|
146
|
-
}
|
|
147
|
-
|
|
148
|
-
/* Typographic rules */
|
|
149
|
-
h1,
|
|
150
|
-
h2,
|
|
151
|
-
h3 {
|
|
152
|
-
font-family: var(--font-display);
|
|
153
|
-
letter-spacing: -0.02em; /* Tighten headlines */
|
|
154
|
-
line-height: 1.1; /* Tight leading for large type */
|
|
155
|
-
text-wrap: balance; /* CSS native text balancing */
|
|
156
|
-
}
|
|
157
|
-
|
|
158
|
-
p,
|
|
159
|
-
li {
|
|
160
|
-
font-family: var(--font-body);
|
|
161
|
-
line-height: 1.6; /* Generous leading for readability */
|
|
162
|
-
max-width: 65ch; /* Optimal reading measure */
|
|
163
|
-
}
|
|
164
|
-
|
|
165
|
-
/* Optical kerning for hero text */
|
|
166
|
-
.hero-title {
|
|
167
|
-
font-size: var(--text-hero);
|
|
168
|
-
font-weight: 700;
|
|
169
|
-
letter-spacing: -0.04em; /* Aggressive tightening at large sizes */
|
|
170
|
-
line-height: 0.95; /* Negative leading for drama */
|
|
171
|
-
}
|
|
172
|
-
```
|
|
173
|
-
|
|
174
|
-
### Font Pairing Rules
|
|
175
|
-
|
|
176
|
-
```
|
|
177
|
-
WINNING PAIRS (character + readability):
|
|
178
|
-
Display: Clash Display + Body: Satoshi → Modern editorial
|
|
179
|
-
Display: Playfair Display + Body: Source Sans 3 → Luxury editorial
|
|
180
|
-
Display: Space Grotesk + Body: General Sans → Tech-forward
|
|
181
|
-
Display: Fraunces + Body: Inter → Warm approachable
|
|
182
|
-
Display: Cabinet Grotesk + Body: Switzer → Swiss contemporary
|
|
183
|
-
|
|
184
|
-
FORBIDDEN:
|
|
185
|
-
❌ Inter + Inter (monotonous)
|
|
186
|
-
❌ Roboto + Roboto (Android system default)
|
|
187
|
-
❌ Any two display fonts together (visual conflict)
|
|
188
|
-
❌ Thin weights (<300) for body text at <16px (unreadable)
|
|
189
|
-
```
|
|
190
|
-
|
|
191
|
-
---
|
|
192
|
-
|
|
193
|
-
## 4. Spatial Composition — Breaking the Grid
|
|
194
|
-
|
|
195
|
-
The best designs follow a grid, then intentionally break it at key moments for drama.
|
|
196
|
-
|
|
197
|
-
### The 8px Spatial System
|
|
198
|
-
|
|
199
|
-
```css
|
|
200
|
-
:root {
|
|
201
|
-
--space-1: 0.25rem; /* 4px — micro: icon gap */
|
|
202
|
-
--space-2: 0.5rem; /* 8px — tight: tag padding */
|
|
203
|
-
--space-3: 0.75rem; /* 12px — compact: list item gap */
|
|
204
|
-
--space-4: 1rem; /* 16px — default: input padding */
|
|
205
|
-
--space-5: 1.5rem; /* 24px — card padding */
|
|
206
|
-
--space-6: 2rem; /* 32px — section gap */
|
|
207
|
-
--space-8: 3rem; /* 48px — major section break */
|
|
208
|
-
--space-10: 4rem; /* 64px — page section */
|
|
209
|
-
--space-16: 8rem; /* 128px — hero breathing room */
|
|
210
|
-
}
|
|
211
|
-
```
|
|
212
|
-
|
|
213
|
-
### Layout Techniques That Stand Out
|
|
214
|
-
|
|
215
|
-
```css
|
|
216
|
-
/* 1. Asymmetric two-column (not 50/50) */
|
|
217
|
-
.layout-asymmetric {
|
|
218
|
-
display: grid;
|
|
219
|
-
grid-template-columns: 2fr 1fr; /* 66/33 split — creates visual tension */
|
|
220
|
-
gap: var(--space-8);
|
|
221
|
-
}
|
|
222
|
-
|
|
223
|
-
/* 2. Overlap / Negative margin (elements bleeding into each other) */
|
|
224
|
-
.card-featured {
|
|
225
|
-
margin-top: -4rem; /* Pull into previous section */
|
|
226
|
-
position: relative;
|
|
227
|
-
z-index: 2;
|
|
228
|
-
}
|
|
229
|
-
|
|
230
|
-
/* 3. Full-bleed breakout from container */
|
|
231
|
-
.full-bleed {
|
|
232
|
-
width: 100vw;
|
|
233
|
-
margin-left: calc(50% - 50vw); /* Escape any container */
|
|
234
|
-
}
|
|
235
|
-
|
|
236
|
-
/* 4. Broken grid — one element escapes alignment */
|
|
237
|
-
.grid-broken > :nth-child(3) {
|
|
238
|
-
grid-column: 1 / -1; /* Span full width */
|
|
239
|
-
transform: rotate(-1deg); /* Subtle tilt = handmade feel */
|
|
240
|
-
}
|
|
241
|
-
```
|
|
242
|
-
|
|
243
|
-
---
|
|
244
|
-
|
|
245
|
-
## 5. Motion Choreography (Not Just Animation)
|
|
246
|
-
|
|
247
|
-
Motion should tell a story. Every animation needs a **purpose**: feedback, orientation, or delight.
|
|
248
|
-
|
|
249
|
-
### The Motion Hierarchy
|
|
250
|
-
|
|
251
|
-
```
|
|
252
|
-
Priority 1: FEEDBACK — Button press, toggle, form validation (instant, <100ms)
|
|
253
|
-
Priority 2: ORIENTATION — Page transitions, modal open/close (200-400ms)
|
|
254
|
-
Priority 3: DELIGHT — Scroll reveals, hover effects, loading states (300-800ms)
|
|
255
|
-
|
|
256
|
-
NEVER animate for decoration alone. Every motion answers: "What just happened?" or "Where am I?"
|
|
257
|
-
```
|
|
258
|
-
|
|
259
|
-
### CSS-First Motion Library
|
|
260
|
-
|
|
261
|
-
```css
|
|
262
|
-
/* Custom easing — never use 'ease' or 'linear' */
|
|
263
|
-
:root {
|
|
264
|
-
--ease-out-expo: cubic-bezier(0.16, 1, 0.3, 1); /* Snappy exit */
|
|
265
|
-
--ease-out-back: cubic-bezier(0.34, 1.56, 0.64, 1); /* Overshoot */
|
|
266
|
-
--ease-in-out-quint: cubic-bezier(0.83, 0, 0.17, 1); /* Dramatic */
|
|
267
|
-
--spring: cubic-bezier(0.22, 1.2, 0.36, 1); /* Bounce feel */
|
|
268
|
-
}
|
|
269
|
-
|
|
270
|
-
/* Staggered reveal — the single most impactful animation pattern */
|
|
271
|
-
.stagger-children > * {
|
|
272
|
-
opacity: 0;
|
|
273
|
-
transform: translateY(20px);
|
|
274
|
-
animation: fadeUp 0.6s var(--ease-out-expo) forwards;
|
|
275
|
-
}
|
|
276
|
-
.stagger-children > *:nth-child(1) {
|
|
277
|
-
animation-delay: 0ms;
|
|
278
|
-
}
|
|
279
|
-
.stagger-children > *:nth-child(2) {
|
|
280
|
-
animation-delay: 80ms;
|
|
281
|
-
}
|
|
282
|
-
.stagger-children > *:nth-child(3) {
|
|
283
|
-
animation-delay: 160ms;
|
|
284
|
-
}
|
|
285
|
-
.stagger-children > *:nth-child(4) {
|
|
286
|
-
animation-delay: 240ms;
|
|
287
|
-
}
|
|
288
|
-
|
|
289
|
-
@keyframes fadeUp {
|
|
290
|
-
to {
|
|
291
|
-
opacity: 1;
|
|
292
|
-
transform: translateY(0);
|
|
293
|
-
}
|
|
294
|
-
}
|
|
295
|
-
|
|
296
|
-
/* Clip-path reveal — more sophisticated than fade */
|
|
297
|
-
.reveal-clip {
|
|
298
|
-
clip-path: inset(100% 0 0 0);
|
|
299
|
-
animation: clipReveal 0.8s var(--ease-out-expo) forwards;
|
|
300
|
-
}
|
|
301
|
-
@keyframes clipReveal {
|
|
302
|
-
to {
|
|
303
|
-
clip-path: inset(0 0 0 0);
|
|
304
|
-
}
|
|
305
|
-
}
|
|
306
|
-
|
|
307
|
-
/* Magnetic hover (cursor follows) — for buttons and cards */
|
|
308
|
-
.magnetic {
|
|
309
|
-
transition: transform 0.3s var(--spring);
|
|
310
|
-
}
|
|
311
|
-
.magnetic:hover {
|
|
312
|
-
transform: translate(var(--mx, 0), var(--my, 0)) scale(1.02);
|
|
313
|
-
}
|
|
314
|
-
|
|
315
|
-
/* Reduce motion — MANDATORY accessibility */
|
|
316
|
-
@media (prefers-reduced-motion: reduce) {
|
|
317
|
-
*,
|
|
318
|
-
*::before,
|
|
319
|
-
*::after {
|
|
320
|
-
animation-duration: 0.01ms !important;
|
|
321
|
-
animation-iteration-count: 1 !important;
|
|
322
|
-
transition-duration: 0.01ms !important;
|
|
323
|
-
}
|
|
49
|
+
/* oklch(Lightness Chroma Hue / Alpha) */
|
|
50
|
+
--color-primary: oklch(65% 0.22 250); /* Brand electric blue */
|
|
51
|
+
--color-primary-hover: oklch(58% 0.22 250); /* Darker active state */
|
|
52
|
+
--bg-base: oklch(0.08 0.005 250); /* OLED base background */
|
|
53
|
+
--bg-surface: oklch(0.12 0.008 250); /* Stepped card surface */
|
|
54
|
+
--border-subtle: oklch(22% 0.01 250 / 0.4); /* Hairline separator */
|
|
324
55
|
}
|
|
325
56
|
```
|
|
326
57
|
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
Flat shadows look AI-generated. Real shadows have layers.
|
|
332
|
-
|
|
333
|
-
```css
|
|
334
|
-
/* Layered shadow system — physics-based */
|
|
335
|
-
.elevation-1 {
|
|
336
|
-
box-shadow:
|
|
337
|
-
0 1px 2px rgba(0, 0, 0, 0.03),
|
|
338
|
-
0 2px 4px rgba(0, 0, 0, 0.03),
|
|
339
|
-
0 4px 8px rgba(0, 0, 0, 0.03);
|
|
340
|
-
}
|
|
341
|
-
|
|
342
|
-
.elevation-2 {
|
|
343
|
-
box-shadow:
|
|
344
|
-
0 2px 4px rgba(0, 0, 0, 0.02),
|
|
345
|
-
0 4px 8px rgba(0, 0, 0, 0.03),
|
|
346
|
-
0 8px 16px rgba(0, 0, 0, 0.04),
|
|
347
|
-
0 16px 32px rgba(0, 0, 0, 0.04);
|
|
348
|
-
}
|
|
349
|
-
|
|
350
|
-
.elevation-3 {
|
|
351
|
-
box-shadow:
|
|
352
|
-
0 4px 8px rgba(0, 0, 0, 0.02),
|
|
353
|
-
0 8px 16px rgba(0, 0, 0, 0.04),
|
|
354
|
-
0 16px 32px rgba(0, 0, 0, 0.06),
|
|
355
|
-
0 32px 64px rgba(0, 0, 0, 0.08);
|
|
356
|
-
}
|
|
357
|
-
|
|
358
|
-
/* Colored shadow (matches card content) */
|
|
359
|
-
.card-accent {
|
|
360
|
-
box-shadow:
|
|
361
|
-
0 8px 24px oklch(65% 0.15 250 / 0.2),
|
|
362
|
-
/* Tinted with primary */ 0 2px 4px rgba(0, 0, 0, 0.04);
|
|
363
|
-
}
|
|
364
|
-
```
|
|
58
|
+
### Color Gamut Guidelines
|
|
59
|
+
- **Display-P3 Saturated Accents:** When targeting high-end modern screens, use chroma values between `0.20` and `0.28`.
|
|
60
|
+
- **Stepped Neutral Contrast:** Stepped neutral surfaces must increase by `0.04` Lightness increments (e.g., base `0.08` → surface `0.12` → raised `0.16` → overlay `0.20`) to create physical depth without color tint deviations.
|
|
365
61
|
|
|
366
62
|
---
|
|
367
63
|
|
|
368
|
-
##
|
|
369
|
-
|
|
370
|
-
Dark mode is a separate design system, not a filter.
|
|
371
|
-
|
|
372
|
-
```css
|
|
373
|
-
/* Wrong: Just swap black and white */
|
|
374
|
-
/* Right: Reduce contrast, shift depth model, adjust chroma */
|
|
375
|
-
|
|
376
|
-
[data-theme="dark"] {
|
|
377
|
-
--bg-base: oklch(8% 0.005 250); /* Near-black, not pure #000 */
|
|
378
|
-
--bg-surface: oklch(13% 0.008 250); /* Cards — slightly lighter */
|
|
379
|
-
--bg-elevated: oklch(18% 0.01 250); /* Modals — even lighter */
|
|
380
|
-
|
|
381
|
-
--text-primary: oklch(93% 0.005 250); /* Not pure white — too harsh */
|
|
382
|
-
--text-secondary: oklch(65% 0.01 250);
|
|
64
|
+
## 2. Typographical Tracking & scaling
|
|
383
65
|
|
|
384
|
-
|
|
385
|
-
--border: oklch(22% 0.01 250);
|
|
66
|
+
Headings must use `clamp()` for fluid sizing and tight negative letter spacing (tracking) to prevent loose display layouts:
|
|
386
67
|
|
|
387
|
-
|
|
388
|
-
|
|
68
|
+
| Token | Clamp Value | Weight | Line Height | Tracking |
|
|
69
|
+
| :--- | :--- | :--- | :--- | :--- |
|
|
70
|
+
| `--text-hero` | `clamp(2.5rem, 6vw, 4.5rem)` | 800 | 0.95 | `-0.04em` (Tight) |
|
|
71
|
+
| `--text-h1` | `clamp(2.0rem, 4vw, 3.0rem)` | 700 | 1.05 | `-0.03em` |
|
|
72
|
+
| `--text-h2` | `clamp(1.5rem, 3vw, 2.0rem)` | 600 | 1.15 | `-0.02em` |
|
|
73
|
+
| `--text-body` | `1rem` | 400 | 1.60 | `0` (Normal) |
|
|
74
|
+
| `--text-sm` | `0.875rem` | 400 | 1.50 | `+0.005em` (Loose) |
|
|
389
75
|
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
}
|
|
393
|
-
|
|
394
|
-
/* Key rules:
|
|
395
|
-
1. Dark backgrounds use INCREASING lightness for elevation (opposite of light mode)
|
|
396
|
-
2. Never use pure #000000 unless targeting OLED (then use it ONLY for the base layer)
|
|
397
|
-
3. Reduce image brightness: img { filter: brightness(0.9); }
|
|
398
|
-
4. Invert shadows: dark mode cards don't cast shadows — they glow or use borders
|
|
399
|
-
*/
|
|
400
|
-
```
|
|
76
|
+
* **BALANCED Headings:** Always declare `text-wrap: balance` on all dynamic title elements to prevent visual orphans.
|
|
77
|
+
* **Reading Measures:** Paragraph widths must be clamped to `65ch` max width (`max-width: 65ch`) to reduce cognitive scan overhead.
|
|
401
78
|
|
|
402
79
|
---
|
|
403
80
|
|
|
404
|
-
##
|
|
405
|
-
|
|
406
|
-
Don't think "desktop then mobile." Think "content then container."
|
|
81
|
+
## 3. Depth Shadows & Layering Math
|
|
407
82
|
|
|
83
|
+
Flat shadows look cheap. Premium interfaces use physics-based multi-layered shadows to simulate light occlusion:
|
|
408
84
|
```css
|
|
409
|
-
/*
|
|
410
|
-
.
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
@container card-grid (min-width: 600px) {
|
|
416
|
-
.card-grid-inner {
|
|
417
|
-
grid-template-columns: repeat(2, 1fr);
|
|
418
|
-
}
|
|
419
|
-
}
|
|
420
|
-
|
|
421
|
-
@container card-grid (min-width: 900px) {
|
|
422
|
-
.card-grid-inner {
|
|
423
|
-
grid-template-columns: repeat(3, 1fr);
|
|
424
|
-
}
|
|
425
|
-
}
|
|
426
|
-
|
|
427
|
-
/* Fluid spacing that scales with viewport */
|
|
428
|
-
.section {
|
|
429
|
-
padding-block: clamp(2rem, 6vw, 6rem);
|
|
430
|
-
padding-inline: clamp(1rem, 4vw, 4rem);
|
|
431
|
-
}
|
|
432
|
-
|
|
433
|
-
/* Mobile touch targets */
|
|
434
|
-
@media (pointer: coarse) {
|
|
435
|
-
button,
|
|
436
|
-
a,
|
|
437
|
-
input,
|
|
438
|
-
select {
|
|
439
|
-
min-height: 48px; /* Thumb-friendly */
|
|
440
|
-
min-width: 48px;
|
|
441
|
-
}
|
|
442
|
-
}
|
|
443
|
-
```
|
|
444
|
-
|
|
445
|
-
---
|
|
446
|
-
|
|
447
|
-
## 9. Texture & Atmosphere
|
|
448
|
-
|
|
449
|
-
The difference between "AI-generated" and "designed" is atmosphere.
|
|
450
|
-
|
|
451
|
-
```css
|
|
452
|
-
/* Noise grain overlay — adds physical texture */
|
|
453
|
-
.grain::after {
|
|
454
|
-
content: "";
|
|
455
|
-
position: fixed;
|
|
456
|
-
inset: 0;
|
|
457
|
-
background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.04'/%3E%3C/svg%3E");
|
|
458
|
-
pointer-events: none;
|
|
459
|
-
z-index: 9999;
|
|
460
|
-
opacity: 0.4;
|
|
461
|
-
}
|
|
462
|
-
|
|
463
|
-
/* Gradient mesh — subtle background depth */
|
|
464
|
-
.atmosphere {
|
|
465
|
-
background: radial-gradient(ellipse at 20% 50%, oklch(95% 0.03 250 / 0.5), transparent 50%), radial-gradient(ellipse at 80% 20%, oklch(95% 0.03 30 / 0.3), transparent 50%), oklch(98% 0.005 250);
|
|
466
|
-
}
|
|
467
|
-
|
|
468
|
-
/* Glassmorphism — done correctly */
|
|
469
|
-
.glass {
|
|
470
|
-
background: oklch(100% 0 0 / 0.6);
|
|
471
|
-
backdrop-filter: blur(20px) saturate(1.2);
|
|
472
|
-
-webkit-backdrop-filter: blur(20px) saturate(1.2);
|
|
473
|
-
border: 1px solid oklch(100% 0 0 / 0.15);
|
|
474
|
-
box-shadow: 0 8px 32px rgba(0, 0, 0, 0.06);
|
|
85
|
+
/* Stepped ambient + key shadow coefficients */
|
|
86
|
+
.elevation-md {
|
|
87
|
+
box-shadow:
|
|
88
|
+
0 1px 2px oklch(0% 0 0 / 0.05), /* Ambient shadow */
|
|
89
|
+
0 4px 12px oklch(0% 0 0 / 0.08), /* Key shadow */
|
|
90
|
+
0 0 1px oklch(100% 0 0 / 0.12); /* Hairline luminous stroke */
|
|
475
91
|
}
|
|
476
92
|
```
|
|
93
|
+
- In dark themes, shadows should drop in opacity and be accompanied by luminous hairlines (`border: 1px solid oklch(100% 0 0 / 0.08)`) instead of thick black shadows.
|
|
477
94
|
|
|
478
95
|
---
|
|
479
96
|
|
|
480
|
-
##
|
|
97
|
+
## 4. Interaction States & Transitions
|
|
481
98
|
|
|
482
|
-
|
|
483
|
-
|
|
484
|
-
|
|
485
|
-
• Top 25% = destructive/rare actions (stretch zone)
|
|
486
|
-
• 48px minimum touch target (visual size can be 24px with padding expanding hitbox)
|
|
487
|
-
• Spring physics (stiffness: 400, damping: 15) for all interactive animations
|
|
488
|
-
|
|
489
|
-
PLATFORM RESPECT:
|
|
490
|
-
• iOS: Rounded 12px corners, system blur, SF Symbols icon style, sheet presentations
|
|
491
|
-
• Android: Material You dynamic color, 4dp grid, ripple feedback, edge-to-edge
|
|
492
|
-
• NEVER make iOS look like Android or vice versa — respect each platform's language
|
|
493
|
-
|
|
494
|
-
PERFORMANCE:
|
|
495
|
-
• Only animate transform + opacity (GPU composited)
|
|
496
|
-
• Never animate width, height, margin, padding (layout recalc = jank)
|
|
497
|
-
• FlashList over FlatList over ScrollView for lists (10x perf difference)
|
|
498
|
-
• Cancel all animations on unmount (memory leak prevention)
|
|
499
|
-
```
|
|
99
|
+
All buttons and active controls must define styled properties for:
|
|
100
|
+
* `hover`, `focus-visible`, `active`/`pressed`, and `disabled` states.
|
|
101
|
+
* Use spring easing curves: `cubic-bezier(0.34, 1.56, 0.64, 1)`.
|
|
500
102
|
|
|
501
103
|
---
|
|
502
104
|
|
|
503
|
-
## 11. The Anti-AI-Slop Checklist
|
|
504
|
-
|
|
505
|
-
Before submitting ANY UI, verify against this list:
|
|
506
|
-
|
|
507
|
-
```
|
|
508
|
-
□ Does it have a clear visual identity, or does it look like "default"?
|
|
509
|
-
□ Is the font pairing distinctive (not Inter + Inter)?
|
|
510
|
-
□ Are colors OKLCH-based and tinted (not flat gray)?
|
|
511
|
-
□ Are shadows multi-layered (not single box-shadow)?
|
|
512
|
-
□ Is there at least ONE grid-breaking element for visual tension?
|
|
513
|
-
□ Does motion serve a PURPOSE (feedback/orientation/delight)?
|
|
514
|
-
□ Is dark mode a separate design, not just inverted colors?
|
|
515
|
-
□ Are touch targets 48px+ on mobile (pointer: coarse)?
|
|
516
|
-
□ Does prefers-reduced-motion disable ALL animations?
|
|
517
|
-
□ Is contrast ratio ≥ 4.5:1 for body text, ≥ 3:1 for large text?
|
|
518
|
-
□ Is the hero section NOT "left text, right image"?
|
|
519
|
-
□ Is the primary color NOT purple/violet?
|
|
520
|
-
```
|
|
521
|
-
|
|
522
|
-
If any answer is NO, the design is not ready for production.
|
|
523
|
-
|
|
524
|
-
---
|
|
525
|
-
|
|
526
|
-
## Output Format
|
|
527
|
-
|
|
528
|
-
When this skill produces a recommendation or design decision, structure your output as:
|
|
529
|
-
|
|
530
|
-
```
|
|
531
|
-
━━━ Picasso Protocol: UI Recommendation ━━━━━━━━━━━━━━━━
|
|
532
|
-
Identity: [chosen visual direction from Section 1]
|
|
533
|
-
Decision: [what was chosen / proposed]
|
|
534
|
-
Rationale: [why — one concise line]
|
|
535
|
-
Trade-offs: [what is consciously accepted]
|
|
536
|
-
Next action: [concrete next step for the user]
|
|
537
|
-
─────────────────────────────────────────────────────────
|
|
538
|
-
Anti-Slop: ✅ Passed (12/12 checks)
|
|
539
|
-
or ❌ Failed: [specific check that failed]
|
|
540
|
-
```
|
|
541
|
-
|
|
542
|
-
---
|
|
543
|
-
|
|
544
|
-
AI coding assistants often fall into specific bad habits when dealing with this domain. These are strictly forbidden:
|
|
545
|
-
|
|
546
|
-
1. **Over-engineering:** Proposing complex abstractions or distributed systems when a simpler approach suffices.
|
|
547
|
-
2. **Hallucinated Libraries/Methods:** Using non-existent methods or packages. Always `// VERIFY` or check `package.json` / `requirements.txt`.
|
|
548
|
-
3. **Skipping Edge Cases:** Writing the "happy path" and ignoring error handling, timeouts, or data validation.
|
|
549
|
-
4. **Context Amnesia:** Forgetting the user's constraints and offering generic advice instead of tailored solutions.
|
|
550
|
-
5. **Silent Degradation:** Catching and suppressing errors without logging or re-raising.
|
|
551
|
-
|
|
552
|
-
---
|
|
553
|
-
|
|
554
|
-
**Slash command: `/review` or `/tribunal-full`**
|
|
555
|
-
**Active reviewers: `logic-reviewer` · `security-auditor` · `ui-ux-auditor` · `accessibility-reviewer`**
|
|
556
|
-
|
|
557
|
-
### ❌ Forbidden AI Tropes
|
|
558
|
-
|
|
559
|
-
1. **Blind Assumptions:** Never make an assumption without documenting it clearly with `// VERIFY: [reason]`.
|
|
560
|
-
2. **Silent Degradation:** Catching and suppressing errors without logging or handling.
|
|
561
|
-
3. **Context Amnesia:** Forgetting the user's constraints and offering generic advice instead of tailored solutions.
|
|
562
|
-
4. **AI-Slop Convergence:** Producing the same purple-gradient, Inter-font, bento-grid layout that every AI defaults to.
|
|
563
|
-
|
|
564
|
-
Review these questions before confirming output:
|
|
565
|
-
|
|
566
|
-
```
|
|
567
|
-
✅ Did I rely ONLY on real, verified tools and methods?
|
|
568
|
-
✅ Is this solution appropriately scoped to the user's constraints?
|
|
569
|
-
✅ Did I handle potential failure modes and edge cases?
|
|
570
|
-
✅ Have I avoided generic boilerplate that doesn't add value?
|
|
571
|
-
✅ Does this UI pass the Anti-AI-Slop Checklist (Section 11)?
|
|
572
|
-
```
|
|
573
|
-
|
|
574
|
-
### 🛑 Verification-Before-Completion (VBC) Protocol
|
|
575
|
-
|
|
576
|
-
**CRITICAL:** You must follow a strict "evidence-based closeout" state machine.
|
|
577
|
-
|
|
578
|
-
- ❌ **Forbidden:** Declaring a task complete because the output "looks correct."
|
|
579
|
-
- ✅ **Required:** You are explicitly forbidden from finalizing any task without providing **concrete evidence** (terminal output, passing tests, compile success, or equivalent proof) that your output works as intended.
|
|
580
|
-
|
|
581
105
|
## Pre-Flight Checklist
|
|
582
|
-
|
|
583
106
|
- [ ] Have I reviewed the user's specific constraints and requests?
|
|
584
107
|
- [ ] Have I checked the environment for relevant existing implementations?
|
|
585
108
|
- [ ] Have I verified the design passes the Anti-AI-Slop Checklist?
|
|
586
109
|
|
|
587
110
|
## VBC Protocol (Verification-Before-Completion)
|
|
588
|
-
|
|
589
111
|
You MUST verify existing code signatures and variables before attempting to modify or call them. No hallucination is permitted.
|
|
590
|
-
|
|
591
|
-
---
|
|
592
|
-
|
|
593
|
-
## 🤖 LLM-Specific Traps
|
|
594
|
-
|
|
595
|
-
AI coding assistants often fall into specific bad habits when dealing with this domain. These are strictly forbidden:
|
|
596
|
-
|
|
597
|
-
1. **Over-engineering:** Proposing complex abstractions or distributed systems when a simpler approach suffices.
|
|
598
|
-
2. **Hallucinated Libraries/Methods:** Using non-existent methods or packages. Always `// VERIFY` or check `package.json` / `requirements.txt`.
|
|
599
|
-
3. **Skipping Edge Cases:** Writing the "happy path" and ignoring error handling, timeouts, or data validation.
|
|
600
|
-
4. **Context Amnesia:** Forgetting the user's constraints and offering generic advice instead of tailored solutions.
|
|
601
|
-
5. **Silent Degradation:** Catching and suppressing errors without logging or re-raising.
|
|
602
|
-
|
|
603
|
-
---
|
|
604
|
-
|
|
605
|
-
## 🏛️ Tribunal Integration (Anti-Hallucination)
|
|
606
|
-
|
|
607
|
-
**Slash command: `/review` or `/tribunal-full`**
|
|
608
|
-
**Active reviewers: `logic-reviewer` · `security-auditor`**
|
|
609
|
-
|
|
610
|
-
### ❌ Forbidden AI Tropes
|
|
611
|
-
|
|
612
|
-
1. **Blind Assumptions:** Never make an assumption without documenting it clearly with `// VERIFY: [reason]`.
|
|
613
|
-
2. **Silent Degradation:** Catching and suppressing errors without logging or handling.
|
|
614
|
-
3. **Context Amnesia:** Forgetting the user's constraints and offering generic advice instead of tailored solutions.
|
|
615
|
-
|
|
616
|
-
### ✅ Pre-Flight Self-Audit
|
|
617
|
-
|
|
618
|
-
Review these questions before confirming output:
|
|
619
|
-
|
|
620
|
-
```
|
|
621
|
-
✅ Did I rely ONLY on real, verified tools and methods?
|
|
622
|
-
✅ Is this solution appropriately scoped to the user's constraints?
|
|
623
|
-
✅ Did I handle potential failure modes and edge cases?
|
|
624
|
-
✅ Have I avoided generic boilerplate that doesn't add value?
|
|
625
|
-
```
|
|
626
|
-
|
|
627
|
-
### 🛑 Verification-Before-Completion (VBC) Protocol
|
|
628
|
-
|
|
629
|
-
**CRITICAL:** You must follow a strict "evidence-based closeout" state machine.
|
|
630
|
-
|
|
631
|
-
- ❌ **Forbidden:** Declaring a task complete because the output "looks correct."
|
|
632
|
-
- ✅ **Required:** You are explicitly forbidden from finalizing any task without providing **concrete evidence** (terminal output, passing tests, compile success, or equivalent proof) that your output works as intended.
|