tribunal-kit 4.5.1 → 4.6.1

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.
Files changed (214) hide show
  1. package/.agent/.shared/ui-ux-pro-max/README.md +4 -4
  2. package/.agent/ARCHITECTURE.md +282 -277
  3. package/.agent/agents/accessibility-reviewer.md +187 -187
  4. package/.agent/agents/ai-code-reviewer.md +199 -199
  5. package/.agent/agents/api-architect.md +71 -66
  6. package/.agent/agents/backend-specialist.md +219 -215
  7. package/.agent/agents/cloud-engineer.md +98 -0
  8. package/.agent/agents/code-archaeologist.md +168 -161
  9. package/.agent/agents/database-architect.md +184 -184
  10. package/.agent/agents/db-latency-auditor.md +213 -216
  11. package/.agent/agents/debugger.md +198 -191
  12. package/.agent/agents/dependency-reviewer.md +106 -103
  13. package/.agent/agents/devops-engineer.md +218 -218
  14. package/.agent/agents/documentation-writer.md +209 -201
  15. package/.agent/agents/explorer-agent.md +167 -160
  16. package/.agent/agents/frontend-reviewer.md +162 -160
  17. package/.agent/agents/frontend-specialist.md +257 -248
  18. package/.agent/agents/game-developer.md +48 -48
  19. package/.agent/agents/logic-reviewer.md +118 -116
  20. package/.agent/agents/mobile-developer.md +197 -200
  21. package/.agent/agents/mobile-reviewer.md +159 -162
  22. package/.agent/agents/orchestrator.md +187 -181
  23. package/.agent/agents/penetration-tester.md +160 -157
  24. package/.agent/agents/performance-optimizer.md +183 -183
  25. package/.agent/agents/performance-reviewer.md +178 -178
  26. package/.agent/agents/precedence-reviewer.md +251 -250
  27. package/.agent/agents/product-manager.md +149 -142
  28. package/.agent/agents/product-owner.md +81 -80
  29. package/.agent/agents/project-planner.md +152 -142
  30. package/.agent/agents/qa-automation-engineer.md +216 -225
  31. package/.agent/agents/resilience-reviewer.md +88 -88
  32. package/.agent/agents/schema-reviewer.md +67 -67
  33. package/.agent/agents/security-auditor.md +180 -174
  34. package/.agent/agents/seo-specialist.md +188 -193
  35. package/.agent/agents/sql-reviewer.md +159 -161
  36. package/.agent/agents/supervisor-agent.md +173 -184
  37. package/.agent/agents/swarm-worker-contracts.md +170 -166
  38. package/.agent/agents/swarm-worker-registry.md +92 -92
  39. package/.agent/agents/system-architect.md +85 -0
  40. package/.agent/agents/test-coverage-reviewer.md +158 -160
  41. package/.agent/agents/test-engineer.md +118 -118
  42. package/.agent/agents/throughput-optimizer.md +291 -299
  43. package/.agent/agents/type-safety-reviewer.md +182 -175
  44. package/.agent/agents/ui-ux-auditor.md +300 -292
  45. package/.agent/agents/vitals-reviewer.md +223 -223
  46. package/.agent/mcp_config.json +37 -40
  47. package/.agent/patterns/generator.md +11 -9
  48. package/.agent/patterns/inversion.md +14 -12
  49. package/.agent/patterns/pipeline.md +11 -9
  50. package/.agent/patterns/reviewer.md +15 -13
  51. package/.agent/patterns/tool-wrapper.md +11 -9
  52. package/.agent/routing_index.json +714 -0
  53. package/.agent/rules/GEMINI.md +359 -352
  54. package/.agent/scripts/compile_router.py +112 -0
  55. package/.agent/scripts/migrate_skills_frontmatter.py +64 -0
  56. package/.agent/scripts/strengthen_skills.js +1 -1
  57. package/.agent/skills/advanced-rag-pipelines/SKILL.md +56 -0
  58. package/.agent/skills/agent-organizer/SKILL.md +156 -150
  59. package/.agent/skills/agentic-patterns/SKILL.md +313 -315
  60. package/.agent/skills/ai-prompt-injection-defense/SKILL.md +190 -184
  61. package/.agent/skills/api-patterns/SKILL.md +253 -247
  62. package/.agent/skills/api-security-auditor/SKILL.md +195 -193
  63. package/.agent/skills/app-builder/SKILL.md +573 -572
  64. package/.agent/skills/app-builder/templates/SKILL.md +108 -115
  65. package/.agent/skills/app-builder/templates/astro-static/TEMPLATE.md +76 -76
  66. package/.agent/skills/app-builder/templates/chrome-extension/TEMPLATE.md +92 -92
  67. package/.agent/skills/app-builder/templates/cli-tool/TEMPLATE.md +88 -88
  68. package/.agent/skills/app-builder/templates/electron-desktop/TEMPLATE.md +88 -88
  69. package/.agent/skills/app-builder/templates/express-api/TEMPLATE.md +83 -83
  70. package/.agent/skills/app-builder/templates/flutter-app/TEMPLATE.md +90 -90
  71. package/.agent/skills/app-builder/templates/monorepo-turborepo/TEMPLATE.md +90 -90
  72. package/.agent/skills/app-builder/templates/nextjs-fullstack/TEMPLATE.md +126 -122
  73. package/.agent/skills/app-builder/templates/nextjs-saas/TEMPLATE.md +127 -122
  74. package/.agent/skills/app-builder/templates/nextjs-static/TEMPLATE.md +172 -169
  75. package/.agent/skills/app-builder/templates/nuxt-app/TEMPLATE.md +139 -134
  76. package/.agent/skills/app-builder/templates/python-fastapi/TEMPLATE.md +83 -83
  77. package/.agent/skills/app-builder/templates/react-native-app/TEMPLATE.md +122 -119
  78. package/.agent/skills/appflow-wireframe/SKILL.md +146 -145
  79. package/.agent/skills/architecture/SKILL.md +226 -219
  80. package/.agent/skills/authentication-best-practices/SKILL.md +197 -189
  81. package/.agent/skills/backend-security-expert/SKILL.md +16 -2
  82. package/.agent/skills/bash-linux/SKILL.md +179 -179
  83. package/.agent/skills/behavioral-modes/SKILL.md +239 -223
  84. package/.agent/skills/brainstorming/SKILL.md +498 -486
  85. package/.agent/skills/browser-native-ai/SKILL.md +57 -4
  86. package/.agent/skills/building-native-ui/SKILL.md +202 -202
  87. package/.agent/skills/cicd-pro/SKILL.md +442 -0
  88. package/.agent/skills/clean-code/SKILL.md +400 -381
  89. package/.agent/skills/cloud-architect/SKILL.md +439 -0
  90. package/.agent/skills/code-review-checklist/SKILL.md +203 -194
  91. package/.agent/skills/config-validator/SKILL.md +165 -165
  92. package/.agent/skills/containerization-pro/SKILL.md +452 -0
  93. package/.agent/skills/csharp-developer/SKILL.md +518 -518
  94. package/.agent/skills/data-validation-schemas/SKILL.md +333 -328
  95. package/.agent/skills/database-design/SKILL.md +247 -240
  96. package/.agent/skills/deployment-procedures/SKILL.md +172 -169
  97. package/.agent/skills/devops-engineer/SKILL.md +345 -345
  98. package/.agent/skills/devops-incident-responder/SKILL.md +143 -137
  99. package/.agent/skills/documentation-templates/SKILL.md +291 -279
  100. package/.agent/skills/edge-computing/SKILL.md +183 -181
  101. package/.agent/skills/emil-design-eng/SKILL.md +147 -0
  102. package/.agent/skills/error-resilience/SKILL.md +411 -428
  103. package/.agent/skills/extract-design-system/SKILL.md +160 -158
  104. package/.agent/skills/framer-motion-expert/SKILL.md +253 -244
  105. package/.agent/skills/frontend-design/SKILL.md +208 -201
  106. package/.agent/skills/frontend-security-expert/SKILL.md +16 -3
  107. package/.agent/skills/game-design-expert/SKILL.md +132 -129
  108. package/.agent/skills/game-engineering-expert/SKILL.md +148 -146
  109. package/.agent/skills/generative-ui-expert/SKILL.md +57 -1
  110. package/.agent/skills/geo-fundamentals/SKILL.md +148 -147
  111. package/.agent/skills/git-pro/SKILL.md +435 -0
  112. package/.agent/skills/github-operations/SKILL.md +335 -329
  113. package/.agent/skills/gsap-core/SKILL.md +319 -308
  114. package/.agent/skills/gsap-frameworks/SKILL.md +213 -207
  115. package/.agent/skills/gsap-performance/SKILL.md +139 -133
  116. package/.agent/skills/gsap-plugins/SKILL.md +486 -480
  117. package/.agent/skills/gsap-react/SKILL.md +202 -189
  118. package/.agent/skills/gsap-scrolltrigger/SKILL.md +357 -350
  119. package/.agent/skills/gsap-timeline/SKILL.md +165 -161
  120. package/.agent/skills/gsap-utils/SKILL.md +344 -338
  121. package/.agent/skills/harness-protocol/SKILL.md +48 -0
  122. package/.agent/skills/i18n-localization/SKILL.md +174 -163
  123. package/.agent/skills/intelligent-routing/SKILL.md +202 -246
  124. package/.agent/skills/knowledge-graph/SKILL.md +60 -52
  125. package/.agent/skills/lint-and-validate/SKILL.md +261 -261
  126. package/.agent/skills/llm-engineering/SKILL.md +400 -394
  127. package/.agent/skills/local-first/SKILL.md +178 -178
  128. package/.agent/skills/mcp-builder/SKILL.md +143 -142
  129. package/.agent/skills/mobile-design/SKILL.md +272 -263
  130. package/.agent/skills/monorepo-management/SKILL.md +335 -334
  131. package/.agent/skills/motion-engineering/SKILL.md +266 -234
  132. package/.agent/skills/nextjs-react-expert/SKILL.md +236 -234
  133. package/.agent/skills/nodejs-best-practices/SKILL.md +547 -548
  134. package/.agent/skills/observability/SKILL.md +343 -343
  135. package/.agent/skills/parallel-agents/SKILL.md +143 -146
  136. package/.agent/skills/performance-profiling/SKILL.md +259 -267
  137. package/.agent/skills/plan-writing/SKILL.md +150 -142
  138. package/.agent/skills/platform-engineer/SKILL.md +148 -147
  139. package/.agent/skills/playwright-best-practices/SKILL.md +188 -187
  140. package/.agent/skills/powershell-windows/SKILL.md +162 -162
  141. package/.agent/skills/project-idioms/SKILL.md +137 -137
  142. package/.agent/skills/python-patterns/SKILL.md +260 -259
  143. package/.agent/skills/python-pro/SKILL.md +324 -323
  144. package/.agent/skills/react-specialist/SKILL.md +305 -277
  145. package/.agent/skills/readme-builder/SKILL.md +310 -300
  146. package/.agent/skills/realtime-patterns/SKILL.md +323 -319
  147. package/.agent/skills/red-team-tactics/SKILL.md +231 -218
  148. package/.agent/skills/review-animations/SKILL.md +72 -0
  149. package/.agent/skills/review-animations/STANDARDS.md +73 -0
  150. package/.agent/skills/rust-pro/SKILL.md +671 -673
  151. package/.agent/skills/seo-fundamentals/SKILL.md +179 -179
  152. package/.agent/skills/server-management/SKILL.md +218 -214
  153. package/.agent/skills/shadcn-ui-expert/SKILL.md +231 -231
  154. package/.agent/skills/skill-creator/SKILL.md +87 -86
  155. package/.agent/skills/sql-pro/SKILL.md +629 -629
  156. package/.agent/skills/supabase-postgres-best-practices/SKILL.md +97 -97
  157. package/.agent/skills/swiftui-expert/SKILL.md +204 -201
  158. package/.agent/skills/system-design-pro/SKILL.md +345 -0
  159. package/.agent/skills/systematic-debugging/SKILL.md +153 -142
  160. package/.agent/skills/tailwind-patterns/SKILL.md +610 -566
  161. package/.agent/skills/tdd-workflow/SKILL.md +169 -161
  162. package/.agent/skills/test-result-analyzer/SKILL.md +313 -309
  163. package/.agent/skills/testing-patterns/SKILL.md +566 -579
  164. package/.agent/skills/trend-researcher/SKILL.md +243 -237
  165. package/.agent/skills/typescript-advanced/SKILL.md +336 -335
  166. package/.agent/skills/ui-ux-pro-max/SKILL.md +590 -562
  167. package/.agent/skills/ui-ux-researcher/SKILL.md +244 -244
  168. package/.agent/skills/vue-expert/SKILL.md +294 -275
  169. package/.agent/skills/vulnerability-scanner/SKILL.md +416 -404
  170. package/.agent/skills/web-accessibility-auditor/SKILL.md +219 -218
  171. package/.agent/skills/web-design-guidelines/SKILL.md +192 -186
  172. package/.agent/skills/webapp-testing/SKILL.md +167 -169
  173. package/.agent/skills/webgpu-performance/SKILL.md +56 -2
  174. package/.agent/skills/whimsy-injector/SKILL.md +346 -325
  175. package/.agent/skills/workflow-optimizer/SKILL.md +231 -229
  176. package/.agent/workflows/acf.md +141 -0
  177. package/.agent/workflows/api-tester.md +176 -151
  178. package/.agent/workflows/audit.md +150 -127
  179. package/.agent/workflows/brainstorm.md +134 -110
  180. package/.agent/workflows/changelog.md +140 -112
  181. package/.agent/workflows/create.md +168 -124
  182. package/.agent/workflows/debug.md +190 -165
  183. package/.agent/workflows/deploy.md +201 -180
  184. package/.agent/workflows/enhance.md +154 -128
  185. package/.agent/workflows/fix.md +136 -114
  186. package/.agent/workflows/generate.md +198 -183
  187. package/.agent/workflows/marathon.md +37 -11
  188. package/.agent/workflows/migrate.md +184 -160
  189. package/.agent/workflows/orchestrate.md +192 -168
  190. package/.agent/workflows/performance-benchmarker.md +135 -114
  191. package/.agent/workflows/plan.md +196 -173
  192. package/.agent/workflows/preview.md +103 -80
  193. package/.agent/workflows/refactor.md +192 -161
  194. package/.agent/workflows/review-ai.md +125 -101
  195. package/.agent/workflows/review.md +141 -116
  196. package/.agent/workflows/session.md +122 -94
  197. package/.agent/workflows/status.md +101 -79
  198. package/.agent/workflows/strengthen-skills.md +164 -138
  199. package/.agent/workflows/super-prompt.md +24 -0
  200. package/.agent/workflows/swarm.md +193 -179
  201. package/.agent/workflows/test.md +211 -189
  202. package/.agent/workflows/tribunal-backend.md +136 -105
  203. package/.agent/workflows/tribunal-database.md +129 -95
  204. package/.agent/workflows/tribunal-frontend.md +140 -96
  205. package/.agent/workflows/tribunal-full.md +131 -100
  206. package/.agent/workflows/tribunal-mobile.md +129 -95
  207. package/.agent/workflows/tribunal-performance.md +136 -110
  208. package/.agent/workflows/tribunal-speed.md +209 -183
  209. package/.agent/workflows/ui-ux-pro-max.md +155 -122
  210. package/README.md +107 -55
  211. package/mcp_config.json +1 -3
  212. package/package.json +94 -94
  213. package/.agent/GEMINI.md +0 -121
  214. package/.agent/skills/doc.md +0 -177
