oh-my-design-cli 1.0.2 → 1.1.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.
Files changed (99) hide show
  1. package/README.md +15 -18
  2. package/data/reference-fingerprints.json +337 -3
  3. package/data/reference-tags.md +15 -1
  4. package/package.json +2 -2
  5. package/skills/omd-init/SKILL.md +1 -1
  6. package/web/AGENTS.md +5 -0
  7. package/{references → web/references}/airbnb/DESIGN.md +158 -19
  8. package/web/references/airtable/DESIGN.md +241 -0
  9. package/{references → web/references}/apple/DESIGN.md +131 -76
  10. package/web/references/baemin/DESIGN.md +470 -0
  11. package/{references → web/references}/bmw/DESIGN.md +138 -9
  12. package/{references → web/references}/cal/DESIGN.md +173 -17
  13. package/{references → web/references}/claude/DESIGN.md +11 -1
  14. package/{references → web/references}/clay/DESIGN.md +75 -0
  15. package/{references → web/references}/clickhouse/DESIGN.md +74 -0
  16. package/{references → web/references}/cohere/DESIGN.md +75 -0
  17. package/web/references/coinbase/DESIGN.md +205 -0
  18. package/{references → web/references}/composio/DESIGN.md +74 -0
  19. package/web/references/coupang/DESIGN.md +487 -0
  20. package/{references → web/references}/cursor/DESIGN.md +74 -0
  21. package/web/references/dcard/DESIGN.md +567 -0
  22. package/{references → web/references}/elevenlabs/DESIGN.md +91 -0
  23. package/{references → web/references}/expo/DESIGN.md +72 -0
  24. package/{references → web/references}/ferrari/DESIGN.md +72 -0
  25. package/{references → web/references}/figma/DESIGN.md +124 -48
  26. package/{references → web/references}/framer/DESIGN.md +143 -16
  27. package/web/references/freee/DESIGN.md +558 -0
  28. package/{references → web/references}/hashicorp/DESIGN.md +72 -0
  29. package/{references → web/references}/ibm/DESIGN.md +68 -0
  30. package/{references → web/references}/intercom/DESIGN.md +73 -0
  31. package/web/references/kakao/DESIGN.md +490 -0
  32. package/web/references/kakaobank/DESIGN.md +533 -0
  33. package/web/references/karrot/DESIGN.md +431 -0
  34. package/web/references/kraken/DESIGN.md +219 -0
  35. package/web/references/krds/DESIGN.md +982 -0
  36. package/web/references/kurly/DESIGN.md +574 -0
  37. package/{references → web/references}/lamborghini/DESIGN.md +74 -0
  38. package/{references → web/references}/line/DESIGN.md +84 -43
  39. package/{references → web/references}/linear.app/DESIGN.md +8 -1
  40. package/{references → web/references}/lovable/DESIGN.md +73 -0
  41. package/web/references/mercari/DESIGN.md +464 -0
  42. package/{references → web/references}/minimax/DESIGN.md +72 -0
  43. package/{references → web/references}/mintlify/DESIGN.md +72 -0
  44. package/web/references/miro/DESIGN.md +252 -0
  45. package/{references → web/references}/mistral.ai/DESIGN.md +72 -0
  46. package/{references → web/references}/mongodb/DESIGN.md +72 -0
  47. package/web/references/musinsa/DESIGN.md +536 -0
  48. package/web/references/naver/DESIGN.md +518 -0
  49. package/{references → web/references}/notion/DESIGN.md +9 -1
  50. package/web/references/nvidia/DESIGN.md +491 -0
  51. package/web/references/ohouse/DESIGN.md +570 -0
  52. package/{references → web/references}/ollama/DESIGN.md +72 -0
  53. package/{references → web/references}/opencode.ai/DESIGN.md +73 -0
  54. package/web/references/pinkoi/DESIGN.md +575 -0
  55. package/{references → web/references}/pinterest/DESIGN.md +73 -0
  56. package/{references → web/references}/posthog/DESIGN.md +172 -18
  57. package/web/references/qanda/DESIGN.md +459 -0
  58. package/{references → web/references}/raycast/DESIGN.md +169 -34
  59. package/{references → web/references}/renault/DESIGN.md +72 -0
  60. package/{references → web/references}/replicate/DESIGN.md +73 -0
  61. package/{references → web/references}/resend/DESIGN.md +73 -0
  62. package/{references → web/references}/revolut/DESIGN.md +74 -0
  63. package/web/references/ridi/DESIGN.md +517 -0
  64. package/{references → web/references}/runwayml/DESIGN.md +152 -24
  65. package/{references → web/references}/sanity/DESIGN.md +72 -0
  66. package/{references → web/references}/sentry/DESIGN.md +73 -0
  67. package/web/references/spacex/DESIGN.md +379 -0
  68. package/web/references/spotify/DESIGN.md +426 -0
  69. package/{references → web/references}/stripe/DESIGN.md +44 -1
  70. package/{references → web/references}/supabase/DESIGN.md +73 -0
  71. package/{references → web/references}/superhuman/DESIGN.md +159 -17
  72. package/{references → web/references}/tesla/DESIGN.md +170 -0
  73. package/{references → web/references}/together.ai/DESIGN.md +73 -0
  74. package/{references → web/references}/toss/DESIGN.md +304 -50
  75. package/{references → web/references}/uber/DESIGN.md +73 -0
  76. package/{references → web/references}/vercel/DESIGN.md +9 -1
  77. package/{references → web/references}/voltagent/DESIGN.md +73 -0
  78. package/{references → web/references}/warp/DESIGN.md +142 -15
  79. package/web/references/webflow/DESIGN.md +253 -0
  80. package/{references → web/references}/wise/DESIGN.md +84 -0
  81. package/{references → web/references}/x.ai/DESIGN.md +85 -0
  82. package/web/references/yanolja/DESIGN.md +448 -0
  83. package/web/references/yeogiotte/DESIGN.md +424 -0
  84. package/{references → web/references}/zapier/DESIGN.md +85 -0
  85. package/references/airtable/DESIGN.md +0 -107
  86. package/references/baemin/DESIGN.md +0 -260
  87. package/references/coinbase/DESIGN.md +0 -129
  88. package/references/dcard/DESIGN.md +0 -302
  89. package/references/freee/DESIGN.md +0 -308
  90. package/references/kakao/DESIGN.md +0 -261
  91. package/references/karrot/DESIGN.md +0 -252
  92. package/references/kraken/DESIGN.md +0 -146
  93. package/references/mercari/DESIGN.md +0 -294
  94. package/references/miro/DESIGN.md +0 -108
  95. package/references/nvidia/DESIGN.md +0 -308
  96. package/references/pinkoi/DESIGN.md +0 -309
  97. package/references/spacex/DESIGN.md +0 -205
  98. package/references/spotify/DESIGN.md +0 -246
  99. package/references/webflow/DESIGN.md +0 -109
