oh-my-design-cli 1.0.1 → 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.
- package/README.md +15 -18
- package/data/reference-fingerprints.json +337 -3
- package/data/reference-tags.md +15 -1
- package/dist/bin/oh-my-design.js +1 -1
- package/dist/{install-skills-GQPTQF5S.js → install-skills-MVXVXYAY.js} +4 -4
- package/dist/{install-skills-GQPTQF5S.js.map → install-skills-MVXVXYAY.js.map} +1 -1
- package/package.json +2 -2
- package/skills/omd-init/SKILL.md +1 -1
- package/web/AGENTS.md +5 -0
- package/{references → web/references}/airbnb/DESIGN.md +158 -19
- package/web/references/airtable/DESIGN.md +241 -0
- package/{references → web/references}/apple/DESIGN.md +131 -76
- package/web/references/baemin/DESIGN.md +470 -0
- package/{references → web/references}/bmw/DESIGN.md +138 -9
- package/{references → web/references}/cal/DESIGN.md +173 -17
- package/{references → web/references}/claude/DESIGN.md +11 -1
- package/{references → web/references}/clay/DESIGN.md +75 -0
- package/{references → web/references}/clickhouse/DESIGN.md +74 -0
- package/{references → web/references}/cohere/DESIGN.md +75 -0
- package/web/references/coinbase/DESIGN.md +205 -0
- package/{references → web/references}/composio/DESIGN.md +74 -0
- package/web/references/coupang/DESIGN.md +487 -0
- package/{references → web/references}/cursor/DESIGN.md +74 -0
- package/web/references/dcard/DESIGN.md +567 -0
- package/{references → web/references}/elevenlabs/DESIGN.md +91 -0
- package/{references → web/references}/expo/DESIGN.md +72 -0
- package/{references → web/references}/ferrari/DESIGN.md +72 -0
- package/{references → web/references}/figma/DESIGN.md +124 -48
- package/{references → web/references}/framer/DESIGN.md +143 -16
- package/web/references/freee/DESIGN.md +558 -0
- package/{references → web/references}/hashicorp/DESIGN.md +72 -0
- package/{references → web/references}/ibm/DESIGN.md +68 -0
- package/{references → web/references}/intercom/DESIGN.md +73 -0
- package/web/references/kakao/DESIGN.md +490 -0
- package/web/references/kakaobank/DESIGN.md +533 -0
- package/web/references/karrot/DESIGN.md +431 -0
- package/web/references/kraken/DESIGN.md +219 -0
- package/web/references/krds/DESIGN.md +982 -0
- package/web/references/kurly/DESIGN.md +574 -0
- package/{references → web/references}/lamborghini/DESIGN.md +74 -0
- package/{references → web/references}/line/DESIGN.md +84 -43
- package/{references → web/references}/linear.app/DESIGN.md +8 -1
- package/{references → web/references}/lovable/DESIGN.md +73 -0
- package/web/references/mercari/DESIGN.md +464 -0
- package/{references → web/references}/minimax/DESIGN.md +72 -0
- package/{references → web/references}/mintlify/DESIGN.md +72 -0
- package/web/references/miro/DESIGN.md +252 -0
- package/{references → web/references}/mistral.ai/DESIGN.md +72 -0
- package/{references → web/references}/mongodb/DESIGN.md +72 -0
- package/web/references/musinsa/DESIGN.md +536 -0
- package/web/references/naver/DESIGN.md +518 -0
- package/{references → web/references}/notion/DESIGN.md +9 -1
- package/web/references/nvidia/DESIGN.md +491 -0
- package/web/references/ohouse/DESIGN.md +570 -0
- package/{references → web/references}/ollama/DESIGN.md +72 -0
- package/{references → web/references}/opencode.ai/DESIGN.md +73 -0
- package/web/references/pinkoi/DESIGN.md +575 -0
- package/{references → web/references}/pinterest/DESIGN.md +73 -0
- package/{references → web/references}/posthog/DESIGN.md +172 -18
- package/web/references/qanda/DESIGN.md +459 -0
- package/{references → web/references}/raycast/DESIGN.md +169 -34
- package/{references → web/references}/renault/DESIGN.md +72 -0
- package/{references → web/references}/replicate/DESIGN.md +73 -0
- package/{references → web/references}/resend/DESIGN.md +73 -0
- package/{references → web/references}/revolut/DESIGN.md +74 -0
- package/web/references/ridi/DESIGN.md +517 -0
- package/{references → web/references}/runwayml/DESIGN.md +152 -24
- package/{references → web/references}/sanity/DESIGN.md +72 -0
- package/{references → web/references}/sentry/DESIGN.md +73 -0
- package/web/references/spacex/DESIGN.md +379 -0
- package/web/references/spotify/DESIGN.md +426 -0
- package/{references → web/references}/stripe/DESIGN.md +44 -1
- package/{references → web/references}/supabase/DESIGN.md +73 -0
- package/{references → web/references}/superhuman/DESIGN.md +159 -17
- package/{references → web/references}/tesla/DESIGN.md +170 -0
- package/{references → web/references}/together.ai/DESIGN.md +73 -0
- package/{references → web/references}/toss/DESIGN.md +304 -50
- package/{references → web/references}/uber/DESIGN.md +73 -0
- package/{references → web/references}/vercel/DESIGN.md +9 -1
- package/{references → web/references}/voltagent/DESIGN.md +73 -0
- package/{references → web/references}/warp/DESIGN.md +142 -15
- package/web/references/webflow/DESIGN.md +253 -0
- package/{references → web/references}/wise/DESIGN.md +84 -0
- package/{references → web/references}/x.ai/DESIGN.md +85 -0
- package/web/references/yanolja/DESIGN.md +448 -0
- package/web/references/yeogiotte/DESIGN.md +424 -0
- package/{references → web/references}/zapier/DESIGN.md +85 -0
- package/references/airtable/DESIGN.md +0 -107
- package/references/baemin/DESIGN.md +0 -260
- package/references/coinbase/DESIGN.md +0 -129
- package/references/dcard/DESIGN.md +0 -302
- package/references/freee/DESIGN.md +0 -308
- package/references/kakao/DESIGN.md +0 -261
- package/references/karrot/DESIGN.md +0 -252
- package/references/kraken/DESIGN.md +0 -146
- package/references/mercari/DESIGN.md +0 -294
- package/references/miro/DESIGN.md +0 -108
- package/references/nvidia/DESIGN.md +0 -308
- package/references/pinkoi/DESIGN.md +0 -309
- package/references/spacex/DESIGN.md +0 -205
- package/references/spotify/DESIGN.md +0 -246
- package/references/webflow/DESIGN.md +0 -109
|
@@ -1,294 +0,0 @@
|
|
|
1
|
-
# Design System Inspiration of Mercari
|
|
2
|
-
|
|
3
|
-
## 1. Visual Theme & Atmosphere
|
|
4
|
-
|
|
5
|
-
Mercari is Japan's largest C2C marketplace (50M+ downloads, 350K daily listings) and its design system is a textbook example of **mature semantic token architecture**. The production site at `jp.mercari.com` exposes **681 CSS custom properties on `:root`**, organized into the well-named `--alias-color-*` namespace: `--alias-color-background-{role}-{state}`, `--alias-color-text-{role}-{state}`, `--alias-color-border-{role}-{state}`, `--alias-color-icon-{role}-{state}`, `--alias-color-overlay-*`. This isn't internal documentation — it's the actual design system surfaced at runtime, ready to read directly from any production page.
|
|
6
|
-
|
|
7
|
-
The brand color is the famous **Mercari Red** (`#ff333f`) — vivid, attention-grabbing, used as the `attention` semantic role for badges, error states, danger actions, and the iconic price-tag aesthetic. Around it sits a balanced palette: accent blue (`#0095ee`), success green (`#0aa466`), decorative yellow (`#ffb818`). Text hierarchy uses dark gray (`#333333` primary, `#666666` secondary) on a pure white surface (`#ffffff`), with a soft secondary background (`#f5f5f5`) for grouped sections.
|
|
8
|
-
|
|
9
|
-
Typography is **system-stack with Japanese-first fallbacks**: `Helvetica Neue, Arial, Hiragino Kaku Gothic ProN Custom, Hiragino Sans Custom, Meiryo Custom, sans-serif`. The "Custom" suffix on the Hiragino/Meiryo fonts indicates Mercari's deployment of optically-tuned variants for their production app — same font families, but adjusted spacing/hinting for marketplace UI. Buttons use **weight 700** for primary CTAs at a tight `4px` radius, while body text holds at weight 400.
|
|
10
|
-
|
|
11
|
-
**Key Characteristics:**
|
|
12
|
-
- **681 semantic CSS custom properties** exposed on `:root` — the public design system surface
|
|
13
|
-
- **Mercari Red** (`#ff333f`) as the `attention` semantic — used for badges, error/danger states, sale prices, the brand mark
|
|
14
|
-
- Japanese-first font stack: `Helvetica Neue → Arial → Hiragino Kaku Gothic ProN Custom → Hiragino Sans Custom → Meiryo Custom`
|
|
15
|
-
- Fixed `4px border-radius` on buttons and cards — sharp, commerce-functional
|
|
16
|
-
- Weight 700 for primary CTAs; weight 400 for body and secondary controls
|
|
17
|
-
- Three-tier color naming: `alias-color-{property}-{role}-{state}` (e.g., `--alias-color-background-attention-default`)
|
|
18
|
-
- 1440px max page width with `--grid-layout-gutter: 24px` and `--grid-layout-page-padding-horizontal: 36px`
|
|
19
|
-
- 4dp spacing micro-scale (`--bnfXaU: 6px`, `--exLgvR: 8px`, `--fwPfWM: 8px`, etc.) with named alias tokens
|
|
20
|
-
- High-density product grid with circular brand thumbnails (`border-radius: 50%`) for category navigation
|
|
21
|
-
- Multi-tier z-index system: dialog 1400, modal 1400, snackbar 1500, tooltip 1600
|
|
22
|
-
|
|
23
|
-
## 2. Color Palette & Roles
|
|
24
|
-
|
|
25
|
-
All values verified live from `:root` CSS custom properties on `jp.mercari.com`.
|
|
26
|
-
|
|
27
|
-
### Brand / Attention (the Mercari Red family)
|
|
28
|
-
- **Mercari Red** (`#ff333f`): `--alias-color-background-attention-default`, `--alias-color-text-attention-default`. The signature brand red. Used for danger actions, sale price emphasis, the brand mark.
|
|
29
|
-
- **Red Highlight** (`#ff6574`): `--alias-color-background-attention-highlight`, `--alias-color-border-attention-highlight`. Lighter variant for hover states.
|
|
30
|
-
- **Red Active** (`#e32b36`): `--alias-color-background-attention-active`, `--alias-color-border-attention-active`. Pressed state.
|
|
31
|
-
- **Red Thin** (`#fdf1f3`): `--alias-color-background-attentionThin-default`. Very light pink for subtle background emphasis (e.g., error message bg).
|
|
32
|
-
- **Red Thin Highlight** (`#ffdcdf`): `--alias-color-background-attentionThin-highlight`.
|
|
33
|
-
|
|
34
|
-
### Accent (Mercari Blue)
|
|
35
|
-
- **Accent Blue** (`#0095ee`): `--alias-color-background-accent-default`, `--alias-color-text-accent-default`, `--alias-color-icon-accent-default`. Links, info badges, accent CTAs.
|
|
36
|
-
- **Accent Blue Highlight** (`#63c5ff`): `--alias-color-background-accent-highlight`.
|
|
37
|
-
- **Accent Blue Active** (`#0073cc`): `--alias-color-background-accent-active`, `--alias-color-text-accent-active`.
|
|
38
|
-
- **Link Default** (`#0073cc`): `--alias-color-text-link-default`, `--alias-color-icon-link-default`.
|
|
39
|
-
- **Link Highlight** (`#30b2ff`): `--alias-color-text-link-highlight`.
|
|
40
|
-
- **Link Active** (`#0056ab`): `--alias-color-text-link-active`.
|
|
41
|
-
- **Accent Thin** (`#e8f8ff`): `--alias-color-background-accentThin-default`. Light blue notification bg.
|
|
42
|
-
|
|
43
|
-
### Success
|
|
44
|
-
- **Success Green** (`#0aa466`): `--alias-color-text-success-default`, `--alias-color-icon-success-default`, `--alias-color-border-success-default`.
|
|
45
|
-
- **Success Highlight** (`#0fbf67`): `--alias-color-text-success-highlight`, `--alias-color-icon-success-highlight`.
|
|
46
|
-
- **Success Active** (`#078962`): `--alias-color-text-success-active`, `--alias-color-icon-success-active`.
|
|
47
|
-
- **Success Thin** (`#e4ffec`): `--alias-color-background-success-default`.
|
|
48
|
-
- **Success Thin Highlight** (`#cdfbd2`): `--alias-color-background-success-highlight`.
|
|
49
|
-
|
|
50
|
-
### Decorative (Yellow)
|
|
51
|
-
- **Decorative Yellow** (`#ffb818`): `--alias-color-icon-decorativeYellow-default`. Reviews, ratings, premium markers.
|
|
52
|
-
- **Decorative Yellow Highlight** (`#ffdc74`): Lighter yellow for hover.
|
|
53
|
-
- **Decorative Yellow Active** (`#db9611`): Darker amber for pressed.
|
|
54
|
-
|
|
55
|
-
### Text (5-tier scale)
|
|
56
|
-
- **Primary** (`#333333`): `--alias-color-text-primary-default`. Default body text and headlines.
|
|
57
|
-
- **Primary Highlight** (`#999999`): `--alias-color-text-primary-highlight`.
|
|
58
|
-
- **Primary Active** (`#222222`): `--alias-color-text-primary-active`.
|
|
59
|
-
- **Secondary** (`#666666`): `--alias-color-text-secondary-default`. Captions, metadata.
|
|
60
|
-
- **Secondary Highlight** (`#999999`): `--alias-color-text-secondary-highlight`.
|
|
61
|
-
- **Secondary Active** (`#4c4c4c`): `--alias-color-text-secondary-active`.
|
|
62
|
-
- **Disabled** (`#cccccc`): `--alias-color-text-disabled-default`.
|
|
63
|
-
- **Placeholder** (`#999999`): `--alias-color-text-placeholder-default`.
|
|
64
|
-
- **Inverse** (`#ffffff`): `--alias-color-text-inverse-default`. White text on dark surfaces.
|
|
65
|
-
|
|
66
|
-
### Background / Surface (5-tier scale)
|
|
67
|
-
- **Primary** (`#ffffff`): `--alias-color-background-primary-default`. Default page bg.
|
|
68
|
-
- **Primary Active** (`#f5f5f5`): `--alias-color-background-primary-active`. Pressed/hover state for white-bg controls.
|
|
69
|
-
- **Primary Highlight** (`#f5f5f5`): `--alias-color-background-primary-highlight`.
|
|
70
|
-
- **Secondary** (`#f5f5f5`): `--alias-color-background-secondary-default`. Grouped section bg.
|
|
71
|
-
- **Secondary Highlight** (`#e5e5e5`): `--alias-color-background-secondary-highlight`.
|
|
72
|
-
- **Tertiary** (`#333333`): `--alias-color-background-tertiary-default`. Dark surfaces (e.g., snackbar contrast).
|
|
73
|
-
- **Disabled** (`#cccccc`): `--alias-color-background-disabled-default`.
|
|
74
|
-
|
|
75
|
-
### Border / Separator
|
|
76
|
-
- **Primary** (`#cccccc`): `--alias-color-border-primary-default`. Standard component border.
|
|
77
|
-
- **Primary Highlight** (`#e5e5e5`): `--alias-color-border-primary-highlight`.
|
|
78
|
-
- **Primary Active** (`#999999`): `--alias-color-border-primary-active`.
|
|
79
|
-
- **Secondary** (`#333333`): `--alias-color-border-secondary-default`. Strong dividers.
|
|
80
|
-
- **Disabled** (`#cccccc`): `--alias-color-border-disabled-default`.
|
|
81
|
-
|
|
82
|
-
### Overlay (modal backdrops)
|
|
83
|
-
- **Weak** (`rgba(34,34,34,0.2)`): `--alias-color-overlay-weak`.
|
|
84
|
-
- **Middle** (`rgba(34,34,34,0.4)`): `--alias-color-overlay-middle`.
|
|
85
|
-
- **Mid Strong** (`rgba(34,34,34,0.6)`): `--alias-color-overlay-midStrong`.
|
|
86
|
-
- **Strong** (`rgba(34,34,34,0.8)`): `--alias-color-overlay-strong`.
|
|
87
|
-
- **Inverse Weak** (`rgba(255,255,255,0.2)`): `--alias-color-overlay-inverseWeak`. White overlay on dark surface.
|
|
88
|
-
|
|
89
|
-
### Icon (separate role from text — important for accessibility)
|
|
90
|
-
- **Primary** (`#333333`): `--alias-color-icon-primary-default`.
|
|
91
|
-
- **Secondary** (`#cccccc`): `--alias-color-icon-secondary-default`.
|
|
92
|
-
- **Tertiary** (`#666666`): `--alias-color-icon-tertiary-default`.
|
|
93
|
-
- **Inverse** (`#ffffff`): `--alias-color-icon-inverse-default`.
|
|
94
|
-
|
|
95
|
-
### System (static)
|
|
96
|
-
- **Static White** (`#ffffff`): `--alias-color-system-staticWhite-default`.
|
|
97
|
-
- **Static Black** (`#000000`): `--alias-color-system-staticBlack-default`.
|
|
98
|
-
- **Static Clear** (`rgba(255,255,255,0)`): `--alias-color-system-staticClear-default`.
|
|
99
|
-
|
|
100
|
-
## 3. Typography Rules
|
|
101
|
-
|
|
102
|
-
### Font Stack (verified live)
|
|
103
|
-
```
|
|
104
|
-
"Helvetica Neue", Arial, "Hiragino Kaku Gothic ProN Custom", "Hiragino Sans Custom", "Meiryo Custom", sans-serif
|
|
105
|
-
```
|
|
106
|
-
|
|
107
|
-
For non-Japanese locales the secondary stack adds Traditional Chinese support:
|
|
108
|
-
```
|
|
109
|
-
Helvetica Neue, Arial, "PingFang TC Custom", "Noto Sans TC Custom", "Microsoft JhengHei", "Hiragino Kaku Gothic ProN Custom", "Hiragino Sans Custom", "Meiryo Custom", sans-serif
|
|
110
|
-
```
|
|
111
|
-
|
|
112
|
-
The "Custom" suffix indicates Mercari runs optically-tuned variants of these system fonts in production — same families, adjusted spacing for marketplace UI density.
|
|
113
|
-
|
|
114
|
-
### Weights
|
|
115
|
-
- **700**: Primary CTAs, prices, badges, "Shop Now" hero CTAs, language toggles.
|
|
116
|
-
- **400**: Default body, login/signup buttons, navigation links, secondary CTAs.
|
|
117
|
-
|
|
118
|
-
Verified: primary attention CTAs (e.g., "コンテンツにスキップ" skip link) use weight 700 with bg `#ff333f` and `4px` radius. Secondary actions (login, signup, language) use weight 400.
|
|
119
|
-
|
|
120
|
-
### Size Scale
|
|
121
|
-
- **Base body**: `15px` (verified `bodySize`)
|
|
122
|
-
- **Heading scale** is application-defined (homepage uses `15-20px` for H1/H2 with weight 700)
|
|
123
|
-
- Mobile sizes step down via `--typography-*-font-size-mobile` tokens
|
|
124
|
-
|
|
125
|
-
### Conventions
|
|
126
|
-
- **No letter-spacing tweaks** — system defaults trusted.
|
|
127
|
-
- **Default line-height ~1.4** (estimated from rendered metrics).
|
|
128
|
-
- **Uppercase reserved for the "MERCARI" wordmark only.**
|
|
129
|
-
|
|
130
|
-
## 4. Component Stylings
|
|
131
|
-
|
|
132
|
-
### Buttons (verified across variants)
|
|
133
|
-
**Primary attention CTA (red)**:
|
|
134
|
-
- bg `#ff333f`, text `#ffffff`, `border-radius: 4px`, `padding: 11px 15px`, `font-weight: 700`
|
|
135
|
-
|
|
136
|
-
**Accent CTA (blue, e.g., "Shop Now")**:
|
|
137
|
-
- bg `#ffffff`, text `#0095ee`, `border-radius: 4px`, `padding: 8px 12px`, `font-weight: 700`
|
|
138
|
-
|
|
139
|
-
**Login / Signup (secondary, neutral)**:
|
|
140
|
-
- bg `#ffffff`, text `#333333`, `border-radius: 4px`, `padding: 8px`, `font-weight: 400`
|
|
141
|
-
|
|
142
|
-
**Icon button**:
|
|
143
|
-
- bg `transparent`, color `#000000` or `#333333`, `border-radius: 4px`, `padding: 4px`, `font-weight: 400`
|
|
144
|
-
|
|
145
|
-
**Language toggle**:
|
|
146
|
-
- bg `transparent`, text `#333333`, `border-radius: 4px`, `padding: 8px 16px`, `font-weight: 700`
|
|
147
|
-
|
|
148
|
-
### Cards (Product Card, Brand Card)
|
|
149
|
-
- White bg (`--alias-color-background-primary-default`)
|
|
150
|
-
- Subtle `1px solid #e0e0e0` border or no border (image-led cards)
|
|
151
|
-
- Brand thumbnails: `border-radius: 50%` (circular) — distinctive Mercari pattern for category navigation
|
|
152
|
-
- Image fills top, title + price below
|
|
153
|
-
- Price emphasis: weight 700, often in `#ff333f` (Mercari Red) for sale prices
|
|
154
|
-
|
|
155
|
-
### Search Input
|
|
156
|
-
- Full-width bar at top of page, `bg: #f5f5f5` (secondary surface), `border-radius: 4px`, dark gray placeholder `#999999`
|
|
157
|
-
- Camera search icon + magnifier icon inside the input on right
|
|
158
|
-
|
|
159
|
-
### Navigation (top header)
|
|
160
|
-
- White sticky bg, height ~50-64px
|
|
161
|
-
- Mercari wordmark + heart logo on left
|
|
162
|
-
- Search bar centered
|
|
163
|
-
- ログイン (Login), 会員登録 (Signup), notification bell, language toggle (日本語) on right
|
|
164
|
-
- Tabs row below: おすすめ, マイリスト, ゲーム, etc. — horizontal scroll on mobile
|
|
165
|
-
|
|
166
|
-
### Chips / Tabs
|
|
167
|
-
- Underline-driven active indicator (red underline `#ff333f` for active tab)
|
|
168
|
-
- Inactive tabs: text `#333333` weight 400
|
|
169
|
-
- Active tab: text `#ff333f` (or `#222222`) weight 700 with `2px` red underline
|
|
170
|
-
|
|
171
|
-
### Snackbar / Toast
|
|
172
|
-
- Dark bg (`--alias-color-background-tertiary-default: #333333`)
|
|
173
|
-
- White text (`--alias-color-text-inverse-default: #ffffff`)
|
|
174
|
-
- Z-index `--mer-z-index-snackbar: 1500`
|
|
175
|
-
|
|
176
|
-
### Modal / Dialog
|
|
177
|
-
- White surface, `border-radius: 8px`
|
|
178
|
-
- Backdrop: `--alias-color-overlay-strong: rgba(34,34,34,0.8)`
|
|
179
|
-
- Z-index `--mer-z-index-modal: 1400`
|
|
180
|
-
|
|
181
|
-
## 5. Layout Principles
|
|
182
|
-
|
|
183
|
-
### Page Structure
|
|
184
|
-
- Max width: `1440px` (`--bqHLTv`, `--gIsGsE`)
|
|
185
|
-
- Grid layout page padding: top `40px` (`--grid-layout-page-padding-top`), bottom `64px` (`--grid-layout-page-padding-bottom`), horizontal `36px` (`--grid-layout-page-padding-horizontal`)
|
|
186
|
-
- Grid gutter: `24px` (`--grid-layout-gutter`)
|
|
187
|
-
- Inner inset: `16px` (`--grid-layout-inset`)
|
|
188
|
-
|
|
189
|
-
### Spacing Tokens (semantic aliases)
|
|
190
|
-
Mercari uses Panda CSS-generated hashed token names alongside semantic aliases. Common values from CSS:
|
|
191
|
-
- `4px`, `6px`, `8px`, `12px`, `16px`, `20px`, `24px`, `28px`, `32px`, `36px`, `40px`, `44px`, `48px`, `56px`, `64px`, `80px`, `96px`, `128px`, `164px`
|
|
192
|
-
|
|
193
|
-
This is a 4dp baseline scale extended with named tokens.
|
|
194
|
-
|
|
195
|
-
### Density
|
|
196
|
-
Mercari is **commerce-density** — tight product grids with minimal card chrome, image-led visual hierarchy. The 6-column product grid on homepage uses `~190-240px` card widths with `12-16px` gutters.
|
|
197
|
-
|
|
198
|
-
## 6. Depth & Elevation
|
|
199
|
-
|
|
200
|
-
Mercari has explicit shadow tokens for floating UI:
|
|
201
|
-
|
|
202
|
-
- **Card lift** (subtle): `0px 2px 4px 0px rgba(0,0,0,.2)` (`--ljPKsT`)
|
|
203
|
-
- **Tooltip / popover**: `0px 4px 8px 0px rgba(0,0,0,.2)` (`--coocrY`)
|
|
204
|
-
- **Modal / dropdown**: `0px 8px 10px 0px rgba(0,0,0,.2)` (`--jcKRRc`)
|
|
205
|
-
- **Strong overlay**: `0px 0px 16px 0px rgba(0,0,0,.2)` (`--gQVqIQ`)
|
|
206
|
-
|
|
207
|
-
### Z-Index Hierarchy (explicit named tokens)
|
|
208
|
-
- Menu: `1100` (`--mer-z-index-menu`)
|
|
209
|
-
- Navigation top: `1200` (`--mer-z-index-navigation-top`)
|
|
210
|
-
- Navigation bottom: `1200` (`--mer-z-index-navigation-bottom`)
|
|
211
|
-
- Autocomplete: `1300` (`--mer-z-index-autocomplete`)
|
|
212
|
-
- Dialog: `1400` (`--mer-z-index-dialog`)
|
|
213
|
-
- Modal: `1400` (`--mer-z-index-modal`)
|
|
214
|
-
- Side sheet: `1400` (`--mer-z-index-side-sheet`)
|
|
215
|
-
- Information popup: `1400` (`--mer-z-index-information-popup`)
|
|
216
|
-
- Action sheet: `1400` (`--mer-z-index-action-sheet`)
|
|
217
|
-
- Snackbar: `1500` (`--mer-z-index-snackbar`)
|
|
218
|
-
- Tooltip: `1600` (`--mer-z-index-tooltip`)
|
|
219
|
-
|
|
220
|
-
### Animation
|
|
221
|
-
- Easing curves: `cubic-bezier(0.65, 0, 0.35, 1)` (sheets), `cubic-bezier(0.33, 1, 0.68, 1)` (snackbars/dialogs)
|
|
222
|
-
- Standard duration: `0.25s`
|
|
223
|
-
- Loading spinner: `1.25s` 8-step rotation
|
|
224
|
-
|
|
225
|
-
## 7. Do's and Don'ts
|
|
226
|
-
|
|
227
|
-
- **DO** use the `--alias-color-*` semantic tokens. The 681 variables cover virtually every UI surface — never hardcode hex values when an alias exists.
|
|
228
|
-
- **DON'T** invent new color values. Mercari's palette is exhaustive; if you can't find an alias, use the closest one.
|
|
229
|
-
- **DO** reserve **Mercari Red** (`#ff333f`) for the `attention` semantic — sale prices, danger actions, the brand mark, error states.
|
|
230
|
-
- **DON'T** use red for general "primary" CTAs that aren't attention-grabbing. Mercari's primary actions are often blue-accent (`#0095ee`) or neutral, not red.
|
|
231
|
-
- **DO** use weight 700 for primary CTAs and prices. Weight 400 for navigation, secondary actions, body.
|
|
232
|
-
- **DON'T** use weight 500 or 600 — they're not part of Mercari's typography rhythm.
|
|
233
|
-
- **DO** keep `border-radius: 4px` on buttons and cards. Mercari's commerce voice is sharp and functional.
|
|
234
|
-
- **DON'T** use pill-shaped or large-radius buttons — that breaks the marketplace density aesthetic.
|
|
235
|
-
- **DO** apply circular thumbnails (`border-radius: 50%`) to brand/category icons in navigation. It's a distinctive Mercari pattern.
|
|
236
|
-
- **DON'T** use shadows on flat product cards — let the white card on `#f5f5f5` secondary bg provide separation.
|
|
237
|
-
- **DO** use the locale-aware font stack with Hiragino/Meiryo "Custom" variants. The optical tuning matters for Japanese readability.
|
|
238
|
-
- **DON'T** load custom web fonts. Mercari's audience is mobile-first across slow connections; system fonts respect that.
|
|
239
|
-
- **DO** use the explicit named z-index tokens (`--mer-z-index-*`) — Mercari's stacking order is deliberate.
|
|
240
|
-
- **DON'T** use arbitrary z-index values like `9999` — that breaks the layered system.
|
|
241
|
-
|
|
242
|
-
## 8. Responsive Behavior
|
|
243
|
-
|
|
244
|
-
### Breakpoints (inferred from `--typography-*-font-size-mobile` tokens and `--vbMobileBoundaryWidth`-style patterns)
|
|
245
|
-
| Width | Behavior |
|
|
246
|
-
|---|---|
|
|
247
|
-
| Desktop `>1440px` | Centered max-width container, full grid |
|
|
248
|
-
| Desktop `1024–1440px` | 6-column product grid, full nav |
|
|
249
|
-
| Tablet `768–1024px` | 4-column product grid, condensed nav |
|
|
250
|
-
| Mobile `<768px` | 2-column grid, hamburger nav, sticky bottom navigation |
|
|
251
|
-
|
|
252
|
-
### Touch & Mobile
|
|
253
|
-
- Mobile bottom navigation: tab bar with icon + label
|
|
254
|
-
- Form heights: small `36px`, medium ~`48px`, large ~`56px` (estimated from spacing tokens)
|
|
255
|
-
- Touch targets: minimum `44px` per Apple HIG conventions
|
|
256
|
-
|
|
257
|
-
### Image Behavior
|
|
258
|
-
- Product images: square aspect ratio, `4px` corner radius (matches button/card scheme)
|
|
259
|
-
- Brand thumbnails: circular (`50%` radius)
|
|
260
|
-
- Lazy-load via Next.js Image equivalent
|
|
261
|
-
- Placeholder skeleton uses `--color-shimmer-bg` / `--color-shimmer-fg` pattern
|
|
262
|
-
|
|
263
|
-
## 9. Agent Prompt Guide
|
|
264
|
-
|
|
265
|
-
### Quick Color Reference
|
|
266
|
-
- **Mercari Red** (attention, sale, brand): `#ff333f` (`--alias-color-background-attention-default`)
|
|
267
|
-
- Accent Blue (links, info): `#0095ee`
|
|
268
|
-
- Success Green: `#0aa466`
|
|
269
|
-
- Decorative Yellow (ratings): `#ffb818`
|
|
270
|
-
- Primary text: `#333333`
|
|
271
|
-
- Secondary text: `#666666`
|
|
272
|
-
- Page bg: `#ffffff`
|
|
273
|
-
- Secondary bg: `#f5f5f5`
|
|
274
|
-
- Border default: `#cccccc`
|
|
275
|
-
- Inverse text: `#ffffff` (on dark surfaces)
|
|
276
|
-
|
|
277
|
-
### Example Component Prompts
|
|
278
|
-
- "Create a Mercari-style attention CTA: bg `#ff333f`, white text, `border-radius: 4px`, `padding: 11px 15px`, `font-weight: 700`. Hover: bg darkens to `#ff6574`. Active: `#e32b36`. Use this for danger actions, sale CTAs, the brand-mark button — never for generic 'primary' actions (those use accent blue)."
|
|
279
|
-
- "Build a Mercari product card: white bg, no border or `1px solid #e0e0e0`, `4px` radius. Image fills top 70% in `4px` rounded square. Title in 14px weight 400 `#333333` (2-line clamp), price below in 16px weight 700 `#333333` for normal price OR `#ff333f` for sale price. Optional sale badge in top-left corner using `#ff333f` bg + white text + 2px radius."
|
|
280
|
-
- "Design a Mercari brand thumbnail (category icon): circular `border-radius: 50%`, ~64-80px diameter, white bg with `1px solid #f5f5f5` border, brand image centered. Below: brand name in 12px weight 400 `#333333`, max 1 line ellipsis."
|
|
281
|
-
- "Create a Mercari search bar: full-width, bg `#f5f5f5` (secondary surface), `border-radius: 4px`, padding 12-16px, placeholder `#999999`. Right side: camera icon + magnifier icon, both `#666666`. On focus: bg shifts to white, border becomes `1px solid #cccccc`."
|
|
282
|
-
- "Build a Mercari snackbar: bg `#333333` (`--alias-color-background-tertiary-default`), white text, `border-radius: 4px`, `padding: 12px 16px`, fixed at bottom with z-index 1500. Slides in via `cubic-bezier(0.33, 1, 0.68, 1)` over `0.25s`. Auto-dismiss after 3-4s."
|
|
283
|
-
|
|
284
|
-
### Iteration Guide
|
|
285
|
-
1. **Always reference `--alias-color-*` tokens, not raw hex**. Mercari's 681 vars are the canonical source.
|
|
286
|
-
2. **Mercari Red (`#ff333f`) is the `attention` role** — destructive, sale-emphasis, brand mark. Not a default primary.
|
|
287
|
-
3. **`border-radius: 4px`** is the workhorse. Cards, buttons, badges. Brand thumbnails get `50%` (circular).
|
|
288
|
-
4. **Weight 700 for prices and primary CTAs**, weight 400 for everything else. No middle weights.
|
|
289
|
-
5. **Use the locale-aware font stack with Hiragino/Meiryo "Custom" variants**. Optical tuning matters.
|
|
290
|
-
6. **Z-index uses named tokens** (`--mer-z-index-*`) — never arbitrary numbers.
|
|
291
|
-
7. **Animation easing `cubic-bezier(0.65, 0, 0.35, 1)` for sheets**, `cubic-bezier(0.33, 1, 0.68, 1)` for snackbars/dialogs. Duration `0.25s`.
|
|
292
|
-
8. **Surface contrast** (`#ffffff` cards on `#f5f5f5` page bg) handles separation — minimal shadow needed on flat layouts.
|
|
293
|
-
9. **Body text `#333333`, secondary `#666666`, tertiary `#999999`** — three-tier text hierarchy across the entire system.
|
|
294
|
-
10. **Page padding 36px horizontal, 40px top, 64px bottom**, with `24px` gutter — the layout grid is explicit.
|
|
@@ -1,108 +0,0 @@
|
|
|
1
|
-
# Design System Inspiration of Miro
|
|
2
|
-
|
|
3
|
-
## 1. Visual Theme & Atmosphere
|
|
4
|
-
|
|
5
|
-
Miro's website is a clean, collaborative-tool-forward platform that communicates "visual thinking" through generous whitespace, pastel accent colors, and a confident geometric font. The design uses a predominantly white canvas with near-black text (`#1c1c1e`) and a distinctive pastel color palette — coral, rose, teal, orange, yellow, moss — each representing different collaboration contexts.
|
|
6
|
-
|
|
7
|
-
The typography uses Roobert PRO Medium as the primary display font with OpenType character variants (`"blwf", "cv03", "cv04", "cv09", "cv11"`) and negative letter-spacing (-1.68px at 56px). Noto Sans handles body text with its own stylistic set (`"liga" 0, "ss01", "ss04", "ss05"`). The design is built with Framer, giving it smooth animations and modern component patterns.
|
|
8
|
-
|
|
9
|
-
**Key Characteristics:**
|
|
10
|
-
- White canvas with near-black (`#1c1c1e`) text
|
|
11
|
-
- Roobert PRO Medium with multiple OpenType character variants
|
|
12
|
-
- Pastel accent palette: coral, rose, teal, orange, yellow, moss (light + dark pairs)
|
|
13
|
-
- Blue 450 (`#5b76fe`) as primary interactive color
|
|
14
|
-
- Success green (`#00b473`) for positive states
|
|
15
|
-
- Generous border-radius: 8px–50px range
|
|
16
|
-
- Framer-built with smooth motion patterns
|
|
17
|
-
- Ring shadow border: `rgb(224,226,232) 0px 0px 0px 1px`
|
|
18
|
-
|
|
19
|
-
## 2. Color Palette & Roles
|
|
20
|
-
|
|
21
|
-
### Primary
|
|
22
|
-
- **Near Black** (`#1c1c1e`): Primary text
|
|
23
|
-
- **White** (`#ffffff`): `--tw-color-white`, primary surface
|
|
24
|
-
- **Blue 450** (`#5b76fe`): `--tw-color-blue-450`, primary interactive
|
|
25
|
-
- **Actionable Pressed** (`#2a41b6`): `--tw-color-actionable-pressed`
|
|
26
|
-
|
|
27
|
-
### Pastel Accents (Light/Dark pairs)
|
|
28
|
-
- **Coral**: Light `#ffc6c6` / Dark `#600000`
|
|
29
|
-
- **Rose**: Light `#ffd8f4` / Dark (implied)
|
|
30
|
-
- **Teal**: Light `#c3faf5` / Dark `#187574`
|
|
31
|
-
- **Orange**: Light `#ffe6cd`
|
|
32
|
-
- **Yellow**: Dark `#746019`
|
|
33
|
-
- **Moss**: Dark `#187574`
|
|
34
|
-
- **Pink** (`#fde0f0`): Soft pink surface
|
|
35
|
-
- **Red** (`#fbd4d4`): Light red surface
|
|
36
|
-
- **Dark Red** (`#e3c5c5`): Muted red
|
|
37
|
-
|
|
38
|
-
### Semantic
|
|
39
|
-
- **Success** (`#00b473`): `--tw-color-success-accent`
|
|
40
|
-
|
|
41
|
-
### Neutral
|
|
42
|
-
- **Slate** (`#555a6a`): Secondary text
|
|
43
|
-
- **Input Placeholder** (`#a5a8b5`): `--tw-color-input-placeholder`
|
|
44
|
-
- **Border** (`#c7cad5`): Button borders
|
|
45
|
-
- **Ring** (`rgb(224,226,232)`): Shadow-as-border
|
|
46
|
-
|
|
47
|
-
## 3. Typography Rules
|
|
48
|
-
|
|
49
|
-
### Font Families
|
|
50
|
-
- **Display**: `Roobert PRO Medium`, fallback: Placeholder — `"blwf", "cv03", "cv04", "cv09", "cv11"`
|
|
51
|
-
- **Display Variants**: `Roobert PRO SemiBold`, `Roobert PRO SemiBold Italic`, `Roobert PRO`
|
|
52
|
-
- **Body**: `Noto Sans` — `"liga" 0, "ss01", "ss04", "ss05"`
|
|
53
|
-
|
|
54
|
-
### Hierarchy
|
|
55
|
-
|
|
56
|
-
| Role | Font | Size | Weight | Line Height | Letter Spacing |
|
|
57
|
-
|------|------|------|--------|-------------|----------------|
|
|
58
|
-
| Display Hero | Roobert PRO Medium | 56px | 400 | 1.15 | -1.68px |
|
|
59
|
-
| Section Heading | Roobert PRO Medium | 48px | 400 | 1.15 | -1.44px |
|
|
60
|
-
| Card Title | Roobert PRO Medium | 24px | 400 | 1.15 | -0.72px |
|
|
61
|
-
| Sub-heading | Noto Sans | 22px | 400 | 1.35 | -0.44px |
|
|
62
|
-
| Feature | Roobert PRO Medium | 18px | 600 | 1.35 | normal |
|
|
63
|
-
| Body | Noto Sans | 18px | 400 | 1.45 | normal |
|
|
64
|
-
| Body Standard | Noto Sans | 16px | 400–600 | 1.50 | -0.16px |
|
|
65
|
-
| Button | Roobert PRO Medium | 17.5px | 700 | 1.29 | 0.175px |
|
|
66
|
-
| Caption | Roobert PRO Medium | 14px | 400 | 1.71 | normal |
|
|
67
|
-
| Small | Roobert PRO Medium | 12px | 400 | 1.15 | -0.36px |
|
|
68
|
-
| Micro Uppercase | Roobert PRO | 10.5px | 400 | 0.90 | uppercase |
|
|
69
|
-
|
|
70
|
-
## 4. Component Stylings
|
|
71
|
-
|
|
72
|
-
### Buttons
|
|
73
|
-
- Outlined: transparent bg, `1px solid #c7cad5`, 8px radius, 7px 12px padding
|
|
74
|
-
- White circle: 50% radius, white bg with shadow
|
|
75
|
-
- Blue primary (implied from interactive color)
|
|
76
|
-
|
|
77
|
-
### Cards: 12px–24px radius, pastel backgrounds
|
|
78
|
-
### Inputs: white bg, `1px solid #e9eaef`, 8px radius, 16px padding
|
|
79
|
-
|
|
80
|
-
## 5. Layout Principles
|
|
81
|
-
- Spacing: 1–24px base scale
|
|
82
|
-
- Radius: 8px (buttons), 10px–12px (cards), 20px–24px (panels), 40px–50px (large containers)
|
|
83
|
-
- Ring shadow: `rgb(224,226,232) 0px 0px 0px 1px`
|
|
84
|
-
|
|
85
|
-
## 6. Depth & Elevation
|
|
86
|
-
Minimal — ring shadow + pastel surface contrast
|
|
87
|
-
|
|
88
|
-
## 7. Do's and Don'ts
|
|
89
|
-
### Do
|
|
90
|
-
- Use pastel light/dark pairs for feature sections
|
|
91
|
-
- Apply Roobert PRO with OpenType character variants
|
|
92
|
-
- Use Blue 450 (#5b76fe) for interactive elements
|
|
93
|
-
### Don't
|
|
94
|
-
- Don't use heavy shadows
|
|
95
|
-
- Don't mix more than 2 pastel accents per section
|
|
96
|
-
|
|
97
|
-
## 8. Responsive Behavior
|
|
98
|
-
Breakpoints: 425px, 576px, 768px, 896px, 1024px, 1200px, 1280px, 1366px, 1700px, 1920px
|
|
99
|
-
|
|
100
|
-
## 9. Agent Prompt Guide
|
|
101
|
-
### Quick Color Reference
|
|
102
|
-
- Text: Near Black (`#1c1c1e`)
|
|
103
|
-
- Background: White (`#ffffff`)
|
|
104
|
-
- Interactive: Blue 450 (`#5b76fe`)
|
|
105
|
-
- Success: `#00b473`
|
|
106
|
-
- Border: `#c7cad5`
|
|
107
|
-
### Example Component Prompts
|
|
108
|
-
- "Create hero: white background. Roobert PRO Medium 56px, line-height 1.15, letter-spacing -1.68px. Blue CTA (#5b76fe). Outlined secondary (1px solid #c7cad5, 8px radius)."
|