oh-my-design-cli 1.8.7 → 1.9.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 (247) hide show
  1. package/.claude/hooks/lib/preferences-parser.cjs +1 -0
  2. package/.claude/hooks/lib/preferences-writer.cjs +1 -0
  3. package/.claude/hooks/post-edit-watch.cjs +1 -0
  4. package/.claude/hooks/session-end-foldin.cjs +1 -0
  5. package/.claude/hooks/session-state-loader.cjs +1 -0
  6. package/.claude/hooks/skill-activation.cjs +1 -0
  7. package/.claude/settings.json +10 -1
  8. package/.github/assets/logo-bg.png +0 -0
  9. package/AGENTS.md +20 -1
  10. package/CHANGELOG.md +482 -0
  11. package/MIGRATION.md +103 -0
  12. package/README.ja.md +56 -19
  13. package/README.ko.md +47 -30
  14. package/README.md +48 -30
  15. package/README.zh-TW.md +59 -22
  16. package/agents/AGENT.md +8 -7
  17. package/agents/omd-codex-image.md +1 -1
  18. package/agents/omd-critic.md +6 -7
  19. package/agents/omd-designer-review.md +1 -1
  20. package/agents/omd-final-qa.md +1 -1
  21. package/agents/omd-humanizer.md +38 -0
  22. package/agents/omd-kr-writer.md +3 -4
  23. package/agents/omd-locale-adapter.md +12 -16
  24. package/agents/omd-master.md +24 -19
  25. package/agents/omd-microcopy.md +1 -1
  26. package/agents/omd-orchestrator.md +7 -8
  27. package/agents/omd-slop-auditor.md +31 -0
  28. package/agents/omd-ux-researcher.md +1 -1
  29. package/data/reference-fingerprints.json +1995 -38
  30. package/dist/bin/oh-my-design.js +16 -8
  31. package/dist/bin/oh-my-design.js.map +1 -1
  32. package/dist/chunk-UJIHCEYF.js +99 -0
  33. package/dist/chunk-UJIHCEYF.js.map +1 -0
  34. package/dist/doctor-LDWSFM3I.js +763 -0
  35. package/dist/doctor-LDWSFM3I.js.map +1 -0
  36. package/dist/install-skills-ZZFNJ2II.js +1120 -0
  37. package/dist/install-skills-ZZFNJ2II.js.map +1 -0
  38. package/docs/CLI_QUICKSTART.md +157 -0
  39. package/package.json +25 -4
  40. package/scripts/postinstall.cjs +5 -4
  41. package/skills/claude-design/SKILL.md +38 -14
  42. package/skills/claude-design/references/claude-design-flow.md +11 -11
  43. package/skills/claude-design/references/codebase-analysis.md +5 -4
  44. package/skills/omd-final-qa/SKILL.md +1 -1
  45. package/skills/omd-harness/SKILL.md +51 -50
  46. package/skills/omd-humanize/SKILL.md +116 -0
  47. package/skills/omd-humanize/agents/openai.yaml +4 -0
  48. package/skills/omd-humanize/references/locale-playbooks.md +102 -0
  49. package/skills/omd-humanize/references/sources.md +11 -0
  50. package/skills/omd-init/SKILL.md +18 -12
  51. package/skills/omd-locale-adapter/SKILL.md +58 -91
  52. package/skills/omd-orchestrator/SKILL.md +11 -5
  53. package/skills/omd-reference-capture/SKILL.md +80 -26
  54. package/skills/omd-reference-capture/scripts/PLAYWRIGHT-LICENSE.txt +202 -0
  55. package/skills/omd-reference-capture/scripts/PLAYWRIGHT-NOTICE.txt +5 -0
  56. package/skills/omd-reference-capture/scripts/THIRD_PARTY_NOTICES.md +3 -0
  57. package/skills/omd-reference-capture/scripts/capture-reference-evidence.mjs +159906 -0
  58. package/skills/omd-slop-audit/SKILL.md +110 -0
  59. package/skills/omd-slop-audit/agents/openai.yaml +4 -0
  60. package/skills/omd-slop-audit/references/pattern-catalog.md +96 -0
  61. package/skills/omd-slop-audit/references/sources.md +24 -0
  62. package/web/references/104/DESIGN.md +354 -0
  63. package/web/references/11st/DESIGN.md +197 -316
  64. package/web/references/29cm/DESIGN.md +297 -393
  65. package/web/references/42dot/DESIGN.md +390 -0
  66. package/web/references/8percent/DESIGN.md +438 -0
  67. package/web/references/ably/DESIGN.md +267 -572
  68. package/web/references/acer/DESIGN.md +329 -0
  69. package/web/references/airbnb/DESIGN.md +219 -557
  70. package/web/references/alipay/DESIGN.md +179 -420
  71. package/web/references/apple/DESIGN.md +224 -498
  72. package/web/references/asleep/DESIGN.md +402 -0
  73. package/web/references/au/DESIGN.md +334 -0
  74. package/web/references/autopedia/DESIGN.md +382 -0
  75. package/web/references/aws-cloudscape/DESIGN.md +241 -0
  76. package/web/references/baemin/DESIGN.md +332 -491
  77. package/web/references/banksalad/DESIGN.md +269 -180
  78. package/web/references/barogo/DESIGN.md +416 -0
  79. package/web/references/beusable/DESIGN.md +464 -0
  80. package/web/references/bilibili/DESIGN.md +206 -374
  81. package/web/references/bmw/DESIGN.md +162 -276
  82. package/web/references/brandi/DESIGN.md +184 -325
  83. package/web/references/catchtable/DESIGN.md +219 -264
  84. package/web/references/cgv/DESIGN.md +317 -0
  85. package/web/references/channeltalk/DESIGN.md +210 -336
  86. package/web/references/china-airlines/DESIGN.md +291 -0
  87. package/web/references/cjonstyle/DESIGN.md +453 -0
  88. package/web/references/class101/DESIGN.md +168 -387
  89. package/web/references/classum/DESIGN.md +228 -203
  90. package/web/references/claude/DESIGN.md +242 -479
  91. package/web/references/clay/DESIGN.md +179 -377
  92. package/web/references/clickhouse/DESIGN.md +254 -343
  93. package/web/references/cohere/DESIGN.md +214 -324
  94. package/web/references/coinone/DESIGN.md +199 -179
  95. package/web/references/corca/DESIGN.md +414 -0
  96. package/web/references/coupang/DESIGN.md +205 -475
  97. package/web/references/cursor/DESIGN.md +240 -381
  98. package/web/references/dabang/DESIGN.md +248 -213
  99. package/web/references/dable/DESIGN.md +431 -0
  100. package/web/references/datarize/DESIGN.md +217 -330
  101. package/web/references/dealicious/DESIGN.md +402 -0
  102. package/web/references/drdiary/DESIGN.md +404 -0
  103. package/web/references/elastic/DESIGN.md +238 -0
  104. package/web/references/elevenlabs/DESIGN.md +183 -321
  105. package/web/references/eslite/DESIGN.md +257 -0
  106. package/web/references/evaair/DESIGN.md +338 -0
  107. package/web/references/expo/DESIGN.md +238 -331
  108. package/web/references/familymart-tw/DESIGN.md +254 -0
  109. package/web/references/ferrari/DESIGN.md +160 -377
  110. package/web/references/figma/DESIGN.md +197 -451
  111. package/web/references/fitpet/DESIGN.md +445 -0
  112. package/web/references/flex/DESIGN.md +170 -253
  113. package/web/references/framer/DESIGN.md +197 -340
  114. package/web/references/freee/DESIGN.md +211 -533
  115. package/web/references/friendliai/DESIGN.md +431 -0
  116. package/web/references/frip/DESIGN.md +440 -0
  117. package/web/references/gangnamunni/DESIGN.md +154 -591
  118. package/web/references/gaudiolab/DESIGN.md +414 -0
  119. package/web/references/google/DESIGN.md +290 -398
  120. package/web/references/hashicorp/DESIGN.md +273 -318
  121. package/web/references/heydealer/DESIGN.md +429 -0
  122. package/web/references/humanscape/DESIGN.md +433 -0
  123. package/web/references/hyundai/DESIGN.md +158 -368
  124. package/web/references/hyundaicard/DESIGN.md +171 -121
  125. package/web/references/ibm/DESIGN.md +227 -378
  126. package/web/references/idus/DESIGN.md +450 -0
  127. package/web/references/igaworks/DESIGN.md +437 -0
  128. package/web/references/inflearn/DESIGN.md +221 -366
  129. package/web/references/intuit/DESIGN.md +244 -0
  130. package/web/references/jandi/DESIGN.md +191 -291
  131. package/web/references/jobplanet/DESIGN.md +415 -0
  132. package/web/references/kakao/DESIGN.md +287 -475
  133. package/web/references/kakaobank/DESIGN.md +220 -521
  134. package/web/references/kakaogames/DESIGN.md +220 -0
  135. package/web/references/kakaopay/DESIGN.md +207 -526
  136. package/web/references/karrot/DESIGN.md +227 -251
  137. package/web/references/kb-kookmin/DESIGN.md +308 -0
  138. package/web/references/kbank/DESIGN.md +220 -175
  139. package/web/references/kmong/DESIGN.md +281 -356
  140. package/web/references/krds/DESIGN.md +245 -19
  141. package/web/references/kream/DESIGN.md +224 -359
  142. package/web/references/kurly/DESIGN.md +211 -533
  143. package/web/references/lamborghini/DESIGN.md +198 -360
  144. package/web/references/lguplus/DESIGN.md +259 -0
  145. package/web/references/likelion/DESIGN.md +283 -0
  146. package/web/references/line/DESIGN.md +396 -355
  147. package/web/references/linear.app/DESIGN.md +209 -562
  148. package/web/references/lotteon/DESIGN.md +386 -0
  149. package/web/references/lovable/DESIGN.md +255 -349
  150. package/web/references/makinarocks/DESIGN.md +149 -349
  151. package/web/references/maum-ai/DESIGN.md +423 -0
  152. package/web/references/medibloc/DESIGN.md +425 -0
  153. package/web/references/megabox/DESIGN.md +232 -0
  154. package/web/references/mercari/DESIGN.md +217 -434
  155. package/web/references/microsoft/DESIGN.md +234 -388
  156. package/web/references/mildang/DESIGN.md +411 -0
  157. package/web/references/millie/DESIGN.md +183 -504
  158. package/web/references/minimax/DESIGN.md +264 -322
  159. package/web/references/miricanvas/DESIGN.md +182 -355
  160. package/web/references/miro/DESIGN.md +234 -232
  161. package/web/references/mistral.ai/DESIGN.md +231 -314
  162. package/web/references/mixi/DESIGN.md +234 -0
  163. package/web/references/moin/DESIGN.md +445 -0
  164. package/web/references/mongodb/DESIGN.md +219 -316
  165. package/web/references/musinsa/DESIGN.md +184 -510
  166. package/web/references/mynavi/DESIGN.md +242 -0
  167. package/web/references/myrealtrip/DESIGN.md +169 -406
  168. package/web/references/naver/DESIGN.md +328 -499
  169. package/web/references/naverwebtoon/DESIGN.md +172 -395
  170. package/web/references/nhn/DESIGN.md +169 -346
  171. package/web/references/nhncloud/DESIGN.md +185 -123
  172. package/web/references/notion/DESIGN.md +271 -475
  173. package/web/references/nrise/DESIGN.md +417 -0
  174. package/web/references/ohouse/DESIGN.md +210 -549
  175. package/web/references/oliveyoung/DESIGN.md +217 -326
  176. package/web/references/ollama/DESIGN.md +241 -308
  177. package/web/references/onestore/DESIGN.md +248 -0
  178. package/web/references/palantir/DESIGN.md +256 -0
  179. package/web/references/panasonic/DESIGN.md +276 -0
  180. package/web/references/patternfly/DESIGN.md +259 -0
  181. package/web/references/payhere/DESIGN.md +438 -0
  182. package/web/references/pega/DESIGN.md +262 -0
  183. package/web/references/peoplefund/DESIGN.md +431 -0
  184. package/web/references/petfriends/DESIGN.md +428 -0
  185. package/web/references/pinkfong/DESIGN.md +199 -367
  186. package/web/references/pinterest/DESIGN.md +258 -308
  187. package/web/references/poya/DESIGN.md +286 -0
  188. package/web/references/pozalabs/DESIGN.md +438 -0
  189. package/web/references/protopie/DESIGN.md +419 -0
  190. package/web/references/qraft/DESIGN.md +448 -0
  191. package/web/references/quotabook/DESIGN.md +449 -0
  192. package/web/references/recruit/DESIGN.md +247 -0
  193. package/web/references/remember/DESIGN.md +202 -396
  194. package/web/references/resend/DESIGN.md +274 -348
  195. package/web/references/sakura-internet/DESIGN.md +269 -0
  196. package/web/references/samsung/DESIGN.md +157 -359
  197. package/web/references/sandoll/DESIGN.md +445 -0
  198. package/web/references/sanity/DESIGN.md +241 -375
  199. package/web/references/scatterlab/DESIGN.md +412 -0
  200. package/web/references/selectstar/DESIGN.md +439 -0
  201. package/web/references/servicenow/DESIGN.md +289 -0
  202. package/web/references/shinhanbank/DESIGN.md +161 -341
  203. package/web/references/shinhancard/DESIGN.md +208 -319
  204. package/web/references/sionic/DESIGN.md +454 -0
  205. package/web/references/sktelecom/DESIGN.md +310 -0
  206. package/web/references/socar/DESIGN.md +125 -32
  207. package/web/references/softbank/DESIGN.md +231 -0
  208. package/web/references/sony/DESIGN.md +234 -0
  209. package/web/references/soop/DESIGN.md +261 -0
  210. package/web/references/spacex/DESIGN.md +184 -323
  211. package/web/references/spotify/DESIGN.md +253 -394
  212. package/web/references/squeezebits/DESIGN.md +441 -0
  213. package/web/references/stayfolio/DESIGN.md +422 -0
  214. package/web/references/stripe/DESIGN.md +212 -491
  215. package/web/references/supabase/DESIGN.md +244 -316
  216. package/web/references/tabling/DESIGN.md +415 -0
  217. package/web/references/taishinbank/DESIGN.md +243 -0
  218. package/web/references/teamlab/DESIGN.md +240 -0
  219. package/web/references/teamsparta/DESIGN.md +472 -0
  220. package/web/references/tellingme/DESIGN.md +392 -0
  221. package/web/references/tesla/DESIGN.md +244 -427
  222. package/web/references/thsr/DESIGN.md +284 -0
  223. package/web/references/thumbtack/DESIGN.md +302 -0
  224. package/web/references/together.ai/DESIGN.md +257 -304
  225. package/web/references/toss/DESIGN.md +251 -593
  226. package/web/references/toss-securities/DESIGN.md +255 -178
  227. package/web/references/tossbank/DESIGN.md +195 -491
  228. package/web/references/toyota/DESIGN.md +238 -0
  229. package/web/references/tving/DESIGN.md +197 -245
  230. package/web/references/typed/DESIGN.md +413 -0
  231. package/web/references/uber/DESIGN.md +256 -333
  232. package/web/references/udn/DESIGN.md +250 -0
  233. package/web/references/upbit/DESIGN.md +145 -256
  234. package/web/references/upstage/DESIGN.md +211 -204
  235. package/web/references/uswds/DESIGN.md +287 -0
  236. package/web/references/vercel/DESIGN.md +236 -440
  237. package/web/references/wanted/DESIGN.md +215 -487
  238. package/web/references/wise/DESIGN.md +223 -231
  239. package/web/references/wisetracker/DESIGN.md +462 -0
  240. package/web/references/wooribank/DESIGN.md +245 -0
  241. package/web/references/yanolja/DESIGN.md +250 -419
  242. package/web/references/yeogiotte/DESIGN.md +235 -418
  243. package/web/references/zapier/DESIGN.md +256 -377
  244. package/web/references/zendesk/DESIGN.md +288 -0
  245. package/web/references/zigzag/DESIGN.md +200 -621
  246. package/dist/install-skills-7UUDOLG2.js +0 -734
  247. package/dist/install-skills-7UUDOLG2.js.map +0 -1
