ui-ux-master 1.2.1 → 1.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,327 @@
1
+ # Landing Page Patterns & Chart Type Guide
2
+
3
+ Load this file when designing landing pages, marketing pages, or choosing data visualizations for dashboards.
4
+
5
+ ---
6
+
7
+ ## Part 1 — Landing Page Conversion Patterns
8
+
9
+ Each pattern describes a proven page structure. Match the pattern to the product type and conversion goal. Use the section order as a scaffold — apply brand tokens, copy, and components on top.
10
+
11
+ ---
12
+
13
+ ### Pattern 1 — Hero-Centric
14
+
15
+ **Conversion goal:** Create immediate desire and push to a single CTA.
16
+ **Best for:** Consumer products, SaaS, mobile apps, simple single-offer products.
17
+
18
+ **Structure:**
19
+ 1. **Hero** — Bold headline (outcome, not feature). Subheadline. Primary CTA. Hero visual (product screenshot, lifestyle image, or animated demo).
20
+ 2. **Social proof bar** — Logos or "X,000 users" (real numbers only).
21
+ 3. **Core features** — 3 features, icon + title + 1-line description.
22
+ 4. **Product showcase** — Screenshot or demo walkthrough.
23
+ 5. **Testimonials** — 2–3 quotes with name, role, company.
24
+ 6. **Pricing** — Clear, transparent, 2–3 tiers.
25
+ 7. **Final CTA** — Repeat primary CTA with a secondary backup.
26
+
27
+ **Copy rule:** Hero headline must state an outcome ("Ship 10× faster"), not a category ("A development platform").
28
+
29
+ ---
30
+
31
+ ### Pattern 2 — Feature-Led
32
+
33
+ **Conversion goal:** Educate first, convert second. For considered purchases.
34
+ **Best for:** B2B SaaS, developer tools, complex products.
35
+
36
+ **Structure:**
37
+ 1. **Hero** — Clear product category + differentiator. CTA to demo or trial.
38
+ 2. **Logo bar** — Enterprise or recognizable customer logos.
39
+ 3. **Feature deep-dives** — 4–6 features, each with a screenshot and 3-line description. Alternating left/right layout.
40
+ 4. **How it works** — 3-step process diagram.
41
+ 5. **Integration list** — "Works with your stack" logos.
42
+ 6. **Social proof** — Case study card with company + metric.
43
+ 7. **Pricing** — Feature comparison table.
44
+ 8. **CTA** — Demo booking or free trial.
45
+
46
+ ---
47
+
48
+ ### Pattern 3 — Social Proof First
49
+
50
+ **Conversion goal:** Build trust before making any product claim.
51
+ **Best for:** New brands, high-skepticism categories (health, finance, legal).
52
+
53
+ **Structure:**
54
+ 1. **Hero** — Modest headline. Social proof count ("Trusted by 12,000 professionals — real number").
55
+ 2. **Customer logos** — Immediately below hero.
56
+ 3. **Testimonial carousel or grid** — Above the fold-ish, prominent.
57
+ 4. **Product features** — Now that trust is established.
58
+ 5. **More testimonials / case studies** — With metrics.
59
+ 6. **Security/compliance badges** (if relevant).
60
+ 7. **CTA** — "Join them."
61
+
62
+ ---
63
+
64
+ ### Pattern 4 — Problem-Solution
65
+
66
+ **Conversion goal:** Identify the pain, then position the product as the only logical answer.
67
+ **Best for:** Products solving a specific painful problem. Especially effective for productivity, operations, and workflow tools.
68
+
69
+ **Structure:**
70
+ 1. **Problem hook** — "Does this sound familiar?" or "Tired of [pain]?"
71
+ 2. **Agitate** — List 3 symptoms of the problem. Make it feel recognized.
72
+ 3. **Solution reveal** — "There's a better way." Introduce product.
73
+ 4. **How it solves it** — Feature-to-problem mapping.
74
+ 5. **Proof** — Testimonials from people who had the same problem.
75
+ 6. **CTA** — "Stop [problem]. Start [solution]."
76
+
77
+ ---
78
+
79
+ ### Pattern 5 — Product Demo First
80
+
81
+ **Conversion goal:** Show, don't tell. Let the product speak.
82
+ **Best for:** AI tools, creative apps, anything with a compelling interactive demo.
83
+
84
+ **Structure:**
85
+ 1. **Hero with live/embedded demo** — The product working in the hero itself.
86
+ 2. **"Here's what you just saw" explainer** — Brief description of the demo.
87
+ 3. **Key capabilities** — What else it can do.
88
+ 4. **Use case tabs** — "For designers", "For developers", "For product managers."
89
+ 5. **Testimonials from each persona**.
90
+ 6. **Pricing or trial CTA**.
91
+
92
+ ---
93
+
94
+ ### Pattern 6 — Storytelling / Narrative
95
+
96
+ **Conversion goal:** Emotional connection before conversion.
97
+ **Best for:** Consumer brands, luxury, wellness, food, lifestyle, mission-driven companies.
98
+
99
+ **Structure:**
100
+ 1. **Opening visual** — Lifestyle or brand-world hero. Minimal text.
101
+ 2. **Brand story** — 3–4 paragraphs of genuine origin/mission.
102
+ 3. **Product/offer introduced** — Natural transition from story.
103
+ 4. **Product details** — Materials, process, sourcing (whatever is meaningful).
104
+ 5. **Community/people** — Behind the brand or customers.
105
+ 6. **CTA** — Invitation, not pressure.
106
+
107
+ ---
108
+
109
+ ### Pattern 7 — Comparison / Competitive
110
+
111
+ **Conversion goal:** Position against the alternative (usually the status quo or a named competitor).
112
+ **Best for:** Switching products, disruptors, "X but better" positioning.
113
+
114
+ **Structure:**
115
+ 1. **Hero** — "Finally, a [category] that doesn't [competitor's problem]."
116
+ 2. **Comparison table** — You vs. them. Be fair — only list real advantages.
117
+ 3. **Deep feature sections** — Where you win.
118
+ 4. **Testimonials from switchers** — "I switched from X because…"
119
+ 5. **Migration offer** — Import, free migration, etc.
120
+ 6. **CTA** — "Make the switch."
121
+
122
+ **Rule:** Never make false claims in comparison tables. Only list features you genuinely have. Users will verify.
123
+
124
+ ---
125
+
126
+ ### Pattern 8 — Waitlist / Coming Soon
127
+
128
+ **Conversion goal:** Capture interest before launch. Build anticipation.
129
+ **Best for:** Pre-launch products, exclusive launches, limited access.
130
+
131
+ **Structure:**
132
+ 1. **Hero with countdown or "Coming [date]"** — Single focus.
133
+ 2. **Teaser of what's coming** — Just enough to create desire.
134
+ 3. **Email capture** — Primary action. Keep form to email only.
135
+ 4. **Early access benefits** — What waitlist members get.
136
+ 5. **Social proof** — "X people already on the waitlist" (if real).
137
+
138
+ ---
139
+
140
+ ### Pattern 9 — Pricing Page
141
+
142
+ **Conversion goal:** Help the user choose the right tier and commit.
143
+ **Best for:** SaaS, subscription products, membership products.
144
+
145
+ **Structure:**
146
+ 1. **Headline** — "Simple, transparent pricing." No tricks promise.
147
+ 2. **Toggle** — Monthly / Annual (annual should show savings).
148
+ 3. **Pricing tiers** — 2–4 tiers. Highlight the recommended tier.
149
+ 4. **Feature comparison table** — Below tiers for detail-oriented buyers.
150
+ 5. **FAQ** — "What happens after my trial?" "Can I cancel anytime?"
151
+ 6. **Enterprise CTA** — "Need more? Talk to us."
152
+ 7. **Guarantee / Trust signal** — "Cancel anytime. No credit card required."
153
+
154
+ **Rules:**
155
+ - Never hide the price. If you can't show it, say "Custom pricing — contact sales" clearly.
156
+ - Always show what's included, not just what's different from tier to tier.
157
+ - Annual savings: show in % and in $ amount.
158
+
159
+ ---
160
+
161
+ ### Pattern 10 — Documentation / Developer Home
162
+
163
+ **Conversion goal:** Get developers into the docs and first integration fast.
164
+ **Best for:** APIs, SDKs, developer platforms.
165
+
166
+ **Structure:**
167
+ 1. **Hero** — Product in one sentence. "Get started in 5 minutes." Code snippet.
168
+ 2. **Quickstart** — Inline code block. Real runnable example.
169
+ 3. **Key capabilities** — What you can build.
170
+ 4. **Integration ecosystem** — "Works with X, Y, Z."
171
+ 5. **Community / GitHub** — Stars, contributors, Discord.
172
+ 6. **CTA** — "Read the docs." Never "Sign up" as the primary.
173
+
174
+ ---
175
+
176
+ ### Pattern 11 — Portfolio / Case Study
177
+
178
+ **Conversion goal:** Build credibility through demonstrated work.
179
+ **Best for:** Agencies, consultants, freelancers, service businesses.
180
+
181
+ **Structure:**
182
+ 1. **Hero** — Name/studio + specialty. Best work preview.
183
+ 2. **Work grid** — Projects with title, category, thumbnail.
184
+ 3. **Case study detail** — Challenge → Process → Outcome (with metrics).
185
+ 4. **About** — Brief, human, specific.
186
+ 5. **Client logos** — Social proof.
187
+ 6. **CTA** — "Start a project" or "Get in touch."
188
+
189
+ ---
190
+
191
+ ### Pattern 12 — E-commerce Category Page
192
+
193
+ **Conversion goal:** Help users discover and filter to the right product.
194
+ **Best for:** Retail, D2C, marketplace.
195
+
196
+ **Structure:**
197
+ 1. **Category hero** — Seasonal or collection-led visual.
198
+ 2. **Filter bar** — Sort, filter by attributes. Sticky on scroll.
199
+ 3. **Product grid** — Cards with image, name, price, quick-add.
200
+ 4. **Pagination or infinite scroll** — Clear affordance.
201
+ 5. **Upsell section** — "Complete the look" or "Frequently bought together."
202
+
203
+ ---
204
+
205
+ ## Part 2 — Chart & Data Visualization Type Guide
206
+
207
+ Load this section when designing dashboards, analytics pages, or any data-heavy screen.
208
+
209
+ ---
210
+
211
+ ### Chart Selection Decision Tree
212
+
213
+ ```
214
+ What is the user trying to understand?
215
+
216
+ COMPARISON
217
+ ├── Between a few items (≤7) → Bar Chart (vertical)
218
+ ├── Between many items → Horizontal Bar Chart
219
+ ├── Over time → Line Chart
220
+ └── Part of a whole → Pie Chart (≤5 segments) / Donut Chart
221
+
222
+ TREND OVER TIME
223
+ ├── Single metric → Line Chart
224
+ ├── Multiple metrics → Multi-line Chart
225
+ ├── Cumulative / stacked → Stacked Area Chart
226
+ └── Volume over time → Bar Chart (time axis)
227
+
228
+ DISTRIBUTION
229
+ ├── Spread of values → Histogram
230
+ ├── Statistical summary → Box Plot
231
+ └── Individual data points → Scatter Plot
232
+
233
+ RELATIONSHIP / CORRELATION
234
+ ├── Two variables → Scatter Plot
235
+ ├── Three variables → Bubble Chart
236
+ └── Categories vs. metric → Heatmap
237
+
238
+ COMPOSITION (part of whole)
239
+ ├── Static snapshot → Pie / Donut (≤5 segments only)
240
+ ├── Over time → Stacked Bar / Stacked Area
241
+ └── Hierarchical → Treemap / Sunburst
242
+
243
+ FLOW / PROCESS
244
+ ├── Sequential steps → Funnel Chart
245
+ ├── Flow between categories → Sankey Diagram
246
+ └── Network relationships → Force-directed graph
247
+
248
+ GEOGRAPHIC
249
+ └── Location-based data → Choropleth Map / Dot Map
250
+
251
+ KPI / SINGLE METRIC
252
+ └── Current value + context → Metric Card with sparkline / Gauge
253
+ ```
254
+
255
+ ---
256
+
257
+ ### Chart Type Specs
258
+
259
+ | Chart | Use when | Avoid when | Max data points |
260
+ |---|---|---|---|
261
+ | **Line** | Trends over time, continuous data | Comparing unrelated categories | 5–7 lines max |
262
+ | **Bar (vertical)** | Comparing categories, discrete data | More than 12 bars (use horizontal) | 12 bars |
263
+ | **Bar (horizontal)** | Long category names, ranked lists | Showing trends over time | 20 items |
264
+ | **Pie** | Part-of-whole, 3–5 categories only | More than 5 slices, comparing sizes | 5 segments |
265
+ | **Donut** | Same as pie + center metric | Same as pie | 5 segments |
266
+ | **Area** | Volume over time, cumulative data | Overlapping areas that obscure data | 3 series |
267
+ | **Stacked bar** | Part-of-whole over categories | Too many stack layers (>5) | 5 stack layers |
268
+ | **Scatter** | Correlation between two variables | Showing trends over time | 500 points |
269
+ | **Bubble** | 3-variable relationship | When bubble size differences are subtle | 50 bubbles |
270
+ | **Heatmap** | Density, frequency, correlation matrix | When exact values matter more than pattern | 100×100 cells |
271
+ | **Funnel** | Conversion pipeline, drop-off analysis | Anything not a sequential conversion | 7 stages |
272
+ | **Treemap** | Hierarchical part-of-whole | When exact sizes matter | 50 tiles |
273
+ | **Histogram** | Distribution of a single variable | Comparing multiple variables | 1 variable |
274
+ | **Metric card** | Single KPI + change + context | When the metric needs breakdown | 1 value |
275
+ | **Sparkline** | Trend at a glance, inline in table | When full axis detail is needed | Simple trend |
276
+ | **Gauge** | Current value vs. target/range | When absolute values matter more | 1 value |
277
+
278
+ ---
279
+
280
+ ### Dashboard Layout Rules
281
+
282
+ **Grid and density:**
283
+ - Cards: consistent padding (24px inner), consistent border-radius, consistent shadow.
284
+ - Spacing between cards: 16–24px.
285
+ - KPI metrics row: 4 cards across at desktop (2 at mobile).
286
+ - Charts: primary charts span 2/3 width; secondary charts span 1/3.
287
+
288
+ **Data typography:**
289
+ - Metric value: `--text-3xl` to `--text-4xl`, `font-weight: 700`, monospace optional.
290
+ - Metric label: `--text-sm`, `--color-text-secondary`.
291
+ - Chart labels: `--text-xs`, `--color-text-muted`.
292
+ - Table: `--text-sm`, `--text-base` for headings.
293
+
294
+ **Color in charts:**
295
+ - Use a consistent, accessible color sequence (not rainbow):
296
+ 1. Brand primary (--color-accent)
297
+ 2. Brand secondary (shifted hue)
298
+ 3. Neutral dark
299
+ 4. Semantic: success green, warning amber, error red
300
+ - Never use red/green as the only indicator in the same chart (colorblindness).
301
+ - Provide pattern + color differentiation for multi-series charts.
302
+
303
+ **Empty and loading states:**
304
+ - Skeleton: same size/shape as the chart it will replace.
305
+ - Empty: explain why it's empty + offer an action ("No data for this period — try adjusting the date range").
306
+ - Error: state what failed + offer retry ("Failed to load — Retry").
307
+
308
+ **Interaction patterns:**
309
+ - Tooltips on hover: show exact values, category label, date.
310
+ - Click-through on chart elements: drill down to detail view.
311
+ - Date range picker: always show current range prominently.
312
+ - Export: CSV and PNG download options for any chart.
313
+
314
+ ---
315
+
316
+ ### Anti-Patterns in Data Visualization
317
+
318
+ | Pattern | Why it's wrong | Fix |
319
+ |---|---|---|
320
+ | Truncated Y-axis (doesn't start at 0) | Exaggerates differences | Always start bar charts at 0 |
321
+ | Pie chart with >5 slices | Impossible to compare small slices | Use horizontal bar chart |
322
+ | 3D charts | Distorts visual perception of values | Never use 3D — always flat |
323
+ | Dual Y-axes with different scales | Implies false correlation | Use separate charts or normalize |
324
+ | Animations on every data update | Distracts, slows perception | Animate once on load only |
325
+ | Red/green only for success/failure | Colorblind users cannot distinguish | Add icon or pattern indicator |
326
+ | Showing raw numbers without context | Users can't judge if good or bad | Add target, average, or prior period comparison |
327
+ | Auto-refreshing without user control | Disorienting, loses user's place | Show "last updated" + manual refresh option |
@@ -0,0 +1,246 @@
1
+ # Output Quality Gates
2
+
3
+ Load this file before emitting any design output. Apply the 5-dimensional self-critique, pass P0 hard gates, then check the anti-slop blacklist. Only emit output after all three pass.
4
+
5
+ This is not optional. A design output that skips these gates has not been reviewed and should not be considered complete.
6
+
7
+ ---
8
+
9
+ ## Part 1 — 5-Dimensional Self-Critique
10
+
11
+ Before producing final visual output (mockup, spec, component, landing page, design system), silently score your output on these five dimensions. Do not show the scoring to the user unless they ask. Fix and rescore until all dimensions are ≥ 3.
12
+
13
+ | Dimension | What it measures | Score 1 | Score 3 | Score 5 |
14
+ |---|---|---|---|---|
15
+ | **Philosophy** | Does the design have a clear, defensible visual identity? | Generic. Could be any product in any category. | Has a point of view but it's diluted or inconsistent. | Every layout decision, color choice, and type scale serves a single coherent visual thesis. |
16
+ | **Hierarchy** | Is the most important element unambiguously dominant? | Multiple elements compete for attention equally. | A primary element exists but is undermined by noise. | The user's eye lands exactly where it should, in the right sequence, without effort. |
17
+ | **Execution** | Are spacing, alignment, type scale, and color application precise? | Arbitrary spacing, misaligned elements, inconsistent sizing. | Generally consistent but has visible irregularities. | Every value is intentional. Spacing is from a system. Nothing looks accidental. |
18
+ | **Specificity** | Is content real and specific, or generic and placeholder? | All text is lorem ipsum or generic ("Title here", "10× faster"). | Some real content, some placeholder. | Every piece of visible copy is real, specific, and contextually correct. |
19
+ | **Restraint** | Are there elements that should be removed? | Visually noisy. Too many competing colors, sizes, or effects. | A few unnecessary elements but the core is clean. | Nothing could be removed without losing meaning. Every element earns its place. |
20
+
21
+ ### Scoring Rules
22
+
23
+ - Score each dimension 1–5 honestly.
24
+ - If any dimension scores below 3: identify the cause, fix it, rescore.
25
+ - Two fix-and-rescore passes is normal and expected.
26
+ - If you cannot get a dimension above 2 with the constraints given, flag it explicitly: "Constraint note: [dimension] is limited by [reason]. Recommended fix: [suggestion]."
27
+ - Do not emit output with any score below 3 without an explicit constraint note.
28
+
29
+ ### Scoring Shorthand (use internally)
30
+
31
+ ```
32
+ Philosophy: [1-5] Hierarchy: [1-5] Execution: [1-5] Specificity: [1-5] Restraint: [1-5]
33
+ → [PASS / NEEDS FIX]
34
+ ```
35
+
36
+ ---
37
+
38
+ ## Part 2 — P0 Hard Gates
39
+
40
+ These are non-negotiable checks. Any P0 failure blocks output entirely until fixed.
41
+
42
+ ### P0 — Critical (output blocked until resolved)
43
+
44
+ - [ ] **No fake metrics.** Output contains no invented numbers presented as facts ("10× faster", "used by 50,000 teams", "99.9% uptime") unless the user provided those numbers. Replace with `—` or a clearly labelled placeholder (see Part 3 — Honest Placeholders).
45
+ - [ ] **No inaccessible text contrast.** All text has at least 4.5:1 contrast against its background. All large text (18px+ or 14px+ bold) has at least 3:1. Checked, not assumed.
46
+ - [ ] **No missing interactive states.** Every interactive element (button, link, input, toggle, card) has at minimum: default, hover, focus, disabled states defined.
47
+ - [ ] **No orphaned CTAs.** Every call-to-action has: a label (not icon-only), a destination or action, and an accessible name.
48
+ - [ ] **No overflowing or clipped content at 375px mobile.** Layout tested at the smallest target breakpoint.
49
+
50
+ ### P1 — Important (flag to user if not fixed)
51
+
52
+ - [ ] All images have alt text described (not just `alt="image"`).
53
+ - [ ] Color is not the only differentiator for any meaning (status, error, category).
54
+ - [ ] Heading hierarchy is logical (H1 → H2 → H3, no skipped levels).
55
+ - [ ] Focus order follows visual reading order.
56
+ - [ ] Error messages identify the field and state a recovery action.
57
+
58
+ ### P2 — Recommended (note in handoff)
59
+
60
+ - [ ] Dark mode tokens specified if the product targets dark-mode users.
61
+ - [ ] RTL layout checked if product targets Arabic, Hebrew, or Persian markets.
62
+ - [ ] Loading / skeleton states defined for all data-dependent components.
63
+ - [ ] Empty states defined for all lists, grids, and dashboards.
64
+ - [ ] i18n: all visible copy fits in typical translation expansions (German/French can expand 30–40%).
65
+
66
+ ---
67
+
68
+ ## Part 3 — Anti-AI-Slop Blacklist
69
+
70
+ These patterns are explicitly forbidden. If any appear in your output, remove them before emitting.
71
+
72
+ ### Visual Patterns — Never Use
73
+
74
+ | Forbidden pattern | Why it's slop | What to use instead |
75
+ |---|---|---|
76
+ | Aggressive purple-to-blue gradient as a hero background | Overused in AI/SaaS projects to the point of meaninglessness | Solid brand color, OKLch-calibrated tint ramp, or image-driven hero |
77
+ | Rounded card with a thick left-border accent color | Generic "dashboard widget" pattern that communicates nothing | Use elevation (shadow), contained background, or inline icon for status |
78
+ | Generic emoji icons as product icons (🚀🎯💡✅) | AI defaults, no brand identity, looks auto-generated | SVG icons (Lucide, Heroicons, Phosphor, or custom), or no icon at all |
79
+ | Hand-drawn SVG humans / people illustrations with bold outlines | Overused "friendly tech" cliché | Photography, abstract illustration, or no illustration |
80
+ | Inter as a display/headline face | Beautiful for body text, but AI always defaults to it | Pair Inter body with a display face (Sohne, DM Sans, Fraunces, etc.) or use brand-specified type |
81
+ | Stock "team" photos (diverse group smiling at laptop) | Instantly recognizable as AI/stock filler | Real product screenshots, abstract visuals, or explicitly labelled placeholders |
82
+ | "Confetti" or celebration lottie on every positive action | Loses meaning through overuse | Reserve confetti-style animation for truly significant milestones (account created, first payment) |
83
+ | Pastel blue + white + a single rounded button — nothing else | The "minimum viable SaaS" look, signals no design thinking | Commit to a visual direction with actual identity |
84
+ | Neon glow effects on dark backgrounds | AI "cyberpunk" default | Use brand accent sparingly, without glow, on dark surfaces |
85
+ | Multiple competing gradient backgrounds on the same page | Visual noise, no hierarchy | One gradient maximum, used structurally |
86
+
87
+ ### Copy Patterns — Never Use
88
+
89
+ | Forbidden copy pattern | Why it's slop | What to use instead |
90
+ |---|---|---|
91
+ | `"10× faster"` without a source | Invented metric, erodes trust | `"—"` or `"[insert benchmark result]"` |
92
+ | `"Trusted by 10,000+ teams"` without a source | Same | `"[insert real user count]"` or remove |
93
+ | `"The future of [category]"` | Meaningless, overused | Specific outcome: what the user achieves |
94
+ | `"Seamlessly"`, `"Effortlessly"`, `"Powerful yet simple"` | Filler adjectives that all AI copy uses | Describe the specific mechanic or outcome |
95
+ | `"All-in-one platform"` | Tells the user nothing | Name the specific things it does |
96
+ | Lorem ipsum in high-fidelity output | Breaks specificity; users cannot evaluate if copy is right | Write real placeholder copy that fits the context |
97
+ | `"Click here"` as link text | Not descriptive, fails accessibility | "View pricing", "Download the report", "Start free trial" |
98
+ | Generic testimonial: `"This product changed my life. — John D."` | AI filler | Leave blank with `[real customer quote, role, company]` |
99
+
100
+ ### Structure Patterns — Never Use
101
+
102
+ | Forbidden structure | Why | Alternative |
103
+ |---|---|---|
104
+ | Full-page loading spinner with no progress feedback | Dead UX; users don't know if anything is happening | Skeleton screens + progress indication |
105
+ | Carousel/slider in the hero | Reduces engagement, bad on mobile, poor accessibility | Single strong hero message |
106
+ | "5 features, each with an icon, title, and one-line description" as the entire homepage | The generic SaaS landing page formula | Differentiate: use proof, specificity, demos |
107
+ | Accordion-everything on mobile | Not discoverable, feels lazy | Prioritize content; accordion only for genuinely secondary info |
108
+ | Hiding price until a "Contact Sales" wall | Dark pattern, destroys trust | Show pricing or at minimum a pricing range |
109
+
110
+ ---
111
+
112
+ ## Part 4 — Honest Placeholder Protocol
113
+
114
+ When you do not have real content, use structured, honest placeholders. Never invent facts.
115
+
116
+ ### Numbers and Metrics
117
+
118
+ ```
119
+ Invented: "10× faster inference"
120
+ Correct: "[Performance benchmark — to be added after testing]"
121
+ Short form: —
122
+ ```
123
+
124
+ ```
125
+ Invented: "Trusted by 50,000 teams"
126
+ Correct: "[User count — to be verified]"
127
+ Short form: —
128
+ ```
129
+
130
+ ### Images
131
+
132
+ ```
133
+ Invented: Describe a stock photo of people smiling
134
+ Correct: [Product screenshot] or [Photography: team in office] or [Illustration: abstract]
135
+ ```
136
+
137
+ ### Quotes and Testimonials
138
+
139
+ ```
140
+ Invented: "This saved us 10 hours a week. — Sarah K., Head of Product"
141
+ Correct: [Customer quote — name, title, company to be added]
142
+ ```
143
+
144
+ ### Dates and Stats
145
+
146
+ ```
147
+ Invented: "Since 2019, serving 120 countries"
148
+ Correct: [Founded: year] [Markets: regions]
149
+ ```
150
+
151
+ ### Rule
152
+
153
+ If a piece of content is a placeholder, it must **look** like a placeholder. Use `[square brackets]`, grey fill blocks, or `—`. Never make a placeholder look like real content.
154
+
155
+ ---
156
+
157
+ ## Part 5 — Code-Level AI Audit Error Codes
158
+
159
+ When auditing or reviewing generated UI code (HTML, JSX, TSX, Vue, Svelte, etc.), flag issues using these standardized codes. Output one line per issue in format: `[severity] L[line] [CODE] [description]`.
160
+
161
+ **Severity levels:** 🔴 Critical (blocks delivery) · 🟡 Warning (must fix before release) · 🔵 Info (best practice)
162
+
163
+ ### Tailwind / CSS Errors
164
+
165
+ | Code | Severity | Pattern | Description |
166
+ |------|----------|---------|-------------|
167
+ | `AI001` | 🔴 | `bg-[${variable}]` | Tailwind class interpolation — purged at build, will not render |
168
+ | `AI002` | 🔴 | `text-shadow-*` | Hallucinated Tailwind utility — no native text-shadow in core Tailwind |
169
+ | `AI003` | 🔴 | `bg-gradient-[...]` with arbitrary | Arbitrary gradient shorthand not supported in all Tailwind versions |
170
+ | `AI004` | 🟡 | `h-screen` | Causes layout shift on mobile with dynamic viewport — use `min-h-dvh` |
171
+ | `AI005` | 🟡 | `drop-shadow-[...]` on text | Intended for elements, not text — use `text-shadow` via plugin |
172
+ | `AI006` | 🟡 | `opacity-[val]` on parent with absolute children | Creates stacking context issues |
173
+ | `AI007` | 🟡 | `overflow-hidden` on scroll container | Clips sticky children unintentionally |
174
+ | `AI008` | 🟡 | Low-contrast semi-transparent text | `text-white/50` on white bg — passes visual but fails WCAG |
175
+ | `AI009` | 🔵 | Missing `dark:` variant | Interactive element has no dark mode override |
176
+ | `AI010` | 🔵 | `transition-all` | Too broad — prefer `transition-colors`, `transition-opacity` |
177
+
178
+ ### Accessibility Errors
179
+
180
+ | Code | Severity | Pattern | Description |
181
+ |------|----------|---------|-------------|
182
+ | `AI011` | 🔴 | `<div onClick>` without `role` + `tabIndex` | Non-interactive element used as button — not keyboard accessible |
183
+ | `AI012` | 🔴 | `<img>` missing `alt` | Images without alt text fail WCAG 1.1.1 |
184
+ | `AI013` | 🔴 | `outline: none` / `outline: 0` without replacement | Removes focus visibility — keyboard navigation broken |
185
+ | `AI014` | 🟡 | Icon-only button without `aria-label` | Screen readers announce nothing meaningful |
186
+ | `AI015` | 🟡 | `target="_blank"` without `rel="noopener noreferrer"` | Security vulnerability + missing screen reader warning |
187
+ | `AI016` | 🟡 | Form `<input>` without associated `<label>` | Not announced correctly by screen readers |
188
+ | `AI017` | 🟡 | Color-only status indicator | Red/green badge without icon or text label |
189
+ | `AI018` | 🔵 | Missing `lang` attribute on `<html>` | Screen readers default to wrong language |
190
+ | `AI019` | 🔵 | Heading levels skipped (H1 → H3) | Broken document outline |
191
+
192
+ ### React / Framework Errors
193
+
194
+ | Code | Severity | Pattern | Description |
195
+ |------|----------|---------|-------------|
196
+ | `AI020` | 🔴 | `key={index}` on dynamic list | Index as key causes reconciliation bugs on reorder/insert |
197
+ | `AI021` | 🔴 | Direct state mutation `state.push(x)` | Bypasses React reactivity — UI won't update |
198
+ | `AI022` | 🟡 | `useEffect` with empty dep array fetching data | Stale closure — deps should include all referenced values |
199
+ | `AI023` | 🟡 | `useState` for server data | Use React Query / SWR / server state pattern |
200
+ | `AI024` | 🟡 | Large component with 300+ lines | Split into smaller, focused components |
201
+ | `AI025` | 🔵 | Missing `displayName` on forwardRef components | Debugger shows anonymous component |
202
+
203
+ ### Content / Copy Errors
204
+
205
+ | Code | Severity | Pattern | Description |
206
+ |------|----------|---------|-------------|
207
+ | `AI026` | 🔴 | Invented metric without source | "10× faster", "99.9% uptime" without data — see Honest Placeholder Protocol |
208
+ | `AI027` | 🔴 | Lorem ipsum in high-fidelity output | Placeholder in final deliverable |
209
+ | `AI028` | 🟡 | "Click here" as link text | Not descriptive — fails WCAG 2.4.6 |
210
+ | `AI029` | 🟡 | Error message without recovery action | "Invalid input" with no guidance on how to fix |
211
+ | `AI030` | 🔵 | Generic CTA copy "Submit" / "Click" | Replace with action-outcome copy: "Create account", "Save changes" |
212
+
213
+ ### Audit Output Format
214
+
215
+ ```
216
+ 🔴 L5 [AI001] Tailwind class interpolation detected — bg-[${primaryColor}] will be purged
217
+ 🟡 L9 [AI005] Hallucinated utility class — "text-shadow-lg" does not exist in Tailwind core
218
+ 🟡 L12 [AI008] Low contrast pseudo-transparency — text-white/50 on white background
219
+ 🟡 L18 [AI004] h-screen causes layout shift on mobile — use min-h-dvh
220
+ 🟡 L21 [AI015] target="_blank" missing rel="noopener noreferrer" — security + accessibility
221
+ 🔵 L44 [AI009] Button has no dark: color variant defined
222
+
223
+ SUMMARY: 1 critical, 4 warnings, 1 info
224
+ → Fix all 🔴 before delivery. Fix 🟡 before release.
225
+ ```
226
+
227
+ ---
228
+
229
+ ## Quick Checklist (use before every emit)
230
+
231
+ ```
232
+ 5-DIM CRITIQUE
233
+ Philosophy ≥3? [ ] Hierarchy ≥3? [ ] Execution ≥3? [ ]
234
+ Specificity ≥3? [ ] Restraint ≥3? [ ]
235
+
236
+ P0 GATES
237
+ No fake metrics? [ ] Contrast passes? [ ] States defined? [ ]
238
+ CTAs labeled? [ ] 375px OK? [ ]
239
+
240
+ ANTI-SLOP
241
+ No purple gradient hero? [ ] No generic emojis? [ ] No left-border accent card? [ ]
242
+ No hand-drawn humans? [ ] No Inter-as-hero? [ ] No Lorem ipsum in high-fi? [ ]
243
+ No invented numbers? [ ] No "10× faster" without source? [ ]
244
+
245
+ → EMIT [ ] / NEEDS FIX [ ]
246
+ ```