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,263 @@
1
+ # Brand Method: Ecosystem Bundling
2
+
3
+ Use this skill when building for multi-product platforms, product suites, or brands where the value is in the combination of products, not a single product. The goal is to cross-sell, upsell, and create lock-in through integrated value.
4
+
5
+ Reference brands: Microsoft 365, Adobe Creative Cloud, Apple (hardware + software + services), Google (Search + Maps + Workspace + Cloud), Sony (PlayStation + Electronics + Entertainment), Xbox (Game Pass + Console + Cloud).
6
+
7
+ ---
8
+
9
+ ## When to Apply This Method
10
+
11
+ Apply Ecosystem Bundling when:
12
+ - The brand has 3+ products that work better together than separately.
13
+ - The primary value proposition is integration, continuity, or bundled savings.
14
+ - The user arrives to find "the right plan" or "what's included."
15
+ - The goal is to move a user from one product to the full suite.
16
+
17
+ Do not apply when:
18
+ - The brand has a single flagship product (use Product Cinema).
19
+ - The user wants to accomplish one specific task (use Utility Command Center or Conversion Simplicity).
20
+ - The brand is enterprise-only (use Enterprise Trust Hub).
21
+
22
+ ---
23
+
24
+ ## Layout Structure
25
+
26
+ ### Hero
27
+ - Not a single product — the ecosystem or suite value is the headline.
28
+ - Example: "One subscription. Everything creative." (Adobe) or "More with Microsoft 365."
29
+ - Hero visual: collage of product interfaces, device ecosystem, or abstract "connected" illustration.
30
+ - Primary CTA: "See all plans", "Get the bundle", or "Start free trial" (most inclusive plan).
31
+
32
+ ### Product Overview Section
33
+ - Grid or horizontal scroll of product cards: each card = one product in the ecosystem.
34
+ - Card: product icon, product name, 1-line description, "Learn more" link.
35
+ - Group products by category if 6+: "Creative Tools", "Video + Audio", "Web + Cloud."
36
+
37
+ ### Bundle / Plan Comparison
38
+ - Pricing table: 2-4 columns (Individual, Team, Business, Enterprise).
39
+ - Each column: plan name, price, primary CTA, included products (checked or listed).
40
+ - Highlight recommended plan: border, "Most Popular" badge, slightly elevated.
41
+ - Toggle: Monthly / Annual (with savings callout for annual).
42
+ - Scrollable on mobile: sticky column headers.
43
+
44
+ ### Integration Showcase
45
+ - Diagram or animation showing how products connect.
46
+ - Example: "Edit in Photoshop → Preview in XD → Export to After Effects."
47
+ - Step-based or flowchart layout.
48
+
49
+ ### Individual Product Deep-Dives
50
+ - Accordion or tabbed section: each tab = one product, with key features and screenshot.
51
+ - Or: separate product pages linked from the overview cards.
52
+
53
+ ### CTA Section
54
+ - "Start with [Product A]" + "Or explore the full suite."
55
+ - Include a plan recommendation quiz if 4+ plans (CTA: "Help me choose").
56
+
57
+ ---
58
+
59
+ ## Color Scheme
60
+
61
+ ### Palette Patterns
62
+
63
+ **Creative Suite (Adobe)**
64
+ - Background: `#1B1B1B` dark or `#FFFFFF`
65
+ - Primary: `#FF0000` (Adobe red) with product-specific colors as accents
66
+ - Surface: `#292929` (dark) or `#F8F8F8` (light)
67
+ - Text: `#FFFFFF` (dark) or `#1A1A1A` (light)
68
+ - Product colors: each product has signature accent (Photoshop blue, Illustrator orange, Premiere purple)
69
+ - CTA: product primary on dark, or brand red on light
70
+
71
+ **Tech Suite (Microsoft)**
72
+ - Background: `#FFFFFF`
73
+ - Primary: `#0078D4` (M365 blue)
74
+ - Product palette: each Microsoft product uses brand colors (Teams purple, Excel green, Word blue, etc.)
75
+ - Surface: `#F4F6F9`
76
+ - Text: `#1A1A1A`
77
+ - Pricing highlight: `#0078D4` (primary plan)
78
+
79
+ **Gaming Ecosystem (Xbox)**
80
+ - Background: `#000000`
81
+ - Primary: `#107C10` (Xbox green)
82
+ - Surface: `#1A1A1A`
83
+ - Text: `#FFFFFF`
84
+ - Accent: green, used for "included" checkmarks, active state, pricing CTA
85
+
86
+ **Consumer Ecosystem (Apple)**
87
+ - Background: `#FFFFFF` (light) or `#000000` (dark sections)
88
+ - Text: `#1D1D1F` / `#F5F5F7`
89
+ - Product accents: per-product marketing colors (used sparingly)
90
+ - CTA: `#0071E3` (Apple blue)
91
+
92
+ ### Rules
93
+ - Each product in the ecosystem may have its own accent color — use in product cards/icons only.
94
+ - The suite-level brand color dominates — product accents are subordinate.
95
+ - Pricing table: highlight column must have clear visual separation (border, elevation, background) — not just a color change.
96
+ - Never use 6+ colors on the same screen — product accents appear only in dedicated product sections.
97
+
98
+ ---
99
+
100
+ ## Typography
101
+
102
+ ### Scale
103
+ | Role | Size | Weight | Notes |
104
+ |---|---|---|---|
105
+ | Suite headline | 40-64px | 600-700 | Ecosystem promise |
106
+ | Product name (card) | 16-18px | 600 | |
107
+ | Product description | 14-15px | 400 | 1-2 lines |
108
+ | Plan name | 20-24px | 700 | |
109
+ | Price | 32-48px | 700 | Tabular numerals |
110
+ | Price period | 14-16px | 400 | "/month" or "/year" |
111
+ | Feature list | 14-15px | 400 | Checkmark + text |
112
+ | CTA | 14-16px | 600 | |
113
+ | Savings badge | 11-12px | 700 | All-caps: "SAVE 40%" |
114
+
115
+ ### Font Pairings
116
+ | Context | Font |
117
+ |---|---|
118
+ | Tech / enterprise suite | Segoe UI, Inter, or system font |
119
+ | Creative suite | Adobe Clean, or Inter |
120
+ | Gaming | custom brand font or Rajdhani, Barlow Condensed |
121
+ | Consumer tech | SF Pro (system) or Inter |
122
+
123
+ ---
124
+
125
+ ## Spacing System
126
+
127
+ | Token | Value | Use |
128
+ |---|---|---|
129
+ | `--space-xs` | 4px | Checkmark list gaps |
130
+ | `--space-sm` | 8px | Product icon margins |
131
+ | `--space-md` | 16px | Card padding |
132
+ | `--space-lg` | 24-32px | Between product cards |
133
+ | `--space-xl` | 48-64px | Between page sections |
134
+ | `--space-2xl` | 80-96px | Hero, pricing sections |
135
+
136
+ - Pricing table: column padding 24-32px. Row: 12-16px vertical padding per row.
137
+ - Product card grid: 16-24px gutter. Cards equal height via CSS grid `align-items: stretch`.
138
+
139
+ ---
140
+
141
+ ## Motion and Interaction
142
+
143
+ ### Pricing Toggle (Monthly/Annual)
144
+ - Toggle: smooth slide, 200ms ease. Active state clearly indicated.
145
+ - Price change: number crossfade or count animation (300ms) — never a jarring instant swap.
146
+ - Savings badge: appears on Annual toggle with fade-in.
147
+
148
+ ### Plan Comparison Table
149
+ - "Included" checkmark: SVG check, brand color. "Not included": dash or X, muted color.
150
+ - Hover row: subtle highlight `rgba(0,0,0,0.04)`.
151
+ - Sticky column headers on vertical scroll.
152
+
153
+ ### Product Cards
154
+ - Hover: lift shadow, 150ms.
155
+ - Click: navigate to product detail section or page.
156
+
157
+ ### Integration Diagram
158
+ - Step-by-step animation on scroll: each connection draws itself (SVG stroke animation, 400ms per step).
159
+ - `prefers-reduced-motion`: show all steps immediately with no animation.
160
+
161
+ ---
162
+
163
+ ## Responsive Behavior
164
+
165
+ | Breakpoint | Key changes |
166
+ |---|---|
167
+ | Mobile 375px | Product cards: 2×2 grid or single column. Pricing table: horizontal scroll, sticky plan names. Plan toggle: full-width. |
168
+ | Tablet 768px | Product cards: 3-column. Pricing: 2-3 columns visible. |
169
+ | Desktop 1024px | Full pricing table. Side-by-side product cards. |
170
+ | Wide 1440px+ | Max-width 1200px. Pricing table centered. |
171
+
172
+ - Mobile pricing table: allow horizontal scroll — show 1.5 columns to hint at more.
173
+ - Mobile: sticky "Get [Plan Name]" CTA at bottom of pricing page.
174
+
175
+ ---
176
+
177
+ ## Accessibility Requirements
178
+
179
+ - Pricing table: use `<table>` with `<th scope="col">` for plan names, `<th scope="row">` for feature names.
180
+ - "Included" checkmark: `aria-label="Included"` not just a visual check icon.
181
+ - "Not included": `aria-label="Not included"`.
182
+ - Plan toggle (monthly/annual): `<button role="switch" aria-checked="true/false">` or `<input type="radio">` with `<fieldset>` and `<legend>`.
183
+ - Highlighted plan: `aria-describedby` linking to "Most Popular" label.
184
+ - Product cards: each card is a link with a descriptive accessible name including product name.
185
+ - Savings badge: always a text element, not background-only.
186
+ - Price: screen reader announces full price ("12 dollars per month, billed annually").
187
+
188
+ ---
189
+
190
+ ## UX Principles for This Method
191
+
192
+ 1. **Sell the why before the what.** "One place for everything creative" converts before the product list does.
193
+ 2. **Comparison tables are trust builders.** Transparent feature-by-feature comparison signals confidence.
194
+ 3. **Recommend a plan.** Users are overwhelmed by 4+ plans. Highlight one as "Best for most people."
195
+ 4. **Individual entry points.** Let users enter through a single product and discover the suite value.
196
+ 5. **Bundle savings must be explicit.** Show the per-product cost vs. bundle cost. The math must be obvious.
197
+ 6. **Never force the full suite.** Some users only need one product — serve them well and upsell contextually.
198
+
199
+ ---
200
+
201
+ ## Component Specs
202
+
203
+ ### Pricing Column (Recommended)
204
+ ```
205
+ Border: 2px solid var(--primary)
206
+ Border-radius: 12px
207
+ Background: white (light) or var(--surface-raised) (dark)
208
+ Box-shadow: 0 8px 32px rgba(0,0,0,0.12)
209
+ Badge: "Most Popular" — absolute top-center, background var(--primary), 11px all-caps
210
+ Price: 40-48px, weight 700
211
+ Period: 14px, weight 400, text-secondary
212
+ CTA: filled primary button, full-width
213
+ ```
214
+
215
+ ### Product Card (Ecosystem Overview)
216
+ ```
217
+ Background: var(--surface)
218
+ Border: 1px solid var(--border)
219
+ Border-radius: 12px
220
+ Padding: 24px
221
+ Icon: 40-48px, product accent color
222
+ Product name: 17-18px, weight 600, margin-top 12px
223
+ Description: 14px, text-secondary, 2-line clamp
224
+ "Learn more" link: 13-14px, brand color, arrow icon
225
+ ```
226
+
227
+ ### Plan Toggle
228
+ ```
229
+ Container: pill shape, background var(--surface)
230
+ Active side: filled pill, brand color, white text, 200ms transition
231
+ Labels: "Monthly" / "Annually SAVE 40%"
232
+ Savings badge: inline, accent background, bold, 10-11px all-caps
233
+ Height: 36-40px, border-radius 20px
234
+ ```
235
+
236
+ ---
237
+
238
+ ## Anti-Patterns to Avoid
239
+
240
+ - Do not show all plans without a recommendation — choice overload kills conversion.
241
+ - Do not hide savings — if annual is cheaper, show the math prominently.
242
+ - Do not use features list jargon that non-technical buyers won't understand.
243
+ - Do not require users to navigate 4 levels deep to find what's in a plan.
244
+ - Do not use different interaction patterns for the same action across product cards.
245
+ - Do not present the pricing table on mobile without horizontal scroll — broken tables are unusable.
246
+ - Do not use 6+ product accent colors simultaneously — visual chaos.
247
+
248
+ ---
249
+
250
+ ## QA Checklist
251
+
252
+ - [ ] Pricing table uses semantic `<table>` with scoped headers.
253
+ - [ ] Checkmarks have `aria-label="Included"`.
254
+ - [ ] Plan toggle accessible as `role="switch"` or radio group.
255
+ - [ ] Recommended plan visually distinct and labeled.
256
+ - [ ] Monthly/Annual toggle updates price display without page reload.
257
+ - [ ] Savings amount shown on annual toggle.
258
+ - [ ] Mobile pricing: horizontal scroll with 1.5 column hint.
259
+ - [ ] Product cards link to individual product sections/pages.
260
+ - [ ] Integration diagram has text fallback for screen readers.
261
+ - [ ] `prefers-reduced-motion`: integration diagram shows all steps immediately.
262
+ - [ ] All product icons/images have `alt` text.
263
+ - [ ] Price announced correctly to screen readers.
@@ -0,0 +1,265 @@
1
+ # Brand Method: Editorial Brand World
2
+
3
+ Use this skill when building for fashion, luxury lifestyle, sportswear, beverage, entertainment campaigns, or any brand where the world, culture, and story are the primary product.
4
+
5
+ Reference brands: Nike, Louis Vuitton, Gucci, Chanel, Hermès, Dior, Cartier, Coca-Cola, Pepsi, Red Bull, Heineken, Adidas, Puma.
6
+
7
+ ---
8
+
9
+ ## When to Apply This Method
10
+
11
+ Apply Editorial Brand World when:
12
+ - The brand has a strong cultural identity, campaign world, or emotional territory.
13
+ - Photography, art direction, and campaign storytelling are the primary brand assets.
14
+ - The user journey is: feel → belong → explore → buy.
15
+ - The brand is fashion, sportswear, luxury, beverage, or entertainment.
16
+
17
+ Do not apply when:
18
+ - The primary task is search, track, or compare (use Utility Command Center).
19
+ - The brand is enterprise or B2B (use Enterprise Trust Hub).
20
+ - Conversion speed is the primary goal (use Conversion Simplicity).
21
+
22
+ ---
23
+
24
+ ## Layout Structure
25
+
26
+ ### Hero / Campaign Opening
27
+ - Full-viewport, photography or video-driven.
28
+ - Minimal UI chrome — logo, navigation, and one optional CTA are the only non-image elements.
29
+ - Campaign headline: bold, large, sometimes a single word or short phrase. Never a product list.
30
+ - CTA: secondary-style or none on the first hero — let the image breathe before selling.
31
+ - Autoplay video: allowed if muted, with `prefers-reduced-motion` fallback to static poster.
32
+
33
+ ### Page Flow (in order)
34
+ 1. **Campaign hero** — brand world, emotion, culture.
35
+ 2. **Product/collection entry** — editorial grid or featured items emerging from campaign imagery.
36
+ 3. **Brand story / culture section** — athlete, artist, moment, season, or philosophy.
37
+ 4. **Secondary collections** — horizontal scroll or masonry grid.
38
+ 5. **Social / community proof** — UGC gallery, press mentions, cultural credentials.
39
+ 6. **Commerce entry** — subtle but clear: "Shop [Collection]" or "Explore [Season]".
40
+
41
+ ### Navigation
42
+ - Minimal fixed or scroll-away nav.
43
+ - Logo centered or left.
44
+ - Navigation: text-only links, ultra-light weight, never crowded.
45
+ - On scroll: nav may disappear, reappear on upward scroll.
46
+ - Mobile: hamburger with full-screen overlay featuring campaign imagery as background.
47
+
48
+ ### Collection / Product Grid
49
+ - Masonry or editorial grid (not rigid uniform cards).
50
+ - Images dominate — minimal text per item.
51
+ - Product name and price appear on hover (desktop) or permanently (mobile).
52
+ - "Add to bag" or "Shop" appears on hover or as a persistent small link.
53
+
54
+ ---
55
+
56
+ ## Color Scheme
57
+
58
+ ### Palette Archetypes by Brand Type
59
+
60
+ **Sportswear / Performance (Nike, Adidas, Puma)**
61
+ - Background: `#FFFFFF` or `#000000`
62
+ - Text: inverse of background
63
+ - Accent: campaign color (varies per drop)
64
+ - Rule: monochrome base, campaign accent changes seasonally. Product photography provides color.
65
+
66
+ **Luxury Fashion (LV, Gucci, Chanel, Hermès)**
67
+ - Background: `#FFFFFF`, `#FAF8F5` (warm white), or `#0A0A0A`
68
+ - Primary text: `#1A1A1A` or `#F5F0E8`
69
+ - Accent: heritage color (LV brown `#8B5E3C`/`#D4AF37`, Chanel black, Hermès orange `#E8611A`, Gucci green `#1F5C33`)
70
+ - Never use bright primary colors in luxury editorial.
71
+
72
+ **Luxury Jewelry / Watches (Cartier, Rolex)**
73
+ - Background: deep red `#8B0000` (Cartier) or dark green `#1B3A2F` (Rolex) or cream
74
+ - Gold accent: `#D4A017` or `#B8960C`
75
+ - Text: cream `#F5F0E8` on dark, near-black on light
76
+ - Use close-up product photography as hero, not lifestyle.
77
+
78
+ **Beverage / Culture (Coca-Cola, Pepsi, Red Bull)**
79
+ - Hero: brand signature color (Coca-Cola red `#E61830`, Pepsi blue `#004B93`/black, Red Bull blue/silver)
80
+ - Background: white or black beneath campaign
81
+ - Campaign images provide color contrast — backgrounds stay neutral or brand-primary.
82
+
83
+ **Fashion Retail (Zara, H&M)**
84
+ - Zara: black `#000000` / white `#FFFFFF` — extreme contrast, let product provide color.
85
+ - H&M: white with seasonal campaign color accent.
86
+
87
+ ### Rules
88
+ - Never introduce new brand colors mid-page — stay within 1-2 established tones.
89
+ - Campaign accent color is temporary (seasonal) — built into component vars, not global tokens.
90
+ - Photography must provide the emotional color — background palette supports, not competes.
91
+ - Low-contrast luxury copy (e.g., gray-on-white) is culturally appropriate but requires WCAG-minimum compliance.
92
+
93
+ ---
94
+
95
+ ## Typography
96
+
97
+ ### Scale
98
+ | Role | Size | Weight | Notes |
99
+ |---|---|---|---|
100
+ | Campaign headline | 64-120px | 700-900 | Ultra-bold or ultra-light depending on brand |
101
+ | Sub-headline | 32-48px | 400-700 | |
102
+ | Section headline | 22-32px | 400-600 | |
103
+ | Body / story copy | 16-18px | 300-400 | Wide line-height 1.7-1.9 |
104
+ | Product name | 13-16px | 400-500 | |
105
+ | Price | 14-16px | 500-600 | Tabular |
106
+ | Caption / credit | 11-12px | 300-400 | Tracked +0.1em |
107
+ | Navigation | 12-14px | 400-500 | All-caps, tracked |
108
+ | CTA | 12-14px | 500-600 | Underline or subtle button |
109
+
110
+ ### Font Pairings by Brand Type
111
+ | Brand type | Heading | Body |
112
+ |---|---|---|
113
+ | Sportswear | Bebas Neue, Dharma Gothic, or brand condensed | Inter, Helvetica Neue |
114
+ | Luxury fashion | Didot, Bodoni, Playfair Display | Garamond, Cormorant, Montserrat Light |
115
+ | Luxury watches | Optima, Gill Sans, custom serif | Helvetica Neue Light |
116
+ | Beverage / culture | Brand typeface or Impact-style for campaigns | System font for body |
117
+ | Contemporary fashion | Helvetica Neue Condensed, Neue Haas | Helvetica Neue Light |
118
+
119
+ ### Rules
120
+ - One display typeface maximum per brand.
121
+ - Never mix a serif headline with a serif body — pair contrasting type personalities.
122
+ - White text on dark campaign imagery requires `text-shadow` or scrim for legibility.
123
+
124
+ ---
125
+
126
+ ## Spacing System
127
+
128
+ | Token | Value | Use |
129
+ |---|---|---|
130
+ | `--space-xs` | 4-6px | Caption gaps, inline elements |
131
+ | `--space-sm` | 12px | Nav link spacing |
132
+ | `--space-md` | 24px | Card padding, text blocks |
133
+ | `--space-lg` | 48px | Between editorial sections |
134
+ | `--space-xl` | 80-96px | Major story section separation |
135
+ | `--space-2xl` | 120-160px | Hero breathing room |
136
+ | `--space-3xl` | 200-240px | Full-screen campaign breathing room |
137
+
138
+ - Editorial brands use whitespace aggressively — it signals luxury, curation, and confidence.
139
+ - Product grids: 20-32px gap. Editorial masonry: irregular gaps for art-direction feel.
140
+ - Mobile: reduce by 50% but never lose the sense of breathing room.
141
+
142
+ ---
143
+
144
+ ## Motion and Interaction
145
+
146
+ ### Scroll and Reveal
147
+ - Images fade and scale in: `opacity 0→1`, `scale 1.03→1`, duration 600-800ms, ease-out.
148
+ - Campaign text reveals: staggered word or line animation, 50ms stagger, 500ms per element.
149
+ - Parallax: background image scrolls at 0.7× rate — creates depth without distraction.
150
+ - Cursor: custom cursor (dot, circle, brand symbol) on desktop for premium fashion brands.
151
+
152
+ ### Hover
153
+ - Product images: secondary image crossfade on hover (front view → detail/model view).
154
+ - Collection items: overlay appears with product name + price + add-to-bag.
155
+ - Navigation links: underline slide-in or letter-spacing shift.
156
+
157
+ ### Transitions
158
+ - Page transitions: cross-fade or slide, 300-400ms ease-in-out.
159
+ - Section transitions: wipe or fade, never instant cut unless brand is minimalist.
160
+
161
+ ### `prefers-reduced-motion`
162
+ - Replace all scroll animations with instant opacity transitions.
163
+ - Disable custom cursor.
164
+ - Disable parallax.
165
+
166
+ ---
167
+
168
+ ## Responsive Behavior
169
+
170
+ | Breakpoint | Key changes |
171
+ |---|---|
172
+ | Mobile 375px | Stack all editorial content. Full-width hero image. Typography scales down (campaign headline 36-48px). Nav: full-screen overlay. Product grid: 2 columns or single-column film strip. |
173
+ | Tablet 768px | 2-column editorial grid. Nav collapses. |
174
+ | Desktop 1024px | Full editorial layout, masonry grid, parallax active. |
175
+ | Wide 1440px+ | Hero fills viewport. Max-width on text columns (800-1000px) to preserve readability. |
176
+
177
+ - Mobile: disable hover-reveal product details — show product name and price by default.
178
+ - Mobile: replace parallax with static images.
179
+ - Mobile: CTA must be reachable without pinch or complex navigation.
180
+
181
+ ---
182
+
183
+ ## Accessibility Requirements
184
+
185
+ - Low-contrast luxury typography (e.g., light gray on white) must still meet 4.5:1 minimum ratio. If brand demands lower contrast, apply only to decorative, non-essential copy — never to CTAs, product names, or prices.
186
+ - Campaign images with text overlay: **always add a scrim** (minimum `rgba(0,0,0,0.35)` or equivalent) before placing text.
187
+ - Custom cursor: must not be the only indicator of interactive state. Underlines, outlines, or color changes required in addition.
188
+ - Autoplay video: muted, `prefers-reduced-motion` stops it, pause button always visible.
189
+ - Hover-reveal product details: provide same content accessible via keyboard focus.
190
+ - Masonry grid: ensure tab order follows reading order (top-left to bottom-right), not DOM insertion order if CSS reorders.
191
+ - Image-heavy pages: always use `alt` text that describes the scene or product, not just "campaign image".
192
+ - Navigation overlay: trap focus within overlay when open. `Escape` closes it.
193
+ - Language of campaign copy: if multilingual, use `lang` attribute on copy blocks.
194
+
195
+ ---
196
+
197
+ ## UX Principles for This Method
198
+
199
+ 1. **The brand world is the product.** Sell the identity before the item.
200
+ 2. **Restraint is luxury.** The fewer elements on screen, the more premium the perception.
201
+ 3. **Photography is the primary design element.** Every layout decision serves the image.
202
+ 4. **Commerce is a destination, not the landing.** Guide users to shop through desire, not aggressive CTAs.
203
+ 5. **Seasonal freshness.** The page should feel like a new campaign with each collection — build for easy content refresh.
204
+ 6. **Speed of desire.** Even editorial pages must load quickly. A slow luxury page destroys the premium feeling.
205
+
206
+ ---
207
+
208
+ ## Component Specs
209
+
210
+ ### Editorial Hero
211
+ ```
212
+ Height: 100vh minimum (can be taller for immersive)
213
+ Image: object-fit: cover, object-position: center
214
+ Scrim: linear-gradient for text readability
215
+ Campaign headline: absolute positioned, z-index above image
216
+ CTA: absolute or below hero, never covering face/product center
217
+ ```
218
+
219
+ ### Product Hover Overlay
220
+ ```
221
+ Trigger: CSS :hover + :focus-within
222
+ Overlay: rgba(0,0,0,0.4) over image
223
+ Content: product name (14-16px white), price (14px white), CTA ("Add" or "Shop")
224
+ Transition: opacity 200ms ease
225
+ Keyboard: same content revealed on :focus-within
226
+ ```
227
+
228
+ ### Editorial Grid (Masonry-style)
229
+ ```
230
+ CSS Grid: grid-template-columns: repeat(auto-fill, minmax(280px, 1fr))
231
+ For masonry: grid-template-rows: masonry (or JS solution)
232
+ Gutter: 2-3% or 20-32px
233
+ Item border-radius: 0 (editorial) | 4px (softer brand)
234
+ No card borders — let whitespace and images define items
235
+ ```
236
+
237
+ ---
238
+
239
+ ## Anti-Patterns to Avoid
240
+
241
+ - Do not use stock photography — editorial brands live and die by authentic imagery.
242
+ - Do not add multiple CTAs to the campaign hero — one message, one direction.
243
+ - Do not use countdown timers unless the brand explicitly uses urgency (e.g., drops/limited editions).
244
+ - Do not use rigid uniform grids — they destroy editorial feel.
245
+ - Do not clutter the page with social share buttons, chat widgets, or promo banners at load.
246
+ - Do not use Comic Sans, Impact, or novelty typefaces unless the brand identity demands it.
247
+ - Do not copy a brand's exact trademark color combination (e.g., LV monogram brown + gold pattern).
248
+ - Do not remove all contrast in pursuit of minimalism — accessibility is non-negotiable.
249
+
250
+ ---
251
+
252
+ ## QA Checklist
253
+
254
+ - [ ] Campaign hero image loads with correct poster/fallback.
255
+ - [ ] Text on images passes 4.5:1 contrast (include scrim in measurement).
256
+ - [ ] `prefers-reduced-motion` replaces animations with instant transitions.
257
+ - [ ] Hover-reveal product details are also accessible via keyboard focus.
258
+ - [ ] Navigation overlay traps focus, `Escape` closes it.
259
+ - [ ] Masonry grid tab order is logical and readable.
260
+ - [ ] All images have meaningful `alt` text.
261
+ - [ ] Mobile: product name and price visible without hover.
262
+ - [ ] No autoplay audio.
263
+ - [ ] Page loads in under 3s on 4G (LCP ≤ 2.5s — use lazy loading for below-fold images).
264
+ - [ ] Custom cursor does not break keyboard navigation.
265
+ - [ ] No brand trademark colors, logos, or exact layouts copied from reference brands.