ui-ux-master 1.2.0 → 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,285 @@
1
+ # Brand Method: Card-Based Discovery
2
+
3
+ Use this skill when building for marketplaces, media platforms, travel aggregators, content libraries, product catalogs, rental platforms, or any context where the user browses, saves, and discovers from a large collection.
4
+
5
+ Reference brands: Airbnb, YouTube, Spotify, Netflix, Disney+, LEGO, Nintendo, Booking.com listings, Etsy, Pinterest.
6
+
7
+ ---
8
+
9
+ ## When to Apply This Method
10
+
11
+ Apply Card-Based Discovery when:
12
+ - The product is a catalog, marketplace, or content library.
13
+ - Users browse, save, filter, and compare rather than searching for one specific item.
14
+ - The value proposition is breadth: "there's always something for you."
15
+ - Discovery and serendipity are core to the experience.
16
+
17
+ Do not apply when:
18
+ - Users arrive with a specific known item in mind (use Utility Command Center).
19
+ - The brand has a single product hero (use Product Cinema).
20
+ - The primary goal is subscription sign-up (use Conversion Simplicity).
21
+
22
+ ---
23
+
24
+ ## Layout Structure
25
+
26
+ ### Hero / Entry Point
27
+ - Not a full-screen hero — the card grid IS the value proposition.
28
+ - Compact hero: search bar, category tabs, or personalized greeting with immediate content below.
29
+ - Alternative: carousel or featured editorial band (1-3 items), then immediate card grid.
30
+ - Call to action: "Browse [Category]" or personalized "Continue Watching / Listening / Exploring."
31
+
32
+ ### Card Grid
33
+ - Primary layout pattern.
34
+ - Grid: responsive, 2-6 columns depending on card type and screen.
35
+ - Card rows: grouped by category, mood, recommendation engine, or curator picks.
36
+ - Section headings above each row with optional "See all →" link.
37
+ - Horizontal scroll rows for mobile (swipe gesture expected).
38
+
39
+ ### Filter and Sort Controls
40
+ - Persistent or collapsible filter panel.
41
+ - Filter types: category, price/rating range, location, date, availability, mood/genre.
42
+ - Active filter chips shown above results — easy to clear individually or all.
43
+ - Sort: relevance, price, rating, newest, most popular.
44
+
45
+ ### Card Types
46
+ Define at least one primary card type per context:
47
+ - **Content card**: thumbnail (16:9 or 1:1), title, creator/source, metadata (duration, views, rating).
48
+ - **Product card**: image, name, price, rating, badge (deal, new, bestseller).
49
+ - **Place/listing card**: image (4:3), name, location, rating, price/night, favorite icon.
50
+ - **Media card**: album art, title, artist/show, play button.
51
+
52
+ ### Detail Page
53
+ - Hero: large image or media player.
54
+ - Primary action: "Play", "Book", "Add to Cart", "Save."
55
+ - Metadata: ratings, description, related tags.
56
+ - Recommendation section: "More like this", "Because you watched/liked."
57
+ - Reviews (if applicable): summary + individual reviews.
58
+
59
+ ---
60
+
61
+ ## Color Scheme
62
+
63
+ ### Palette by Sub-category
64
+
65
+ **Travel Marketplace (Airbnb)**
66
+ - Background: `#FFFFFF`
67
+ - Primary: `#FF385C` (coral/brand)
68
+ - Surface: `#F7F7F7`
69
+ - Text: `#222222`
70
+ - Secondary text: `#717171`
71
+ - Border: `#DDDDDD`
72
+ - Map accent: brand coral
73
+ - Favorite icon: `#FF385C`
74
+
75
+ **Streaming / Media (Netflix, Spotify)**
76
+ - Background: `#141414` (Netflix) or `#121212` (Spotify)
77
+ - Surface: `#1E1E1E` or `#282828`
78
+ - Primary text: `#FFFFFF`
79
+ - Secondary text: `#B3B3B3`
80
+ - Accent: `#E50914` (Netflix red) or `#1DB954` (Spotify green)
81
+ - Progress bar: accent color on dark track
82
+
83
+ **Family / Toys (LEGO, Disney, Nintendo)**
84
+ - Background: `#FFFFFF`
85
+ - Primary: Brand color (LEGO yellow `#FFD700` / red, Nintendo red `#E4000F`)
86
+ - Surface: `#F8F8F8`
87
+ - Text: `#1A1A1A`
88
+ - Secondary text: `#666666`
89
+ - Card border: `#EEEEEE`
90
+ - Accent / CTA: brand primary
91
+
92
+ **General Marketplace (Etsy)**
93
+ - Background: `#FFFFFF`
94
+ - Primary: `#F1641E` (Etsy orange)
95
+ - Surface: `#F4F4F4`
96
+ - Text: `#222222`
97
+
98
+ ### Rules
99
+ - Dark surfaces: Spotify and Netflix — vivid accent pops against dark. Use sparingly.
100
+ - Light surfaces: marketplaces, travel — clean white lets imagery drive color.
101
+ - Card backgrounds must be neutral — let card content (images) provide color energy.
102
+ - Favorites / save icon: always high-contrast so users can find it.
103
+
104
+ ---
105
+
106
+ ## Typography
107
+
108
+ ### Scale
109
+ | Role | Size | Weight | Notes |
110
+ |---|---|---|---|
111
+ | Section heading | 18-24px | 600-700 | |
112
+ | Card title | 14-16px | 500-600 | 1-2 line clamp |
113
+ | Card metadata | 12-14px | 400 | Duration, views, rating |
114
+ | Price | 14-16px | 600 | Tabular numerals |
115
+ | Badge | 10-12px | 600-700 | All-caps, high contrast on brand color |
116
+ | Filter label | 13-14px | 500 | |
117
+ | CTA | 14-16px | 600 | |
118
+ | Hero headline (if any) | 28-40px | 700 | |
119
+
120
+ ### Font Pairings
121
+ | Context | Font |
122
+ |---|---|
123
+ | Travel / marketplace | Cereal (Airbnb), Circular, or Inter |
124
+ | Streaming dark | Netflix Sans, or Inter/Roboto |
125
+ | Music | Circular, Montserrat, or Nunito |
126
+ | Family/toys | Nunito, Poppins, or Fredoka One |
127
+
128
+ ### Rules
129
+ - Card titles must be readable at small sizes — minimum 14px.
130
+ - Use `line-clamp` to keep card grids uniform — never let one card blow the layout.
131
+ - Price: bold, tabular numerals, never ambiguous position on card.
132
+
133
+ ---
134
+
135
+ ## Spacing System
136
+
137
+ | Token | Value | Use |
138
+ |---|---|---|
139
+ | `--space-xs` | 4px | Icon nudges, badge padding |
140
+ | `--space-sm` | 8px | Card inner gaps |
141
+ | `--space-md` | 12-16px | Card padding |
142
+ | `--space-lg` | 20-24px | Grid gutters |
143
+ | `--space-xl` | 32-40px | Section separation (heading to grid) |
144
+ | `--space-2xl` | 48-64px | Between major content sections |
145
+
146
+ - Grid gutter: 16-24px between cards. Smaller for media, larger for travel listings.
147
+ - Section separation: 32-48px between category rows.
148
+ - Cards must have consistent height within a row (use fixed aspect ratio on images).
149
+
150
+ ---
151
+
152
+ ## Motion and Interaction
153
+
154
+ ### Card Interactions
155
+ - Hover: subtle shadow lift `box-shadow: 0 4px 16px rgba(0,0,0,0.15)`, image zoom `scale(1.03)` transition 200ms.
156
+ - Favorite/save button: heart icon fill animation on click (scale 1.2 → 1.0, 150ms).
157
+ - Play button overlay: appears on card hover with opacity transition.
158
+ - Carousel/row scroll: smooth scroll with momentum. Show scroll indicator or arrows at edges.
159
+
160
+ ### Loading
161
+ - Always use skeleton screens for card grids — never blank areas.
162
+ - Skeleton: match exact card dimensions. Animate shimmer gradient left to right.
163
+ - Infinite scroll: load next batch 200px before viewport bottom. Show spinner at bottom.
164
+
165
+ ### Transitions
166
+ - Page navigation: instant load with skeleton → content fade-in. No full-page loading spinners.
167
+ - Filter apply: instant result update with skeleton transition, never full page reload.
168
+ - Media player appear: slide-up from bottom (mobile) or smooth expand (desktop).
169
+
170
+ ---
171
+
172
+ ## Responsive Behavior
173
+
174
+ | Breakpoint | Key changes |
175
+ |---|---|
176
+ | Mobile 375px | Single column (1-2 cards wide). Horizontal scroll rows. Filter: bottom sheet. Search: full width. |
177
+ | Tablet 768px | 2-3 column grid. Horizontal scroll or pagination. Collapsible filter sidebar. |
178
+ | Desktop 1024px | 3-5 column grid. Persistent or toggle filter panel. |
179
+ | Wide 1440px+ | 4-6 columns for media/product cards. Max-width content container. |
180
+
181
+ - Mobile: horizontal scroll card rows (Netflix-style) are expected and usable.
182
+ - Mobile: filter is a full-screen bottom sheet with apply/clear buttons.
183
+ - Mobile: card images must be large enough to see detail (min 140px width).
184
+
185
+ ---
186
+
187
+ ## Accessibility Requirements
188
+
189
+ - Card: each card is a single interactive unit. Use `<article>` or `<li>`. Primary action (title link) is the main focus target.
190
+ - Favorite button: `aria-label="Save [Item Name]"` or `aria-pressed="true/false"`.
191
+ - Play button: `aria-label="Play [Title]"`.
192
+ - Rating stars: `aria-label="4.2 out of 5 stars"`.
193
+ - Carousel/row: `role="region"` with `aria-label="[Category Name]"`. Left/right scroll buttons keyboard accessible.
194
+ - Infinite scroll: announce new results with `aria-live="polite"` — "12 more results loaded."
195
+ - Filter: `<fieldset>` + `<legend>` per group. Active filters: each chip has a remove button with `aria-label="Remove [filter name] filter"`.
196
+ - Image thumbnails: `alt` describes the content (movie title, product name, property name).
197
+ - Dark streaming UI: ensure text-on-image thumbnails meet contrast. Provide text overlays only with scrim.
198
+ - Touch targets: card images, titles, and favorite buttons all ≥ 44×44px on mobile.
199
+
200
+ ---
201
+
202
+ ## UX Principles for This Method
203
+
204
+ 1. **Discovery over search.** Browsing should feel rewarding — "I didn't know I wanted that."
205
+ 2. **Cards are atoms.** Every card must be independently scannable: image, title, key metadata in one glance.
206
+ 3. **Personalization is the feature.** Surface what the user is likely to want next — recommendation rows are high-value real estate.
207
+ 4. **Save and resume.** Favorites, watch later, saved searches — users leave and return. Meet them where they left off.
208
+ 5. **Never lose the user in the grid.** Section headings, pagination, and "see all" links provide orientation.
209
+ 6. **Fast first render.** Skeletons, lazy images, and fast first card row matter — the grid must feel instant.
210
+
211
+ ---
212
+
213
+ ## Component Specs
214
+
215
+ ### Standard Card
216
+ ```
217
+ Width: flexible (grid cell) — typically 200-320px
218
+ Image: aspect-ratio 16:9 (video/media), 1:1 (music/product), 4:3 (travel/place)
219
+ Image object-fit: cover
220
+ Title: 14-16px, font-weight 500-600, 2-line clamp
221
+ Metadata row: 12-13px, text-secondary
222
+ Price (if applicable): 14-16px, bold
223
+ Favorite button: absolute top-right, 36×36px, heart icon, background: white circle with shadow
224
+ Border-radius: 8-12px (travel/marketplace) | 4px (media) | 0 (ultra editorial)
225
+ Shadow: default none, hover: 0 4px 16px rgba(0,0,0,0.1)
226
+ ```
227
+
228
+ ### Category Section Row
229
+ ```
230
+ Heading: 18-22px, font-weight 600, margin-bottom 12px
231
+ "See all" link: right-aligned, 14px, brand color
232
+ Horizontal scroll: overflow-x: scroll, scroll-snap-type: x mandatory
233
+ Scroll snapping: scroll-snap-align: start per card
234
+ Scrollbar: hidden (visually), accessible via keyboard
235
+ ```
236
+
237
+ ### Filter Bottom Sheet (Mobile)
238
+ ```
239
+ Position: fixed bottom 0, full width
240
+ Height: auto, max-height 85vh, overflow-y: scroll
241
+ Background: white
242
+ Border-radius: 16px 16px 0 0
243
+ Handle bar: 4px × 32px, centered top, gray
244
+ Animation: slide up 250ms ease
245
+ Footer: "Apply Filters" (primary) + "Clear All" (ghost), sticky
246
+ ```
247
+
248
+ ### Skeleton Card
249
+ ```
250
+ Background: var(--surface)
251
+ Image area: same aspect ratio as real card, background: linear-gradient shimmer
252
+ Title lines: 2 lines, height 14px, border-radius 4px, same shimmer
253
+ Animation: @keyframes shimmer, background-position shift 1.5s linear infinite
254
+ ```
255
+
256
+ ---
257
+
258
+ ## Anti-Patterns to Avoid
259
+
260
+ - Do not show more than 6 items per horizontal scroll row before a "See all" link.
261
+ - Do not hide card metadata (price, rating, duration) until hover — mobile users cannot hover.
262
+ - Do not use infinite scroll without an easy way to get back to a specific position.
263
+ - Do not auto-play media in card hover on mobile.
264
+ - Do not use pagination alone without telling users how many total results exist.
265
+ - Do not load the full product catalog without filtering options.
266
+ - Do not use pop-up interstitials over the card grid.
267
+ - Do not make the save/favorite button so small it's untappable on mobile.
268
+
269
+ ---
270
+
271
+ ## QA Checklist
272
+
273
+ - [ ] Card grid renders correctly at 375px, 768px, 1024px, 1440px.
274
+ - [ ] Skeleton cards shown while data loads.
275
+ - [ ] Infinite scroll loads next batch before hitting bottom.
276
+ - [ ] Filter updates results without full page reload.
277
+ - [ ] Active filter chips visible above results with individual remove buttons.
278
+ - [ ] Favorite button has `aria-label` with item name.
279
+ - [ ] Rating stars have accessible text alternative.
280
+ - [ ] Horizontal scroll rows keyboard navigable (arrow keys or tab).
281
+ - [ ] `aria-live` announces new results loaded.
282
+ - [ ] Mobile filter bottom sheet accessible and closeable via swipe or close button.
283
+ - [ ] All card images have meaningful `alt` text.
284
+ - [ ] Dark streaming UI: text-on-image contrast passes 4.5:1.
285
+ - [ ] No media autoplays on mobile.
@@ -0,0 +1,276 @@
1
+ # Brand Method: Conversion Simplicity
2
+
3
+ Use this skill when building for subscription products, fintech signups, mobile app downloads, SaaS trials, waitlists, or any context where the entire page exists to convert one type of visitor to one action.
4
+
5
+ Reference brands: Netflix, PayPal, Uber, Google (signup), Instagram (signup), LinkedIn (signup), Dropbox, Stripe, Linear.
6
+
7
+ ---
8
+
9
+ ## When to Apply This Method
10
+
11
+ Apply Conversion Simplicity when:
12
+ - There is one primary user action: sign up, start trial, download, subscribe, join waitlist.
13
+ - The user is a new visitor evaluating whether to commit.
14
+ - Reducing friction is more valuable than providing exhaustive information.
15
+ - The funnel is: land → understand → trust → act.
16
+
17
+ Do not apply when:
18
+ - Users need to browse or discover first (use Card-Based Discovery).
19
+ - Multiple stakeholders are evaluating a complex product (use Enterprise Trust Hub).
20
+ - The product experience is the selling point (use Product Cinema or Editorial Brand World).
21
+
22
+ ---
23
+
24
+ ## Layout Structure
25
+
26
+ ### Above the Fold (the only thing that matters)
27
+ - **One promise**: the most compelling, specific outcome the user gets. Not a feature list.
28
+ - **One primary CTA**: email signup, "Start Free Trial", "Get the App", "Join Waitlist". Nothing else.
29
+ - **Visual proof**: product screenshot, phone mockup, short testimonial, or simple illustration.
30
+ - **Objection handler**: one line of trust copy beneath the CTA ("No credit card required", "Free forever plan", "Cancel anytime").
31
+
32
+ ### Page Flow (in order)
33
+ 1. **Hero** — promise + CTA + objection handler.
34
+ 2. **Social proof** — trusted by N users/companies, logo strip, star rating aggregate.
35
+ 3. **Core benefit blocks** — 3 benefits max. Each: icon, one-line headline, one supporting sentence.
36
+ 4. **Product proof** — screenshot, animation, or short demo video showing the product working.
37
+ 5. **Testimonials** — 3 specific quotes with name, title, company, photo.
38
+ 6. **FAQ** — 5-7 questions answering the top objections (pricing, commitment, compatibility).
39
+ 7. **Final CTA** — repeat the hero CTA with the same promise, no new information.
40
+
41
+ ### Navigation
42
+ - Minimal: logo left, 2-3 links max (Features, Pricing, Login), primary CTA right.
43
+ - Do not provide a full mega-nav — it gives users escape routes.
44
+ - No sticky nav unless it includes the CTA.
45
+
46
+ ### Footer
47
+ - Minimal. Legal links, privacy, terms, social icons. No sitemap.
48
+
49
+ ---
50
+
51
+ ## Color Scheme
52
+
53
+ ### Primary Palette Patterns
54
+
55
+ **SaaS / Startup (Stripe, Linear, Vercel)**
56
+ - Background: `#FFFFFF` or dark `#0A0A0A` / `#111111`
57
+ - Primary: brand color (`#635BFF` Stripe purple, `#5E6AD2` Linear, `#000000` Vercel)
58
+ - Surface: `#F4F4F5` (light) or `#1C1C1E` (dark)
59
+ - Text: `#0F0F0F` (light) or `#FAFAFA` (dark)
60
+ - Secondary text: `#71717A`
61
+ - CTA: brand primary, white text — maximum contrast
62
+ - CTA hover: darken 10%
63
+ - Accent: gradient (`#635BFF → #0074D9`) for premium SaaS feel
64
+
65
+ **Fintech / Payments (PayPal, Stripe)**
66
+ - Background: `#FFFFFF`
67
+ - Primary: `#0070BA` (PayPal blue) or `#635BFF`
68
+ - Trust accent: `#00457C` (darker blue, for security copy)
69
+ - CTA: primary blue, white text
70
+ - Success: `#007B5E`
71
+
72
+ **Consumer App (Netflix, Uber, Instagram)**
73
+ - Netflix: Background `#000000`, accent `#E50914` (red), text white
74
+ - Uber: Background `#000000` or `#FFFFFF`, monochrome, CTA black-on-white or white-on-black
75
+ - Instagram: gradient CTA on white background, or gradient hero
76
+
77
+ **Minimal / Developer (Vercel, GitHub, Linear)**
78
+ - Background: `#000000` or `#FAFAFA`
79
+ - Text: inverse of background
80
+ - Accent: 1 brand color or white
81
+ - No gradients unless minimal and purposeful
82
+
83
+ ### Rules
84
+ - CTA button must be the highest-contrast interactive element on the page.
85
+ - Social proof logos: grayscale — they support, not compete.
86
+ - Testimonial sections: slightly different background (`#F9FAFB`) to create visual rhythm.
87
+ - Never use two competing CTAs in the hero (no "Sign Up" + "Learn More" — pick one).
88
+
89
+ ---
90
+
91
+ ## Typography
92
+
93
+ ### Scale
94
+ | Role | Size | Weight | Notes |
95
+ |---|---|---|---|
96
+ | Hero headline | 40-72px | 700-900 | Bold, specific promise |
97
+ | Hero subheadline | 18-22px | 400 | Supporting detail, max 2 lines |
98
+ | Section headline | 28-36px | 600-700 | |
99
+ | Benefit headline | 18-20px | 600 | |
100
+ | Benefit body | 15-16px | 400 | 1 sentence |
101
+ | Testimonial quote | 18-22px | 400-500 | Italic optional |
102
+ | Testimonial attribution | 14px | 500 | Name, title, company |
103
+ | FAQ question | 16-18px | 600 | |
104
+ | FAQ answer | 15-16px | 400 | |
105
+ | CTA | 15-18px | 600 | |
106
+ | Trust copy (under CTA) | 12-14px | 400 | Muted color |
107
+
108
+ ### Font Pairings
109
+ | Context | Font |
110
+ |---|---|
111
+ | SaaS / startup | Inter, Plus Jakarta Sans, or Geist |
112
+ | Fintech | Helvetica Neue, DM Sans, or Lato |
113
+ | Consumer app | Circular, Nunito, or Poppins |
114
+ | Developer tool | Geist, JetBrains Mono (for code), Inter |
115
+
116
+ ### Rules
117
+ - Hero headline: the most important thing on the page. It must be large and specific.
118
+ - Avoid vague headlines ("The future of work") — use outcomes ("Ship 3× faster with automated deploys").
119
+ - Trust copy under CTA: 12-14px, muted color — supportive, not competing.
120
+
121
+ ---
122
+
123
+ ## Spacing System
124
+
125
+ | Token | Value | Use |
126
+ |---|---|---|
127
+ | `--space-xs` | 4px | Trust copy gap from CTA |
128
+ | `--space-sm` | 8px | Icon to text, badge padding |
129
+ | `--space-md` | 16-20px | Component padding |
130
+ | `--space-lg` | 32-40px | Between sections within same topic |
131
+ | `--space-xl` | 64-80px | Between major page sections |
132
+ | `--space-2xl` | 96-128px | Hero padding, final CTA section |
133
+
134
+ - Hero: generous padding top and bottom (80-128px) — breathing room signals confidence.
135
+ - Benefit blocks: equal spacing, grid alignment — visual consistency conveys professionalism.
136
+ - FAQ: no extra spacing — tight, scannable, no wasted room.
137
+
138
+ ---
139
+
140
+ ## Motion and Interaction
141
+
142
+ ### Hero CTA
143
+ - Button: no over-engineered animation. Hover: darken 8-10%, scale `1.02`, transition 150ms.
144
+ - On submit: show loading spinner inside button, disable button, replace text with "…".
145
+ - On success: replace CTA area with success message ("Check your email!" or redirect).
146
+ - On error: show inline error below CTA, shake animation on button (3-frame, 200ms).
147
+
148
+ ### Product Preview
149
+ - Short looping video (10-15s, muted, no controls) OR animated GIF OR screenshot with subtle entrance animation.
150
+ - `prefers-reduced-motion`: replace with static screenshot.
151
+ - Load above fold immediately — this is conversion-critical content.
152
+
153
+ ### FAQ Accordion
154
+ - Height transition: `max-height` 0 → auto equivalent, 200ms ease.
155
+ - Icon rotates 90° or 45° when open.
156
+ - Only one open at a time (optional — single-expand pattern).
157
+
158
+ ### Scroll Animations
159
+ - Keep minimal: fade-in of benefit blocks, testimonials. Duration 300-500ms.
160
+ - Never use scroll animations on the CTA — users may be scrolling to reach it.
161
+
162
+ ---
163
+
164
+ ## Responsive Behavior
165
+
166
+ | Breakpoint | Key changes |
167
+ |---|---|
168
+ | Mobile 375px | Hero: headline 28-36px. CTA: full-width button. Benefit blocks: single column. Testimonials: horizontal scroll or single-column. Nav: logo + CTA only (no extra links). |
169
+ | Tablet 768px | Hero: headline 36-48px. 2-column benefits. |
170
+ | Desktop 1024px | Full layout. Side-by-side hero text + product image/video. |
171
+ | Wide 1440px+ | Max-width 1100-1200px centered. Hero may use split layout at 1440px+. |
172
+
173
+ - Mobile CTA: full-width button, at least 48px height, pinned to viewport if possible.
174
+ - Mobile: no horizontal scroll except testimonials carousel.
175
+
176
+ ---
177
+
178
+ ## Accessibility Requirements
179
+
180
+ - CTA button: descriptive label — not just "Sign Up" but "Start your free trial" or match the specific offer.
181
+ - Email input: always a `<label>`. `type="email"`, `autocomplete="email"`, `inputmode="email"`.
182
+ - Trust copy under CTA: `role="note"` or just visible text — no hidden aria required.
183
+ - Product video: `<video>` with `aria-label`, `loop`, `muted`, no `autoplay` without `playsinline`; poster image required; `prefers-reduced-motion` disables autoplay.
184
+ - Testimonial images: `alt="[Person Name], [Title] at [Company]"`.
185
+ - FAQ accordion: `<button aria-expanded="true/false" aria-controls="faq-answer-id">`. Answer `<div id="faq-answer-id">`.
186
+ - Social proof logos: `alt="[Company Name]"`.
187
+ - All text: 4.5:1 contrast minimum. CTA text on brand button must pass.
188
+ - Focus: CTA is the first logical focus target after the hero heading.
189
+
190
+ ---
191
+
192
+ ## UX Principles for This Method
193
+
194
+ 1. **One job, one CTA.** Every element on the page exists to support the single conversion event.
195
+ 2. **Answer objections before they form.** "No credit card" under the CTA is worth more than a features section.
196
+ 3. **Specificity converts.** "Save 5 hours/week on reporting" beats "Save time." Name the number, name the outcome.
197
+ 4. **Social proof is not decoration.** Real names, real companies, specific outcomes in quotes.
198
+ 5. **Remove escape routes.** Minimal nav means fewer ways to leave the page without converting.
199
+ 6. **Repeat the CTA.** Users need to see it multiple times before committing — top, middle, and bottom of page.
200
+ 7. **Speed is a conversion feature.** A 1-second delay reduces conversions. Image optimization, no-blocking scripts, instant form feedback.
201
+
202
+ ---
203
+
204
+ ## Component Specs
205
+
206
+ ### Hero CTA Button
207
+ ```
208
+ Background: brand primary (max contrast)
209
+ Text: white or high-contrast inverse
210
+ Padding: 14-16px 32-40px
211
+ Border-radius: 6px (modern) | 24px (friendly) | 2px (serious/fintech)
212
+ Font: 16-18px, weight 600
213
+ Min-height: 48-52px
214
+ Width: auto (desktop) | 100% (mobile)
215
+ Transition: background 150ms, transform 120ms
216
+ ```
217
+
218
+ ### Trust Copy (under CTA)
219
+ ```
220
+ Font: 12-13px
221
+ Color: var(--text-muted)
222
+ Margin-top: 10-12px
223
+ Icon: optional checkmark or lock icon (14px)
224
+ Example: "✓ No credit card required · ✓ Cancel anytime"
225
+ ```
226
+
227
+ ### Testimonial Card
228
+ ```
229
+ Background: white (on light) or var(--surface) (on dark)
230
+ Border: 1px solid var(--border)
231
+ Border-radius: 12px
232
+ Padding: 24-28px
233
+ Quote: 17-20px, weight 400, font-style italic optional
234
+ Attribution: 14px, weight 500, flex row with avatar
235
+ Avatar: 36-40px, border-radius 50%
236
+ ```
237
+
238
+ ### FAQ Item
239
+ ```
240
+ Border-bottom: 1px solid var(--border)
241
+ Trigger button: full width, text-left, 17-18px, weight 600, padding 16px 0
242
+ Chevron icon: right-aligned, 16px, rotates 180° on open, transition 200ms
243
+ Answer: 15-16px, text-secondary, padding 0 0 16px, line-height 1.6
244
+ ```
245
+
246
+ ---
247
+
248
+ ## Anti-Patterns to Avoid
249
+
250
+ - Do not add a full navigation with 8+ links — it gives users too many ways to leave.
251
+ - Do not use vague CTAs like "Learn More" as the primary action — users need to know what happens next.
252
+ - Do not put pricing objections in a way that makes pricing seem scary — be honest and frame value first.
253
+ - Do not require more than an email (and optionally a name) for the first signup step.
254
+ - Do not use dark patterns: pre-checked marketing consent, hidden trial-to-paid, confusing cancellation.
255
+ - Do not show 10 testimonials — 3 specific, credible testimonials outperform 10 generic ones.
256
+ - Do not use countdown timers unless the offer genuinely expires.
257
+ - Do not make the page long before you've earned the scroll — the best Conversion Simplicity pages are short.
258
+
259
+ ---
260
+
261
+ ## QA Checklist
262
+
263
+ - [ ] Hero headline is specific and outcome-focused — not generic.
264
+ - [ ] CTA is the visually dominant interactive element.
265
+ - [ ] Trust copy (no credit card / cancel anytime) visible below CTA.
266
+ - [ ] Email input has `<label>` and correct input type.
267
+ - [ ] CTA button has descriptive accessible label.
268
+ - [ ] Form error message shown inline, associated with input via `aria-describedby`.
269
+ - [ ] Product video: muted, poster, `prefers-reduced-motion` fallback.
270
+ - [ ] Social proof logos grayscale.
271
+ - [ ] FAQ accordion has `aria-expanded` and `aria-controls`.
272
+ - [ ] Final CTA section repeats the hero CTA.
273
+ - [ ] Mobile: CTA full-width, at least 48px height.
274
+ - [ ] No more than 3 links in nav.
275
+ - [ ] Page LCP ≤ 2.5s — hero content must be server-rendered or critically preloaded.
276
+ - [ ] No dark patterns: no pre-checked marketing consent, no hidden costs, no fake urgency.