@@ -1,566 +1,592 @@
1
- ---
2
- name: ui-ux-pro-max
3
- description: The Picasso Protocol — Elite UI/UX design mastery for web and mobile. Covers visual identity systems, spatial composition, typography mathematics, color science (OKLCH), motion choreography, responsive architecture, dark mode engineering, and anti-AI-slop aesthetics. The definitive skill for building interfaces that feel designed by a human creative director, not an algorithm.
4
- version: 2.0.0
5
- last-updated: 2026-04-29
6
- applies-to-model: gemini-2.5-pro, claude-3-7-sonnet
7
- ---
8
-
9
- # UI/UX Pro Max v2.0 — The Picasso Protocol
10
-
11
- > "Good design is obvious. Great design is transparent." — Joe Sparano
12
-
13
- 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.
14
-
15
- ---
16
-
17
- ## 🚨 Hallucination Traps (Read First — Violations = Instant Rejection)
18
-
19
- ```
20
- Purple/violet primary color → The #1 AI cliché. Use amber, teal, coral, slate, or warm neutrals.
21
- ❌ Inter/Roboto/Arial as body font → ✅ Generic. Use Geist, Satoshi, Cabinet Grotesk, General Sans, or Clash Display.
22
- ❌ Hero: left-text + right-image → ✅ Lazy. Use full-bleed, editorial overlap, or typographic-only hero.
23
- Mesh gradient backgrounds → ✅ The new stock photo. Use grain, solid contrast, or layered depth.
24
- Border-radius: 8px on everything → ✅ Monotonous. Mix sharp (2px) and soft (20px+) radii for hierarchy.
25
- Gray text (#888) on white (#fff) → ✅ Fails WCAG AA (3.7:1). Minimum contrast ratio is 4.5:1.
26
- "Bento box" grid for everything → ✅ Overused. Directional flow, overlap, or editorial asymmetry.
27
- Card CardCard with even spacing → Visual monotony. Vary sizes, break the grid, create tension.
28
- box-shadow: 0 2px 8px rgba(0,0,0,0.1) → ✅ Default AI shadow. Use layered multi-shadow for realism.
29
- Animating opacity + translateY on load → ✅ Every AI does this. Use clip-path reveals, blur-in, or scale-from-origin.
30
- Using px for font-size Use rem (scales with user preference) or clamp() for fluid type.
31
- White (#FFFFFF) backgrounds → ✅ Harsh. Use off-white (#FAFAF8, #F5F3EF) or tinted neutrals.
32
- ```
33
-
34
- ---
35
-
36
- ## 1. The Identity System (Decide Before You Code)
37
-
38
- Before writing a single `div`, commit to a **visual identity**. This is the most important decision.
39
-
40
- ### The Spectrum of Intention
41
- ```
42
- PICK ONE direction — do NOT blend without purpose:
43
-
44
- Brutalist → Raw, exposed structure, monospace, high-contrast, no rounded corners
45
- Editorial → Magazine-inspired, dramatic type scale, generous whitespace, serif headlines
46
- Neo-Glassmorphism Translucent layers, blur, light borders, floating panels, depth
47
- Soft Minimal → Warm neutrals, subtle shadows, rounded forms, breathing room
48
- Dark Luxury True black (#09090B), gold/amber accents, thin weights, restrained motion
49
- Neon Cyberpunk Dark base, vivid saturated accents, glow effects, sharp geometry
50
- Organic Natural Earth tones, rounded blobs, hand-drawn feel, textured backgrounds
51
- Swiss Precision Grid-locked, Helvetica-lineage type, clinical whitespace, no decoration
52
- Retro Analog Warm grain, rounded type, muted palettes, physical texture
53
- ```
54
-
55
- ### Identity Lockfile (Define These 7 Tokens)
56
- ```css
57
- /* EVERY project must define these before any component work */
58
- :root {
59
- --font-display: 'Clash Display', sans-serif; /* Headlines characterful */
60
- --font-body: 'Satoshi', sans-serif; /* Body — readable */
61
- --font-mono: 'JetBrains Mono', monospace; /* Code — purposeful */
62
-
63
- --radius-sharp: 2px; /* Tags, badges */
64
- --radius-default: 12px; /* Cards, inputs */
65
- --radius-soft: 24px; /* Buttons, pills */
66
-
67
- --shadow-subtle: 0 1px 2px rgba(0,0,0,0.04), 0 1px 4px rgba(0,0,0,0.04);
68
- --shadow-medium: 0 4px 12px rgba(0,0,0,0.06), 0 1px 3px rgba(0,0,0,0.04);
69
- --shadow-dramatic: 0 24px 48px rgba(0,0,0,0.12), 0 8px 16px rgba(0,0,0,0.06);
70
- }
71
- ```
72
-
73
- ---
74
-
75
- ## 2. Color Science (OKLCH Over HSL Over HEX)
76
-
77
- **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.
78
-
79
- ```css
80
- :root {
81
- /* OKLCH: oklch(lightness% chroma hue) */
82
- --primary: oklch(65% 0.25 250); /* Vivid teal */
83
- --primary-hover: oklch(55% 0.25 250); /* Same hue, darker */
84
- --primary-subtle: oklch(95% 0.03 250); /* Tinted background */
85
-
86
- --danger: oklch(60% 0.25 25); /* Warm red */
87
- --success: oklch(70% 0.18 155); /* Natural green */
88
- --warning: oklch(80% 0.15 80); /* Amber */
89
-
90
- /* Neutral scale — tinted with brand hue for cohesion */
91
- --gray-50: oklch(98% 0.005 250);
92
- --gray-100: oklch(95% 0.008 250);
93
- --gray-200: oklch(90% 0.01 250);
94
- --gray-400: oklch(70% 0.01 250);
95
- --gray-600: oklch(45% 0.01 250);
96
- --gray-900: oklch(15% 0.01 250);
97
- }
98
-
99
- /* Dark mode — invert lightness, preserve chroma */
100
- @media (prefers-color-scheme: dark) {
101
- :root {
102
- --gray-50: oklch(8% 0.005 250);
103
- --gray-100: oklch(12% 0.008 250);
104
- --gray-200: oklch(18% 0.01 250);
105
- --gray-400: oklch(40% 0.01 250);
106
- --gray-600: oklch(65% 0.01 250);
107
- --gray-900: oklch(95% 0.01 250);
108
- }
109
- }
110
- ```
111
-
112
- ### Palette Rules
113
- ```
114
- 1. Primary: ONE dominant hue. Never two competing saturated colors.
115
- 2. Accent: Complementary or analogous to primary, used sparingly (<10% of surface area).
116
- 3. Neutrals: Tint your grays with the primary hue (5-10 chroma). Pure gray (#808080) looks dead.
117
- 4. Semantic: Red=danger, Green=success, Amber=warning — never override these cultural meanings.
118
- 5. Contrast: Large text (≥24px) needs 3:1 ratio. Body text needs 4.5:1. Use oklch lightness to guarantee this.
119
- ```
120
-
121
- ---
122
-
123
- ## 3. Typography Mathematics
124
-
125
- Typography is 80% of UI design. Get this right and everything else follows.
126
-
127
- ### The Type Scale (Musical Intervals)
128
- ```css
129
- /* Major Third scale (1.25 ratio) — balanced for UI */
130
- :root {
131
- --text-xs: clamp(0.64rem, 0.5vw + 0.5rem, 0.75rem); /* 10-12px */
132
- --text-sm: clamp(0.8rem, 0.6vw + 0.6rem, 0.875rem); /* 12-14px */
133
- --text-base: clamp(1rem, 0.8vw + 0.7rem, 1.125rem); /* 16-18px */
134
- --text-lg: clamp(1.25rem, 1vw + 0.8rem, 1.5rem); /* 20-24px */
135
- --text-xl: clamp(1.563rem, 1.5vw + 1rem, 2rem); /* 25-32px */
136
- --text-2xl: clamp(1.953rem, 2vw + 1.2rem, 2.5rem); /* 31-40px */
137
- --text-3xl: clamp(2.441rem, 3vw + 1.5rem, 3.5rem); /* 39-56px */
138
- --text-hero: clamp(3.052rem, 5vw + 1.5rem, 6rem); /* 48-96px */
139
- }
140
-
141
- /* Typographic rules */
142
- h1, h2, h3 {
143
- font-family: var(--font-display);
144
- letter-spacing: -0.02em; /* Tighten headlines */
145
- line-height: 1.1; /* Tight leading for large type */
146
- text-wrap: balance; /* CSS native text balancing */
147
- }
148
-
149
- p, li {
150
- font-family: var(--font-body);
151
- line-height: 1.6; /* Generous leading for readability */
152
- max-width: 65ch; /* Optimal reading measure */
153
- }
154
-
155
- /* Optical kerning for hero text */
156
- .hero-title {
157
- font-size: var(--text-hero);
158
- font-weight: 700;
159
- letter-spacing: -0.04em; /* Aggressive tightening at large sizes */
160
- line-height: 0.95; /* Negative leading for drama */
161
- }
162
- ```
163
-
164
- ### Font Pairing Rules
165
- ```
166
- WINNING PAIRS (character + readability):
167
- Display: Clash Display + Body: Satoshi → Modern editorial
168
- Display: Playfair Display + Body: Source Sans 3 → Luxury editorial
169
- Display: Space Grotesk + Body: General Sans → Tech-forward
170
- Display: Fraunces + Body: Inter → Warm approachable
171
- Display: Cabinet Grotesk + Body: Switzer → Swiss contemporary
172
-
173
- FORBIDDEN:
174
- Inter + Inter (monotonous)
175
- ❌ Roboto + Roboto (Android system default)
176
- ❌ Any two display fonts together (visual conflict)
177
- Thin weights (<300) for body text at <16px (unreadable)
178
- ```
179
-
180
- ---
181
-
182
- ## 4. Spatial Composition Breaking the Grid
183
-
184
- The best designs follow a grid, then intentionally break it at key moments for drama.
185
-
186
- ### The 8px Spatial System
187
- ```css
188
- :root {
189
- --space-1: 0.25rem; /* 4px — micro: icon gap */
190
- --space-2: 0.5rem; /* 8px — tight: tag padding */
191
- --space-3: 0.75rem; /* 12px — compact: list item gap */
192
- --space-4: 1rem; /* 16px — default: input padding */
193
- --space-5: 1.5rem; /* 24pxcard padding */
194
- --space-6: 2rem; /* 32px — section gap */
195
- --space-8: 3rem; /* 48px major section break */
196
- --space-10: 4rem; /* 64px — page section */
197
- --space-16: 8rem; /* 128px hero breathing room */
198
- }
199
- ```
200
-
201
- ### Layout Techniques That Stand Out
202
- ```css
203
- /* 1. Asymmetric two-column (not 50/50) */
204
- .layout-asymmetric {
205
- display: grid;
206
- grid-template-columns: 2fr 1fr; /* 66/33 split creates visual tension */
207
- gap: var(--space-8);
208
- }
209
-
210
- /* 2. Overlap / Negative margin (elements bleeding into each other) */
211
- .card-featured {
212
- margin-top: -4rem; /* Pull into previous section */
213
- position: relative;
214
- z-index: 2;
215
- }
216
-
217
- /* 3. Full-bleed breakout from container */
218
- .full-bleed {
219
- width: 100vw;
220
- margin-left: calc(50% - 50vw); /* Escape any container */
221
- }
222
-
223
- /* 4. Broken grid one element escapes alignment */
224
- .grid-broken > :nth-child(3) {
225
- grid-column: 1 / -1; /* Span full width */
226
- transform: rotate(-1deg); /* Subtle tilt = handmade feel */
227
- }
228
- ```
229
-
230
- ---
231
-
232
- ## 5. Motion Choreography (Not Just Animation)
233
-
234
- Motion should tell a story. Every animation needs a **purpose**: feedback, orientation, or delight.
235
-
236
- ### The Motion Hierarchy
237
- ```
238
- Priority 1: FEEDBACK — Button press, toggle, form validation (instant, <100ms)
239
- Priority 2: ORIENTATION Page transitions, modal open/close (200-400ms)
240
- Priority 3: DELIGHT — Scroll reveals, hover effects, loading states (300-800ms)
241
-
242
- NEVER animate for decoration alone. Every motion answers: "What just happened?" or "Where am I?"
243
- ```
244
-
245
- ### CSS-First Motion Library
246
- ```css
247
- /* Custom easing never use 'ease' or 'linear' */
248
- :root {
249
- --ease-out-expo: cubic-bezier(0.16, 1, 0.3, 1); /* Snappy exit */
250
- --ease-out-back: cubic-bezier(0.34, 1.56, 0.64, 1); /* Overshoot */
251
- --ease-in-out-quint: cubic-bezier(0.83, 0, 0.17, 1); /* Dramatic */
252
- --spring: cubic-bezier(0.22, 1.2, 0.36, 1); /* Bounce feel */
253
- }
254
-
255
- /* Staggered reveal — the single most impactful animation pattern */
256
- .stagger-children > * {
257
- opacity: 0;
258
- transform: translateY(20px);
259
- animation: fadeUp 0.6s var(--ease-out-expo) forwards;
260
- }
261
- .stagger-children > *:nth-child(1) { animation-delay: 0ms; }
262
- .stagger-children > *:nth-child(2) { animation-delay: 80ms; }
263
- .stagger-children > *:nth-child(3) { animation-delay: 160ms; }
264
- .stagger-children > *:nth-child(4) { animation-delay: 240ms; }
265
-
266
- @keyframes fadeUp {
267
- to { opacity: 1; transform: translateY(0); }
268
- }
269
-
270
- /* Clip-path reveal — more sophisticated than fade */
271
- .reveal-clip {
272
- clip-path: inset(100% 0 0 0);
273
- animation: clipReveal 0.8s var(--ease-out-expo) forwards;
274
- }
275
- @keyframes clipReveal {
276
- to { clip-path: inset(0 0 0 0); }
277
- }
278
-
279
- /* Magnetic hover (cursor follows) — for buttons and cards */
280
- .magnetic {
281
- transition: transform 0.3s var(--spring);
282
- }
283
- .magnetic:hover {
284
- transform: translate(var(--mx, 0), var(--my, 0)) scale(1.02);
285
- }
286
-
287
- /* Reduce motion — MANDATORY accessibility */
288
- @media (prefers-reduced-motion: reduce) {
289
- *, *::before, *::after {
290
- animation-duration: 0.01ms !important;
291
- animation-iteration-count: 1 !important;
292
- transition-duration: 0.01ms !important;
293
- }
294
- }
295
- ```
296
-
297
- ---
298
-
299
- ## 6. Multi-Shadow Realism
300
-
301
- Flat shadows look AI-generated. Real shadows have layers.
302
-
303
- ```css
304
- /* Layered shadow system — physics-based */
305
- .elevation-1 {
306
- box-shadow:
307
- 0 1px 2px rgba(0,0,0,0.03),
308
- 0 2px 4px rgba(0,0,0,0.03),
309
- 0 4px 8px rgba(0,0,0,0.03);
310
- }
311
-
312
- .elevation-2 {
313
- box-shadow:
314
- 0 2px 4px rgba(0,0,0,0.02),
315
- 0 4px 8px rgba(0,0,0,0.03),
316
- 0 8px 16px rgba(0,0,0,0.04),
317
- 0 16px 32px rgba(0,0,0,0.04);
318
- }
319
-
320
- .elevation-3 {
321
- box-shadow:
322
- 0 4px 8px rgba(0,0,0,0.02),
323
- 0 8px 16px rgba(0,0,0,0.04),
324
- 0 16px 32px rgba(0,0,0,0.06),
325
- 0 32px 64px rgba(0,0,0,0.08);
326
- }
327
-
328
- /* Colored shadow (matches card content) */
329
- .card-accent {
330
- box-shadow:
331
- 0 8px 24px oklch(65% 0.15 250 / 0.2), /* Tinted with primary */
332
- 0 2px 4px rgba(0,0,0,0.04);
333
- }
334
- ```
335
-
336
- ---
337
-
338
- ## 7. Dark Mode Engineering (Not Just Invert)
339
-
340
- Dark mode is a separate design system, not a filter.
341
-
342
- ```css
343
- /* Wrong: Just swap black and white */
344
- /* Right: Reduce contrast, shift depth model, adjust chroma */
345
-
346
- [data-theme="dark"] {
347
- --bg-base: oklch(8% 0.005 250); /* Near-black, not pure #000 */
348
- --bg-surface: oklch(13% 0.008 250); /* Cards — slightly lighter */
349
- --bg-elevated: oklch(18% 0.01 250); /* Modals — even lighter */
350
-
351
- --text-primary: oklch(93% 0.005 250); /* Not pure white — too harsh */
352
- --text-secondary: oklch(65% 0.01 250);
353
-
354
- /* Borders become lighter in dark mode, not darker */
355
- --border: oklch(22% 0.01 250);
356
-
357
- /* Shadows become ambient glows or disappear entirely */
358
- --shadow-medium: 0 4px 12px rgba(0,0,0,0.4), 0 0 1px rgba(255,255,255,0.05);
359
-
360
- /* Saturated colors DECREASE chroma in dark mode to avoid eye strain */
361
- --primary: oklch(70% 0.18 250); /* Lower chroma than light mode */
362
- }
363
-
364
- /* Key rules:
365
- 1. Dark backgrounds use INCREASING lightness for elevation (opposite of light mode)
366
- 2. Never use pure #000000 unless targeting OLED (then use it ONLY for the base layer)
367
- 3. Reduce image brightness: img { filter: brightness(0.9); }
368
- 4. Invert shadows: dark mode cards don't cast shadows — they glow or use borders
369
- */
370
- ```
371
-
372
- ---
373
-
374
- ## 8. Responsive Architecture
375
-
376
- Don't think "desktop then mobile." Think "content then container."
377
-
378
- ```css
379
- /* Container queries > media queries for components */
380
- .card-grid {
381
- container-type: inline-size;
382
- container-name: card-grid;
383
- }
384
-
385
- @container card-grid (min-width: 600px) {
386
- .card-grid-inner {
387
- grid-template-columns: repeat(2, 1fr);
388
- }
389
- }
390
-
391
- @container card-grid (min-width: 900px) {
392
- .card-grid-inner {
393
- grid-template-columns: repeat(3, 1fr);
394
- }
395
- }
396
-
397
- /* Fluid spacing that scales with viewport */
398
- .section {
399
- padding-block: clamp(2rem, 6vw, 6rem);
400
- padding-inline: clamp(1rem, 4vw, 4rem);
401
- }
402
-
403
- /* Mobile touch targets */
404
- @media (pointer: coarse) {
405
- button, a, input, select {
406
- min-height: 48px; /* Thumb-friendly */
407
- min-width: 48px;
408
- }
409
- }
410
- ```
411
-
412
- ---
413
-
414
- ## 9. Texture & Atmosphere
415
-
416
- The difference between "AI-generated" and "designed" is atmosphere.
417
-
418
- ```css
419
- /* Noise grain overlay — adds physical texture */
420
- .grain::after {
421
- content: '';
422
- position: fixed;
423
- inset: 0;
424
- 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");
425
- pointer-events: none;
426
- z-index: 9999;
427
- opacity: 0.4;
428
- }
429
-
430
- /* Gradient mesh — subtle background depth */
431
- .atmosphere {
432
- background:
433
- radial-gradient(ellipse at 20% 50%, oklch(95% 0.03 250 / 0.5), transparent 50%),
434
- radial-gradient(ellipse at 80% 20%, oklch(95% 0.03 30 / 0.3), transparent 50%),
435
- oklch(98% 0.005 250);
436
- }
437
-
438
- /* Glassmorphism — done correctly */
439
- .glass {
440
- background: oklch(100% 0 0 / 0.6);
441
- backdrop-filter: blur(20px) saturate(1.2);
442
- -webkit-backdrop-filter: blur(20px) saturate(1.2);
443
- border: 1px solid oklch(100% 0 0 / 0.15);
444
- box-shadow: 0 8px 32px rgba(0,0,0,0.06);
445
- }
446
- ```
447
-
448
- ---
449
-
450
- ## 10. Mobile-Specific Design Rules
451
-
452
- ```
453
- TOUCH PSYCHOLOGY:
454
- • Bottom 40% of screen = primary actions (thumb zone)
455
- • Top 25% = destructive/rare actions (stretch zone)
456
- • 48px minimum touch target (visual size can be 24px with padding expanding hitbox)
457
- • Spring physics (stiffness: 400, damping: 15) for all interactive animations
458
-
459
- PLATFORM RESPECT:
460
- • iOS: Rounded 12px corners, system blur, SF Symbols icon style, sheet presentations
461
- • Android: Material You dynamic color, 4dp grid, ripple feedback, edge-to-edge
462
- • NEVER make iOS look like Android or vice versa — respect each platform's language
463
-
464
- PERFORMANCE:
465
- • Only animate transform + opacity (GPU composited)
466
- • Never animate width, height, margin, padding (layout recalc = jank)
467
- • FlashList over FlatList over ScrollView for lists (10x perf difference)
468
- • Cancel all animations on unmount (memory leak prevention)
469
- ```
470
-
471
- ---
472
-
473
- ## 11. The Anti-AI-Slop Checklist
474
-
475
- Before submitting ANY UI, verify against this list:
476
-
477
- ```
478
- □ Does it have a clear visual identity, or does it look like "default"?
479
- □ Is the font pairing distinctive (not Inter + Inter)?
480
- □ Are colors OKLCH-based and tinted (not flat gray)?
481
- □ Are shadows multi-layered (not single box-shadow)?
482
- □ Is there at least ONE grid-breaking element for visual tension?
483
- □ Does motion serve a PURPOSE (feedback/orientation/delight)?
484
- □ Is dark mode a separate design, not just inverted colors?
485
- □ Are touch targets 48px+ on mobile (pointer: coarse)?
486
- □ Does prefers-reduced-motion disable ALL animations?
487
- □ Is contrast ratio ≥ 4.5:1 for body text, ≥ 3:1 for large text?
488
- □ Is the hero section NOT "left text, right image"?
489
- □ Is the primary color NOT purple/violet?
490
- ```
491
-
492
- If any answer is NO, the design is not ready for production.
493
-
494
- ---
495
-
496
- ## Output Format
497
-
498
- When this skill produces a recommendation or design decision, structure your output as:
499
-
500
- ```
501
- ━━━ Picasso Protocol: UI Recommendation ━━━━━━━━━━━━━━━━
502
- Identity: [chosen visual direction from Section 1]
503
- Decision: [what was chosen / proposed]
504
- Rationale: [why — one concise line]
505
- Trade-offs: [what is consciously accepted]
506
- Next action: [concrete next step for the user]
507
- ─────────────────────────────────────────────────────────
508
- Anti-Slop: ✅ Passed (12/12 checks)
509
- or ❌ Failed: [specific check that failed]
510
- ```
511
-
512
- ---
513
-
514
-
515
-
516
- AI coding assistants often fall into specific bad habits when dealing with this domain. These are strictly forbidden:
517
-
518
- 1. **Over-engineering:** Proposing complex abstractions or distributed systems when a simpler approach suffices.
519
- 2. **Hallucinated Libraries/Methods:** Using non-existent methods or packages. Always `// VERIFY` or check `package.json` / `requirements.txt`.
520
- 3. **Skipping Edge Cases:** Writing the "happy path" and ignoring error handling, timeouts, or data validation.
521
- 4. **Context Amnesia:** Forgetting the user's constraints and offering generic advice instead of tailored solutions.
522
- 5. **Silent Degradation:** Catching and suppressing errors without logging or re-raising.
523
-
524
- ---
525
-
526
-
527
-
528
- **Slash command: `/review` or `/tribunal-full`**
529
- **Active reviewers: `logic-reviewer` · `security-auditor` · `ui-ux-auditor` · `accessibility-reviewer`**
530
-
531
- ### ❌ Forbidden AI Tropes
532
-
533
- 1. **Blind Assumptions:** Never make an assumption without documenting it clearly with `// VERIFY: [reason]`.
534
- 2. **Silent Degradation:** Catching and suppressing errors without logging or handling.
535
- 3. **Context Amnesia:** Forgetting the user's constraints and offering generic advice instead of tailored solutions.
536
- 4. **AI-Slop Convergence:** Producing the same purple-gradient, Inter-font, bento-grid layout that every AI defaults to.
537
-
538
-
539
-
540
- Review these questions before confirming output:
541
- ```
542
- ✅ Did I rely ONLY on real, verified tools and methods?
543
- ✅ Is this solution appropriately scoped to the user's constraints?
544
- ✅ Did I handle potential failure modes and edge cases?
545
- ✅ Have I avoided generic boilerplate that doesn't add value?
546
- ✅ Does this UI pass the Anti-AI-Slop Checklist (Section 11)?
547
- ```
548
-
549
- ### 🛑 Verification-Before-Completion (VBC) Protocol
550
-
551
- **CRITICAL:** You must follow a strict "evidence-based closeout" state machine.
552
- - ❌ **Forbidden:** Declaring a task complete because the output "looks correct."
553
- - ✅ **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.
554
-
555
-
556
- ## Pre-Flight Checklist
557
- - [ ] Have I reviewed the user's specific constraints and requests?
558
- - [ ] Have I checked the environment for relevant existing implementations?
559
- - [ ] Have I verified the design passes the Anti-AI-Slop Checklist?
560
-
561
- ## VBC Protocol (Verification-Before-Completion)
562
- You MUST verify existing code signatures and variables before attempting to modify or call them. No hallucination is permitted.
1
+ ---
2
+ name: ui-ux-pro-max
3
+ description: The Picasso Protocol — Elite UI/UX design mastery for web and mobile. Covers visual identity systems, spatial composition, typography mathematics, color science (OKLCH), motion choreography, responsive architecture, dark mode engineering, and anti-AI-slop aesthetics. The definitive skill for building interfaces that feel designed by a human creative director, not an algorithm.
4
+ version: 2.0.0
5
+ last-updated: 2026-04-29
6
+ applies-to-model: gemini-2.5-pro, claude-3-7-sonnet
7
+ routing:
8
+ domain: general
9
+ tier: basic
10
+ ---
11
+
12
+ # UI/UX Pro Max v2.0 — The Picasso Protocol
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
+
18
+ ---
19
+
20
+ ## 🚨 Hallucination Traps (Read First Violations = Instant Rejection)
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 CardCard 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
+ ---
38
+
39
+ ## 1. The Identity System (Decide Before You Code)
40
+
41
+ Before writing a single `div`, commit to a **visual identity**. This is the most important decision.
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-GlassmorphismTranslucent 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
+ ```
58
+
59
+ ### Identity Lockfile (Define These 7 Tokens)
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
+ ```
77
+
78
+ ---
79
+
80
+ ## 2. Color Science (OKLCH Over HSL Over HEX)
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 */
90
+
91
+ --danger: oklch(60% 0.25 25); /* Warm red */
92
+ --success: oklch(70% 0.18 155); /* Natural green */
93
+ --warning: oklch(80% 0.15 80); /* Amber */
94
+
95
+ /* Neutral scale — tinted with brand hue for cohesion */
96
+ --gray-50: oklch(98% 0.005 250);
97
+ --gray-100: oklch(95% 0.008 250);
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
+ ```
126
+
127
+ ---
128
+
129
+ ## 3. Typography Mathematics
130
+
131
+ Typography is 80% of UI design. Get this right and everything else follows.
132
+
133
+ ### The Type Scale (Musical Intervals)
134
+
135
+ ```css
136
+ /* Major Third scale (1.25 ratio) balanced for UI */
137
+ :root {
138
+ --text-xs: clamp(0.64rem, 0.5vw + 0.5rem, 0.75rem); /* 10-12px */
139
+ --text-sm: clamp(0.8rem, 0.6vw + 0.6rem, 0.875rem); /* 12-14px */
140
+ --text-base: clamp(1rem, 0.8vw + 0.7rem, 1.125rem); /* 16-18px */
141
+ --text-lg: clamp(1.25rem, 1vw + 0.8rem, 1.5rem); /* 20-24px */
142
+ --text-xl: clamp(1.563rem, 1.5vw + 1rem, 2rem); /* 25-32px */
143
+ --text-2xl: clamp(1.953rem, 2vw + 1.2rem, 2.5rem); /* 31-40px */
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; /* 32pxsection 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
+ }
324
+ }
325
+ ```
326
+
327
+ ---
328
+
329
+ ## 6. Multi-Shadow Realism
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
+ ```
365
+
366
+ ---
367
+
368
+ ## 7. Dark Mode Engineering (Not Just Invert)
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);
383
+
384
+ /* Borders become lighter in dark mode, not darker */
385
+ --border: oklch(22% 0.01 250);
386
+
387
+ /* Shadows become ambient glows or disappear entirely */
388
+ --shadow-medium: 0 4px 12px rgba(0, 0, 0, 0.4), 0 0 1px rgba(255, 255, 255, 0.05);
389
+
390
+ /* Saturated colors DECREASE chroma in dark mode to avoid eye strain */
391
+ --primary: oklch(70% 0.18 250); /* Lower chroma than light mode */
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
+ ```
401
+
402
+ ---
403
+
404
+ ## 8. Responsive Architecture
405
+
406
+ Don't think "desktop then mobile." Think "content then container."
407
+
408
+ ```css
409
+ /* Container queries > media queries for components */
410
+ .card-grid {
411
+ container-type: inline-size;
412
+ container-name: card-grid;
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
+ }
563
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);
475
+ }
476
+ ```
477
+
478
+ ---
479
+
480
+ ## 10. Mobile-Specific Design Rules
481
+
482
+ ```
483
+ TOUCH PSYCHOLOGY:
484
+ • Bottom 40% of screen = primary actions (thumb zone)
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
+ ```
500
+
501
+ ---
502
+
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
+ ## Pre-Flight Checklist
582
+
583
+ - [ ] Have I reviewed the user's specific constraints and requests?
584
+ - [ ] Have I checked the environment for relevant existing implementations?
585
+ - [ ] Have I verified the design passes the Anti-AI-Slop Checklist?
586
+
587
+ ## VBC Protocol (Verification-Before-Completion)
588
+
589
+ You MUST verify existing code signatures and variables before attempting to modify or call them. No hallucination is permitted.
564
590
 
565
591
  ---
566
592
 
@@ -590,6 +616,7 @@ AI coding assistants often fall into specific bad habits when dealing with this
590
616
  ### ✅ Pre-Flight Self-Audit
591
617
 
592
618
  Review these questions before confirming output:
619
+
593
620
  ```
594
621
  ✅ Did I rely ONLY on real, verified tools and methods?
595
622
  ✅ Is this solution appropriately scoped to the user's constraints?
@@ -600,5 +627,6 @@ Review these questions before confirming output:
600
627
  ### 🛑 Verification-Before-Completion (VBC) Protocol
601
628
 
602
629
  **CRITICAL:** You must follow a strict "evidence-based closeout" state machine.
630
+
603
631
  - ❌ **Forbidden:** Declaring a task complete because the output "looks correct."
604
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.