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,270 @@
1
+ # Brand Method: Premium Restraint
2
+
3
+ Use this skill when building for ultra-luxury brands, high-end finance, premium professional services, or any context where the absence of clutter, the quality of typography, and the control of the visual field are the primary brand signal.
4
+
5
+ Reference brands: Chanel, Hermès, Rolex, Cartier, Dior, Bottega Veneta, Goldman Sachs, Audi (editorial mode), Porsche (brand site), Nespresso.
6
+
7
+ ---
8
+
9
+ ## When to Apply This Method
10
+
11
+ Apply Premium Restraint when:
12
+ - The product commands a significant price premium based on heritage, craft, or exclusivity.
13
+ - The brand identity is built on what is NOT shown, not what IS shown.
14
+ - The primary emotional outcome is aspiration, desire, and trust in quality.
15
+ - Excess, busyness, and bargain signals actively harm the brand.
16
+
17
+ Do not apply when:
18
+ - The product is mass-market or price-competitive.
19
+ - The user needs to complete a task quickly (use Utility Command Center).
20
+ - The brand uses energy, color, or playfulness as a differentiator.
21
+
22
+ ---
23
+
24
+ ## Layout Structure
25
+
26
+ ### Core Principle: Reduction
27
+ - Every element on the page must pass the question: "Does this need to be here?"
28
+ - Default answer is no. Add only when the answer is yes.
29
+
30
+ ### Hero
31
+ - Full-viewport or near-full-viewport image or video.
32
+ - Product or brand world imagery — no UI chrome, no overlays, no text unless absolutely necessary.
33
+ - If text: one word or one short phrase, white or black, perfectly typeset, positioned with asymmetrical precision.
34
+ - No CTA in the hero, or one ultra-minimal text link ("Discover →").
35
+
36
+ ### Navigation
37
+ - Ultra-thin, horizontal: logo centered OR left. Navigation links right (max 4).
38
+ - Text-only links, 11-13px, letter-spaced, no underlines.
39
+ - No mega-nav. No dropdowns on the homepage hero.
40
+ - Disappears on downward scroll, reappears on upward.
41
+
42
+ ### Content Sections
43
+ - Each section occupies the full viewport width; most content is centered with massive side margins (24-30% each side on desktop).
44
+ - Text-to-content ratio: more whitespace than content by area.
45
+ - One idea per section — never combine two things in one section.
46
+ - Images: full-bleed alternating left/right OR centered portrait. Never a grid of small images.
47
+ - Captions: if used, ultra-small (10-11px), muted, right-aligned or centered.
48
+
49
+ ### Commerce / Product Pages
50
+ - Product image: extremely large, centered, no background.
51
+ - Price: small, not prominent — the brand is above price anxiety.
52
+ - Add to bag: minimal text link or outlined button. Never a filled bright button.
53
+ - Product description: sparse, poetic, not a spec sheet.
54
+ - Material / craftsmanship section: single long-form paragraph or a few precise sentences.
55
+
56
+ ---
57
+
58
+ ## Color Scheme
59
+
60
+ ### Core Rule: Near-Monochrome
61
+
62
+ **Luxury Fashion (Chanel, Bottega Veneta)**
63
+ - Background: `#FFFFFF` or `#FAF8F5` (warm white)
64
+ - Primary text: `#111111` or `#1A1A1A`
65
+ - Secondary text: `#888888` (light gray — used with caution, must pass 4.5:1)
66
+ - Divider / border: `#E5E5E5`
67
+ - Accent: none, or a single heritage color (used once per page maximum)
68
+
69
+ **Luxury Jewelry / Watches (Rolex, Cartier)**
70
+ - Background: `#FAFAF8` (cream-white) or `#0A0A0A` (dark section)
71
+ - Primary: cream `#F5F0E8` on dark, near-black `#1C1C1C` on light
72
+ - Gold accent: `#C8A96E` or `#D4A017` (used only for jewelry imagery, dividers, or single accent element)
73
+ - Deep red: `#8B0000` (Cartier) — for section backgrounds, used maximally once per page
74
+
75
+ **Premium Beverage / Lifestyle (Nespresso, Moët)**
76
+ - Background: `#1C1C1C` or `#FAF5EF`
77
+ - Gold: `#C6A55C`
78
+ - Cream: `#F5ECD7`
79
+ - Text: inverse of background
80
+
81
+ **Finance / Professional Services (Goldman Sachs)**
82
+ - Background: `#FFFFFF`
83
+ - Primary: Navy `#001533` or `#002547`
84
+ - Text: `#1A1A1A`
85
+ - Accent: gold `#C8A96E` only as a single decorative line or icon, never as CTA color
86
+
87
+ ### Color Rules
88
+ - Maximum 2 hues active on a single page. Neutrals (black, white, gray, cream) do not count toward this limit.
89
+ - Never use: bright primary colors (red/blue/green/yellow) as dominant colors.
90
+ - Never use: gradients as backgrounds.
91
+ - A single heritage accent color used once — a rule, not a palette.
92
+ - Gold: decorative/divider use only, not CTA backgrounds.
93
+
94
+ ---
95
+
96
+ ## Typography
97
+
98
+ ### Core Rule: Typography IS the design.
99
+
100
+ ### Scale
101
+ | Role | Size | Weight | Notes |
102
+ |---|---|---|---|
103
+ | Brand/house name | 11-13px | 400-500 | All-caps, tracked +0.15em, nav only |
104
+ | Hero text | 20-48px | 300-400 | Light weight, generous tracking |
105
+ | Section headline | 18-32px | 300-400 | |
106
+ | Body / story copy | 16-18px | 300-400 | Line-height 1.8-2.0, generous |
107
+ | Product name | 18-24px | 400-500 | |
108
+ | Product description | 14-16px | 300 | Wide line-height |
109
+ | Price | 14-16px | 400 | Small, not prominent |
110
+ | Caption / credit | 10-11px | 300-400 | Tracked, muted |
111
+ | CTA / text link | 11-13px | 400-500 | All-caps, tracked +0.12em |
112
+
113
+ ### Font Pairings
114
+ | Brand type | Heading | Body |
115
+ |---|---|---|
116
+ | Classic French luxury | Didot, Bodoni, or custom | Garamond, Cormorant |
117
+ | Contemporary luxury | Helvetica Neue Light, Futura Light | Helvetica Neue, Futura |
118
+ | Heritage jewelry/watches | Optima, Trajan Pro | Palatino, Garamond |
119
+ | Premium beverage/lifestyle | Libre Baskerville Light | Raleway, Lato Light |
120
+ | High-end finance | Mercury Display (editorial) | Mercury Text, or Helvetica Neue |
121
+
122
+ ### Rules
123
+ - Never use more than 2 typefaces.
124
+ - Default to light weights (300-400) — luxury is effortless.
125
+ - Letter-spacing on all-caps labels: `letter-spacing: 0.12em` minimum.
126
+ - Line-height on body text: 1.8-2.0 — luxury copy breathes.
127
+ - Never use system emoji or icon fonts — only SVG icons, and sparingly.
128
+
129
+ ---
130
+
131
+ ## Spacing System
132
+
133
+ ### Core Rule: Maximum whitespace.
134
+
135
+ | Token | Value | Use |
136
+ |---|---|---|
137
+ | `--space-xs` | 6px | Text list gaps |
138
+ | `--space-sm` | 16px | Caption to image |
139
+ | `--space-md` | 32px | Text block padding |
140
+ | `--space-lg` | 64px | Between text elements in a section |
141
+ | `--space-xl` | 96-128px | Between sections |
142
+ | `--space-2xl` | 160-200px | Hero breathing room, full-viewport spacing |
143
+ | `--space-3xl` | 240-300px | Full-page section padding (luxury pages are not short) |
144
+
145
+ - Page max content width: 800-1000px for text sections. Images: full-bleed or inset 10-15% each side.
146
+ - Mobile: scale down 50%, but never sacrifice the sense of emptiness.
147
+
148
+ ---
149
+
150
+ ## Motion and Interaction
151
+
152
+ ### Principles
153
+ - No motion unless it is slower and more intentional than you think is necessary.
154
+ - Scroll transitions: long, slow fades. Duration 800-1200ms. Ease-in-out.
155
+ - No pop, bounce, or scale animations.
156
+ - Image load: fade in from white, 600ms.
157
+
158
+ ### Navigation hover
159
+ - Underline slides in from left, 200ms. No background fill.
160
+
161
+ ### CTA
162
+ - Hover: letter-spacing expands slightly (+0.02em), 200ms. No fill, no scale.
163
+
164
+ ### Product image
165
+ - Hover (desktop): subtle secondary image crossfade, 400ms.
166
+ - No parallax on text — only on background imagery, subtle (0.05-0.1× difference).
167
+
168
+ ### `prefers-reduced-motion`
169
+ - Remove all fade-ins, parallax, and crossfades. All content appears immediately.
170
+
171
+ ---
172
+
173
+ ## Responsive Behavior
174
+
175
+ | Breakpoint | Key changes |
176
+ |---|---|
177
+ | Mobile 375px | Full-bleed images. Side margins 16-24px (not the desktop 24-30%). Hero text: 18-28px. Single-column all. Nav: hamburger with full-screen overlay (imagery background). |
178
+ | Tablet 768px | Side margins 8-12%. Side-by-side sections optional. |
179
+ | Desktop 1024px | Side margins 16-24%. Full typographic luxury. |
180
+ | Wide 1440px+ | Side margins 24-30%. Text column max 800px. Never let content stretch to edges. |
181
+
182
+ - Never fill the screen edge-to-edge with text — the margins carry the luxury signal.
183
+
184
+ ---
185
+
186
+ ## Accessibility Requirements
187
+
188
+ - Luxury gray text (`#888888` on `#FFFFFF`) = 3.5:1 — **fails WCAG AA** for body text. Use `#767676` minimum for secondary text (passes at 4.6:1), or use `#555555` for safety.
189
+ - Image-only navigation: never acceptable. Every nav link must have text (even if visually hidden with `sr-only`).
190
+ - Hero with text: text-to-background contrast must be checked including any scrim or overlay.
191
+ - Hover-only product information: all info visible on hover must also be reachable via keyboard focus.
192
+ - Slow animations: ensure they don't delay time-sensitive content. Content must be accessible before animation completes.
193
+ - Custom cursor: if used, must not be the only hover indicator. Standard interactive affordances required.
194
+ - SVG icons: `aria-hidden="true"` if decorative; `title` and `aria-labelledby` if informational.
195
+ - Product page: price must be a text element, not an image.
196
+
197
+ ---
198
+
199
+ ## UX Principles for This Method
200
+
201
+ 1. **Absence is the message.** Luxury is what you don't include.
202
+ 2. **Trust through restraint.** The brand does not need to prove itself with noise.
203
+ 3. **Typography is the logo.** In the absence of color and decoration, letterforms carry the entire brand.
204
+ 4. **Speed is luxury too.** A slow page is a dissonant luxury experience. Optimize aggressively.
205
+ 5. **Commerce is not the point.** The user must desire before they buy. Commerce is the final, quiet step.
206
+ 6. **Consistency of quiet.** No element breaks the established calm — not a social share button, not a chat widget, not a newsletter popup.
207
+
208
+ ---
209
+
210
+ ## Component Specs
211
+
212
+ ### Navigation (Luxury)
213
+ ```
214
+ Height: 40-48px (minimal)
215
+ Logo: centered or left, 80-120px wide
216
+ Links: 11-13px, all-caps, letter-spacing 0.12em, font-weight 400
217
+ No underline default. Hover: thin underline, transition 200ms
218
+ Background: transparent over hero, white/cream on scroll
219
+ Transition: background 250ms ease
220
+ ```
221
+
222
+ ### Text-Link CTA (Not a button)
223
+ ```
224
+ Display: inline
225
+ Font: 11-13px, all-caps, letter-spacing 0.12em
226
+ Text: "Discover" or "Explore [Collection]" or "Add to bag"
227
+ Hover: letter-spacing +0.02em, 200ms
228
+ No background, no border (minimal mode)
229
+ Or: outlined button with 1px border, no fill, hover: fill with text color, invert text
230
+ ```
231
+
232
+ ### Image Section
233
+ ```
234
+ Full-bleed: width 100vw, height auto or 80vh
235
+ Inset: margin 0 auto, max-width 75-85vw
236
+ Object-fit: cover
237
+ No rounded corners (luxury is sharp or geometric)
238
+ Caption: 10-11px, tracked, right or center aligned, margin-top 12px, color text-muted
239
+ ```
240
+
241
+ ---
242
+
243
+ ## Anti-Patterns to Avoid
244
+
245
+ - Do not use promotional badges, price slashes, or urgency labels.
246
+ - Do not use rounded pill buttons — luxury uses sharp rectangles or text links.
247
+ - Do not use drop shadows on UI elements — they imply web 2.0, not luxury.
248
+ - Do not use emojis or informal copy.
249
+ - Do not use chatbots with intrusive pop-ups — if chat is needed, make it quiet and opt-in.
250
+ - Do not use stock photography — only art-directed or product photography.
251
+ - Do not clutter the footer with social media icons, newsletter sign-up, and multiple widget links.
252
+ - Do not use system fonts — typography is the primary brand expression tool.
253
+ - Do not use gray text that fails WCAG contrast — luxury does not exempt brands from accessibility.
254
+
255
+ ---
256
+
257
+ ## QA Checklist
258
+
259
+ - [ ] Secondary text color passes 4.5:1 contrast (check `#888888` — likely fails, use `#767676` min).
260
+ - [ ] No element in the hero competes visually with the product/brand image.
261
+ - [ ] Every navigation link has accessible text (not icon-only).
262
+ - [ ] Hover-reveal product info also visible on keyboard focus.
263
+ - [ ] Custom cursor (if used) does not break standard interactive affordances.
264
+ - [ ] `prefers-reduced-motion`: all animations removed, content immediately visible.
265
+ - [ ] No promotional, urgency, or discount UI patterns.
266
+ - [ ] No popups, chat widgets, or newsletter banners interrupt the experience.
267
+ - [ ] Mobile: nav accessible and functional without degrading luxury feel.
268
+ - [ ] Page LCP ≤ 2.5s — luxury pages often have large images. Optimize all images.
269
+ - [ ] Price is a text element, not an image.
270
+ - [ ] Typography is consistent — no accidental system font fallback visible.
@@ -0,0 +1,258 @@
1
+ # Brand Method: Product Cinema
2
+
3
+ Use this skill when building for premium products, hardware, AI products, automotive, luxury goods, creator tools, or any brand where the product itself is the hero.
4
+
5
+ Reference brands: Apple, Tesla, Mercedes-Benz, Porsche, Rolex, Audi, Sony PlayStation, Samsung, BMW.
6
+
7
+ ---
8
+
9
+ ## When to Apply This Method
10
+
11
+ Apply Product Cinema when:
12
+ - The product has strong visual appeal or engineering craft.
13
+ - The brand commands premium pricing and aspiration.
14
+ - The primary goal is desire, trust, and direct purchase or configuration.
15
+ - The user journey is: discover → desire → configure/buy.
16
+
17
+ Do not apply when:
18
+ - The product is commodity, utility-first, or price-sensitive.
19
+ - The primary task is search, compare, or track.
20
+ - The brand is playful, enterprise-B2B, or social.
21
+
22
+ ---
23
+
24
+ ## Layout Structure
25
+
26
+ ### Hero Section
27
+ - Full-viewport (100vw × 100vh) product image or video.
28
+ - Product centered or offset-right with breathing room.
29
+ - Minimal overlay: one eyebrow label (optional), one H1 (product name or single claim), one 14-18px supporting sentence, 1-2 CTAs.
30
+ - CTA placement: bottom-center or bottom-left, never covering the product.
31
+ - No decorative gradients over the product. Let the product speak.
32
+
33
+ ### Scroll Reveal Sections (in order)
34
+ 1. **Product story / film** — motion reveals or cinematic zoom showing key features.
35
+ 2. **Key benefit blocks** — 3-4 full-width sections, one benefit each, alternating image/text.
36
+ 3. **Specifications** — clean table or card grid, minimal chrome.
37
+ 4. **Ecosystem / accessories** — horizontal scroll or grid of related products.
38
+ 5. **Social proof** — awards, press quotes, review aggregate. Never more than 3 sources.
39
+ 6. **Final CTA** — sticky or section-level, repeated from hero.
40
+
41
+ ### Navigation
42
+ - Minimal sticky nav: logo left, 3-5 links max, one CTA right.
43
+ - On scroll: nav becomes translucent or colored, never opaque-white over hero.
44
+ - Mobile: hamburger with full-screen overlay, not a drawer.
45
+
46
+ ### Footer
47
+ - Minimal. Legal, links, social icons. Never crowded.
48
+
49
+ ---
50
+
51
+ ## Color Scheme
52
+
53
+ ### Primary Palette (choose one direction)
54
+
55
+ **Light / Clean Premium**
56
+ - Background: `#FFFFFF` or `#F5F5F7`
57
+ - Surface: `#FAFAFA`
58
+ - Primary text: `#1D1D1F`
59
+ - Secondary text: `#6E6E73`
60
+ - CTA: Brand accent (e.g., `#0071E3` for tech, `#BB0000` for automotive)
61
+ - Border/divider: `#D2D2D7`
62
+
63
+ **Dark / Cinematic**
64
+ - Background: `#000000` or `#0A0A0A`
65
+ - Surface: `#161617`
66
+ - Primary text: `#F5F5F7`
67
+ - Secondary text: `#A1A1A6`
68
+ - CTA: High-contrast accent (`#FFFFFF` text on dark, or vivid color button)
69
+ - Border/divider: `#2C2C2E`
70
+
71
+ ### Accent Colors by Sub-Category
72
+ | Sub-category | Accent examples |
73
+ |---|---|
74
+ | Consumer tech | Blue `#0071E3`, silver `#8E8E93` |
75
+ | Luxury automotive | Red `#CC0000`, gold `#B8860B`, silver |
76
+ | Premium watches / jewelry | Gold `#D4A017`, deep green `#1B4332`, heritage red |
77
+ | Creator tools | Vivid gradient accent on dark surface |
78
+ | Luxury fashion | Cream `#F5F0E8`, gold, black |
79
+
80
+ ### Rules
81
+ - Maximum 3 colors in active use at any time (background, text, accent).
82
+ - Never use more than one accent color per viewport.
83
+ - Gradient: allowed only on the accent CTA button or as a product surface glow, never as a background.
84
+
85
+ ---
86
+
87
+ ## Typography
88
+
89
+ ### Scale
90
+ | Role | Size | Weight | Style |
91
+ |---|---|---|---|
92
+ | Eyebrow | 11-12px | 500-600 | All-caps, tracked +0.08em |
93
+ | H1 / Product name | 48-80px | 600-700 | Tight tracking −0.01em to −0.03em |
94
+ | H2 / Section headline | 28-40px | 600 | Tight |
95
+ | Body / benefit copy | 17-21px | 400 | Normal tracking, 1.6 line-height |
96
+ | Spec label | 11-13px | 500 | All-caps, tracked |
97
+ | Spec value | 14-17px | 400-500 | Tabular numerals |
98
+ | CTA | 14-17px | 500-600 | Normal tracking |
99
+
100
+ ### Font Pairings
101
+ | Brand type | Heading | Body |
102
+ |---|---|---|
103
+ | Consumer tech | SF Pro Display (system), or Inter | SF Pro Text, Inter |
104
+ | Luxury automotive | Gill Sans, Optima, or custom serif | Helvetica Neue, Inter |
105
+ | Luxury watches/jewelry | Didot, Cormorant Garamond | Futura, Montserrat |
106
+ | Premium lifestyle | Playfair Display | Lato, Source Sans |
107
+
108
+ ### Rules
109
+ - Never use more than 2 font families.
110
+ - Headlines must be large enough to command attention before any image does.
111
+ - Avoid system emoji or decorative fonts.
112
+
113
+ ---
114
+
115
+ ## Spacing System
116
+
117
+ | Token | Value | Use |
118
+ |---|---|---|
119
+ | `--space-xs` | 4px | Icon gaps, inline nudges |
120
+ | `--space-sm` | 8px | Label spacing, tight stacks |
121
+ | `--space-md` | 16px | Component padding |
122
+ | `--space-lg` | 32px | Section inner padding |
123
+ | `--space-xl` | 64px | Between content blocks |
124
+ | `--space-2xl` | 96-128px | Hero breathing room, section separators |
125
+ | `--space-3xl` | 160-200px | Full-screen section padding top/bottom |
126
+
127
+ - Sections must breathe. Minimum 96px padding between major content blocks on desktop.
128
+ - On mobile: scale down by ~40%, but never below 24px section separation.
129
+
130
+ ---
131
+
132
+ ## Motion and Interaction
133
+
134
+ ### Scroll-Driven Animation
135
+ - Parallax: product image moves at 0.8× scroll speed relative to background.
136
+ - Fade-in on scroll: `opacity 0→1`, `translateY 20px→0`, duration 400-600ms, ease-out.
137
+ - Never animate text before the user has had 300ms to read it.
138
+
139
+ ### CTA States
140
+ | State | Effect |
141
+ |---|---|
142
+ | Default | Brand accent background, white text |
143
+ | Hover | Darken 8-12% or subtle scale `1.02` |
144
+ | Active | Scale `0.98`, darken further |
145
+ | Focus | 2-3px offset focus ring, brand color or `#0071E3` |
146
+ | Loading | Spinner inside button, text hidden or replaced |
147
+ | Disabled | 40% opacity, no pointer events |
148
+
149
+ ### Video / Motion Rules
150
+ - Autoplay: allowed for hero video if: muted, no audio track, `prefers-reduced-motion` respected.
151
+ - Provide poster image fallback.
152
+ - Never autoplay audio.
153
+ - Reduced motion: replace parallax and scroll animation with instant transitions.
154
+
155
+ ---
156
+
157
+ ## Responsive Behavior
158
+
159
+ | Breakpoint | Key changes |
160
+ |---|---|
161
+ | Mobile 375px | Full-bleed hero image, product fills screen, CTA stacks vertically, type H1 scales to 32-40px |
162
+ | Tablet 768px | Two-column benefit layout, nav collapses to hamburger |
163
+ | Desktop 1024px | Full layout, scroll animations active |
164
+ | Wide 1440px+ | Max content width `1280px` centered, hero fills viewport edge-to-edge |
165
+
166
+ - On mobile: remove parallax, replace with static scroll.
167
+ - On mobile: sticky CTA bar at bottom for primary action.
168
+ - Images: use `srcset` or responsive image format (WebP/AVIF). Never serve desktop hero at mobile.
169
+
170
+ ---
171
+
172
+ ## Accessibility Requirements
173
+
174
+ - Color contrast: minimum 4.5:1 for body text, 3:1 for large text/UI components.
175
+ - On dark cinematic surfaces: white text `#F5F5F7` on `#000000` = 21:1 — always passes.
176
+ - On hero image overlays: always add a semi-transparent scrim (`rgba(0,0,0,0.4)` minimum) before placing text.
177
+ - `prefers-reduced-motion`: wrap all scroll animations in `@media (prefers-reduced-motion: no-preference)`.
178
+ - Video: must have `aria-label`, pause control, and `prefers-reduced-motion` stops autoplay.
179
+ - CTA buttons: always have visible text label, never icon-only.
180
+ - Focus indicators: `outline: 2px solid <accent>; outline-offset: 3px` — never `outline: none` without custom focus style.
181
+ - Keyboard: all interactive elements reachable, logical tab order follows visual order.
182
+ - Screen reader: hero heading must be an `<h1>`, not a `<div>`. Product name = page title.
183
+ - Images: `alt` text describes the product and context, not just "product image".
184
+
185
+ ---
186
+
187
+ ## UX Principles for This Method
188
+
189
+ 1. **Confidence over explanation.** Premium brands do not over-explain. One claim. One proof. Move on.
190
+ 2. **Product is the hero.** Every layout decision protects the product's visual dominance.
191
+ 3. **Reduce friction to desire.** The user should feel the product is within reach before they see a price.
192
+ 4. **CTA placement follows desire.** Place CTA after the moment of maximum desire, not immediately at load.
193
+ 5. **Consistency of restraint.** Every added element costs attention. Default to removing, not adding.
194
+ 6. **Configurator UX.** If the product is configurable: show the default beautifully, let the user modify progressively, never show all options at once.
195
+
196
+ ---
197
+
198
+ ## Component Specs
199
+
200
+ ### Hero CTA Button
201
+ ```
202
+ Background: brand accent
203
+ Text: contrasting (white on dark, near-black on light)
204
+ Padding: 14px 28px
205
+ Border-radius: 6-8px (tech) | 0-2px (ultra luxury) | 20px (lifestyle)
206
+ Font: 15-17px, weight 500-600
207
+ Transition: background 180ms ease, transform 120ms ease
208
+ Min-width: 140px
209
+ ```
210
+
211
+ ### Spec Table
212
+ ```
213
+ Cell padding: 12px 16px
214
+ Border: 1px solid var(--border)
215
+ Header row: background var(--surface), font-weight 600, font-size 11px all-caps
216
+ Value rows: alternating subtle background on hover
217
+ Numbers: tabular-nums
218
+ ```
219
+
220
+ ### Sticky Nav
221
+ ```
222
+ Position: fixed top 0
223
+ Height: 44-52px
224
+ Backdrop: blur(20px) saturate(180%) with semi-transparent background
225
+ Transition: background 200ms ease on scroll
226
+ Z-index: 1000
227
+ ```
228
+
229
+ ---
230
+
231
+ ## Anti-Patterns to Avoid
232
+
233
+ - Do not clutter the hero with more than 2 CTAs.
234
+ - Do not use stock photography — use real product photography or none.
235
+ - Do not use discount badges, countdown timers, or urgency copy.
236
+ - Do not use carousels in hero — they reduce impact and have poor accessibility.
237
+ - Do not use full-width decorative gradients as backgrounds — they cheapen premium perception.
238
+ - Do not mix dark and light sections without deliberate contrast logic.
239
+ - Do not use multiple accent colors on the same page — pick one.
240
+ - Do not put the specification table above the benefit/story section.
241
+ - Do not use hover-only navigation — touch users cannot hover.
242
+
243
+ ---
244
+
245
+ ## QA Checklist
246
+
247
+ - [ ] Hero image/video loads with correct poster/fallback.
248
+ - [ ] `prefers-reduced-motion` stops or reduces animation.
249
+ - [ ] All text passes 4.5:1 contrast (use browser accessibility audit).
250
+ - [ ] Sticky nav visible and usable at all scroll positions.
251
+ - [ ] CTA button has visible focus ring.
252
+ - [ ] All images have meaningful `alt` text.
253
+ - [ ] H1 exists and is the product/brand name.
254
+ - [ ] Mobile 375px: hero fills screen, CTA accessible without scroll.
255
+ - [ ] Keyboard: tab through all interactive elements without mouse.
256
+ - [ ] Screen reader: hero heading, CTA label, product description all announced correctly.
257
+ - [ ] No autoplay audio.
258
+ - [ ] Page loads in under 3s on 4G (Core Web Vitals: LCP ≤ 2.5s).