@@ -4,511 +4,294 @@ name: Mercari
4
4
  country: JP
5
5
  category: consumer-tech
6
6
  homepage: "https://www.mercari.com"
7
- primary_color: "#ff0211"
7
+ primary_color: "#5356ee"
8
8
  logo:
9
9
  type: github
10
10
  slug: mercari
11
- verified: "2026-05-15"
11
+ verified: "2026-07-13"
12
12
  omd: "0.1"
13
+ verification_v2:
14
+ schema: 2
15
+ checked: "2026-07-13"
16
+ surfaces:
17
+ - { id: home, kind: public-marketplace, url: "https://www.mercari.com/", inspected: "2026-07-12" }
18
+ - { id: surface-2, kind: corporate-marketing, url: "https://www.mercari.com/about/", inspected: "2026-07-12" }
19
+ - { id: surface-3, kind: brand-directory, url: "https://www.mercari.com/us/brand/", inspected: "2026-07-12" }
20
+ sources:
21
+ - { id: home-live, kind: product-surface, url: "https://www.mercari.com/", captured: "2026-07-12" }
22
+ - { id: about-live, kind: product-surface, url: "https://www.mercari.com/about/", captured: "2026-07-12" }
23
+ - { id: brand-live, kind: product-surface, url: "https://www.mercari.com/us/brand/", captured: "2026-07-12" }
24
+ - { id: marketplace-guidelines, kind: official-doc, url: "https://www.mercari.com/us/help_center/article/407/", captured: "2026-07-13" }
25
+ - { id: listing-guide, kind: official-doc, url: "https://www.mercari.com/us/help_center/topics/listing/guides/creating-a-listing/", captured: "2026-07-13" }
26
+ - { id: marketplace-principles, kind: official-doc, url: "https://pj.mercari.com/principles/marketplace-principles-and-history_EN.pdf", captured: "2026-07-13" }
27
+ - { id: averta-foundry, kind: official-doc, url: "https://foundryfivetype.com/", captured: "2026-07-13" }
28
+ - { id: averta-license, kind: license, url: "https://foundryfivetype.com/eulas/", captured: "2026-07-13" }
29
+ conflicts: []
30
+ claims:
31
+ "tokens.colors.public-action": &live { surface_id: home, source_id: home-live, method: live-inspect, captured: "2026-07-12" }
32
+ "tokens.colors.canvas": *live
33
+ "tokens.colors.foreground": *live
34
+ "tokens.colors.muted": *live
35
+ "tokens.typography.family.sans": *live
36
+ "tokens.typography.body.size": *live
37
+ "tokens.typography.body.weight": *live
38
+ "tokens.typography.body.lineHeight": *live
39
+ "tokens.typography.body.tracking": *live
40
+ "tokens.typography.body.use": *live
41
+ "tokens.typography.header-action.size": &about { surface_id: surface-2, source_id: about-live, method: live-inspect, captured: "2026-07-12" }
42
+ "tokens.typography.header-action.weight": *about
43
+ "tokens.typography.header-action.lineHeight": *about
44
+ "tokens.typography.header-action.use": *about
45
+ "tokens.typography.marketing-display.size": *about
46
+ "tokens.typography.marketing-display.weight": *about
47
+ "tokens.typography.marketing-display.lineHeight": *about
48
+ "tokens.typography.marketing-display.use": *about
49
+ "tokens.spacing.xs": *live
50
+ "tokens.spacing.sm": *live
51
+ "tokens.spacing.md": *live
52
+ "tokens.spacing.lg": *live
53
+ "tokens.spacing.xl": *live
54
+ "tokens.rounded.none": *live
55
+ "tokens.rounded.compact": *live
56
+ "tokens.rounded.image": *live
57
+ "tokens.rounded.circular": *live
58
+ "tokens.shadow.none": *live
59
+ "tokens.components.marketplace-sell-action.type": *live
60
+ "tokens.components.marketplace-sell-action.bg": *live
61
+ "tokens.components.marketplace-sell-action.fg": *live
62
+ "tokens.components.marketplace-sell-action.radius": *live
63
+ "tokens.components.marketplace-sell-action.padding": *live
64
+ "tokens.components.marketplace-sell-action.font": *live
65
+ "tokens.components.marketplace-sell-action.states": *live
66
+ "tokens.components.marketplace-sell-action.use": *live
67
+ "tokens.components.marketing-sell-action.type": *about
68
+ "tokens.components.marketing-sell-action.bg": *about
69
+ "tokens.components.marketing-sell-action.fg": *about
70
+ "tokens.components.marketing-sell-action.radius": *about
71
+ "tokens.components.marketing-sell-action.padding": *about
72
+ "tokens.components.marketing-sell-action.font": *about
73
+ "tokens.components.marketing-sell-action.states": *about
74
+ "tokens.components.marketing-sell-action.use": *about
75
+ "tokens.components.marketing-skip-link.type": *live
76
+ "tokens.components.marketing-skip-link.bg": *live
77
+ "tokens.components.marketing-skip-link.fg": *live
78
+ "tokens.components.marketing-skip-link.radius": *live
79
+ "tokens.components.marketing-skip-link.padding": *live
80
+ "tokens.components.marketing-skip-link.font": *live
81
+ "tokens.components.marketing-skip-link.states": *live
82
+ "tokens.components.marketing-skip-link.use": *live
83
+ "tokens.components.listing-image.type": *live
84
+ "tokens.components.listing-image.radius": *live
85
+ "tokens.components.listing-image.use": *live
13
86
  tokens:
