ui-ux-master 1.2.1 → 1.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +160 -209
- package/SKILL.md +89 -47
- package/docs/package-publishing.md +5 -3
- package/index.cjs +3 -1
- package/index.d.ts +1 -1
- package/index.mjs +4 -1
- package/package.json +4 -3
- 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,284 @@
|
|
|
1
|
+
# Brand Method: Playful Familiarity
|
|
2
|
+
|
|
3
|
+
Use this skill when building for food and beverage retail, family brands, toys, children's platforms, casual consumer apps, or any context where the primary emotion is delight, comfort, and ease.
|
|
4
|
+
|
|
5
|
+
Reference brands: McDonald's, KFC, Burger King, Domino's, Starbucks, LEGO, Nintendo, Coca-Cola, Nestlé, Colgate, Costco.
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## When to Apply This Method
|
|
10
|
+
|
|
11
|
+
Apply Playful Familiarity when:
|
|
12
|
+
- The brand uses friendly, familiar, or joyful tone as a key differentiator.
|
|
13
|
+
- The audience is broad: families, children, casual users, all age groups.
|
|
14
|
+
- The primary task is order, find, or buy — but the experience should feel fun, not cold.
|
|
15
|
+
- Brand characters, mascots, or iconic imagery are key recognition assets.
|
|
16
|
+
|
|
17
|
+
Do not apply when:
|
|
18
|
+
- The brand is luxury or premium (use Premium Restraint).
|
|
19
|
+
- The product is enterprise software or professional tools (use Enterprise Trust Hub or Technical Authority).
|
|
20
|
+
- The primary goal is brand storytelling without task completion (use Editorial Brand World).
|
|
21
|
+
|
|
22
|
+
---
|
|
23
|
+
|
|
24
|
+
## Layout Structure
|
|
25
|
+
|
|
26
|
+
### Hero
|
|
27
|
+
- Brand imagery dominant: food photography, character/mascot, product in context.
|
|
28
|
+
- Warm, bright, inviting — the hero should make the user feel good immediately.
|
|
29
|
+
- Headline: short, friendly, direct. "Order Now." "What are you craving?" "Start Building."
|
|
30
|
+
- CTA: bold, large, visible — "Order Now", "Find a Store", "Shop Now."
|
|
31
|
+
- Promotional strip: thin banner above or below hero with current offer.
|
|
32
|
+
|
|
33
|
+
### Navigation
|
|
34
|
+
- Clear, simple, icons + labels.
|
|
35
|
+
- Categories visible in nav or below hero (not hidden in hamburger on desktop).
|
|
36
|
+
- Key CTAs in nav: "Order Now", "Delivery", "Store Finder."
|
|
37
|
+
- Mobile: bottom navigation bar (food ordering / consumer apps) OR clear hamburger.
|
|
38
|
+
|
|
39
|
+
### Homepage Sections (in order)
|
|
40
|
+
1. **Hero** — brand world, CTA, current promotion.
|
|
41
|
+
2. **Featured offers / menu highlights** — 3-4 featured items with prices, large photos.
|
|
42
|
+
3. **Order method selection** — Delivery / Takeaway / Dine-in (food brands).
|
|
43
|
+
4. **Brand story snippet** — 1-2 paragraphs or a visual story block, friendly tone.
|
|
44
|
+
5. **Loyalty / rewards** — app or rewards program teaser.
|
|
45
|
+
6. **Location finder** — map or zip code input.
|
|
46
|
+
|
|
47
|
+
### Menu / Product Page
|
|
48
|
+
- Large food photography or product imagery.
|
|
49
|
+
- Clear product name, price, description (friendly tone).
|
|
50
|
+
- Customization options (size, extras, add-ons): large touch targets, visible choices.
|
|
51
|
+
- "Add to Order" / "Add to Cart": prominent, colored, full-width on mobile.
|
|
52
|
+
- Allergen info: accessible, visible, not buried.
|
|
53
|
+
|
|
54
|
+
---
|
|
55
|
+
|
|
56
|
+
## Color Scheme
|
|
57
|
+
|
|
58
|
+
### Palette Archetypes
|
|
59
|
+
|
|
60
|
+
**Fast Food (McDonald's, KFC, Burger King)**
|
|
61
|
+
- McDonald's: `#FFC72C` (yellow) + `#DA291C` (red) on white
|
|
62
|
+
- KFC: `#E4002B` (red) + `#000000` on white
|
|
63
|
+
- Burger King: `#E8611A` (orange/red) + `#502314` (brown) + cream `#F5F0E5`
|
|
64
|
+
- Rule: high-energy primaries, white background, CTA uses the brightest brand color.
|
|
65
|
+
|
|
66
|
+
**Coffee / Comfort (Starbucks)**
|
|
67
|
+
- Primary: `#00704A` (green)
|
|
68
|
+
- Background: `#FFFFFF` or `#F9F4EE` (warm cream)
|
|
69
|
+
- Accent: `#CBA258` (gold, reward tier)
|
|
70
|
+
- Text: `#1E3932` (deep green)
|
|
71
|
+
|
|
72
|
+
**Family Toys (LEGO)**
|
|
73
|
+
- Primary: `#F5CC0A` (LEGO yellow) + `#D91F26` (red) + `#006CB7` (blue)
|
|
74
|
+
- Background: `#FFFFFF`
|
|
75
|
+
- Text: `#1A1A1A`
|
|
76
|
+
- Use multiple brand colors in theme/product routing — each theme has its own color.
|
|
77
|
+
|
|
78
|
+
**Family Food Brands (Nestlé, Colgate)**
|
|
79
|
+
- Background: `#FFFFFF`
|
|
80
|
+
- Primary: brand blue or red
|
|
81
|
+
- Surface: light pastel of primary color at 10-20% opacity
|
|
82
|
+
- Text: `#1A1A1A`
|
|
83
|
+
- Warm accent: yellow or green for health cues
|
|
84
|
+
|
|
85
|
+
**Gaming / Family Entertainment (Nintendo)**
|
|
86
|
+
- Primary: `#E4000F` (red)
|
|
87
|
+
- Background: `#FFFFFF`
|
|
88
|
+
- Game character/art provides additional color
|
|
89
|
+
- Text: `#1A1A1A`
|
|
90
|
+
|
|
91
|
+
### Rules
|
|
92
|
+
- Colors must be high-energy and identifiable — the brand color is the experience.
|
|
93
|
+
- CTA must use the brand's most energetic color.
|
|
94
|
+
- White backgrounds prevent color fatigue when using multiple brand colors.
|
|
95
|
+
- Never use muted, desaturated tones for primary elements — that signals premium, not playful.
|
|
96
|
+
|
|
97
|
+
---
|
|
98
|
+
|
|
99
|
+
## Typography
|
|
100
|
+
|
|
101
|
+
### Scale
|
|
102
|
+
| Role | Size | Weight | Notes |
|
|
103
|
+
|---|---|---|---|
|
|
104
|
+
| Hero headline | 32-56px | 700-900 | Friendly bold, may be condensed |
|
|
105
|
+
| Section headline | 22-32px | 700 | |
|
|
106
|
+
| Product name | 16-20px | 600-700 | |
|
|
107
|
+
| Product description | 14-16px | 400 | Friendly tone, short |
|
|
108
|
+
| Price | 18-24px | 700 | Tabular numerals, brand accent |
|
|
109
|
+
| CTA | 15-18px | 700 | |
|
|
110
|
+
| Navigation label | 13-14px | 500-600 | |
|
|
111
|
+
| Promo badge | 11-13px | 700-800 | All-caps or bold |
|
|
112
|
+
|
|
113
|
+
### Font Pairings
|
|
114
|
+
| Brand type | Font |
|
|
115
|
+
|---|---|
|
|
116
|
+
| Fast food | Nunito Black / ExtraBold, Fredoka One, or brand custom |
|
|
117
|
+
| Coffee / lifestyle | Lato Bold, Raleway, or circular |
|
|
118
|
+
| Family toys | Nunito, Poppins, or Fredoka One |
|
|
119
|
+
| Family food/health | Rounded Sans: Nunito, Quicksand, or Poppins |
|
|
120
|
+
| Gaming consumer | Custom or Barlow, Exo 2, or Noto Sans Bold |
|
|
121
|
+
|
|
122
|
+
### Rules
|
|
123
|
+
- Use rounded fonts — sharp serifs and thin weights feel cold for playful brands.
|
|
124
|
+
- Headlines must command attention immediately — heavy weight, high contrast.
|
|
125
|
+
- Never use decorative fonts that sacrifice legibility.
|
|
126
|
+
|
|
127
|
+
---
|
|
128
|
+
|
|
129
|
+
## Spacing System
|
|
130
|
+
|
|
131
|
+
| Token | Value | Use |
|
|
132
|
+
|---|---|---|
|
|
133
|
+
| `--space-xs` | 4px | Icon nudges |
|
|
134
|
+
| `--space-sm` | 8px | Label margins |
|
|
135
|
+
| `--space-md` | 16px | Card padding, button padding |
|
|
136
|
+
| `--space-lg` | 24px | Between product cards |
|
|
137
|
+
| `--space-xl` | 40-48px | Section separation |
|
|
138
|
+
| `--space-2xl` | 64-80px | Hero padding |
|
|
139
|
+
|
|
140
|
+
- Product grids: 16-20px gutters.
|
|
141
|
+
- CTA buttons: generous padding (16px × 32px minimum) — must feel easy to tap.
|
|
142
|
+
- Cards: 16px padding, 8-12px border-radius.
|
|
143
|
+
|
|
144
|
+
---
|
|
145
|
+
|
|
146
|
+
## Motion and Interaction
|
|
147
|
+
|
|
148
|
+
### Principles
|
|
149
|
+
- Microinteractions should delight — bouncy, friendly, never cold or mechanical.
|
|
150
|
+
- Add-to-cart / Order: satisfying animation (checkmark pop, cart count bounce).
|
|
151
|
+
- Promo banner: gentle left-right auto-scroll with pause on hover.
|
|
152
|
+
- Product card: hop/lift on hover, 150ms.
|
|
153
|
+
|
|
154
|
+
### Mascot / Character Animation
|
|
155
|
+
- Character appears on key moments: empty cart ("Add your first item!"), order success, loyalty milestone.
|
|
156
|
+
- Keep to a few frames — simple, not complex.
|
|
157
|
+
- `prefers-reduced-motion`: replace all bounce/spring animations with instant transitions.
|
|
158
|
+
|
|
159
|
+
### Loading
|
|
160
|
+
- Skeleton: match card dimensions, shimmer animation.
|
|
161
|
+
- Order confirmation: celebratory micro-animation (checkmark or confetti), then settled state.
|
|
162
|
+
|
|
163
|
+
### Transitions
|
|
164
|
+
- Button tap: scale `0.95` on press, bounce back, 150ms spring.
|
|
165
|
+
- Card hover: `translateY(-4px)`, `box-shadow` lift, 150ms ease.
|
|
166
|
+
|
|
167
|
+
---
|
|
168
|
+
|
|
169
|
+
## Responsive Behavior
|
|
170
|
+
|
|
171
|
+
| Breakpoint | Key changes |
|
|
172
|
+
|---|---|
|
|
173
|
+
| Mobile 375px | Hero: full-width, stacked CTA. Menu: single-column. Bottom nav bar. Large tap targets. Price prominent on card. |
|
|
174
|
+
| Tablet 768px | 2-column menu grid. Nav visible. |
|
|
175
|
+
| Desktop 1024px | 3-4 column product grid. Full nav visible. |
|
|
176
|
+
| Wide 1440px+ | Max-width 1280px. Product grid up to 5 columns. |
|
|
177
|
+
|
|
178
|
+
- Mobile is the primary experience for food ordering — optimize for thumb reach.
|
|
179
|
+
- Bottom nav bar on mobile: 5 items max, icons + labels.
|
|
180
|
+
- "Add to Order" button: sticky at bottom of product detail on mobile.
|
|
181
|
+
|
|
182
|
+
---
|
|
183
|
+
|
|
184
|
+
## Accessibility Requirements
|
|
185
|
+
|
|
186
|
+
- Food photography alt text: describe the food item, not "image of food" — e.g., `alt="Big Mac burger with sesame bun, lettuce, cheese, and special sauce"`.
|
|
187
|
+
- Menu customization: radio buttons or checkboxes with visible labels. `<fieldset>` + `<legend>` per option group.
|
|
188
|
+
- Allergen info: must be a text element, visible by default, not only revealed on hover.
|
|
189
|
+
- Bottom navigation: `role="navigation"`, `aria-label="Main navigation"`. Active item: `aria-current="page"`.
|
|
190
|
+
- Promotions and badges: always include text content, not just color/icon.
|
|
191
|
+
- Character/mascot images: `alt` describes the character's action, not just "mascot."
|
|
192
|
+
- Order confirmation: `aria-live="polite"` for success message.
|
|
193
|
+
- Touch targets: all buttons and links minimum 44×44px — critical for food ordering on mobile.
|
|
194
|
+
- Promo banner: auto-scrolling must pause on focus and on `prefers-reduced-motion`.
|
|
195
|
+
|
|
196
|
+
---
|
|
197
|
+
|
|
198
|
+
## UX Principles for This Method
|
|
199
|
+
|
|
200
|
+
1. **Make the primary task impossible to miss.** Ordering or finding a location is the job — never bury it.
|
|
201
|
+
2. **Delight is earned through speed, not decoration.** A fast, frictionless order is more delightful than a bouncy animation on a slow page.
|
|
202
|
+
3. **Familiarity is a feature.** Use recognizable patterns (bottom nav, large cards, price prominent) — users already know this language.
|
|
203
|
+
4. **Food photography sells.** Invest in imagery. A great photo of food is worth 1000 feature descriptions.
|
|
204
|
+
5. **Broad audience.** Someone's grandmother should be able to order without frustration. Do not assume tech literacy.
|
|
205
|
+
6. **Loyalty creates habit.** Rewards and loyalty flows are high-value — design them to be simple and visible.
|
|
206
|
+
|
|
207
|
+
---
|
|
208
|
+
|
|
209
|
+
## Component Specs
|
|
210
|
+
|
|
211
|
+
### Menu Product Card
|
|
212
|
+
```
|
|
213
|
+
Width: flexible
|
|
214
|
+
Border-radius: 12px
|
|
215
|
+
Background: white
|
|
216
|
+
Border: 1px solid var(--border)
|
|
217
|
+
Image: 16:9 or square, object-fit: cover, border-radius top
|
|
218
|
+
Product name: 16-18px, weight 700, margin-top 12px
|
|
219
|
+
Description: 13-14px, text-secondary, 2-line clamp
|
|
220
|
+
Price: 16-20px, weight 700, brand accent color
|
|
221
|
+
CTA: "Add" button, right-aligned or full-width, brand primary
|
|
222
|
+
```
|
|
223
|
+
|
|
224
|
+
### CTA Button (Playful)
|
|
225
|
+
```
|
|
226
|
+
Background: brand primary
|
|
227
|
+
Text: white, 15-18px, weight 700
|
|
228
|
+
Padding: 14-16px 28-36px
|
|
229
|
+
Border-radius: 8-12px
|
|
230
|
+
Hover: darken 8%, scale 1.02
|
|
231
|
+
Active: scale 0.97, darken 12%
|
|
232
|
+
Focus: 3px solid brand-darker, offset 2px
|
|
233
|
+
Bounce animation on add-to-cart: scale 1.1 → 1.0, 200ms spring
|
|
234
|
+
```
|
|
235
|
+
|
|
236
|
+
### Loyalty Badge / Reward
|
|
237
|
+
```
|
|
238
|
+
Background: brand accent (gold or contrasting)
|
|
239
|
+
Text: 12-13px, bold, white or dark
|
|
240
|
+
Border-radius: 6-8px (pill: 20px)
|
|
241
|
+
Icon: star or flame, 14px, inline
|
|
242
|
+
Padding: 4px 10px
|
|
243
|
+
Positioned: bottom-left of product card image (absolute)
|
|
244
|
+
```
|
|
245
|
+
|
|
246
|
+
### Promo Banner
|
|
247
|
+
```
|
|
248
|
+
Background: brand accent
|
|
249
|
+
Text: 13-14px, bold, white or dark
|
|
250
|
+
Height: 40-44px
|
|
251
|
+
Auto-scroll interval: 4-5s
|
|
252
|
+
Pause on hover + focus
|
|
253
|
+
Indicator dots: below banner, small (6px), brand light color
|
|
254
|
+
```
|
|
255
|
+
|
|
256
|
+
---
|
|
257
|
+
|
|
258
|
+
## Anti-Patterns to Avoid
|
|
259
|
+
|
|
260
|
+
- Do not hide the menu behind 3 clicks.
|
|
261
|
+
- Do not use small, light, or thin typography — broad audiences include elderly users.
|
|
262
|
+
- Do not use low-contrast food badges or promo text on colorful backgrounds.
|
|
263
|
+
- Do not autoplay promotional audio.
|
|
264
|
+
- Do not require account creation before viewing the menu.
|
|
265
|
+
- Do not use dark patterns for upsells — every "add extra" must be a clear opt-in, not pre-checked.
|
|
266
|
+
- Do not use countdown timers for items that are not actually time-limited.
|
|
267
|
+
- Do not rely solely on color to convey allergen information.
|
|
268
|
+
|
|
269
|
+
---
|
|
270
|
+
|
|
271
|
+
## QA Checklist
|
|
272
|
+
|
|
273
|
+
- [ ] Primary CTA ("Order Now", "Add to Cart") visible above fold on mobile.
|
|
274
|
+
- [ ] Bottom nav (if used): all items labeled, accessible, active state clear.
|
|
275
|
+
- [ ] Food photography loads with skeleton placeholder.
|
|
276
|
+
- [ ] Menu customization uses `<fieldset>` + `<legend>` with keyboard-navigable options.
|
|
277
|
+
- [ ] Allergen info visible as text, not hover-only.
|
|
278
|
+
- [ ] All interactive elements ≥ 44×44px touch target.
|
|
279
|
+
- [ ] "Add to Order" sticky button on mobile product detail.
|
|
280
|
+
- [ ] Loyalty / rewards section reachable within 2 taps.
|
|
281
|
+
- [ ] Order confirmation announces success to screen reader (`aria-live`).
|
|
282
|
+
- [ ] `prefers-reduced-motion`: all bounce/spring animations replaced with instant transitions.
|
|
283
|
+
- [ ] No pre-checked upsell options (dark pattern check).
|
|
284
|
+
- [ ] Page loads in under 3s on 4G (food ordering is mobile-first, often on poor connections).
|
|
@@ -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.
|