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.
- package/README.md +170 -182
- package/SKILL.md +89 -47
- package/docs/package-publishing.md +84 -0
- package/index.cjs +39 -0
- package/index.d.ts +17 -0
- package/index.mjs +30 -0
- package/package.json +86 -11
- package/references/brand-method-card-based-discovery.md +285 -0
- package/references/brand-method-conversion-simplicity.md +276 -0
- package/references/brand-method-ecosystem-bundling.md +263 -0
- package/references/brand-method-editorial-brand-world.md +265 -0
- package/references/brand-method-enterprise-trust-hub.md +298 -0
- package/references/brand-method-playful-familiarity.md +284 -0
- package/references/brand-method-premium-restraint.md +270 -0
- package/references/brand-method-product-cinema.md +258 -0
- package/references/brand-method-technical-authority.md +290 -0
- package/references/brand-method-utility-command-center.md +278 -0
- package/references/color-psychology-branding.md +286 -0
- package/references/color-scale-system.md +347 -0
- package/references/competitive-landscape.md +32 -6
- package/references/design-discovery-protocol.md +171 -0
- package/references/design-system-schema.md +407 -0
- package/references/industry-reasoning-rules.md +504 -0
- package/references/landing-page-patterns.md +327 -0
- package/references/output-quality-gates.md +246 -0
- package/references/tech-stack-guidelines.md +636 -0
- package/references/ui-styles-catalog.md +552 -0
- package/references/visual-directions.md +362 -0
- package/tests/install-smoke.test.mjs +93 -12
|
@@ -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).
|