14
- source: prose-derived
15
- extracted: "2026-06-09"
87
+ source: reconciled
88
+ extracted: "2026-07-12"
16
89
  colors:
17
- brand-red: "#ff333f"
18
- red-highlight: "#ff6574"
19
- red-active: "#e32b36"
20
- red-thin: "#fdf1f3"
21
- accent-blue: "#0095ee"
22
- link: "#0073cc"
23
- success: "#0aa466"
24
- success-thin: "#e4ffec"
25
- decorative-yellow: "#ffb818"
26
- text-primary: "#333333"
27
- text-secondary: "#666666"
28
- text-disabled: "#cccccc"
29
- placeholder: "#999999"
90
+ public-action: "#5356ee"
30
91
  canvas: "#ffffff"
31
- surface-secondary: "#f5f5f5"
32
- surface-dark: "#333333"
33
- border: "#cccccc"
34
- on-dark: "#ffffff"
92
+ foreground: "#222222"
93
+ muted: "#6b6b6b"
35
94
  typography:
36
- family: { sans: "Helvetica Neue", mono: "Helvetica Neue" }
37
- heading: { size: 20, weight: 700, lineHeight: 1.40, use: "H1/H2 headlines" }
38
- cta: { size: 15, weight: 700, lineHeight: 1.40, use: "Primary CTAs, prices, badges" }
39
- body: { size: 15, weight: 400, lineHeight: 1.40, use: "Default body, nav links, secondary CTAs" }
40
- spacing: { xs: 4, sm: 6, md: 8, base: 12, lg: 16, xl: 20, xxl: 28, section: 64 }
41
- rounded: { sm: 4, md: 4, lg: 8, full: 9999 }
42
- shadow:
43
- none: "none"
44
- components:
45
- button-primary: { type: button, bg: "#ff333f", fg: "#ffffff", radius: 4, padding: "11px 15px", font: "15px/700", use: "Primary attention CTA" }
46
- button-accent: { type: button, bg: "#ffffff", fg: "#0095ee", radius: 4, padding: "8px 12px", font: "15px/700", use: "Accent CTA Shop Now" }
47
- button-neutral: { type: button, bg: "#ffffff", fg: "#333333", radius: 4, padding: "8px", font: "15px/400", use: "Login/Signup secondary" }
48
- search-input: { type: input, bg: "#f5f5f5", fg: "#999999", radius: 4, use: "Full-width top search bar" }
49
- product-card: { type: card, bg: "#ffffff", radius: 4, use: "Product/brand card, image-led" }
50
- tab: { type: tab, bg: "#ffffff", fg: "#333333", active: "#ff333f text with 2px red underline", use: "Underline-driven section tabs" }
51
- snackbar: { type: toast, bg: "#333333", fg: "#ffffff", use: "Dark snackbar/toast" }
52
- modal: { type: dialog, bg: "#ffffff", radius: 8, use: "Centered modal, strong scrim backdrop" }
95
+ family: { sans: "Averta" }
96
+ body: { size: 14, weight: 400, lineHeight: 1.43, tracking: "-0.16px", use: "Repeated public-site body and link text on the supplied US surfaces." }
97
+ header-action: { size: 16, weight: 600, lineHeight: 1.38, use: "Observed corporate-marketing header text action only." }
98
+ marketing-display: { size: 48, weight: 600, lineHeight: 1.2, use: "Observed corporate-marketing display heading only." }
99
+ spacing: { xs: 4, sm: 6, md: 12, lg: 16, xl: 20 }
100
+ rounded: { none: 0, compact: 4, image: 8, circular: 50 }
101
+ shadow: { none: "none" }
53
102
  components_harvested: true
103
+ components:
104
+ marketplace-sell-action: { type: button, bg: "#ffffff", fg: "#222222", radius: 4, padding: "0px 16px", font: "14px/600 Averta", states: "Default baseline captured; no changed interaction style promoted.", use: "Observed default at home::[data-omd-capture=\"12\"] on the public marketplace home only." }
105
+ marketing-sell-action: { type: button, bg: "#5356ee", fg: "#ffffff", radius: 4, padding: "0px 16px", font: "14px/600 Averta", states: "Default baseline captured; no changed interaction style promoted.", use: "Observed default at surface-2::[data-omd-capture=\"11\"] on the corporate-marketing route only." }
106
+ marketing-skip-link: { type: button, bg: "#5356ee", fg: "#ffffff", radius: 4, padding: "0px 16px", font: "16px/600 Averta", states: "Default and an identical focus snapshot captured; no distinct focus value promoted.", use: "Observed skip-link default and identical focus snapshot at home::[data-omd-capture=\"3\"] on public routes." }
107
+ listing-image: { type: card, radius: 8, use: "Observed image shell at home::[data-testid=\"AnonCardImage\"] on the public marketplace home only." }
54
108
  ---
55
109
 
56
110
  # Design System Inspiration of Mercari
57
111
 
58
112
  ## 1. Visual Theme & Atmosphere
59
113
 
