tribunal-kit 4.5.0 → 4.6.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.
Files changed (217) hide show
  1. package/.agent/.shared/ui-ux-pro-max/README.md +4 -4
  2. package/.agent/ARCHITECTURE.md +279 -277
  3. package/.agent/GEMINI.md +127 -121
  4. package/.agent/agents/accessibility-reviewer.md +187 -187
  5. package/.agent/agents/ai-code-reviewer.md +199 -199
  6. package/.agent/agents/api-architect.md +71 -66
  7. package/.agent/agents/backend-specialist.md +219 -215
  8. package/.agent/agents/cloud-engineer.md +98 -0
  9. package/.agent/agents/code-archaeologist.md +168 -161
  10. package/.agent/agents/database-architect.md +184 -184
  11. package/.agent/agents/db-latency-auditor.md +213 -216
  12. package/.agent/agents/debugger.md +198 -191
  13. package/.agent/agents/dependency-reviewer.md +106 -103
  14. package/.agent/agents/devops-engineer.md +218 -218
  15. package/.agent/agents/documentation-writer.md +209 -201
  16. package/.agent/agents/explorer-agent.md +167 -160
  17. package/.agent/agents/frontend-reviewer.md +162 -160
  18. package/.agent/agents/frontend-specialist.md +257 -248
  19. package/.agent/agents/game-developer.md +48 -48
  20. package/.agent/agents/logic-reviewer.md +118 -116
  21. package/.agent/agents/mobile-developer.md +197 -200
  22. package/.agent/agents/mobile-reviewer.md +159 -162
  23. package/.agent/agents/orchestrator.md +187 -181
  24. package/.agent/agents/penetration-tester.md +160 -157
  25. package/.agent/agents/performance-optimizer.md +183 -183
  26. package/.agent/agents/performance-reviewer.md +178 -178
  27. package/.agent/agents/precedence-reviewer.md +251 -250
  28. package/.agent/agents/product-manager.md +149 -142
  29. package/.agent/agents/product-owner.md +81 -80
  30. package/.agent/agents/project-planner.md +152 -142
  31. package/.agent/agents/qa-automation-engineer.md +216 -225
  32. package/.agent/agents/resilience-reviewer.md +88 -88
  33. package/.agent/agents/schema-reviewer.md +67 -67
  34. package/.agent/agents/security-auditor.md +180 -174
  35. package/.agent/agents/seo-specialist.md +188 -193
  36. package/.agent/agents/sql-reviewer.md +159 -161
  37. package/.agent/agents/supervisor-agent.md +173 -184
  38. package/.agent/agents/swarm-worker-contracts.md +170 -166
  39. package/.agent/agents/swarm-worker-registry.md +92 -92
  40. package/.agent/agents/system-architect.md +85 -0
  41. package/.agent/agents/test-coverage-reviewer.md +158 -160
  42. package/.agent/agents/test-engineer.md +118 -118
  43. package/.agent/agents/throughput-optimizer.md +291 -299
  44. package/.agent/agents/type-safety-reviewer.md +182 -175
  45. package/.agent/agents/ui-ux-auditor.md +300 -292
  46. package/.agent/agents/vitals-reviewer.md +223 -223
  47. package/.agent/mcp_config.json +37 -40
  48. package/.agent/patterns/generator.md +11 -9
  49. package/.agent/patterns/inversion.md +14 -12
  50. package/.agent/patterns/pipeline.md +11 -9
  51. package/.agent/patterns/reviewer.md +15 -13
  52. package/.agent/patterns/tool-wrapper.md +11 -9
  53. package/.agent/routing_index.json +654 -0
  54. package/.agent/rules/GEMINI.md +358 -352
  55. package/.agent/scripts/compile_router.py +112 -0
  56. package/.agent/scripts/migrate_skills_frontmatter.py +64 -0
  57. package/.agent/scripts/strengthen_skills.js +1 -1
  58. package/.agent/skills/advanced-rag-pipelines/SKILL.md +56 -0
  59. package/.agent/skills/agent-organizer/SKILL.md +156 -150
  60. package/.agent/skills/agentic-patterns/SKILL.md +313 -315
  61. package/.agent/skills/ai-prompt-injection-defense/SKILL.md +190 -184
  62. package/.agent/skills/api-patterns/SKILL.md +253 -247
  63. package/.agent/skills/api-security-auditor/SKILL.md +195 -193
  64. package/.agent/skills/app-builder/SKILL.md +573 -572
  65. package/.agent/skills/app-builder/templates/SKILL.md +108 -115
  66. package/.agent/skills/app-builder/templates/astro-static/TEMPLATE.md +76 -76
  67. package/.agent/skills/app-builder/templates/chrome-extension/TEMPLATE.md +92 -92
  68. package/.agent/skills/app-builder/templates/cli-tool/TEMPLATE.md +88 -88
  69. package/.agent/skills/app-builder/templates/electron-desktop/TEMPLATE.md +88 -88
  70. package/.agent/skills/app-builder/templates/express-api/TEMPLATE.md +83 -83
  71. package/.agent/skills/app-builder/templates/flutter-app/TEMPLATE.md +90 -90
  72. package/.agent/skills/app-builder/templates/monorepo-turborepo/TEMPLATE.md +90 -90
  73. package/.agent/skills/app-builder/templates/nextjs-fullstack/TEMPLATE.md +126 -122
  74. package/.agent/skills/app-builder/templates/nextjs-saas/TEMPLATE.md +127 -122
  75. package/.agent/skills/app-builder/templates/nextjs-static/TEMPLATE.md +172 -169
  76. package/.agent/skills/app-builder/templates/nuxt-app/TEMPLATE.md +139 -134
  77. package/.agent/skills/app-builder/templates/python-fastapi/TEMPLATE.md +83 -83
  78. package/.agent/skills/app-builder/templates/react-native-app/TEMPLATE.md +122 -119
  79. package/.agent/skills/appflow-wireframe/SKILL.md +146 -145
  80. package/.agent/skills/architecture/SKILL.md +226 -219
  81. package/.agent/skills/authentication-best-practices/SKILL.md +197 -189
  82. package/.agent/skills/backend-security-expert/SKILL.md +16 -2
  83. package/.agent/skills/bash-linux/SKILL.md +179 -179
  84. package/.agent/skills/behavioral-modes/SKILL.md +239 -223
  85. package/.agent/skills/brainstorming/SKILL.md +498 -486
  86. package/.agent/skills/browser-native-ai/SKILL.md +57 -4
  87. package/.agent/skills/building-native-ui/SKILL.md +202 -202
  88. package/.agent/skills/cicd-pro/SKILL.md +442 -0
  89. package/.agent/skills/clean-code/SKILL.md +400 -381
  90. package/.agent/skills/cloud-architect/SKILL.md +439 -0
  91. package/.agent/skills/code-review-checklist/SKILL.md +203 -194
  92. package/.agent/skills/config-validator/SKILL.md +165 -165
  93. package/.agent/skills/containerization-pro/SKILL.md +452 -0
  94. package/.agent/skills/csharp-developer/SKILL.md +518 -518
  95. package/.agent/skills/data-validation-schemas/SKILL.md +333 -328
  96. package/.agent/skills/database-design/SKILL.md +247 -240
  97. package/.agent/skills/deployment-procedures/SKILL.md +172 -169
  98. package/.agent/skills/devops-engineer/SKILL.md +345 -345
  99. package/.agent/skills/devops-incident-responder/SKILL.md +143 -137
  100. package/.agent/skills/doc.md +209 -177
  101. package/.agent/skills/documentation-templates/SKILL.md +291 -279
  102. package/.agent/skills/edge-computing/SKILL.md +183 -181
  103. package/.agent/skills/error-resilience/SKILL.md +411 -428
  104. package/.agent/skills/extract-design-system/SKILL.md +160 -158
  105. package/.agent/skills/framer-motion-expert/SKILL.md +253 -244
  106. package/.agent/skills/frontend-design/SKILL.md +208 -201
  107. package/.agent/skills/frontend-security-expert/SKILL.md +16 -3
  108. package/.agent/skills/game-design-expert/SKILL.md +132 -129
  109. package/.agent/skills/game-engineering-expert/SKILL.md +148 -146
  110. package/.agent/skills/generative-ui-expert/SKILL.md +57 -1
  111. package/.agent/skills/geo-fundamentals/SKILL.md +148 -147
  112. package/.agent/skills/git-pro/SKILL.md +435 -0
  113. package/.agent/skills/github-operations/SKILL.md +335 -329
  114. package/.agent/skills/gsap-core/SKILL.md +319 -308
  115. package/.agent/skills/gsap-frameworks/SKILL.md +213 -207
  116. package/.agent/skills/gsap-performance/SKILL.md +139 -133
  117. package/.agent/skills/gsap-plugins/SKILL.md +486 -480
  118. package/.agent/skills/gsap-react/SKILL.md +202 -189
  119. package/.agent/skills/gsap-scrolltrigger/SKILL.md +357 -350
  120. package/.agent/skills/gsap-timeline/SKILL.md +165 -161
  121. package/.agent/skills/gsap-utils/SKILL.md +344 -338
  122. package/.agent/skills/harness-protocol/SKILL.md +48 -0
  123. package/.agent/skills/i18n-localization/SKILL.md +174 -163
  124. package/.agent/skills/intelligent-routing/SKILL.md +202 -246
  125. package/.agent/skills/knowledge-graph/SKILL.md +60 -52
  126. package/.agent/skills/lint-and-validate/SKILL.md +261 -261
  127. package/.agent/skills/llm-engineering/SKILL.md +400 -394
  128. package/.agent/skills/local-first/SKILL.md +178 -178
  129. package/.agent/skills/mcp-builder/SKILL.md +143 -142
  130. package/.agent/skills/mobile-design/SKILL.md +272 -263
  131. package/.agent/skills/monorepo-management/SKILL.md +335 -334
  132. package/.agent/skills/motion-engineering/SKILL.md +266 -234
  133. package/.agent/skills/nextjs-react-expert/SKILL.md +236 -234
  134. package/.agent/skills/nodejs-best-practices/SKILL.md +547 -548
  135. package/.agent/skills/observability/SKILL.md +343 -343
  136. package/.agent/skills/parallel-agents/SKILL.md +143 -146
  137. package/.agent/skills/performance-profiling/SKILL.md +259 -267
  138. package/.agent/skills/plan-writing/SKILL.md +150 -142
  139. package/.agent/skills/platform-engineer/SKILL.md +148 -147
  140. package/.agent/skills/playwright-best-practices/SKILL.md +188 -187
  141. package/.agent/skills/powershell-windows/SKILL.md +162 -162
  142. package/.agent/skills/project-idioms/SKILL.md +137 -137
  143. package/.agent/skills/python-patterns/SKILL.md +260 -259
  144. package/.agent/skills/python-pro/SKILL.md +324 -323
  145. package/.agent/skills/react-specialist/SKILL.md +305 -277
  146. package/.agent/skills/readme-builder/SKILL.md +310 -300
  147. package/.agent/skills/realtime-patterns/SKILL.md +323 -319
  148. package/.agent/skills/red-team-tactics/SKILL.md +231 -218
  149. package/.agent/skills/rust-pro/SKILL.md +671 -673
  150. package/.agent/skills/seo-fundamentals/SKILL.md +179 -179
  151. package/.agent/skills/server-management/SKILL.md +218 -214
  152. package/.agent/skills/shadcn-ui-expert/SKILL.md +231 -231
  153. package/.agent/skills/skill-creator/SKILL.md +87 -86
  154. package/.agent/skills/sql-pro/SKILL.md +629 -629
  155. package/.agent/skills/supabase-postgres-best-practices/SKILL.md +97 -97
  156. package/.agent/skills/swiftui-expert/SKILL.md +204 -201
  157. package/.agent/skills/system-design-pro/SKILL.md +345 -0
  158. package/.agent/skills/systematic-debugging/SKILL.md +153 -142
  159. package/.agent/skills/tailwind-patterns/SKILL.md +610 -566
  160. package/.agent/skills/tdd-workflow/SKILL.md +169 -161
  161. package/.agent/skills/test-result-analyzer/SKILL.md +313 -309
  162. package/.agent/skills/testing-patterns/SKILL.md +566 -579
  163. package/.agent/skills/trend-researcher/SKILL.md +243 -237
  164. package/.agent/skills/typescript-advanced/SKILL.md +336 -335
  165. package/.agent/skills/ui-ux-pro-max/SKILL.md +590 -562
  166. package/.agent/skills/ui-ux-researcher/SKILL.md +244 -244
  167. package/.agent/skills/vue-expert/SKILL.md +294 -275
  168. package/.agent/skills/vulnerability-scanner/SKILL.md +416 -404
  169. package/.agent/skills/web-accessibility-auditor/SKILL.md +219 -218
  170. package/.agent/skills/web-design-guidelines/SKILL.md +192 -186
  171. package/.agent/skills/webapp-testing/SKILL.md +167 -169
  172. package/.agent/skills/webgpu-performance/SKILL.md +56 -2
  173. package/.agent/skills/whimsy-injector/SKILL.md +346 -325
  174. package/.agent/skills/workflow-optimizer/SKILL.md +231 -229
  175. package/.agent/workflows/acf.md +141 -0
  176. package/.agent/workflows/api-tester.md +176 -151
  177. package/.agent/workflows/audit.md +150 -127
  178. package/.agent/workflows/brainstorm.md +134 -110
  179. package/.agent/workflows/changelog.md +140 -112
  180. package/.agent/workflows/create.md +168 -124
  181. package/.agent/workflows/debug.md +190 -165
  182. package/.agent/workflows/deploy.md +201 -180
  183. package/.agent/workflows/enhance.md +154 -128
  184. package/.agent/workflows/fix.md +136 -114
  185. package/.agent/workflows/generate.md +198 -183
  186. package/.agent/workflows/marathon.md +37 -11
  187. package/.agent/workflows/migrate.md +184 -160
  188. package/.agent/workflows/orchestrate.md +192 -168
  189. package/.agent/workflows/performance-benchmarker.md +135 -114
  190. package/.agent/workflows/plan.md +196 -173
  191. package/.agent/workflows/preview.md +103 -80
  192. package/.agent/workflows/refactor.md +192 -161
  193. package/.agent/workflows/review-ai.md +125 -101
  194. package/.agent/workflows/review.md +141 -116
  195. package/.agent/workflows/session.md +122 -94
  196. package/.agent/workflows/status.md +101 -79
  197. package/.agent/workflows/strengthen-skills.md +164 -138
  198. package/.agent/workflows/super-prompt.md +24 -0
  199. package/.agent/workflows/swarm.md +193 -179
  200. package/.agent/workflows/test.md +211 -189
  201. package/.agent/workflows/tribunal-backend.md +136 -105
  202. package/.agent/workflows/tribunal-database.md +122 -95
  203. package/.agent/workflows/tribunal-frontend.md +221 -96
  204. package/.agent/workflows/tribunal-full.md +129 -100
  205. package/.agent/workflows/tribunal-mobile.md +122 -95
  206. package/.agent/workflows/tribunal-performance.md +136 -110
  207. package/.agent/workflows/tribunal-speed.md +209 -183
  208. package/.agent/workflows/ui-ux-pro-max.md +145 -122
  209. package/README.md +107 -55
  210. package/bin/mcp-server.js +159 -0
  211. package/bin/tribunal-kit.js +105 -29
  212. package/bin/wrapper.js +16 -7
  213. package/mcp_config.json +9 -0
  214. package/package.json +94 -86
  215. package/scripts/changelog.js +4 -3
  216. package/scripts/validate-payload.js +6 -1
  217. package/scripts/postinstall.js +0 -127
@@ -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.