@@ -1,308 +0,0 @@
1
- # Design System Inspiration of NVIDIA
2
-
3
- ## 1. Visual Theme & Atmosphere
4
-
5
- NVIDIA's website is a high-contrast, technology-forward experience that communicates raw computational power through design restraint. The page is built on a stark black (`#000000`) and white (`#ffffff`) foundation, punctuated by NVIDIA's signature green (`#76b900`) -- a color so specific it functions as a brand fingerprint. This is not the lush green of nature; it's the electric, lime-shifted green of GPU-rendered light, a color that sits between chartreuse and kelly green and immediately signals "NVIDIA" to anyone in technology.
6
-
7
- The custom NVIDIA-EMEA font family (with Arial and Helvetica fallbacks) creates a clean, industrial typographic voice. Headings at 36px bold with tight 1.25 line-height create dense, authoritative blocks of text. The font lacks the geometric playfulness of Silicon Valley sans-serifs -- it's European, pragmatic, and engineering-focused. Body text runs at 15-16px, comfortable for reading but not generous, maintaining the sense that screen real estate is optimized like GPU memory.
8
-
9
- What distinguishes NVIDIA's design from other dark-background tech sites is the disciplined use of the green accent. The `#76b900` appears in borders (`2px solid #76b900`), link underlines (`underline 2px rgb(118, 185, 0)`), and CTAs -- but never as backgrounds or large surface areas on the main content. The green is a signal, not a surface. Combined with a deep shadow system (`rgba(0, 0, 0, 0.3) 0px 0px 5px`) and minimal border radius (1-2px), the overall effect is of precision engineering hardware rendered in pixels.
10
-
11
- **Key Characteristics:**
12
- - NVIDIA Green (`#76b900`) as pure accent -- borders, underlines, and interactive highlights only
13
- - Black (`#000000`) dominant background with white (`#ffffff`) text on dark sections
14
- - NVIDIA-EMEA custom font with Arial/Helvetica fallback -- industrial, European, clean
15
- - Tight line-heights (1.25 for headings) creating dense, authoritative text blocks
16
- - Minimal border radius (1-2px) -- sharp, engineered corners throughout
17
- - Green-bordered buttons (`2px solid #76b900`) as primary interactive pattern
18
- - Font Awesome 6 Pro/Sharp icon system at weight 900 for sharp iconography
19
- - Multi-framework architecture (PrimeReact, Fluent UI, Element Plus) enabling rich interactive components
20
-
21
- ### Do's and Don'ts
22
-
23
- - **DO** use NVIDIA Green `#76b900` exclusively as a SIGNAL color — borders, link underlines, button outlines, focus states.
24
- - **DON'T** use the green as a fill on large surfaces, backgrounds, or decorative gradients — that destroys its function as a fingerprint accent.
25
- - **DO** keep the foundation black-and-white. Black `#000000` for dark sections, white `#ffffff` for content, with green pinpricks of accent.
26
- - **DON'T** introduce mid-tone backgrounds (gray cards, tinted sections) — NVIDIA's contrast is binary by design.
27
- - **DO** use sharp 1-2px border radius across all components — buttons, cards, inputs.
28
- - **DON'T** use rounded or pill-shaped buttons — that reads as friendly consumer tech, not high-precision engineering hardware.
29
- - **DO** apply tight 1.25 line-height to headings for dense, authoritative blocks of text.
30
- - **DON'T** use generous 1.5+ line-height on display headers — it relaxes the engineered, compressed feel.
31
- - **DO** use `2px solid #76b900` as the primary button border pattern — green-outlined CTAs are the brand's default interactive shape.
32
- - **DON'T** use filled green buttons as the primary pattern — fills belong to consumer brands; NVIDIA reserves green for outlines and accents.
33
- - **DO** use Font Awesome 6 Pro/Sharp at weight 900 for sharp iconography matching the engineering aesthetic.
34
- - **DON'T** use rounded or playful icon sets — they conflict with NVIDIA's industrial precision.
35
-
36
- ## 2. Color Palette & Roles
37
-
38
- ### Primary Brand
39
- - **NVIDIA Green** (`#76b900`): The signature -- borders, link underlines, CTA outlines, active indicators. Never used as large surface fills.
40
- - **True Black** (`#000000`): Primary page background, text on light surfaces, dominant tone.
41
- - **Pure White** (`#ffffff`): Text on dark backgrounds, light section backgrounds, card surfaces.
42
-
43
- ### Extended Brand Palette
44
- - **NVIDIA Green Light** (`#bff230`): Bright lime accent for highlights and hover states.
45
- - **Orange 400** (`#df6500`): Warm accent for alerts, featured badges, or energy-related contexts.
46
- - **Yellow 300** (`#ef9100`): Secondary warm accent, product category highlights.
47
- - **Yellow 050** (`#feeeb2`): Light warm surface for callout backgrounds.
48
-
49
- ### Status & Semantic
50
- - **Red 500** (`#e52020`): Error states, destructive actions, critical alerts.
51
- - **Red 800** (`#650b0b`): Deep red for severe warning backgrounds.
52
- - **Green 500** (`#3f8500`): Success states, positive indicators (darker than brand green).
53
- - **Blue 700** (`#0046a4`): Informational accents, link hover alternative.
54
-
55
- ### Decorative
56
- - **Purple 800** (`#4d1368`): Deep purple for gradient ends, premium/AI contexts.
57
- - **Purple 100** (`#f9d4ff`): Light purple surface tint.
58
- - **Fuchsia 700** (`#8c1c55`): Rich accent for special promotions or featured content.
59
-
60
- ### Neutral Scale
61
- - **Gray 300** (`#a7a7a7`): Muted text, disabled labels.
62
- - **Gray 400** (`#898989`): Secondary text, metadata.
63
- - **Gray 500** (`#757575`): Tertiary text, placeholders, footers.
64
- - **Gray Border** (`#5e5e5e`): Subtle borders, divider lines.
65
- - **Near Black** (`#1a1a1a`): Dark surfaces, card backgrounds on black pages.
66
-
67
- ### Interactive States
68
- - **Link Default (dark bg)** (`#ffffff`): White links on dark backgrounds.
69
- - **Link Default (light bg)** (`#000000`): Black links with green underline on light backgrounds.
70
- - **Link Hover** (`#3860be`): Blue shift on hover across all link variants.
71
- - **Button Hover** (`#1eaedb`): Teal highlight for button hover states.
72
- - **Button Active** (`#007fff`): Bright blue for active/pressed button states.
73
- - **Focus Ring** (`#000000 solid 2px`): Black outline for keyboard focus.
74
-
75
- ### Shadows & Depth
76
- - **Card Shadow** (`rgba(0, 0, 0, 0.3) 0px 0px 5px 0px`): Subtle ambient shadow for elevated cards.
77
-
78
- ## 3. Typography Rules
79
-
80
- ### Font Family
81
- - **Primary**: `NVIDIA-EMEA`, with fallbacks: `Arial, Helvetica, sans-serif`
82
- - **Icon Font**: `Font Awesome 6 Pro` (weight 900 for solid icons, 700 for regular)
83
- - **Icon Sharp**: `Font Awesome 6 Sharp` (weight 300 for light icons, 400 for regular)
84
-
85
- ### Hierarchy
86
-
87
- | Role | Font | Size | Weight | Line Height | Letter Spacing | Notes |
88
- |------|------|------|--------|-------------|----------------|-------|
89
- | Display Hero | NVIDIA-EMEA | 36px (2.25rem) | 700 | 1.25 (tight) | normal | Maximum impact headlines |
90
- | Section Heading | NVIDIA-EMEA | 24px (1.50rem) | 700 | 1.25 (tight) | normal | Section titles, card headings |
91
- | Sub-heading | NVIDIA-EMEA | 22px (1.38rem) | 400 | 1.75 (relaxed) | normal | Feature descriptions, subtitles |
92
- | Card Title | NVIDIA-EMEA | 20px (1.25rem) | 700 | 1.25 (tight) | normal | Card and module headings |
93
- | Body Large | NVIDIA-EMEA | 18px (1.13rem) | 700 | 1.67 (relaxed) | normal | Emphasized body, lead paragraphs |
94
- | Body | NVIDIA-EMEA | 16px (1.00rem) | 400 | 1.50 | normal | Standard reading text |
95
- | Body Bold | NVIDIA-EMEA | 16px (1.00rem) | 700 | 1.50 | normal | Strong labels, nav items |
96
- | Body Small | NVIDIA-EMEA | 15px (0.94rem) | 400 | 1.67 (relaxed) | normal | Secondary content, descriptions |
97
- | Body Small Bold | NVIDIA-EMEA | 15px (0.94rem) | 700 | 1.50 | normal | Emphasized secondary content |
98
- | Button Large | NVIDIA-EMEA | 18px (1.13rem) | 700 | 1.25 (tight) | normal | Primary CTA buttons |
99
- | Button | NVIDIA-EMEA | 16px (1.00rem) | 700 | 1.25 (tight) | normal | Standard buttons |
100
- | Button Compact | NVIDIA-EMEA | 14.4px (0.90rem) | 700 | 1.00 (tight) | 0.144px | Small/compact buttons |
101
- | Link | NVIDIA-EMEA | 14px (0.88rem) | 700 | 1.43 | normal | Navigation links |
102
- | Link Uppercase | NVIDIA-EMEA | 14px (0.88rem) | 700 | 1.43 | normal | `text-transform: uppercase`, nav labels |
103
- | Caption | NVIDIA-EMEA | 14px (0.88rem) | 600 | 1.50 | normal | Metadata, timestamps |
104
- | Caption Small | NVIDIA-EMEA | 12px (0.75rem) | 400 | 1.25 (tight) | normal | Fine print, legal |
105
- | Micro Label | NVIDIA-EMEA | 10px (0.63rem) | 700 | 1.50 | normal | `text-transform: uppercase`, tiny badges |
106
- | Micro | NVIDIA-EMEA | 11px (0.69rem) | 700 | 1.00 (tight) | normal | Smallest UI text |
107
-
108
- ### Principles
109
- - **Bold as the default voice**: NVIDIA leans heavily on weight 700 for headings, buttons, links, and labels. The 400 weight is reserved for body text and descriptions -- everything else is bold, projecting confidence and authority.
110
- - **Tight headings, relaxed body**: Heading line-height is consistently 1.25 (tight), while body text relaxes to 1.50-1.67. This contrast creates visual density at the top of content blocks and comfortable readability in paragraphs.
111
- - **Uppercase for navigation**: Link labels use `text-transform: uppercase` with weight 700, creating a navigation voice that reads like hardware specification labels.
112
- - **No decorative tracking**: Letter-spacing is normal throughout, except for compact buttons (0.144px). The font itself carries the industrial character without manipulation.
113
-
114
- ## 4. Component Stylings
115
-
116
- ### Buttons
117
-
118
- **Primary (Green Border)**
119
- - Background: `transparent`
120
- - Text: `#000000`
121
- - Padding: 11px 13px
122
- - Border: `2px solid #76b900`
123
- - Radius: 2px
124
- - Font: 16px weight 700
125
- - Hover: background `#1eaedb`, text `#ffffff`
126
- - Active: background `#007fff`, text `#ffffff`, border `1px solid #003eff`, scale(1)
127
- - Focus: background `#1eaedb`, text `#ffffff`, outline `#000000 solid 2px`, opacity 0.9
128
- - Use: Primary CTA ("Learn More", "Explore Solutions")
129
-
130
- **Secondary (Green Border Thin)**
131
- - Background: transparent
132
- - Border: `1px solid #76b900`
133
- - Radius: 2px
134
- - Use: Secondary actions, alternative CTAs
135
-
136
- **Compact / Inline**
137
- - Font: 14.4px weight 700
138
- - Letter-spacing: 0.144px
139
- - Line-height: 1.00
140
- - Use: Inline CTAs, compact navigation
141
-
142
- ### Cards & Containers
143
- - Background: `#ffffff` (light) or `#1a1a1a` (dark sections)
144
- - Border: none (clean edges) or `1px solid #5e5e5e`
145
- - Radius: 2px
146
- - Shadow: `rgba(0, 0, 0, 0.3) 0px 0px 5px 0px` for elevated cards
147
- - Hover: shadow intensification
148
- - Padding: 16-24px internal
149
-
150
- ### Links
151
- - **On Dark Background**: `#ffffff`, no underline, hover shifts to `#3860be`
152
- - **On Light Background**: `#000000` or `#1a1a1a`, underline `2px solid #76b900`, hover shifts to `#3860be`, underline removed
153
- - **Green Links**: `#76b900`, hover shifts to `#3860be`
154
- - **Muted Links**: `#666666`, hover shifts to `#3860be`
155
-
156
- ### Navigation
157
- - Dark black background (`#000000`)
158
- - Logo left-aligned, prominent NVIDIA wordmark
159
- - Links: NVIDIA-EMEA 14px weight 700 uppercase, `#ffffff`
160
- - Hover: color shift, no underline change
161
- - Mega-menu dropdowns for product categories
162
- - Sticky on scroll with backdrop
163
-
164
- ### Image Treatment
165
- - Product/GPU renders as hero images, often full-width
166
- - Screenshot images with subtle shadow for depth
167
- - Green gradient overlays on dark hero sections
168
- - Circular avatar containers with 50% radius
169
-
170
- ### Distinctive Components
171
-
172
- **Product Cards**
173
- - Clean white or dark card with minimal radius (2px)
174
- - Green accent border or underline on title
175
- - Bold heading + lighter description pattern
176
- - CTA with green border at bottom
177
-
178
- **Tech Spec Tables**
179
- - Industrial grid layouts
180
- - Alternating row backgrounds (subtle gray shift)
181
- - Bold labels, regular values
182
- - Green highlights for key metrics
183
-
184
- **Cookie/Consent Banner**
185
- - Fixed bottom positioning
186
- - Rounded buttons (2px radius)
187
- - Gray border treatments
188
-
189
- ## 5. Layout Principles
190
-
191
- ### Spacing System
192
- - Base unit: 8px
193
- - Scale: 1px, 2px, 3px, 4px, 5px, 6px, 7px, 8px, 9px, 10px, 11px, 12px, 13px, 15px
194
- - Primary padding values: 8px, 11px, 13px, 16px, 24px, 32px
195
- - Section spacing: 48-80px vertical padding
196
-
197
- ### Grid & Container
198
- - Max content width: approximately 1200px (contained)
199
- - Full-width hero sections with contained text
200
- - Feature sections: 2-3 column grids for product cards
201
- - Single-column for article/blog content
202
- - Sidebar layouts for documentation
203
-
204
- ### Whitespace Philosophy
205
- - **Purposeful density**: NVIDIA uses tighter spacing than typical SaaS sites, reflecting the density of technical content. White space exists to separate concepts, not to create luxury emptiness.
206
- - **Section rhythm**: Dark sections alternate with white sections, using background color (not just spacing) to separate content blocks.
207
- - **Card density**: Product cards sit close together with 16-20px gaps, creating a catalog feel rather than a gallery feel.
208
-
209
- ### Border Radius Scale
210
- - Micro (1px): Inline spans, tiny elements
211
- - Standard (2px): Buttons, cards, containers, inputs -- the default for nearly everything
212
- - Circle (50%): Avatar images, circular tab indicators
213
-
214
- ## 6. Depth & Elevation
215
-
216
- | Level | Treatment | Use |
217
- |-------|-----------|-----|
218
- | Flat (Level 0) | No shadow | Page backgrounds, inline text |
219
- | Subtle (Level 1) | `rgba(0,0,0,0.3) 0px 0px 5px 0px` | Standard cards, modals |
220
- | Border (Level 1b) | `1px solid #5e5e5e` | Content dividers, section borders |
221
- | Green accent (Level 2) | `2px solid #76b900` | Active elements, CTAs, selected items |
222
- | Focus (Accessibility) | `2px solid #000000` outline | Keyboard focus ring |
223
-
224
- **Shadow Philosophy**: NVIDIA's depth system is minimal and utilitarian. There is essentially one shadow value -- a 5px ambient blur at 30% opacity -- used sparingly for cards and modals. The primary depth signal is not shadow but _color contrast_: black backgrounds next to white sections, green borders on black surfaces. This creates hardware-like visual layering where depth comes from material difference, not simulated light.
225
-
226
- ### Decorative Depth
227
- - Green gradient washes behind hero content
228
- - Dark-to-darker gradients (black to near-black) for section transitions
229
- - No glassmorphism or blur effects -- clarity over atmosphere
230
-
231
- ## 7. Responsive Behavior
232
-
233
- ### Breakpoints
234
- | Name | Width | Key Changes |
235
- |------|-------|-------------|
236
- | Mobile Small | <375px | Compact single column, reduced padding |
237
- | Mobile | 375-425px | Standard mobile layout |
238
- | Mobile Large | 425-600px | Wider mobile, some 2-col hints |
239
- | Tablet Small | 600-768px | 2-column grids begin |
240
- | Tablet | 768-1024px | Full card grids, expanded nav |
241
- | Desktop | 1024-1350px | Standard desktop layout |
242
- | Large Desktop | >1350px | Maximum content width, generous margins |
243
-
244
- ### Touch Targets
245
- - Buttons use 11px 13px padding for comfortable tap targets
246
- - Navigation links at 14px uppercase with adequate spacing
247
- - Green-bordered buttons provide high-contrast touch targets on dark backgrounds
248
- - Mobile: hamburger menu collapse with full-screen overlay
249
-
250
- ### Collapsing Strategy
251
- - Hero: 36px heading scales down proportionally
252
- - Navigation: full horizontal nav collapses to hamburger menu at ~1024px
253
- - Product cards: 3-column to 2-column to single column stacked
254
- - Footer: multi-column grid collapses to single stacked column
255
- - Section spacing: 64-80px reduces to 32-48px on mobile
256
- - Images: maintain aspect ratio, scale to container width
257
-
258
- ### Image Behavior
259
- - GPU/product renders maintain high resolution at all sizes
260
- - Hero images scale proportionally with viewport
261
- - Card images use consistent aspect ratios
262
- - Full-bleed dark sections maintain edge-to-edge treatment
263
-
264
- ## 8. Responsive Behavior (Extended)
265
-
266
- ### Typography Scaling
267
- - Display 36px scales to ~24px on mobile
268
- - Section headings 24px scale to ~20px on mobile
269
- - Body text maintains 15-16px across all breakpoints
270
- - Button text maintains 16px for consistent tap targets
271
-
272
- ### Dark/Light Section Strategy
273
- - Dark sections (black bg, white text) alternate with light sections (white bg, black text)
274
- - The green accent remains consistent across both surface types
275
- - On dark: links are white, underlines are green
276
- - On light: links are black, underlines are green
277
- - This alternation creates natural scroll rhythm and content grouping
278
-
279
- ## 9. Agent Prompt Guide
280
-
281
- ### Quick Color Reference
282
- - Primary accent: NVIDIA Green (`#76b900`)
283
- - Background dark: True Black (`#000000`)
284
- - Background light: Pure White (`#ffffff`)
285
- - Heading text (dark bg): White (`#ffffff`)
286
- - Heading text (light bg): Black (`#000000`)
287
- - Body text (light bg): Black (`#000000`) or Near Black (`#1a1a1a`)
288
- - Body text (dark bg): White (`#ffffff`) or Gray 300 (`#a7a7a7`)
289
- - Link hover: Blue (`#3860be`)
290
- - Border accent: `2px solid #76b900`
291
- - Button hover: Teal (`#1eaedb`)
292
-
293
- ### Example Component Prompts
294
- - "Create a hero section on black background. Headline at 36px NVIDIA-EMEA weight 700, line-height 1.25, color #ffffff. Subtitle at 18px weight 400, line-height 1.67, color #a7a7a7. CTA button with transparent background, 2px solid #76b900 border, 2px radius, 11px 13px padding, text #ffffff. Hover: background #1eaedb, text white."
295
- - "Design a product card: white background, 2px border-radius, box-shadow rgba(0,0,0,0.3) 0px 0px 5px. Title at 20px NVIDIA-EMEA weight 700, line-height 1.25, color #000000. Body at 15px weight 400, line-height 1.67, color #757575. Green underline accent on title: border-bottom 2px solid #76b900."
296
- - "Build a navigation bar: #000000 background, sticky top. NVIDIA logo left-aligned. Links at 14px NVIDIA-EMEA weight 700 uppercase, color #ffffff. Hover: color #3860be. Green-bordered CTA button right-aligned."
297
- - "Create a dark feature section: #000000 background. Section label at 14px weight 700 uppercase, color #76b900. Heading at 24px weight 700, color #ffffff. Description at 16px weight 400, color #a7a7a7. Three product cards in a row with 20px gap."
298
- - "Design a footer: #000000 background. Multi-column layout with link groups. Links at 14px weight 400, color #a7a7a7. Hover: color #76b900. Bottom bar with legal text at 12px, color #757575."
299
-
300
- ### Iteration Guide
301
- 1. Always use `#76b900` as accent, never as a background fill -- it's a signal color for borders, underlines, and highlights
302
- 2. Buttons are transparent with green borders by default -- filled backgrounds appear only on hover/active states
303
- 3. Weight 700 is the dominant voice for all interactive and heading elements; 400 is only for body paragraphs
304
- 4. Border radius is 2px for everything -- this sharp, minimal rounding is core to the industrial aesthetic
305
- 5. Dark sections use white text; light sections use black text -- green accent works identically on both
306
- 6. Link hover is always `#3860be` (blue) regardless of the link's default color
307
- 7. Line-height 1.25 for headings, 1.50-1.67 for body text -- maintain this contrast for visual hierarchy
308
- 8. Navigation uses uppercase 14px bold -- this hardware-label typography is part of the brand voice
@@ -1,309 +0,0 @@
1
- # Design System Inspiration of Pinkoi
2
-
3
- ## 1. Visual Theme & Atmosphere
4
-
5
- Pinkoi is Asia's cross-border design marketplace, and its system reflects exactly that — a busy, multi-cultural commerce surface that prioritizes density, legibility, and conversion over minimalist whitespace. The page opens on a near-white canvas (`#f7f7f8` for grouped sections, `#ffffff` for primary surfaces) with dark slate text (`#39393e`) and a confident **teal-navy primary** (`#10567b`) that anchors actions like Login and primary CTAs. This isn't a "designer-chic" pastel palette as the brand name might suggest — the actual product surface is engineered for high-density browsing across Taiwan, Japan, Hong Kong, mainland China, and Thailand.
6
-
7
- Typography is **bold-heavy**, with weight 700 dominating across headlines, badges, and key CTAs (37 occurrences in core CSS vs. 16 of weight 400). There is no custom brand typeface; instead, Pinkoi runs a sophisticated locale-aware system stack — `Helvetica Neue, Helvetica, Arial` followed by `PingFang TC, Heiti TC, Microsoft JhengHei` for Traditional Chinese, `PingFang SC, Heiti SC, Microsoft YaHei` for Simplified, `ヒラギノ角ゴ Pro W3, Meiryo` for Japanese, and `Thonburi, Noto Sans Thai` for Thai. Every character renders in the user's native font infrastructure. This is design-as-localization, not design-as-decoration.
8
-
9
- What gives Pinkoi its quietly distinctive feel is its **flat semantic button system** with seven named variants. Every button — `--primary`, `--secondary`, `--purchase`, `--danger`, `--green`, `--login`, plus `*-plain` ghost variants — uses the same recipe: `background: <color>; border: 1px solid <same-color>; color: #fff;`. The matched border-and-background gives buttons a crisp "solid block" appearance without any shadow, while the explicit `1px` border ensures visual integrity even on high-DPI displays where pure-fill buttons can look fuzzy. Coral (`#f16c5d`) is reserved for the `--purchase` variant alone — the highest-conversion moment on every product page.
10
-
11
- **Key Characteristics:**
12
- - Locale-aware system font stacks — no custom typeface, but explicit per-language fallbacks (TC/SC/JP/TH)
13
- - Weight 700 dominant for headlines, CTAs, and emphasis (verified in CSS: 37x vs. 16x weight 400)
14
- - Conservative `border-radius` — `4px` is the workhorse on buttons and cards, `2px` on badges, `50%` on avatars
15
- - **Flat button system** — every variant uses `border: 1px solid <bg-color>`, giving a crisp solid-block look without shadow
16
- - 7-tier semantic button variants (`primary`, `secondary`, `danger`, `purchase`, `green`, `login`, `*-plain`) with full hover/active state matrices
17
- - Cool teal-navy (`#10567b`) as primary action color — overrides the warm "Pinkoi" naming
18
- - Coral (`#f16c5d`) reserved exclusively for the `--purchase` variant — the highest-conversion CTA
19
- - Skeuomorphic colored shadows reserved for **legacy specialty controls** only (`.m-button-{pink,gray,green,unfav}` — favorite hearts, follow-shop buttons), never on the primary `.m-br-button` system
20
- - High-density grid: 6-column product layout (`16.66%` each) with `12px` total horizontal margin per card
21
- - 12-step neutral gray scale from `#f7f7f8` → `#202026` for surfaces, borders, and text hierarchy
22
-
23
- ## 2. Color Palette & Roles
24
-
25
- ### Primary
26
- - **Mid Teal** (`#10567b`): `--primary` and `--login` button **base** background. The default brand action color.
27
- - **Deep Teal** (`#064162`): `--primary` and `--login` **hover** state. Darker for visual press feedback.
28
- - **Darkest Navy** (`#003354`): `--primary` and `--login` **active/pressed** state. The deepest brand blue.
29
- - **Bright Teal** (`#2e90b7`): Link color, `--*-plain` visited state, secondary brand accent (used 22x in core CSS).
30
- - **Pure White** (`#ffffff`): Card surfaces, modal backgrounds, button text on filled buttons, `--secondary` button background.
31
-
32
- ### Surface & Background
33
- - **Surface Soft** (`#f7f7f8`): Default page background tint, `--secondary` button hover, grouped section background (20x in core).
34
- - **Surface Hover** (`#eeeeef`): `--secondary` button active state, slightly heavier muted surface.
35
- - **Border Light** (`#e5e5e6`): Default thin dividers between rows.
36
- - **Border Mid** (`#d3d3d5`): Standard component border (cards, inputs, button outlines for non-filled variants — used 32x in core).
37
-
38
- ### Neutral Scale (Text & Iconography)
39
- - **Text Primary** (`#39393e`): Default body and heading color (41 uses in CSS — the dominant text color).
40
- - **Text Secondary** (`#515156`): Slightly lighter for secondary headings and labels (10x).
41
- - **Text Muted** (`#66666a`): Captions, timestamps, descriptive text (26x).
42
- - **Text Subtle** (`#7c7c80`): Disabled-looking tertiary text.
43
- - **Text Faint** (`#929295`): Hints, placeholder, very low-emphasis labels.
44
- - **Text Disabled** (`#a8a8ab`): Disabled states, line-through original prices (`.oprice`), `--secondary` button border.
45
- - **Text Ghost** (`#bfbfc1`): Decorative or low-priority dividers, alternative line-through price color.
46
- - **Text Black** (`#202026`): Reserved for maximum-emphasis moments (overlays, modal titles).
47
-
48
- ### Purchase (CTA-exclusive)
49
- - **Coral Base** (`#f16c5d`): `--purchase` button **base** background. Used **only** on the most important conversion moment per page (Add to Cart, Buy Now).
50
- - **Coral Hover** (`#e56051`): `--purchase` hover state. Confirmed CSS-exclusive: appears in only 2 places — the `--purchase` button and one decorative bold text rule.
51
- - **Coral Active** (`#da5648`): `--purchase` pressed state.
52
-
53
- ### Error / Danger
54
- - **Error Red** (`#e63349`): The system's error/danger color (25 uses in core CSS). Used as: `--danger` button base, form validation error label/border/icon, required-field asterisk (`.s-required:after`), warning info text (`.g-info.g-warn b`), `--danger-plain` text hover. **Not** a promotional sale color — it's the validation/destructive red.
55
- - **Error Red Hover** (`#d72136`): `--danger` button hover.
56
- - **Error Red Active** (`#c41428`): `--danger` button pressed.
57
- - **Pink Visited** (`#f86173`): `--danger-plain` visited link state.
58
-
59
- ### Success
60
- - **Success Green Base** (`#2cac97`): `--green` button base background. Teal-leaning green, not pure forest.
61
- - **Success Green Hover** (`#289c8a`): `--green` hover and active state.
62
-
63
- ### Decorative / Legacy
64
- - **Brand Pink** (`#c83166`): Used inside the legacy skeuomorphic shadow recipe for pink-themed buttons (`.m-button-pink`). Also appears as accent in promotional decoration.
65
- - **Hot Pink** (`#ff6299`): `.m-button-pink:hover` background — legacy favorite/heart button.
66
- - **Lime Green** (`#7ec527` / `#65a40e` / `#4d9200`): `.m-button-green` legacy palette — applies to specialty controls only.
67
-
68
- ### Shadow Tints (Layered Shadow Components)
69
- - **Shadow Soft** (`rgba(32,32,38,.12)`): The default soft drop shadow base.
70
- - **Shadow Edge** (`rgba(32,32,38,.2)`): Used in `0 1px 1px 0 rgba(32,32,38,.2)` for subtle row dividers and `.card-discount-badge`.
71
- - **Shadow Modal** (`rgba(32,32,38,.4)`): Stronger overlay shadow for modals and popovers.
72
- - **Shadow Tooltip** (`hsla(240,2%,41%,.8)`): Tooltip outer glow.
73
-
74
- ## 3. Typography Rules
75
-
76
- ### Font Stack (Locale-Aware)
77
- Pinkoi runs **per-language font stacks**. Always lead with `Helvetica Neue, Helvetica, Arial`, then append the user's locale stack:
78
-
79
- | Locale | Font Stack |
80
- |---|---|
81
- | Default (en) | `Helvetica Neue, Helvetica, Arial, Verdana, sans-serif` |
82
- | Traditional Chinese | `Helvetica Neue, Helvetica, Arial, PingFang TC, Heiti TC, Microsoft JhengHei, sans-serif` |
83
- | Simplified Chinese | `Helvetica Neue, Helvetica, Arial, PingFang SC, Heiti SC, Microsoft YaHei, sans-serif` |
84
- | Japanese | `Helvetica Neue, Helvetica, Arial, ヒラギノ角ゴ Pro W3, Hiragino Kaku Gothic Pro, メイリオ, Meiryo, PingFang TC, sans-serif` |
85
- | Thai | `Helvetica Neue, Helvetica, Arial, Thonburi, Noto Sans Thai, Droid Sans Thai, sans-serif` |
86
-
87
- ### Weights
88
- - **700**: Headings (H1–H4 verified weight 700 on `/browse`), prices, discount badge children, emphasis spans. Bold-heavy is the brand's typographic posture **for hierarchy and emphasis**.
89
- - **500**: Secondary emphasis — subheads, semi-bold UI labels.
90
- - **400**: Body text, long-form descriptions, **button text** (verified: `.m-br-button .text` renders at weight 400 on product pages — buttons rely on color and border for prominence, not weight), card badges (`s-card-badge`).
91
- - **600**: Reserved for narrow contexts; rarely used (only 2 occurrences in core CSS).
92
-
93
- > **Note on buttons**: Despite the bold-heavy headline posture, button labels themselves are weight 400. Visual prominence comes from the colored bg + matched border (e.g., coral `#f16c5d` for purchase) — not from text weight.
94
-
95
- ### Size Scale (px)
96
- | Use | Size |
97
- |---|---|
98
- | Captions, timestamps | `9–11px` |
99
- | Badge text, small labels, breadcrumbs | `12px` |
100
- | Inline metadata, secondary text | `13px` |
101
- | **Body, button text default, breadcrumbs `g-breadcrumb`** | `14px` |
102
- | Subheadings, stronger labels | `15–16px` |
103
- | Card titles, mid headings | `18–20px` |
104
- | Section headings | `21–22px` |
105
-
106
- The scale stays compact — there is no extreme-large display type. Hero headlines on landing surfaces use 22px or scale up via percentage (`100%`, `2.2em`) rather than fixed large pixels.
107
-
108
- ### Hierarchy is Weight-Driven, Not Size-Driven (verified via Playwright on `/browse`)
109
- Pinkoi's heading hierarchy is unusual: most `<h1>`, `<h2>`, `<h3>` render at **14–16px** — close to body size. The visual hierarchy comes from **weight 700** combined with **color shifts** (e.g., `#39393e` for primary headings, `#66666a` for secondary, `#2cac97` for special emphasis like "Flagship Shops"). This is the opposite of the SaaS convention of using 32–48px headlines. It reflects Pinkoi's commerce-density priority: every pixel of vertical space saved means more browsable inventory above the fold.
110
-
111
- ### Special Conventions
112
- - **No letter-spacing customization** in the modern core CSS — system defaults are trusted (legacy `.g-breadcrumb` uses `letter-spacing: 1px`; `.g-breadcrumb-v2` removes it).
113
- - **`font-style: italic`** is reserved for testimonials and quoted content.
114
- - **`text-decoration: none`** on `:hover` for `.m-br-button` — buttons never look like links.
115
- - **`text-decoration: line-through`** for `.oprice` (original price before discount), in muted gray (`#a8a8ab` or `#bfbfc1`).
116
- - **Numerals are not tabularized** by default — Pinkoi's product prices flow with prose.
117
-
118
- ## 4. Component Stylings
119
-
120
- ### Buttons (`.m-br-button`)
121
- Base: `border-radius: 4px`, `transition: border .1s, color .1s, background .1s`, `outline: 0`, `cursor: pointer`, `text-align: center`, default text size `14px`. Icon `margin-right: 6px`. **Every filled variant uses `border: 1px solid <same-as-bg>` for a crisp solid block.**
122
-
123
- Verified state matrices from production CSS:
124
-
125
- | Variant | Base | Hover | Active | Use Case |
126
- |---|---|---|---|---|
127
- | `--primary` | bg `#10567b`, border `#10567b`, text `#fff` | bg/border `#064162` | bg/border `#003354` | Primary CTAs |
128
- | `--login` | bg `#10567b`, border `#10567b`, text `#fff` | bg/border `#064162` | (matches primary) | Auth flows |
129
- | `--secondary` | bg `#fff`, border `1px solid #a8a8ab`, text `#39393e` | bg `#f7f7f8` | bg `#eeeeef` | Cancel, dismiss, neutral CTAs |
130
- | `--purchase` | bg `#f16c5d`, border `#f16c5d`, text `#fff` | bg/border `#e56051` | bg/border `#da5648` | Add to Cart, Buy Now (coral, exclusive) |
131
- | `--danger` | bg `#e63349`, border `#e63349`, text `#fff` | bg/border `#d72136` | bg/border `#c41428` | Destructive actions |
132
- | `--green` | bg `#2cac97`, border `#2cac97`, text `#fff` | bg/border `#289c8a` | bg/border `#289c8a` | Confirmations, follow |
133
- | `--*-plain` | transparent, text-only color | text color hover only | bg `#f7f7f8` | Ghost variants |
134
-
135
- Buttons sit horizontally with `+ .m-br-button { margin-left: 10px }` for chained CTAs.
136
-
137
- ### Cards (`.m-card-product`)
138
- - `box-sizing: border-box`, `display: inline-block`, `vertical-align: top`
139
- - `max-width: 190px`, width `calc(16.66667% - 12px)` → 6-column responsive grid
140
- - Horizontal margins: `0 6px` per card → `12px` total gap
141
- - Container `.m-card-container { margin: 0 -6px }` to negate edge gaps
142
- - Cards rely on the product image as the primary visual; chrome around them is minimal
143
-
144
- ### Card Badges (`.s-card-badge`)
145
- - `border-radius: 2px` (smaller than buttons — sits inside a busy product card)
146
- - `font-size: 12px`, `font-weight: 400`
147
- - `padding: 1px 4px` (very tight)
148
- - `display: inline`, `position: relative`, `top: -1px` for optical alignment
149
-
150
- ### Discount Badges (`.card-discount-badge`)
151
- - `border-radius: 2px 0 2px 0` — **asymmetric** corners create a folded-ribbon effect (top-right and bottom-left squared)
152
- - `box-shadow: 1px 1px 2px 0 rgba(32,32,38,.2)` — subtle lift to separate from product image
153
- - `position: absolute; top: 0; left: 0` — anchored to product image corner
154
- - Numeric content uses `font-weight: 700` (`.g-item-badge-discount span`)
155
- - Companion `.oprice` shows the original price line-through in muted gray (`#a8a8ab` / `#bfbfc1`)
156
-
157
- ### Navigation
158
- - Sticky horizontal header on desktop with category dropdowns
159
- - Default text color `#39393e`, link/active state `#2e90b7`
160
- - Logo references `pinkoi_logo_2019.svg` — circular arcs + acute angles per brand identity refresh
161
- - Navigation links remain weight 400 (lighter than headlines) for scannability
162
-
163
- ### Inputs
164
- - Border-color follows the neutral scale (`#d3d3d5` default, `#bfbfc1` on focus, `#e63349` on error)
165
- - Error state uses `box-shadow: inset 0 0 0 1px #e63349` for emphasized error borders
166
- - Border-radius `4px` to match buttons
167
- - Padding patterns from CSS: common `5px 10px`, `8px 12px`, `9px 14px` depending on size
168
- - Required-field asterisk: `.s-required:after { color: #e63349; content: "*"; margin-left: 4px }`
169
- - No floating-label or pill-shaped inputs — bordered rectangle is the convention
170
-
171
- ### Tables
172
- - Used sparingly; commerce content is card-grid first
173
- - When used, row dividers via `0 1px 1px 0 rgba(32,32,38,.2)` shadow or `1px solid #e5e5e6` border
174
-
175
- ## 5. Layout Principles
176
-
177
- ### Spacing Scale
178
- Pinkoi works in a **5–10px micro-scale** for component padding and a coarser **24px+ rhythm** for section spacing:
179
-
180
- | Common Padding Values | Use |
181
- |---|---|
182
- | `0` (15 uses) | Reset, tight columns |
183
- | `2px`, `3px` | Badge insets, icon padding |
184
- | `5px 10px` | Default tight button/cell |
185
- | `4px 10px`, `6px 10px`, `8px 12px`, `9px 14px` | Button size variants S → M → L |
186
- | `14px 0`, `64px 0` | Vertical section rhythm |
187
-
188
- ### Grid
189
- - 6-column product grid is the dominant pattern (`16.66667%` per card)
190
- - Container max-widths via media queries — content centers on wider viewports
191
- - Negative margins on container (`margin: 0 -6px`) to pull edge cards flush
192
-
193
- ### Density
194
- Pinkoi is a **high-density** system. Whitespace is rationed; products, prices, badges, and CTAs are stacked tightly to maximize browsable inventory. Don't space components like a SaaS dashboard.
195
-
196
- ## 6. Depth & Elevation
197
-
198
- Pinkoi has a **two-track shadow philosophy**: the modern button/card system stays mostly flat, while a small set of legacy specialty controls retain a skeuomorphic colored-underglow recipe.
199
-
200
- ### Modern Surface Shadows (the default)
201
- - **Card discount badge** — `1px 1px 2px 0 rgba(32,32,38,.2)` (subtle lift over product image)
202
- - **Outline focus** — `box-shadow: 0 0 0 1px #d3d3d5` (border-as-shadow, often on focused inputs)
203
- - **Inline error** — `box-shadow: inset 0 0 0 1px #e63349` (red inset for invalid form fields)
204
- - **Single-pixel solid bottom** — `0 1px #515156` ("button depth"), `0 1px #d3d3d5` (subtle bottom edge)
205
- - **Tooltip glow** — `0 0 2px hsla(240,2%,41%,.8)`
206
- - **Modal/dialog** — `0 0 4px rgba(32,32,38,.4)`
207
- - **Row divider** — `0 1px 1px 0 rgba(32,32,38,.2)`
208
-
209
- The primary `.m-br-button` system has **no shadow at all** — its visual weight comes from the matched bg+border combo, not elevation.
210
-
211
- ### Legacy Skeuomorphic Shadows (specialty controls only)
212
- A small set of older button classes — `.m-button-pink`, `.m-button-gray`, `.m-button-green`, `.m-button-unfav` — apply a layered colored shadow on `:hover`. These are typically used for favorite/follow-shop heart buttons, not primary CTAs.
213
-
214
- Pattern: `0 .2em .2em -.1em <BRAND_MID>, 0 .3em <BRAND_DARK>, 0 .5em .5em -.1em rgba(32,32,38,.12)`
215
-
216
- | Class | Hover bg | Mid shadow | Dark shadow |
217
- |---|---|---|---|
218
- | `.m-button-pink` | `#ff6299` | `#c83166` | `#a32252` |
219
- | `.m-button-green` | `#7ec527` | `#65a40e` | `#4d9200` |
220
- | `.m-button-gray` | `#8e9a9f` | `#66666a` | `#535c5f` |
221
- | `.m-button-unfav` | (transparent) | `#d3d3d5` | `#d3d3d5` |
222
-
223
- Treat this as a **legacy accent**, not a system-wide pattern. Don't generalize it to the main button system.
224
-
225
- ### Z-Index Hierarchy
226
- - Sticky header sits above content
227
- - Dropdown menus above sticky header
228
- - Modal overlay above all chrome
229
- - Toast notifications above modals
230
-
231
- ## 7. Do's and Don'ts
232
-
233
- - **DO** use weight 700 for headlines, CTAs, prices, and badges. Bold is the brand's voice.
234
- - **DON'T** apply weight 300 — Pinkoi never goes "airy thin." Headlines are confident and dense.
235
- - **DO** reserve coral (`#f16c5d` / `#e56051` on hover) for the single most important purchase moment per page.
236
- - **DON'T** use coral for navigation, generic CTAs, or info accents — it dilutes the conversion signal.
237
- - **DO** use the locale-aware font stack with the user's language fallback as the second priority.
238
- - **DON'T** load custom web fonts — system fonts respect each market's reading habits and reduce LCP across slow APAC connections.
239
- - **DO** keep the modern button system flat — `border: 1px solid <same-as-bg>` and no shadow. Visual weight comes from color, not elevation.
240
- - **DON'T** apply skeuomorphic shadows to primary CTAs — that recipe is reserved for legacy specialty controls (favorite, follow-shop buttons).
241
- - **DO** keep border-radius in the `2px–8px` range (badges 2px, buttons/cards 4px, occasional 6–8px on featured surfaces).
242
- - **DON'T** use pill-shaped or fully rounded buttons — they break the high-density commerce aesthetic.
243
- - **DO** pack product cards tightly with `12px` total gutters and 6-column grids on desktop.
244
- - **DON'T** overspace on landing pages — Pinkoi users browse a lot of inventory at once.
245
- - **DO** treat `#e63349` (and its hover/active siblings) as the **error/destructive red** — use it for form validation, danger buttons, required-field asterisks, and warnings.
246
- - **DON'T** confuse the error red with a sale-price color — discount badges use the asymmetric-corner ribbon style, not red text.
247
-
248
- ## 8. Responsive Behavior
249
-
250
- ### Breakpoints
251
- | Name | Range | Key Changes |
252
- |---|---|---|
253
- | Mobile | `<767px` | 2-column product grid, stacked nav, full-width CTAs |
254
- | Mobile (alt) | `<768px` | Some surfaces use 768px as the cutoff |
255
- | Tablet | `768px–1037px` | 3–4 column product grid, condensed nav |
256
- | Desktop | `1037px–1200px` | 5–6 column product grid, full nav |
257
- | Wide | `>1200px` | 6-column grid with side margins |
258
- | Extra Wide | `>1248px` | Centered max-width container |
259
-
260
- ### Touch Targets
261
- - Buttons use `5px 10px` to `9px 14px` padding scale — adequate but compact
262
- - Card tap targets cover the entire `.m-card-product` area
263
- - Mobile nav typically expands to a full-screen drawer
264
-
265
- ### Collapsing Strategy
266
- - 6-column product grid → 4 → 3 → 2 columns on shrinking width
267
- - Horizontal sticky nav → hamburger drawer below 768px
268
- - Multi-column footer → stacked sections below 768px
269
- - Filter sidebar → bottom sheet on mobile
270
- - Inline price + action → stacked below thumbnail on mobile
271
-
272
- ### Image Behavior
273
- - Product images dominate cards — minimum 190px square
274
- - Hover states may swap to alternate angle on desktop only (no hover on mobile)
275
- - WebP/lazy-load standard practice (CDN: `cdn02.pinkoi.com`)
276
- - Card aspect ratio preserved across breakpoints
277
-
278
- ## 9. Agent Prompt Guide
279
-
280
- ### Quick Color Reference
281
- - Primary CTA bg: Mid Teal (`#10567b`); hover `#064162`; active `#003354`
282
- - Purchase CTA bg: Coral (`#f16c5d`); hover `#e56051`; active `#da5648` — **buy actions only**
283
- - Danger/Error: Red (`#e63349`); hover `#d72136`; active `#c41428` — destructive AND form validation
284
- - Success: Teal Green (`#2cac97`); hover `#289c8a`
285
- - Secondary button: white bg, `1px solid #a8a8ab` border, `#39393e` text
286
- - Default text: Slate Dark (`#39393e`)
287
- - Muted text: Slate Mid (`#66666a`)
288
- - Link / mid-brand: Bright Teal (`#2e90b7`)
289
- - Border default: Light Gray (`#d3d3d5`)
290
- - Surface tint: Cool White (`#f7f7f8`)
291
-
292
- ### Example Component Prompts
293
- - "Create a Pinkoi-style product card: white background, 1px solid #d3d3d5 border, 4px radius, max-width 190px. Image fills the top 75% of the card. Below: title in 14px weight 700 #39393e (2-line clamp), price in 16px weight 700 #39393e, optional discount badge with `border-radius: 2px 0 2px 0` (asymmetric ribbon corners), `1px 1px 2px 0 rgba(32,32,38,.2)` shadow, absolute top-left."
294
- - "Build a Pinkoi primary button: 4px radius, 14px text weight 400, white text, #10567b background, `1px solid #10567b` border, 8px 12px padding. Hover: bg + border to #064162. Active: bg + border to #003354. No shadow — the matched bg+border combo gives the solid-block feel. Transition: `border .1s, color .1s, background .1s`. Note: button labels are weight 400, not 700 — visual weight comes from color + border, not text weight."
295
- - "Design a 'Add to Cart' purchase button: 4px radius, 14px weight 400 white text, #f16c5d background, `1px solid #f16c5d` border, 9px 14px padding. Hover: #e56051. Active: #da5648. This button must be the most visually weighted element on the product page — coral is finite and reserved for this moment only. Verified live: `.m-br-button--purchase` on product detail page exactly matches these values."
296
- - "Create a Pinkoi navigation header: white sticky bar, 14px weight 400 #39393e nav links with #2e90b7 hover, dropdown menus with 4px radius and `0 0 4px rgba(32,32,38,.4)` shadow. Logo (`pinkoi_logo_2019.svg`) on the left, search input center (border #d3d3d5, 4px radius), Login button (`--login` variant: #10567b bg + matched border + white text) on the right."
297
- - "Build a form input with error state: 1px solid #d3d3d5 border default, 4px radius, 8px 12px padding. On error, set border to #e63349 and add `box-shadow: inset 0 0 0 1px #e63349` for a doubled-up red border effect. Helper text below in #e63349 weight 400 12px. Required-field labels get an asterisk via `.s-required:after { color: #e63349; content: '*'; margin-left: 4px }`."
298
-
299
- ### Iteration Guide
300
- 1. **Use weight 700 for headings, prices, and emphasis spans** — but **button labels stay at weight 400**. Visual weight on buttons comes from color + matched border, not text weight.
301
- 2. **Use the locale-aware font stack** — never hardcode a single font family. Lead with `Helvetica Neue, Helvetica, Arial`, append the user's language fallback.
302
- 3. **`border-radius: 4px`** is the workhorse. `2px` for badges. Discount badges use asymmetric `2px 0 2px 0`. Never go above `10px` except on rare hero overlays.
303
- 4. **Filled buttons get `border: 1px solid <same-as-bg>`** — this matched border gives the crisp solid look. Never add a shadow to the modern button system.
304
- 5. **Reserve coral (`#f16c5d`) exclusively for the `--purchase` variant**. Using it elsewhere weakens conversion.
305
- 6. **Treat `#e63349` as the error red across ALL contexts** — `--danger` button, form validation borders, required-field asterisks, warning text. It's not a sale-price color.
306
- 7. **High-density spacing** — micro-padding (`5px 10px` to `9px 14px`) on controls, generous (`24px+`, `64px 0`) only between full sections.
307
- 8. **6-column product grid** is the desktop default. Cards are `calc(16.66667% - 12px)` wide with `0 6px` horizontal margins.
308
- 9. **Use `#39393e` for body text**, never pure black. The slightly warm dark-gray reads better against the soft `#f7f7f8` surface tint.
309
- 10. **Skeuomorphic colored shadows are LEGACY** — only apply them to favorite/follow-shop accent buttons (`.m-button-{pink,gray,green,unfav}`), never to the main `.m-br-button` system.