60
- 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.
61
-
62
- 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.
63
-
64
- 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.
114
+ Mercari operates a marketplace where people can list and buy items that can be shipped; its US guidance frames listing as taking photos, adding a description, and setting a price. The supplied public capture shows a compact, type-led web presence rather than the former Japanese marketplace system: a near-white canvas, charcoal reading text, and a repeated indigo `#5356ee` action/link value. Averta is loaded from Mercari’s own web-assets domain throughout all three routes. The observed experience splits into three source domains—a public marketplace home, a corporate-marketing about page, and a brand-directory page—so their shared typography and controls are useful public-web evidence but not proof of an authenticated buying, selling, payment, or mobile-app system. Mercari’s published marketplace principles connect the service to circulation and a safe, trustworthy, humane marketplace; its public guidelines express that operationally as neighborly, safe, and legal behavior. [Listing guide](https://www.mercari.com/us/help_center/topics/listing/guides/creating-a-listing/) · [Marketplace principles](https://pj.mercari.com/principles/marketplace-principles-and-history_EN.pdf)
65
115
 
66
116
  **Key Characteristics:**
67
- - **681 semantic CSS custom properties** exposed on `:root` — the public design system surface
68
- - **Mercari Red** (`#ff333f`) as the `attention` semantic — used for badges, error/danger states, sale prices, the brand mark
69
- - Japanese-first font stack: `Helvetica Neue → Arial → Hiragino Kaku Gothic ProN Custom → Hiragino Sans Custom → Meiryo Custom`
70
- - Fixed `4px border-radius` on buttons and cards — sharp, commerce-functional
71
- - Weight 700 for primary CTAs; weight 400 for body and secondary controls
72
- - Three-tier color naming: `alias-color-{property}-{role}-{state}` (e.g., `--alias-color-background-attention-default`)
73
- - 1440px max page width with `--grid-layout-gutter: 24px` and `--grid-layout-page-padding-horizontal: 36px`
74
- - 4dp spacing micro-scale (`--bnfXaU: 6px`, `--exLgvR: 8px`, `--fwPfWM: 8px`, etc.) with named alias tokens
75
- - High-density product grid with circular brand thumbnails (`border-radius: 50%`) for category navigation
76
- - Multi-tier z-index system: dialog 1400, modal 1400, snackbar 1500, tooltip 1600
77
-
78
- ## 2. Color Palette & Roles
79
-
80
- All values verified live from `:root` CSS custom properties on `jp.mercari.com`.
81
-
82
- ### Brand / Attention (the Mercari Red family)
83
- - **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.
84
- - **Red Highlight** (`#ff6574`): `--alias-color-background-attention-highlight`, `--alias-color-border-attention-highlight`. Lighter variant for hover states.
85
- - **Red Active** (`#e32b36`): `--alias-color-background-attention-active`, `--alias-color-border-attention-active`. Pressed state.
86
- - **Red Thin** (`#fdf1f3`): `--alias-color-background-attentionThin-default`. Very light pink for subtle background emphasis (e.g., error message bg).
87
- - **Red Thin Highlight** (`#ffdcdf`): `--alias-color-background-attentionThin-highlight`.
88
-
89
- ### Accent (Mercari Blue)
90
- - **Accent Blue** (`#0095ee`): `--alias-color-background-accent-default`, `--alias-color-text-accent-default`, `--alias-color-icon-accent-default`. Links, info badges, accent CTAs.
91
- - **Accent Blue Highlight** (`#63c5ff`): `--alias-color-background-accent-highlight`.
92
- - **Accent Blue Active** (`#0073cc`): `--alias-color-background-accent-active`, `--alias-color-text-accent-active`.
93
- - **Link Default** (`#0073cc`): `--alias-color-text-link-default`, `--alias-color-icon-link-default`.
94
- - **Link Highlight** (`#30b2ff`): `--alias-color-text-link-highlight`.
95
- - **Link Active** (`#0056ab`): `--alias-color-text-link-active`.
96
- - **Accent Thin** (`#e8f8ff`): `--alias-color-background-accentThin-default`. Light blue notification bg.
97
-
98
- ### Success
99
- - **Success Green** (`#0aa466`): `--alias-color-text-success-default`, `--alias-color-icon-success-default`, `--alias-color-border-success-default`.
100
- - **Success Highlight** (`#0fbf67`): `--alias-color-text-success-highlight`, `--alias-color-icon-success-highlight`.
101
- - **Success Active** (`#078962`): `--alias-color-text-success-active`, `--alias-color-icon-success-active`.
102
- - **Success Thin** (`#e4ffec`): `--alias-color-background-success-default`.
103
- - **Success Thin Highlight** (`#cdfbd2`): `--alias-color-background-success-highlight`.
104
-
105
- ### Decorative (Yellow)
106
- - **Decorative Yellow** (`#ffb818`): `--alias-color-icon-decorativeYellow-default`. Reviews, ratings, premium markers.
107
- - **Decorative Yellow Highlight** (`#ffdc74`): Lighter yellow for hover.
108
- - **Decorative Yellow Active** (`#db9611`): Darker amber for pressed.
109
-
110
- ### Text (5-tier scale)
111
- - **Primary** (`#333333`): `--alias-color-text-primary-default`. Default body text and headlines.
112
- - **Primary Highlight** (`#999999`): `--alias-color-text-primary-highlight`.
113
- - **Primary Active** (`#222222`): `--alias-color-text-primary-active`.
114
- - **Secondary** (`#666666`): `--alias-color-text-secondary-default`. Captions, metadata.
115
- - **Secondary Highlight** (`#999999`): `--alias-color-text-secondary-highlight`.
116
- - **Secondary Active** (`#4c4c4c`): `--alias-color-text-secondary-active`.
117
- - **Disabled** (`#cccccc`): `--alias-color-text-disabled-default`.
118
- - **Placeholder** (`#999999`): `--alias-color-text-placeholder-default`.
119
- - **Inverse** (`#ffffff`): `--alias-color-text-inverse-default`. White text on dark surfaces.
120
-
121
- ### Background / Surface (5-tier scale)
122
- - **Primary** (`#ffffff`): `--alias-color-background-primary-default`. Default page bg.
123
- - **Primary Active** (`#f5f5f5`): `--alias-color-background-primary-active`. Pressed/hover state for white-bg controls.
124
- - **Primary Highlight** (`#f5f5f5`): `--alias-color-background-primary-highlight`.
125
- - **Secondary** (`#f5f5f5`): `--alias-color-background-secondary-default`. Grouped section bg.
126
- - **Secondary Highlight** (`#e5e5e5`): `--alias-color-background-secondary-highlight`.
127
- - **Tertiary** (`#333333`): `--alias-color-background-tertiary-default`. Dark surfaces (e.g., snackbar contrast).
128
- - **Disabled** (`#cccccc`): `--alias-color-background-disabled-default`.
129
-
130
- ### Border / Separator
131
- - **Primary** (`#cccccc`): `--alias-color-border-primary-default`. Standard component border.
132
- - **Primary Highlight** (`#e5e5e5`): `--alias-color-border-primary-highlight`.
133
- - **Primary Active** (`#999999`): `--alias-color-border-primary-active`.
134
- - **Secondary** (`#333333`): `--alias-color-border-secondary-default`. Strong dividers.
135
- - **Disabled** (`#cccccc`): `--alias-color-border-disabled-default`.
136
-
137
- ### Overlay (modal backdrops)
138
- - **Weak** (`rgba(34,34,34,0.2)`): `--alias-color-overlay-weak`.
139
- - **Middle** (`rgba(34,34,34,0.4)`): `--alias-color-overlay-middle`.
140
- - **Mid Strong** (`rgba(34,34,34,0.6)`): `--alias-color-overlay-midStrong`.
141
- - **Strong** (`rgba(34,34,34,0.8)`): `--alias-color-overlay-strong`.
142
- - **Inverse Weak** (`rgba(255,255,255,0.2)`): `--alias-color-overlay-inverseWeak`. White overlay on dark surface.
143
-
144
- ### Icon (separate role from text — important for accessibility)
145
- - **Primary** (`#333333`): `--alias-color-icon-primary-default`.
146
- - **Secondary** (`#cccccc`): `--alias-color-icon-secondary-default`.
147
- - **Tertiary** (`#666666`): `--alias-color-icon-tertiary-default`.
148
- - **Inverse** (`#ffffff`): `--alias-color-icon-inverse-default`.
149
-
150
- ### System (static)
151
- - **Static White** (`#ffffff`): `--alias-color-system-staticWhite-default`.
152
- - **Static Black** (`#000000`): `--alias-color-system-staticBlack-default`.
153
- - **Static Clear** (`rgba(255,255,255,0)`): `--alias-color-system-staticClear-default`.
154
-
155
- ## 3. Typography Rules
156
-
157
- ### Font Stack (verified live)
158
- ```
159
- "Helvetica Neue", Arial, "Hiragino Kaku Gothic ProN Custom", "Hiragino Sans Custom", "Meiryo Custom", sans-serif
160
- ```
161
117
 
162
- For non-Japanese locales the secondary stack adds Traditional Chinese support:
163
- ```
164
- Helvetica Neue, Arial, "PingFang TC Custom", "Noto Sans TC Custom", "Microsoft JhengHei", "Hiragino Kaku Gothic ProN Custom", "Hiragino Sans Custom", "Meiryo Custom", sans-serif
165
- ```
118
+ - Loaded **Averta** across the three supplied public US routes, with Mercari-hosted font sources
119
+ - Repeated public action/link value `#5356ee`; it is an observed public-web value, not an asserted global brand token
120
+ - Near-white canvas with `#222222` foreground and `#6b6b6b` muted text
121
+ - Small `4px` action corners, `8px` image corners, and isolated circular icon controls
122
+ - Public marketplace, corporate marketing, and brand-directory chrome kept as separate evidence domains
123
+ - No authenticated marketplace-flow, Japanese-product, responsive, or app-system claims in this update
166
124
 
167
- The "Custom" suffix indicates Mercari runs optically-tuned variants of these system fonts in production — same families, adjusted spacing for marketplace UI density.
168
-
169
- ### Weights
170
- - **700**: Primary CTAs, prices, badges, "Shop Now" hero CTAs, language toggles.
171
- - **400**: Default body, login/signup buttons, navigation links, secondary CTAs.
172
-
173
- 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.
174
-
175
- ### Size Scale
176
- - **Base body**: `15px` (verified `bodySize`)
177
- - **Heading scale** is application-defined (homepage uses `15-20px` for H1/H2 with weight 700)
178
- - Mobile sizes step down via `--typography-*-font-size-mobile` tokens
125
+ ## 2. Color Palette & Roles
179
126
 
180
- ### Conventions
181
- - **No letter-spacing tweaks** — system defaults trusted.
182
- - **Default line-height ~1.4** (estimated from rendered metrics).
183
- - **Uppercase reserved for the "MERCARI" wordmark only.**
127
+ ### Observed public surfaces
184
128
 
185
- ## 4. Component Stylings
129
+ - **Public action/link** (`#5356ee`): repeated text and border value on the marketplace home, corporate-marketing page, and brand directory. It appears as the fill of the observed marketing skip/sell controls and as text on public links.
130
+ - **Canvas** (`#ffffff`): observed on the marketplace sell action and repeated public surface/background samples.
131
+ - **Foreground** (`#222222`): repeated public text value, including the marketplace sell action and search field.
132
+ - **Muted text** (`#6b6b6b`): observed in compact marketplace navigation/footer text.
186
133
 
187
- ### Buttons (verified across variants)
188
- **Primary attention CTA (red)**:
189
- - bg `#ff333f`, text `#ffffff`, `border-radius: 4px`, `padding: 11px 15px`, `font-weight: 700`
134
+ ### Boundary
190
135
 
191
- **Accent CTA (blue, e.g., "Shop Now")**:
192
- - bg `#ffffff`, text `#0095ee`, `border-radius: 4px`, `padding: 8px 12px`, `font-weight: 700`
136
+ The capture does not establish the earlier red/blue semantic palette, success/error colors, a universal filled CTA, or a global product color architecture. Values from third-party Truste consent controls (`#ecedf1`, `#dcdde0`) are excluded; their presence on the pages is not Mercari product evidence.
193
137
 
194
- **Login / Signup (secondary, neutral)**:
195
- - bg `#ffffff`, text `#333333`, `border-radius: 4px`, `padding: 8px`, `font-weight: 400`
138
+ ## 3. Typography Rules
196
139
 
197
- **Icon button**:
198
- - bg `transparent`, color `#000000` or `#333333`, `border-radius: 4px`, `padding: 4px`, `font-weight: 400`
140
+ ### Evidence classes
199
141
 
200
- **Language toggle**:
201
- - bg `transparent`, text `#333333`, `border-radius: 4px`, `padding: 8px 16px`, `font-weight: 700`
142
+ - **Live computed surface-use:** **Averta** is the computed family on 902 captured elements across the public marketplace, corporate-marketing, and brand-directory surfaces. The supplied FontFaceSet/source evidence includes Mercari-hosted light, regular, semibold, and bold WOFF/WOFF2 URLs, so Averta is the verified public-web UI family in this reference.
143
+ - **Official product-use:** no first-party announcement reviewed in this pass states that Averta is the native mobile-app or authenticated-marketplace family. This reference does not make that promotion.
144
+ - **Font-publisher context and license boundary:** Foundry5 lists Averta PE among its families and publishes a commercial EULA covering webfont `@font-face` use. That publisher material does not grant readers a Mercari font-file license or establish that its retail package is the exact CDN build. [Foundry5](https://foundryfivetype.com/) · [EULA](https://foundryfivetype.com/eulas/)
145
+ - **Declared-only:** `averta-bold` has a declared face in the supplied evidence but zero observed visible uses; it is not a separate token. `averta-semibold` and `averta-regular` are loaded aliases associated with the verified Averta family.
146
+ - **System/unresolved:** the capture’s Arial fallback declarations have no independent loaded/source corroboration and are not promoted. Do not substitute a system face and label it Averta.
202
147
 
203
- ### Cards (Product Card, Brand Card)
204
- - White bg (`--alias-color-background-primary-default`)
205
- - Subtle `1px solid #e0e0e0` border or no border (image-led cards)
206
- - Brand thumbnails: `border-radius: 50%` (circular) — distinctive Mercari pattern for category navigation
207
- - Image fills top, title + price below
208
- - Price emphasis: weight 700, often in `#ff333f` (Mercari Red) for sale prices
148
+ ### Observed hierarchy
209
149
 
210
- ### Search Input
211
- - Full-width bar at top of page, `bg: #f5f5f5` (secondary surface), `border-radius: 4px`, dark gray placeholder `#999999`
212
- - Camera search icon + magnifier icon inside the input on right
150
+ | Role | Size | Weight | Line height | Source boundary |
151
+ |------|------|--------|-------------|-----------------|
152
+ | Public body/link | 14px | 400 | 20px | Repeated marketplace and corporate public text |
153
+ | Corporate header action | 16px | 600 | 22px | Corporate-marketing route only |
154
+ | Corporate display | 48px | 600 | 57.6px | Corporate-marketing route only |
213
155
 
214
- ### Navigation (top header)
215
- - White sticky bg, height ~50-64px
216
- - Mercari wordmark + heart logo on left
217
- - Search bar centered
218
- - ログイン (Login), 会員登録 (Signup), notification bell, language toggle (日本語) on right
219
- - Tabs row below: おすすめ, マイリスト, ゲーム, etc. — horizontal scroll on mobile
156
+ The capture also contains isolated sizes; it does not establish a universal type scale beyond the roles above.
220
157
 
221
- ### Chips / Tabs
222
- - Underline-driven active indicator (red underline `#ff333f` for active tab)
223
- - Inactive tabs: text `#333333` weight 400
224
- - Active tab: text `#ff333f` (or `#222222`) weight 700 with `2px` red underline
158
+ ## 4. Component Stylings
225
159
 
226
- ### Snackbar / Toast
227
- - Dark bg (`--alias-color-background-tertiary-default: #333333`)
228
- - White text (`--alias-color-text-inverse-default: #ffffff`)
229
- - Z-index `--mer-z-index-snackbar: 1500`
160
+ ### Public marketplace home
161
+
162
+ **Sell action observed default**
163
+ - Background: #ffffff
164
+ - Text: #222222
165
+ - Radius: 4px
166
+ - Padding: 0px 16px
167
+ - Font: 14px / 600 / Averta
168
+ - Use: `home::[data-omd-capture="12"]`, a 32px-high public marketplace-home action only.
169
+
170
+ **Circular icon action — observed default**
171
+ - Background: transparent
172
+ - Text: #000000
173
+ - Radius: 50%
174
+ - Padding: 0px
175
+ - Font: 16px / 400 / Averta
176
+ - Use: `home::[data-omd-capture="6"]`, a 40px-high public-home icon control. Its semantic purpose is not named in the supplied artifact.
177
+
178
+ **Listing image shell — observed default**
179
+ - Background: transparent
180
+ - Radius: 8px
181
+ - Shadow: none
182
+ - Use: `home::[data-testid="AnonCardImage"]`, the image element of the anonymous public-home listing cards. No card container fill, metadata, price, or state specification was captured.
183
+
184
+ ### Corporate-marketing route
185
+
186
+ **Sell action — observed default**
187
+ - Background: #5356ee
188
+ - Text: #ffffff
189
+ - Radius: 4px
190
+ - Padding: 0px 16px
191
+ - Font: 14px / 600 / Averta
192
+ - Use: `surface-2::[data-omd-capture="11"]`, a 32px-high corporate-marketing action only. It is not a marketplace transaction CTA.
193
+
194
+ **Header text action — observed default**
195
+ - Background: transparent
196
+ - Text: #222222
197
+ - Radius: 0px
198
+ - Padding: 0px
199
+ - Font: 16px / 600 / Averta
200
+ - Hover: Text #5356ee at `surface-2::[data-omd-capture="7"]::state-hover`
201
+ - Pressed: Text #5356ee at `surface-2::[data-omd-capture="7"]::state-pressed`
202
+ - Use: `surface-2::[data-omd-capture="7"]`, a 22px-high corporate-marketing header control. The stated hover and pressed values are collector snapshots for this selector only.
203
+
204
+ **Skip link — observed default and focus snapshot**
205
+ - Background: #5356ee
206
+ - Text: #ffffff
207
+ - Radius: 4px
208
+ - Padding: 0px 16px
209
+ - Font: 16px / 600 / Averta
210
+ - Focus: identical visible values at `home::[data-omd-capture="3"]::state-focus`
211
+ - Use: `home::[data-omd-capture="3"]`, a 44px-high public-route accessibility control; it is not a standard primary action.
212
+
213
+ The collector recorded three dialog interactions, all triggered from Truste cookie-consent controls. Those third-party dialogs are deliberately excluded. No authenticated-marketplace button, checkout, input, product-card metadata, toast, modal, error, success, disabled, or mobile component variant has source-backed provenance in this update.
230
214
 
231
- ### Modal / Dialog
232
- - White surface, `border-radius: 8px`
233
- - Backdrop: `--alias-color-overlay-strong: rgba(34,34,34,0.8)`
234
- - Z-index `--mer-z-index-modal: 1400`
215
+ ---
216
+ **Verified:** 2026-07-13
217
+ **Tier 1 sources:** https://www.mercari.com/; https://www.mercari.com/about/; https://www.mercari.com/us/brand/; https://www.mercari.com/us/help_center/article/407/; https://www.mercari.com/us/help_center/topics/listing/guides/creating-a-listing/; https://pj.mercari.com/principles/marketplace-principles-and-history_EN.pdf; https://foundryfivetype.com/; https://foundryfivetype.com/eulas/
218
+ **Tier 2 sources:** https://getdesign.md/mercari (attempted; no usable record returned); https://styles.refero.design/?q=mercari (attempted; no usable record returned)
219
+ **Conflicts unresolved:** none
235
220
 
236
221
  ## 5. Layout Principles
237
222
 
238
- ### Page Structure
239
- - Max width: `1440px` (`--bqHLTv`, `--gIsGsE`)
240
- - 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`)
241
- - Grid gutter: `24px` (`--grid-layout-gutter`)
242
- - Inner inset: `16px` (`--grid-layout-inset`)
223
+ The supplied 1440×900 capture exposes public routes only. Measured spacing clusters at 4, 6, 12, 16, and 20px; the selector-backed actions above use 0px 16px or 6px 16px padding. No captured evidence establishes a product grid, page-width rule, breakpoint, mobile navigation, or authenticated listing layout, so those rules are omitted.
243
224
 
244
- ### Spacing Tokens (semantic aliases)
245
- Mercari uses Panda CSS-generated hashed token names alongside semantic aliases. Common values from CSS:
246
- - `4px`, `6px`, `8px`, `12px`, `16px`, `20px`, `24px`, `28px`, `32px`, `36px`, `40px`, `44px`, `48px`, `56px`, `64px`, `80px`, `96px`, `128px`, `164px`
225
+ ## 6. Depth & Elevation
247
226
 
248
- This is a 4dp baseline scale extended with named tokens.
227
+ The selector-backed public controls and listing-image shell have `box-shadow: none`. The evidence does not establish a card elevation, menu, sheet, modal, tooltip, or z-index scale. The only captured dialogs belong to third-party cookie consent and are excluded from Mercari depth guidance.
249
228
 
250
- ### Density
251
- 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.
229
+ ## 7. Do's and Don'ts
252
230
 
253
- ## 6. Depth & Elevation
231
+ ### Do
254
232
 
255
- Mercari has explicit shadow tokens for floating UI:
256
-
257
- - **Card lift** (subtle): `0px 2px 4px 0px rgba(0,0,0,.2)` (`--ljPKsT`)
258
- - **Tooltip / popover**: `0px 4px 8px 0px rgba(0,0,0,.2)` (`--coocrY`)
259
- - **Modal / dropdown**: `0px 8px 10px 0px rgba(0,0,0,.2)` (`--jcKRRc`)
260
- - **Strong overlay**: `0px 0px 16px 0px rgba(0,0,0,.2)` (`--gQVqIQ`)
261
-
262
- ### Z-Index Hierarchy (explicit named tokens)
263
- - Menu: `1100` (`--mer-z-index-menu`)
264
- - Navigation top: `1200` (`--mer-z-index-navigation-top`)
265
- - Navigation bottom: `1200` (`--mer-z-index-navigation-bottom`)
266
- - Autocomplete: `1300` (`--mer-z-index-autocomplete`)
267
- - Dialog: `1400` (`--mer-z-index-dialog`)
268
- - Modal: `1400` (`--mer-z-index-modal`)
269
- - Side sheet: `1400` (`--mer-z-index-side-sheet`)
270
- - Information popup: `1400` (`--mer-z-index-information-popup`)
271
- - Action sheet: `1400` (`--mer-z-index-action-sheet`)
272
- - Snackbar: `1500` (`--mer-z-index-snackbar`)
273
- - Tooltip: `1600` (`--mer-z-index-tooltip`)
274
-
275
- ### Animation
276
- - Easing curves: `cubic-bezier(0.65, 0, 0.35, 1)` (sheets), `cubic-bezier(0.33, 1, 0.68, 1)` (snackbars/dialogs)
277
- - Standard duration: `0.25s`
278
- - Loading spinner: `1.25s` 8-step rotation
233
+ - Use Averta only where the verified family can be loaded from an appropriately licensed source.
234
+ - Keep `#5356ee` scoped to the observed public-web action/link contexts, rather than treating it as a complete product palette.
235
+ - Retain source-domain provenance when using the public-home, corporate-marketing, or brand-directory observations.
236
+ - Use the 8px radius only for the observed listing image shell, not as a general card rule.
279
237
 
280
- ## 7. Do's and Don'ts
238
+ ### Don't
281
239
 
282
- - **DO** use the `--alias-color-*` semantic tokens. The 681 variables cover virtually every UI surface never hardcode hex values when an alias exists.
283
- - **DON'T** invent new color values. Mercari's palette is exhaustive; if you can't find an alias, use the closest one.
284
- - **DO** reserve **Mercari Red** (`#ff333f`) for the `attention` semantic sale prices, danger actions, the brand mark, error states.
285
- - **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.
286
- - **DO** use weight 700 for primary CTAs and prices. Weight 400 for navigation, secondary actions, body.
287
- - **DON'T** use weight 500 or 600 — they're not part of Mercari's typography rhythm.
288
- - **DO** keep `border-radius: 4px` on buttons and cards. Mercari's commerce voice is sharp and functional.
289
- - **DON'T** use pill-shaped or large-radius buttons — that breaks the marketplace density aesthetic.
290
- - **DO** apply circular thumbnails (`border-radius: 50%`) to brand/category icons in navigation. It's a distinctive Mercari pattern.
291
- - **DON'T** use shadows on flat product cards — let the white card on `#f5f5f5` secondary bg provide separation.
292
- - **DO** use the locale-aware font stack with Hiragino/Meiryo "Custom" variants. The optical tuning matters for Japanese readability.
293
- - **DON'T** load custom web fonts. Mercari's audience is mobile-first across slow connections; system fonts respect that.
294
- - **DO** use the explicit named z-index tokens (`--mer-z-index-*`) — Mercari's stacking order is deliberate.
295
- - **DON'T** use arbitrary z-index values like `9999` — that breaks the layered system.
240
+ - Do not revive the former Japanese semantic-red system, JP typography stack, or token inventory from a different capture.
241
+ - Do not reuse the corporate-marketing sell action as a checkout, payment, listing-submit, or mobile-app CTA.
242
+ - Do not carry Truste cookie-consent controls or dialogs into a Mercari component system.
243
+ - Do not invent responsive, error, success, disabled, motion, or authenticated-marketplace variants.
296
244
 
297
245
  ## 8. Responsive Behavior
298
246
 
299
- ### Breakpoints (inferred from `--typography-*-font-size-mobile` tokens and `--vbMobileBoundaryWidth`-style patterns)
300
- | Width | Behavior |
301
- |---|---|
302
- | Desktop `>1440px` | Centered max-width container, full grid |
303
- | Desktop `1024–1440px` | 6-column product grid, full nav |
304
- | Tablet `768–1024px` | 4-column product grid, condensed nav |
305
- | Mobile `<768px` | 2-column grid, hamburger nav, sticky bottom navigation |
306
-
307
- ### Touch & Mobile
308
- - Mobile bottom navigation: tab bar with icon + label
309
- - Form heights: small `36px`, medium ~`48px`, large ~`56px` (estimated from spacing tokens)
310
- - Touch targets: minimum `44px` per Apple HIG conventions
311
-
312
- ### Image Behavior
313
- - Product images: square aspect ratio, `4px` corner radius (matches button/card scheme)
314
- - Brand thumbnails: circular (`50%` radius)
315
- - Lazy-load via Next.js Image equivalent
316
- - Placeholder skeleton uses `--color-shimmer-bg` / `--color-shimmer-fg` pattern
247
+ Only a 1440×900 viewport was supplied. No mobile viewport, breakpoint, layout transition, touch-target policy, or safe-area behavior was observed. Responsive behavior is therefore not specified.
317
248
 
318
249
  ## 9. Agent Prompt Guide
319
250
 
320
- ### Quick Color Reference
321
- - **Mercari Red** (attention, sale, brand): `#ff333f` (`--alias-color-background-attention-default`)
322
- - Accent Blue (links, info): `#0095ee`
323
- - Success Green: `#0aa466`
324
- - Decorative Yellow (ratings): `#ffb818`
325
- - Primary text: `#333333`
326
- - Secondary text: `#666666`
327
- - Page bg: `#ffffff`
328
- - Secondary bg: `#f5f5f5`
329
- - Border default: `#cccccc`
330
- - Inverse text: `#ffffff` (on dark surfaces)
331
-
332
- ### Example Component Prompts
333
- - "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)."
334
- - "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."
335
- - "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."
336
- - "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`."
337
- - "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."
338
-
339
- ### Iteration Guide
340
- 1. **Always reference `--alias-color-*` tokens, not raw hex**. Mercari's 681 vars are the canonical source.
341
- 2. **Mercari Red (`#ff333f`) is the `attention` role** — destructive, sale-emphasis, brand mark. Not a default primary.
342
- 3. **`border-radius: 4px`** is the workhorse. Cards, buttons, badges. Brand thumbnails get `50%` (circular).
343
- 4. **Weight 700 for prices and primary CTAs**, weight 400 for everything else. No middle weights.
344
- 5. **Use the locale-aware font stack with Hiragino/Meiryo "Custom" variants**. Optical tuning matters.
345
- 6. **Z-index uses named tokens** (`--mer-z-index-*`) — never arbitrary numbers.
346
- 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`.
347
- 8. **Surface contrast** (`#ffffff` cards on `#f5f5f5` page bg) handles separation — minimal shadow needed on flat layouts.
348
- 9. **Body text `#333333`, secondary `#666666`, tertiary `#999999`** — three-tier text hierarchy across the entire system.
349
- 10. **Page padding 36px horizontal, 40px top, 64px bottom**, with `24px` gutter — the layout grid is explicit.
350
-
351
- ---
251
+ For a public US Mercari web concept only, use a near-white canvas, `#222222` reading text, `#5356ee` as the observed action/link color, and Averta when it can actually load. Keep a compact 4px action radius and an 8px listing-image radius. Do not generate a mobile marketplace flow, checkout, payment, seller workflow, status system, or Japanese-product design from this reference; the supplied evidence does not establish them.
352
252
 
353
253
  ## 10. Voice & Tone
354
254
 
355
- Mercari's voice is **pragmatic, transparent, and functionally-warm** — the voice of a trust infrastructure, not a lifestyle brand. Where LINE sells belonging ("Life on LINE") and where Apple sells aspiration, Mercari sells **circulation**: moving value from someone who no longer needs it to someone who does. The copy reflects that action verbs, concrete amounts, shipping logistics, and a Japanese-origin register that favors politeness without ceremony. The "Move Fast" value is balanced by "Safe Rollout" — safety copy is direct ("ID verified", "payment held until delivery"), never reassurance-only ("don't worry!").
255
+ Mercaris reviewed public guidance is neighborly, practical, and safety-conscious. The marketplace guidelines address buyers and sellers as real people, ask them to represent items accurately, and structure safety/legal rules in plain language. The listing guide is similarly procedural: photos, description, price, then shipping. [Marketplace guidelines](https://www.mercari.com/us/help_center/article/407/) · [Listing guide](https://www.mercari.com/us/help_center/topics/listing/guides/creating-a-listing/)
356
256
 
357
- | Context | Tone |
358
- |---|---|
359
- | Headlines | Declarative about value and circulation. "Sell what you don't need. Buy what someone didn't." No superlatives, no "revolutionary marketplace". |
360
- | Product CTAs | Imperative verb + noun ("List item", "Ship now", "Request refund"). Plain, never clever. |
361
- | Listings copy | Matter-of-fact. The condition labels (`New`, `Like New`, `Good`) carry the judgment; subjective adjectives like "amazing" or "must-have" are banned from platform chrome. |
362
- | Error messages | In Japanese UI, proper 丁寧語 (teineigo) — blameless and concrete. In English, direct and action-oriented ("Upload failed. Tap to retry."). |
363
- | Trust / safety copy | Explicit rather than reassuring. *"Payment held until buyer confirms receipt"* beats *"Secure and trusted"*. |
364
- | Engineering / culture content | Professional and retrospective; documents failures openly ("Lessons from…", "Behind the Scenes of…") — in line with the "Go Bold" + document-learnings value. |
365
- | Onboarding | Functional orientation first — *what you can buy and sell, how fees work, how shipping is handled* — not aspirational framing. |
366
- | Push notifications | Transactional specificity — item title + action ("Your listing sold: iPhone 14 Pro"). Never promotional spam in the primary notification surface. |
257
+ | Context | Observed direction |
258
+ |---------|--------------------|
259
+ | Marketplace guidance | Address participants directly and concretely. |
260
+ | Listing assistance | Sequence the next practical action without hype. |
261
+ | Safety policy | Name the boundary and the reason for it plainly. |
367
262
 
368
- **Forbidden phrases.** "Revolutionary", "game-changer", "world's best", "amazing deals". In Japanese UI: avoid カタカナ tech-marketing language (イノベーティブ, ディスラプティブ). Generic hype emoji (🔥 ✨ 💯 🚀) on listings or system copy — emoji is reserved for user-generated message content between buyer and seller, not for platform voice.
263
+ Voice samples are quoted or closely paraphrased from the cited public pages; they are not an authenticated-product copy specification.
369
264
 
370
- **Representative voice samples.** Where a verified live string exists on Mercari's public surfaces it is cited with a source marker; where no public surface carries the string (logged-in-only copy, error states), the sample is marked *illustrative* and a production team should replace it with Mercari's real live copy before shipping.
371
-
372
- - Primary JP nav label (verified): *"出品"* <!-- verified: jp.mercari.com bottom-nav CTA, 2026-04 --> — two-character imperative, the canonical "List item" tap target across the app.
373
- - JP footer safety banner (verified): *"メルカリあんしん・あんぜん宣言!"* <!-- verified: jp.mercari.com footer, 2026-04 --> — exclamation-ending, commits to a publicly-listed safety initiative rather than generic "trust".
374
- - EN product description (verified): *"A C2C marketplace where individuals can enjoy buying and selling items. Through our unique payment deposit system and our use of AI to monitor for fraud, anyone can enjoy safe and secure transactions."* <!-- verified: about.mercari.com/en, 2026-04 --> — tone exemplar: concrete mechanisms (*payment deposit system*, *AI to monitor for fraud*) over vague reassurance.
375
- - Empty state (new user, no listings): *"Nothing listed yet. Take a photo and list your first item."* <!-- illustrative: not verified as live Mercari copy -->
376
- - Error (photo upload failed): *"Upload failed. Tap to retry."* <!-- illustrative: not verified as live Mercari copy -->
377
- - Success (item sold): *"Sold to <buyer>. Package it and print the shipping label."* <!-- illustrative: not verified as live Mercari copy -->
265
+ - “Keep it neighborly.” public marketplace guideline.
266
+ - “Keep it safe.” — public marketplace guideline.
267
+ - “Just take some photos, add a description, and set the price.” public listing guide.
378
268
 
379
269
  ## 11. Brand Narrative
380
270
 
381
- Mercari was founded **February 2013** in Tokyo by **Shintaro Yamada (山田進太郎)** born in Seto, Aichi Prefecture; **Waseda University** mathematics graduate; previously founded the gaming company **Unoh** in 2001 which was **acquired by Zynga 2010** ([Shintaro Yamada — Wikipedia](https://en.wikipedia.org/wiki/Shintaro_Yamada_(businessman))). Yamada left Rakuten Auctions and travelled the world asking one question — *"What can I do to help society thrive with the finite resources we have?"* ([about.mercari.com](https://about.mercari.com/en/about/)). That question became the company's founding premise: **circulate all forms of value to unleash the potential in all people**. The answer took the shape of a smartphone-first C2C marketplace that made listing an item fast enough (3 minutes, 3 photos) to be worth doing for a single pair of used jeans.
382
-
383
- From that origin Mercari grew into **Japan's largest C2C marketplace** (50M+ downloads, 350K daily listings <!-- source: base DESIGN.md §1, carried from 2026-04-17 extraction, not re-verified -->), expanded to the **US in 2014** and **UK in 2016**, became **Japan's first tech unicorn (>$1B) in 2016**, then completed a **Tokyo Stock Exchange IPO June 2018** raising over **$1.2B** — making Yamada **Japan's newest billionaire** ([The Japan Times — Mercari IPO 2018](https://www.japantimes.co.jp/news/2018/06/11/business/corporate-business/mercaris-top-range-ipo-set-make-founder-shintaro-yamada-new-japanese-billionaire/)). **U.S. operations achieved profitability for the first time fiscal-year ending June 30 2025**. Spun up adjacent divisions: **Merpay** (2019, payments — *"Building trust for a seamless society"*), **Mercoin** (2023, crypto — *"Circulate your value, anywhere and everywhere"*). The consistent thread across divisions is the word *circulate* — not *sell*, not *exchange*, not *marketplace*. Every product framing returns to that verb.
271
+ Mercari’s current marketplace-principles material states its mission as circulating forms of value to unleash people’s potential, and frames the marketplace as needing to remain diverse, free, safe, trustworthy, and humane. The same material connects the marketplace to the reuse of dormant value and a circular economy. On the public US product side, the listing guide turns that broad purpose into a practical peer-to-peer exchange: people photograph an item, describe it, price it, and choose shipping. [Marketplace principles](https://pj.mercari.com/principles/marketplace-principles-and-history_EN.pdf) · [Listing guide](https://www.mercari.com/us/help_center/topics/listing/guides/creating-a-listing/)
384
272
 
385
- What Mercari refuses: the **auction-complexity** aesthetic of eBay (bidding clocks, snipe warnings); the **spam-forward** commerce chrome of flash-sale marketplaces (flashing banners, permanent 50%-off overlays); the **corporate-blue sterility** of legacy Japanese e-commerce (Rakuten Ichiba, Yahoo! JAPAN Auctions). What it embraces: a **semantic-token-first** design system (681 `:root` variables — see §2), Mercari Red as a **finite attention signal** (never decorative), mobile-first listing flow, and explicit trust infrastructure (ID verification, escrow, ratings) surfaced directly in the UI rather than hidden in settings.
273
+ This reference does not add founding dates, expansion history, or claims about the Japanese app because they were not re-established by the sources reviewed in this update.
386
274
 
387
275
  ## 12. Principles
388
276
 
389
- 1. **Circulate, don't just sell.** Product framing uses the verb *circulate*; listings flow from one user to another, not from a retailer to a consumer. *UI implication:* both sides of a transaction are peers no "seller dashboard" / "customer account" asymmetry. The same person is often both on the same day, and the interface reflects that symmetry.
390
-
391
- 2. **Semantic tokens are the source of truth.** All 681 `:root` CSS custom properties (`--alias-color-background-attention-default` and friends) resolve through the token layer before any pixel is painted. *UI implication:* components never hardcode hex values. A theme swap (dark mode, regional variant) is a `:root` redefinition, not a UI refactor.
392
-
393
- 3. **Mercari Red is the `attention` role, not a primary accent.** `#ff333f` signals danger, sale emphasis, and the brand mark — nothing else. Using it as a decorative accent on buttons, illustrations, or empty-state icons dilutes its function as a warning signal. *UI implication:* primary CTA surfaces use neutral dark text on white, not red; red is reserved for destructive actions and sale-price emphasis.
277
+ 1. **Circulate value through a marketplace.** Mercari’s official principles connect exchanges of dormant value with a circular economy. *UI implication:* make the transaction task and its next step legible; do not introduce decorative claims in place of item information.
394
278
 
395
- 4. **4px radius is the commerce signature.** Sharp 4px corners read as "browse the catalog efficiently" LINE's 50px pills would make Mercari feel social when it is transactional. *UI implication:* never round corners to match a reference aesthetic ("softer", "friendlier"); the 4px is intentional functional rigor.
279
+ 2. **Keep peer-to-peer exchange neighborly.** The marketplace guidelines say buyers and sellers are real people and ask participants to represent themselves and their items accurately. *UI implication:* favour direct labels, truthful item details, and understandable conditions over ambiguous promotional language.
396
280
 
397
- 5. **Two weights: 700 and 400. Nothing in between.** Price, badge, primary CTA, and section headings use 700. Body, secondary labels, and helper text use 400. Middle weights (500, 600) are absent — they blur the hierarchy between scan-value (price, button) and read-value (description). *UI implication:* disable imported fonts' "medium" weight; design tokens expose only two.
398
-
399
- 6. **Hiragino / Meiryo "Custom" variants are first-class, not fallbacks.** The optically-tuned Japanese faces are the primary reading surface for 50M+ Japanese users; they lead the stack, not end it. *UI implication:* never specify `-apple-system` or `system-ui` alone — the fallback chain must name the Japanese optical variants explicitly ([verified at runtime on jp.mercari.com](https://jp.mercari.com)).
400
-
401
- 7. **"Move Fast" pairs with "Safe Rollout."** The engineering culture (*Go Bold, All for One, Be a Pro, Move Fast* — [careers.mercari.com/mission-values](https://careers.mercari.com/mission-values/)) is explicitly paired with documented-failure practice. Blog titles like "Safe Chunked Execution" and "Behind the Scenes" are intentional; failures are surfaced, not buried. *UI implication:* error and recovery states are visible on the failing element (*"Upload failed. Tap to retry"*), not hidden behind a modal or a support ticket.
402
-
403
- 8. **Disagree & commit.** Once decisions are made — after debate — the team commits fully ([mission-values](https://careers.mercari.com/mission-values/)). *UI implication:* there is no "legacy styles" escape hatch in the design system. Deprecated tokens are removed on a schedule, not left for "gradual migration forever."
281
+ 3. **Safety is a condition of marketplace freedom.** Mercari’s principles treat a safe environment as necessary for free transactions, while the US guidelines direct users to keep communication in the app. *UI implication:* safety boundaries should be clear and contextual, not hidden in decorative reassurance.
404
282
 
405
283
  ## 13. Personas
406
284
 
407
- *Personas are fictional archetypes informed by publicly described Mercari user segments and mission documentation; not individual people.*
408
-
409
- **Yuki Sato, 28, Tokyo.** Office worker who declutters every 2–3 weeks — a jacket, a manga set, a hand mixer. Lists in under 3 minutes during her evening commute and expects the "sold" notification to tell her exactly how to ship. Japanese-language-first; sub-¥20,000 items only, rarer collectibles still go to Yahoo! Auctions.
410
-
411
- **Takeshi Nakamura, 42, Osaka.** Secondhand-bookshop owner using Mercari as a **secondary retail channel** — photographs overstock at the shop, lists in the evening. A 1-star rating materially damages his shop's income, so he treats the platform's forced taxonomy (`Like New`, `Good`) as a feature that protects him from subjective disputes.
285
+ *The following are non-factual design archetypes derived only from the official marketplace’s buyer/seller framing; they are not demographic claims, user research, or representations of individual Mercari users.*
412
286
 
413
- **Sarah Kim, 19, Los Angeles.** Mercari US user since 2022; thrifts Y2K fashion and old consumer electronics. Never uses eBay ("too auction-y, too slow"); compares Mercari to Depop and picks Mercari for lower-budget finds, Depop for curated vintage.
287
+ **A person listing a shippable household item.** Needs a short, ordered path from photos to description, price, and shipping choice. Their exact device, location, frequency of use, and payment needs are not established here.
414
288
 
415
- **Hiroko Tanaka, 56, Kobe.** Retiree selling handmade knit goods supplemental income that Yahoo! Auctions' complexity never allowed. Depends on the ID-verification badge as social proof; buyers hesitate on higher-priced items without it. Her listings are spare 3 photos, 2 sentences, 1 honest condition label.
289
+ **A person assessing a listing.** Needs accurate item information and clear marketplace boundaries. Their browsing behavior, budget, and trust signals are not established here.
416
290
 
417
291
  ## 14. States
418
292
 
419
- *Copy strings below are **illustrative treatments** of Mercari's tone applied to each state, not verified live copy. A production team should replace them with Mercari's actual copy (observable via Playwright against jp.mercari.com's logged-in surfaces) before shipping.*
420
-
421
- | State | Treatment |
422
- |---|---|
423
- | **Empty (home, new user)** | White canvas (`--alias-color-background-primary-default`). One line of body copy (15px weight 400, `#333333`) explaining what Mercari does in the local register. One **4px-radius** `--alias-color-background-attention-default` (Mercari Red) CTA *"List your first item"*. No illustration — the category thumbnails below serve as visual orientation. |
424
- | **Empty (search results)** | Neutral gray (`#666666`) microcopy: *"No results for '<query>'. Try a broader keyword or browse categories below."* <!-- illustrative: not verified as live Mercari copy --> Suggested-category chips follow immediately. Never a "sorry" apology or emoji. |
425
- | **Loading (listing grid)** | Skeleton tiles at the exact final card dimensions (`--alias-color-background-secondary-default` `#f5f5f5` blocks, 4px radius). Shimmer pass ≤ 1.2s. Skeleton never shows placeholder text — only rectangles. |
426
- | **Loading (price / amount field)** | Currency-localized placeholder, never a number: `¥ -` for JP, `$ -` for US. Never `¥ 0` — zero reads as "this item is free." |
427
- | **Error (photo upload failed)** | Red icon (`--alias-color-icon-attention-default` `#ff333f`) attached to the failed photo slot. Inline text: *"Upload failed. Tap to retry."* Retry tap reattempts without full form resubmission. Never a blocking modal. |
428
- | **Error (network)** | Top banner in `--alias-color-background-tertiary-default` (`#333333`) with white text. One sentence + retry pill. Banner disappears silently when connectivity returns. |
429
- | **Error (listing rejected, policy violation)** | Modal is used here — this is not a transient error. Headline states the violation plainly (*"This item type isn't allowed"*), body links to the policy page, CTA is *"Edit listing"*. Never hide the policy reason behind a support ticket. |
430
- | **Success (listed)** | Bottom toast snackbar at `--mer-z-index-snackbar` (1500), `--alias-color-background-tertiary-default` (`#333333`) bg, white text, 3–4s auto-dismiss: *"Listed. View your item →"* — the link inside the toast goes to the listing. |
431
- | **Success (sold)** | Full-width banner at top of the listing-detail view using the success-green family (derived from `#0aa466`, not brand red — red is for attention, not celebration). Body: *"Sold to @buyer. Package within 3 days."* Primary CTA: *"Generate shipping label"* — the platform takes the user straight into the next step. |
432
- | **Skeleton** | `#f5f5f5` (`--alias-color-background-secondary-default`) at exact final dimensions. Never over the `price` field — that stays currency-placeholder. |
433
- | **Disabled** | Opacity applied to text and fill together. Disabled CTA keeps its 4px radius — never flattens or rounds to a different shape. |
293
+ No authenticated product workflow was captured. The supplied collector records only public-route selector snapshots and third-party cookie-consent dialogs; it does not establish Mercari empty, loading, error, success, skeleton, or disabled treatments. Do not manufacture those states from the colors or controls above.
434
294
 
435
295
  ## 15. Motion & Easing
436
296
 
437
- Mercari's motion vocabulary is **disciplined commerce motion**: fast feedback on interaction, measured confirmation on completion, **no spring or bounce**. This is deliberate. Spring motion reads as delight; commerce requires precision about amounts and states. LINE's `ease-sticker` overshoot would be wrong here — a Mercari user watching a purchase-confirmation animation should feel *confidence*, not *whimsy*.
438
-
439
- **Durations**:
440
-
441
- | Token | Value | Use |
442
- |---|---|---|
443
- | `motion-instant` | 0ms | Toggle commits, selection state |
444
- | `motion-fast` | 150ms | Button/card tap feedback, image thumbnail expand |
445
- | `motion-standard` | 250ms | Bottom sheet rise, snackbar enter/exit, dialog appear |
446
- | `motion-slow` | 400ms | Listing-submit success confirmation, payment complete |
447
- | `motion-page` | 300ms | In-app navigation push/pop |
448
-
449
- **Easings** (verified from live `:root` computed styles on `jp.mercari.com`):
450
-
451
- | Token | Curve | Use |
452
- |---|---|---|
453
- | `ease-standard` | `cubic-bezier(0.33, 1, 0.68, 1)` | Snackbars, dialogs, toasts — the everyday easing |
454
- | `ease-sheet` | `cubic-bezier(0.65, 0, 0.35, 1)` | Bottom sheet rise/dismiss — more deliberate, like a drawer |
455
- | `ease-exit` | `cubic-bezier(0.4, 0, 0.9, 1)` | Dismissals, cancellations |
456
-
457
- No `ease-bounce`, no `ease-overshoot`, no cubic-bezier with y-values > 1 or < 0 anywhere in the system. **Commerce has no spring.**
458
-
459
- **Signature motions.**
460
-
461
- 1. **Card tap feedback.** Listing cards scale `1.0` → `0.98` over `motion-fast` on press, returning to `1.0` on release. Subtle, thumb-oriented, feels tactile without bouncing.
462
- 2. **Bottom sheet rise (filters, sort, category picker).** Uses `ease-sheet` over `motion-standard`. The deliberate easing matches the Japanese-origin UX tradition of drawers sliding smoothly, not snapping into place.
463
- 3. **Favorite toggle.** Heart icon fills over `motion-fast` with a simple crossfade — no scaling pulse. The commit is the signal; no decorative reinforcement.
464
- 4. **Listing submit success.** Full-width success banner fades + slides down from top at `motion-slow` with `ease-standard`. No confetti, no illustration — the ship-now CTA that appears is the reward.
465
- 5. **Reduce motion.** Under `prefers-reduced-motion: reduce`, all `motion-*` tokens collapse to `motion-instant`. Sheets and modals appear via opacity only. The app remains fully functional; motion is never load-bearing for comprehension.
466
-
467
- <!--
468
- OmD v0.1 Sources — Philosophy Layer (sections 10–15)
469
-
470
- Extracted 2026-04-20 via omd:add-reference AUGMENT mode.
471
- Style reference: line/DESIGN.md (Asian / JP-origin matrix auto-pick).
472
-
473
- Direct verification via WebFetch (2026-04-20):
474
- - https://about.mercari.com/en/about/ — confirms the founding question ("What
475
- can I do to help society thrive with the finite resources we have?"), the
476
- group mission ("Circulate all forms of value to unleash the potential in all
477
- people"), and the four divisions (Mercari JP, Mercari US, Merpay, Mercoin)
478
- with their divisional missions.
479
- - https://careers.mercari.com/mission-values/ — confirms the four values
480
- ("Go Bold / All for One / Be a Pro / Move Fast") with taglines and example
481
- behaviors, and the four foundational mindsets (Sustainability; Inclusion &
482
- Diversity; Trust & Openness; Customer Perspective).
483
- - https://engineering.mercari.com/en/blog/ — confirms the engineering voice
484
- register as pragmatic and retrospective, with "Move Fast" culturally paired
485
- with "Safe Rollout" and documented failure.
486
-
487
- Base DESIGN.md (sections 1–9) is the source for all token-level claims: Mercari
488
- Red #ff333f, accent blue #0095ee, success green #0aa466, the 4px radius
489
- signature, the two-weight hierarchy (700/400), the 681 :root CSS custom
490
- properties with the --alias-color-{property}-{role}-{state} namespace, the
491
- JP-first font stack (Hiragino Kaku Gothic ProN Custom, Hiragino Sans Custom,
492
- Meiryo Custom), the z-index scale (1100–1600) via --mer-z-index-* tokens, and
493
- the easing curves cubic-bezier(0.33, 1, 0.68, 1) and cubic-bezier(0.65, 0, 0.35,
494
- 1) originally extracted from live :root inspection in _research.md.
495
-
496
- Not independently verified in this session but widely documented public facts:
497
- - Mercari founded 2013 in Tokyo by Shintaro Yamada (previously at Rakuten
498
- Auctions / Unoh).
499
- - US market launch 2014; Merpay launched 2019; Mercoin launched 2023.
500
- - "50M+ downloads, 350K daily listings" figures carried over from the base
501
- DESIGN.md §1, originally from the 2026-04-17 runtime extraction on
502
- jp.mercari.com; these are rounded public figures rather than independently
503
- re-verified in this augmentation pass.
504
- -->
505
-
506
- ---
507
-
508
- **Verified:** 2026-05-08 (omd:migrate run 35 — Apple-tier)
509
- **Tier 1 sources:** jp.mercari.com home + /search (live DOM via playwright — Primary **`#ff333f`** Mercari Red 4px / 11×15 / 45px / 15px·**700** BOLD; Outline `#fff` 4px / 36px / 14px·400 / `#333` Charcoal; **search filter chip** 18px / 4×8 / 36px / 14px·400; **category tab** 0px / 14px·700 active-state Red shift; **US promo accent** `#0095ee` Bright Blue cross-border-only).
510
- **Tier 2 sources:** styles.refero.design / getdesign.md — no record.
511
- **Tier 2 (Philosophy/founders/IPO):** Wikipedia (Mercari + Shintaro Yamada), Japan Times (2018-06 IPO Yamada billionaire), Bloomberg, BoF 500, Crunchbase, about.mercari.com.
512
- **Style ref:** `line` (JP East-Asian, retained).
513
- **Conflicts unresolved:** none. **Earlier addition:** filter pill 18px sub-tier + US-locale Bright Blue `#0095ee` cross-border accent were missing from prior pass.
514
-
297
+ No Mercari motion duration, easing curve, transition, or reduced-motion treatment was captured on the selector-backed public components. Motion guidance is intentionally absent pending product-surface evidence.