oh-my-design-cli 1.6.6 → 1.7.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 (230) hide show
  1. package/AGENTS.md +1 -1
  2. package/README.md +8 -8
  3. package/data/reference-fingerprints.json +1318 -10
  4. package/dist/bin/oh-my-design.js +1 -1
  5. package/dist/{install-skills-JNH66GOI.js → install-skills-YYHEC4CS.js} +5 -11
  6. package/dist/install-skills-YYHEC4CS.js.map +1 -0
  7. package/package.json +1 -1
  8. package/skills/claude-design/SKILL.md +7 -2
  9. package/web/references/11st/DESIGN.md +400 -0
  10. package/web/references/17live/DESIGN.md +43 -0
  11. package/web/references/29cm/DESIGN.md +41 -0
  12. package/web/references/91app/DESIGN.md +31 -0
  13. package/web/references/ably/DESIGN.md +54 -0
  14. package/web/references/airbnb/DESIGN.md +58 -0
  15. package/web/references/airtable/DESIGN.md +39 -0
  16. package/web/references/alipay/DESIGN.md +50 -0
  17. package/web/references/amazingtalker/DESIGN.md +434 -0
  18. package/web/references/appier/DESIGN.md +45 -0
  19. package/web/references/apple/DESIGN.md +47 -0
  20. package/web/references/baemin/DESIGN.md +142 -43
  21. package/web/references/banksalad/DESIGN.md +67 -0
  22. package/web/references/bilibili/DESIGN.md +45 -0
  23. package/web/references/bithumb/DESIGN.md +38 -0
  24. package/web/references/bmw/DESIGN.md +37 -0
  25. package/web/references/brandi/DESIGN.md +414 -0
  26. package/web/references/bunjang/DESIGN.md +47 -0
  27. package/web/references/cakeresume/DESIGN.md +29 -0
  28. package/web/references/cal/DESIGN.md +52 -0
  29. package/web/references/catchtable/DESIGN.md +79 -19
  30. package/web/references/cathay/DESIGN.md +432 -0
  31. package/web/references/channeltalk/DESIGN.md +48 -0
  32. package/web/references/class101/DESIGN.md +51 -0
  33. package/web/references/classting/DESIGN.md +41 -0
  34. package/web/references/classum/DESIGN.md +43 -0
  35. package/web/references/claude/DESIGN.md +157 -70
  36. package/web/references/clay/DESIGN.md +56 -0
  37. package/web/references/clickhouse/DESIGN.md +50 -0
  38. package/web/references/cloudflare/DESIGN.md +637 -0
  39. package/web/references/cohere/DESIGN.md +48 -0
  40. package/web/references/coinbase/DESIGN.md +139 -5
  41. package/web/references/coinone/DESIGN.md +39 -0
  42. package/web/references/composio/DESIGN.md +46 -0
  43. package/web/references/cookpad/DESIGN.md +37 -0
  44. package/web/references/coupang/DESIGN.md +57 -2
  45. package/web/references/cursor/DESIGN.md +44 -0
  46. package/web/references/dabang/DESIGN.md +57 -19
  47. package/web/references/dcard/DESIGN.md +57 -0
  48. package/web/references/dell/DESIGN.md +636 -0
  49. package/web/references/devsisters/DESIGN.md +29 -0
  50. package/web/references/discord/DESIGN.md +604 -0
  51. package/web/references/dji/DESIGN.md +39 -0
  52. package/web/references/drnow/DESIGN.md +52 -0
  53. package/web/references/duolingo/DESIGN.md +563 -0
  54. package/web/references/elevenlabs/DESIGN.md +39 -0
  55. package/web/references/expo/DESIGN.md +39 -0
  56. package/web/references/fastcampus/DESIGN.md +50 -0
  57. package/web/references/ferrari/DESIGN.md +47 -0
  58. package/web/references/figma/DESIGN.md +44 -0
  59. package/web/references/finda/DESIGN.md +413 -0
  60. package/web/references/flex/DESIGN.md +28 -0
  61. package/web/references/flo/DESIGN.md +43 -0
  62. package/web/references/framer/DESIGN.md +38 -0
  63. package/web/references/freee/DESIGN.md +48 -0
  64. package/web/references/fugle/DESIGN.md +41 -1
  65. package/web/references/gangnamunni/DESIGN.md +57 -1
  66. package/web/references/genie/DESIGN.md +415 -0
  67. package/web/references/github/DESIGN.md +727 -0
  68. package/web/references/gmarket/DESIGN.md +51 -0
  69. package/web/references/gogolook/DESIGN.md +25 -1
  70. package/web/references/gogoro/DESIGN.md +38 -0
  71. package/web/references/grip/DESIGN.md +39 -0
  72. package/web/references/hahow/DESIGN.md +26 -0
  73. package/web/references/hashicorp/DESIGN.md +42 -0
  74. package/web/references/hogangnono/DESIGN.md +41 -0
  75. package/web/references/hp/DESIGN.md +563 -0
  76. package/web/references/hyperconnect/DESIGN.md +393 -0
  77. package/web/references/hyundaicard/DESIGN.md +24 -0
  78. package/web/references/ibm/DESIGN.md +44 -0
  79. package/web/references/ichef/DESIGN.md +44 -0
  80. package/web/references/ikala/DESIGN.md +400 -0
  81. package/web/references/inflearn/DESIGN.md +38 -0
  82. package/web/references/intercom/DESIGN.md +38 -0
  83. package/web/references/jandi/DESIGN.md +382 -0
  84. package/web/references/jkopay/DESIGN.md +35 -1
  85. package/web/references/jobkorea/DESIGN.md +39 -0
  86. package/web/references/jumpit/DESIGN.md +37 -0
  87. package/web/references/kakao/DESIGN.md +64 -0
  88. package/web/references/kakaobank/DESIGN.md +55 -1
  89. package/web/references/kakaopay/DESIGN.md +59 -0
  90. package/web/references/kakaot/DESIGN.md +53 -0
  91. package/web/references/karrot/DESIGN.md +49 -0
  92. package/web/references/kbank/DESIGN.md +39 -0
  93. package/web/references/kdan/DESIGN.md +34 -1
  94. package/web/references/kintone/DESIGN.md +586 -0
  95. package/web/references/kkbox/DESIGN.md +22 -0
  96. package/web/references/kkday/DESIGN.md +47 -0
  97. package/web/references/kmong/DESIGN.md +427 -0
  98. package/web/references/krafton/DESIGN.md +37 -0
  99. package/web/references/kraken/DESIGN.md +44 -0
  100. package/web/references/krds/DESIGN.md +63 -0
  101. package/web/references/kream/DESIGN.md +32 -0
  102. package/web/references/kurly/DESIGN.md +38 -1
  103. package/web/references/laftel/DESIGN.md +40 -0
  104. package/web/references/lamborghini/DESIGN.md +54 -0
  105. package/web/references/layerx/DESIGN.md +615 -0
  106. package/web/references/lezhin/DESIGN.md +47 -0
  107. package/web/references/line/DESIGN.md +36 -0
  108. package/web/references/linear.app/DESIGN.md +182 -88
  109. package/web/references/loom/DESIGN.md +396 -0
  110. package/web/references/lovable/DESIGN.md +38 -0
  111. package/web/references/lunit/DESIGN.md +47 -19
  112. package/web/references/mastercard/DESIGN.md +587 -0
  113. package/web/references/meituan/DESIGN.md +42 -0
  114. package/web/references/melon/DESIGN.md +26 -0
  115. package/web/references/mercari/DESIGN.md +41 -0
  116. package/web/references/mercury/DESIGN.md +589 -0
  117. package/web/references/meta/DESIGN.md +615 -0
  118. package/web/references/millie/DESIGN.md +51 -0
  119. package/web/references/minimax/DESIGN.md +53 -0
  120. package/web/references/mintlify/DESIGN.md +45 -0
  121. package/web/references/miro/DESIGN.md +47 -0
  122. package/web/references/mistral.ai/DESIGN.md +37 -0
  123. package/web/references/momoshop/DESIGN.md +43 -0
  124. package/web/references/money-forward/DESIGN.md +42 -0
  125. package/web/references/mongodb/DESIGN.md +44 -0
  126. package/web/references/muji/DESIGN.md +605 -0
  127. package/web/references/musinsa/DESIGN.md +48 -0
  128. package/web/references/mustit/DESIGN.md +47 -1
  129. package/web/references/myrealtrip/DESIGN.md +49 -0
  130. package/web/references/naver/DESIGN.md +50 -1
  131. package/web/references/naverwebtoon/DESIGN.md +48 -0
  132. package/web/references/netflix/DESIGN.md +572 -0
  133. package/web/references/nexon/DESIGN.md +389 -0
  134. package/web/references/nhncloud/DESIGN.md +33 -0
  135. package/web/references/nike/DESIGN.md +588 -0
  136. package/web/references/note/DESIGN.md +28 -0
  137. package/web/references/notion/DESIGN.md +48 -0
  138. package/web/references/nvidia/DESIGN.md +50 -0
  139. package/web/references/ohouse/DESIGN.md +56 -0
  140. package/web/references/oliveyoung/DESIGN.md +47 -1
  141. package/web/references/ollama/DESIGN.md +40 -0
  142. package/web/references/openai/DESIGN.md +641 -0
  143. package/web/references/opencode.ai/DESIGN.md +37 -0
  144. package/web/references/payco/DESIGN.md +40 -0
  145. package/web/references/paypay/DESIGN.md +656 -0
  146. package/web/references/pchome/DESIGN.md +439 -0
  147. package/web/references/perplexity/DESIGN.md +546 -0
  148. package/web/references/piccollage/DESIGN.md +43 -0
  149. package/web/references/pinkoi/DESIGN.md +55 -0
  150. package/web/references/pinterest/DESIGN.md +44 -0
  151. package/web/references/pixiv/DESIGN.md +613 -0
  152. package/web/references/pixnet/DESIGN.md +430 -0
  153. package/web/references/posthog/DESIGN.md +50 -0
  154. package/web/references/publy/DESIGN.md +52 -0
  155. package/web/references/qanda/DESIGN.md +49 -1
  156. package/web/references/ragic/DESIGN.md +444 -0
  157. package/web/references/ramp/DESIGN.md +634 -0
  158. package/web/references/rayark/DESIGN.md +22 -0
  159. package/web/references/raycast/DESIGN.md +45 -0
  160. package/web/references/remember/DESIGN.md +44 -0
  161. package/web/references/renault/DESIGN.md +42 -0
  162. package/web/references/replicate/DESIGN.md +39 -0
  163. package/web/references/resend/DESIGN.md +44 -0
  164. package/web/references/retool/DESIGN.md +645 -0
  165. package/web/references/revolut/DESIGN.md +46 -0
  166. package/web/references/richart/DESIGN.md +465 -0
  167. package/web/references/ridi/DESIGN.md +47 -0
  168. package/web/references/riiid/DESIGN.md +32 -0
  169. package/web/references/robinhood/DESIGN.md +604 -0
  170. package/web/references/runwayml/DESIGN.md +45 -0
  171. package/web/references/sanity/DESIGN.md +50 -0
  172. package/web/references/sansan/DESIGN.md +631 -0
  173. package/web/references/sendbird/DESIGN.md +46 -0
  174. package/web/references/sentry/DESIGN.md +48 -0
  175. package/web/references/shinhancard/DESIGN.md +421 -0
  176. package/web/references/shopline/DESIGN.md +431 -0
  177. package/web/references/slack/DESIGN.md +635 -0
  178. package/web/references/smarthr/DESIGN.md +48 -0
  179. package/web/references/smartnews/DESIGN.md +29 -0
  180. package/web/references/socar/DESIGN.md +35 -0
  181. package/web/references/soomgo/DESIGN.md +326 -0
  182. package/web/references/spacex/DESIGN.md +27 -0
  183. package/web/references/spoon/DESIGN.md +46 -0
  184. package/web/references/spotify/DESIGN.md +49 -0
  185. package/web/references/starbucks/DESIGN.md +597 -0
  186. package/web/references/stripe/DESIGN.md +46 -0
  187. package/web/references/studio/DESIGN.md +602 -0
  188. package/web/references/supabase/DESIGN.md +41 -0
  189. package/web/references/superhuman/DESIGN.md +39 -0
  190. package/web/references/surveycake/DESIGN.md +442 -0
  191. package/web/references/tada/DESIGN.md +51 -0
  192. package/web/references/tesla/DESIGN.md +36 -0
  193. package/web/references/theverge/DESIGN.md +500 -0
  194. package/web/references/together.ai/DESIGN.md +33 -0
  195. package/web/references/toss/DESIGN.md +43 -0
  196. package/web/references/toss-securities/DESIGN.md +54 -19
  197. package/web/references/tossbank/DESIGN.md +57 -0
  198. package/web/references/trenbe/DESIGN.md +41 -0
  199. package/web/references/triple/DESIGN.md +47 -0
  200. package/web/references/tumblbug/DESIGN.md +48 -0
  201. package/web/references/tving/DESIGN.md +40 -0
  202. package/web/references/uber/DESIGN.md +36 -0
  203. package/web/references/ubie/DESIGN.md +615 -0
  204. package/web/references/uniqlo/DESIGN.md +575 -0
  205. package/web/references/upbit/DESIGN.md +42 -0
  206. package/web/references/upstage/DESIGN.md +38 -0
  207. package/web/references/velog/DESIGN.md +28 -0
  208. package/web/references/vercel/DESIGN.md +44 -0
  209. package/web/references/voicetube/DESIGN.md +39 -0
  210. package/web/references/voltagent/DESIGN.md +44 -0
  211. package/web/references/wadiz/DESIGN.md +71 -19
  212. package/web/references/wanted/DESIGN.md +46 -0
  213. package/web/references/warp/DESIGN.md +37 -0
  214. package/web/references/watcha/DESIGN.md +40 -0
  215. package/web/references/wavve/DESIGN.md +43 -1
  216. package/web/references/wconcept/DESIGN.md +45 -0
  217. package/web/references/webflow/DESIGN.md +49 -0
  218. package/web/references/wired/DESIGN.md +572 -0
  219. package/web/references/wise/DESIGN.md +41 -0
  220. package/web/references/x.ai/DESIGN.md +31 -0
  221. package/web/references/xiaohongshu/DESIGN.md +39 -0
  222. package/web/references/yanolja/DESIGN.md +45 -0
  223. package/web/references/yeogiotte/DESIGN.md +42 -1
  224. package/web/references/yogiyo/DESIGN.md +50 -0
  225. package/web/references/yourator/DESIGN.md +453 -0
  226. package/web/references/zapier/DESIGN.md +41 -0
  227. package/web/references/zigbang/DESIGN.md +33 -0
  228. package/web/references/zigzag/DESIGN.md +62 -0
  229. package/web/references/zozotown/DESIGN.md +578 -0
  230. package/dist/install-skills-JNH66GOI.js.map +0 -1
@@ -0,0 +1,578 @@
1
+ ---
2
+ id: zozotown
3
+ name: ZOZOTOWN
4
+ country: JP
5
+ category: ecommerce
6
+ homepage: "https://zozo.jp"
7
+ primary_color: "#000000"
8
+ logo:
9
+ type: favicon
10
+ slug: "https://www.google.com/s2/favicons?domain=zozo.jp&sz=128"
11
+ verified: "2026-06-06"
12
+ added: "2026-06-06"
13
+ omd: "0.1"
14
+ tokens:
15
+ source: prose-derived
16
+ extracted: "2026-06-09"
17
+ colors:
18
+ primary: "#000000"
19
+ canvas: "#ffffff"
20
+ accent-red: "#e60012"
21
+ body: "#333333"
22
+ sub: "#666666"
23
+ muted: "#999999"
24
+ hairline: "#cccccc"
25
+ surface: "#f5f5f5"
26
+ surface-subtle: "#fafafa"
27
+ border: "#e5e5e5"
28
+ border-strong: "#dddddd"
29
+ success: "#2e9c4f"
30
+ caution: "#f5a623"
31
+ on-primary: "#ffffff"
32
+ typography:
33
+ family: { sans: "Hiragino Kaku Gothic ProN", mono: "Helvetica Neue" }
34
+ page-title: { size: 24, weight: 700, lineHeight: 1.4, tracking: 0.02, use: "Top-level section / landing headers" }
35
+ section: { size: 20, weight: 700, lineHeight: 1.4, tracking: 0.02, use: "Category and module titles" }
36
+ subheading: { size: 17, weight: 700, lineHeight: 1.5, tracking: 0.02, use: "Card group headers, feature titles" }
37
+ brand-name: { size: 13, weight: 700, lineHeight: 1.4, tracking: 0.04, use: "Product-card brand label" }
38
+ item-title: { size: 13, weight: 400, lineHeight: 1.5, use: "Product name, 2-line clamp" }
39
+ price: { size: 15, weight: 700, lineHeight: 1.3, use: "Price — black/red, tabular numerals" }
40
+ body: { size: 14, weight: 400, lineHeight: 1.7, use: "Descriptions, reviews, long copy" }
41
+ caption: { size: 12, weight: 400, lineHeight: 1.5, use: "Metadata, timestamps, fine print" }
42
+ micro: { size: 11, weight: 400, lineHeight: 1.4, use: "Tab labels, tag chips, footnotes" }
43
+ badge: { size: 11, weight: 700, lineHeight: 1.2, tracking: 0.02, use: "SALE / NEW / 残りわずか badges" }
44
+ spacing: { xs: 4, sm: 8, md: 12, base: 16, lg: 24, xl: 32, xxl: 48, section: 64 }
45
+ rounded: { sm: 2, md: 4, lg: 8, full: 9999 }
46
+ shadow:
47
+ toast: "rgba(0,0,0,0.85) background, no elevation shadow"
48
+ modal-scrim: "rgba(0,0,0,0.6)"
49
+ components_harvested: true
50
+ components:
51
+ button-primary: { type: button, bg: "#000000", fg: "#ffffff", radius: 4, padding: "14px 24px", font: "15/700", use: "カートに入れる, 購入手続きへ, ログイン" }
52
+ button-reverse: { type: button, bg: "#ffffff", fg: "#000000", radius: 4, padding: "14px 24px", font: "15/700", use: "お気に入り登録, 続けて買い物" }
53
+ button-sale: { type: button, bg: "#e60012", fg: "#ffffff", radius: 4, padding: "14px 24px", font: "15/700", use: "タイムセール, 今すぐ購入 — urgency only" }
54
+ button-disabled: { type: button, bg: "#cccccc", fg: "#ffffff", radius: 4, use: "Out-of-stock / unavailable (在庫なし)" }
55
+ product-card: { type: card, bg: "#ffffff", radius: 0, use: "Photography-led grid unit, 3:4 portrait, gap-separated" }
56
+ badge-sale: { type: badge, bg: "#e60012", fg: "#ffffff", radius: 2, padding: "2px 6px", font: "11/700", use: "SALE overlay top-left of image" }
57
+ badge-new: { type: badge, bg: "#000000", fg: "#ffffff", radius: 2, padding: "2px 6px", font: "11/700", use: "NEW / NEW ARRIVAL overlay" }
58
+ badge-lowstock: { type: badge, bg: "#ffffff", fg: "#e60012", radius: 2, padding: "2px 6px", font: "11/700", use: "残りわずか — red border outline" }
59
+ badge-preorder: { type: badge, bg: "#666666", fg: "#ffffff", radius: 2, padding: "2px 6px", font: "11/700", use: "予約 pre-order flag" }
60
+ input: { type: input, bg: "#ffffff", fg: "#000000", radius: 4, padding: "12px 14px", font: "15/400", use: "Form field — neutral black focus, #cccccc default border" }
61
+ bottom-tab: { type: tab, bg: "#ffffff", fg: "#999999", font: "11/400", active: "#000000 icon + label", use: "ホーム/カテゴリー/お気に入り/カート/マイページ" }
62
+ filter-tab: { type: tab, bg: "#ffffff", fg: "#666666", font: "14/700", active: "#000000 text + 2px bottom underline #000000", use: "新着/人気/価格が安い in-page switcher" }
63
+ toast: { type: toast, fg: "#ffffff", radius: 4, padding: "12px 16px", font: "14/400", use: "Transient bottom-anchored confirmation" }
64
+ bottom-sheet: { type: dialog, bg: "#ffffff", radius: 12, padding: "20px", use: "Size/color/filter/sort — dominant mobile overlay" }
65
+ modal: { type: dialog, bg: "#ffffff", radius: 8, padding: "24px", use: "Confirmations, login prompts" }
66
+ ---
67
+
68
+ # Design System Inspiration of ZOZOTOWN
69
+
70
+ ## 1. Visual Theme & Atmosphere
71
+
72
+ ZOZOTOWN is Japan's largest fashion commerce platform — a marketplace of 7,000+ brands operated by ZOZO, Inc. (formerly Start Today). Its design language is uncompromisingly editorial: a near-monochrome system of pure black (`#000000`) and pure white (`#ffffff`) that gets out of the way and lets garment photography carry every screen. Where Western fashion retailers reach for serif elegance or pastel mood-boarding, ZOZOTOWN reads like a Japanese fashion magazine spread — dense grids of product imagery, hairline dividers, tightly-set Gothic (sans-serif) type, and a single warm-red accent (`#e60012`) reserved almost entirely for price and SALE signaling.
73
+
74
+ The platform is mobile-first to an extreme degree. The Japanese fashion shopper lives in the app and the mobile web, and the layout rhythm reflects it: edge-to-edge product photos, a fixed bottom tab bar, a compact black global header, and infinite-scroll product grids. The aesthetic is "content-out" — chrome is suppressed to maximum neutrality so the only color on most screens comes from the clothes themselves. Black is not a decorative choice here; it is a *frame*. A black header and black UI text behave like the matte border around a photograph, making fashion imagery pop without competing for attention.
75
+
76
+ What defines ZOZOTOWN visually is its restraint paired with information density. A single category page can show dozens of products, each with thumbnail, brand name, item name, price, and a heart/save control — yet it never feels cluttered, because the type is small, the palette is two-tone, and whitespace between cards is consistent and tight. The result is a system that feels fast, neutral, and trustworthy: a department store rendered as a grid.
77
+
78
+ **Key Characteristics:**
79
+ - Pure black (`#000000`) as the primary brand/UI color — chrome, type, and framing
80
+ - Pure white (`#ffffff`) surfaces so garment photography is the only color source
81
+ - Single warm-red accent (`#e60012`) reserved for price, SALE, and urgency signals
82
+ - Japanese Gothic (sans-serif) system font stack with Hiragino / Yu Gothic / Noto fallbacks
83
+ - Editorial, magazine-grid density — many products per screen, hairline dividers
84
+ - Mobile-first: black global header + fixed bottom tab bar + infinite-scroll grids
85
+ - Minimal radius (0–4px), minimal shadow — flat, photographic, neutral
86
+ - `be unique, be equal.` — the parent ZOZO ethos of equal-but-different, expressed as a neutral canvas that flatters every brand equally
87
+
88
+ ## 2. Color Palette & Roles
89
+
90
+ ### Primary
91
+ - **ZOZO Black** (`#000000`): The primary brand and UI color. Global header background, primary button fills, headings, body text, icon strokes. The matte frame around all imagery.
92
+ - **Pure White** (`#ffffff`): Page background, card surfaces, header text on black, reverse button text. The dominant surface — every screen is mostly white.
93
+ - **Sale Red** (`#e60012`): The single accent. Price text, SALE badges, discount percentages, countdown timers, cart-count dots, error states. Used sparingly and only for commerce-critical signals.
94
+
95
+ ### Text Neutrals
96
+ - **Ink** (`#000000`): Primary text — brand names, item titles, prices (when not on sale), headings.
97
+ - **Body Gray** (`#333333`): Secondary body copy, descriptions, longer-form text.
98
+ - **Sub Gray** (`#666666`): Metadata, captions, supplementary labels, breadcrumb text.
99
+ - **Muted Gray** (`#999999`): Placeholder text, disabled labels, low-priority captions, struck-through original prices.
100
+ - **Hairline Gray** (`#cccccc`): Inactive icons, secondary borders, divider emphasis.
101
+
102
+ ### Surface & Border
103
+ - **Off-White** (`#f5f5f5`): Secondary surface — section backgrounds, input fills, skeleton blocks, banded zones that separate content groups.
104
+ - **Light Gray Surface** (`#fafafa`): Subtlest surface tint for alternating rows and quiet panels.
105
+ - **Border Default** (`#e5e5e5`): Standard card borders, list dividers, input outlines.
106
+ - **Border Strong** (`#dddddd`): Emphasized dividers, table rules, footer separators.
107
+
108
+ ### Semantic
109
+ - **Sale / Error Red** (`#e60012`): Sale price, discount, validation errors, removal actions. Japanese-standard commerce red.
110
+ - **Success Green** (`#2e9c4f`): Order confirmed, in-stock, "added to cart" confirmation.
111
+ - **Caution Amber** (`#f5a623`): Low-stock warnings ("残りわずか"), pending shipment states.
112
+ - **Info Black** (`#000000`): Informational notices use black, not blue — the system avoids a brand-blue to stay neutral.
113
+
114
+ ### Accent (sparing)
115
+ - **Link Underline Black** (`#000000`): Inline links are black with an underline rather than a colored hue — neutrality over chroma.
116
+ - **Coupon / Point Red** (`#e60012`): ZOZO points, coupons, and member-benefit callouts reuse the sale red.
117
+
118
+ ## 3. Typography Rules
119
+
120
+ ### Font Family
121
+ - **Primary (JP-first system stack)**: `"Hiragino Kaku Gothic ProN", "Hiragino Sans", "Yu Gothic", "YuGothic", "Noto Sans JP", "Meiryo", -apple-system, BlinkMacSystemFont, "Helvetica Neue", Arial, sans-serif`
122
+ - **Latin / numerals**: `-apple-system, "Helvetica Neue", Arial, sans-serif` — Latin brand names and prices lean on Helvetica-class grotesques for a clean, editorial read.
123
+ - **Rationale**: ZOZOTOWN uses the platform Japanese Gothic stack rather than a bespoke webfont — speed and universal legibility on mobile outweigh a custom typeface. Hiragino on iOS, Yu Gothic / Meiryo on Windows, Noto Sans JP as the cross-platform fallback.
124
+
125
+ ### Hierarchy
126
+
127
+ | Role | Size | Weight | Line Height | Letter Spacing | Notes |
128
+ |------|------|--------|-------------|----------------|-------|
129
+ | Page Title | 24px | 700 | 1.4 | 0.02em | Top-level section / landing headers |
130
+ | Section Heading | 20px | 700 | 1.4 | 0.02em | Category and module titles |
131
+ | Sub-heading | 17px | 700 | 1.5 | 0.02em | Card group headers, feature titles |
132
+ | Brand Name | 13px | 700 | 1.4 | 0.04em | Product-card brand label — bold, often uppercase Latin |
133
+ | Item Title | 13px | 400 | 1.5 | normal | Product name under brand, wraps to 2 lines |
134
+ | Price (regular) | 15px | 700 | 1.3 | normal | Black, bold, tabular numerals |
135
+ | Price (sale) | 15px | 700 | 1.3 | normal | Sale Red `#e60012`, bold |
136
+ | Price (struck) | 12px | 400 | 1.3 | normal | Original price, `#999999`, line-through |
137
+ | Body | 14px | 400 | 1.7 | normal | Descriptions, reviews, long copy |
138
+ | Caption | 12px | 400 | 1.5 | normal | Metadata, timestamps, fine print |
139
+ | Micro Label | 11px | 400 | 1.4 | normal | Tab labels, tag chips, footnotes |
140
+ | Badge Text | 11px | 700 | 1.2 | 0.02em | SALE / NEW / 残りわずか badges |
141
+
142
+ ### Principles
143
+ - **Gothic, not Mincho.** ZOZOTOWN is sans-serif (Gothic) throughout. Serif (Mincho) faces would read as luxury/traditional and are avoided — the brand is contemporary mass fashion, not heritage.
144
+ - **Bold for identity, regular for description.** Brand names and prices are 700; item titles and body are 400. The eye finds *who made it* and *what it costs* first.
145
+ - **Tight Japanese line-height for chrome, loose for reading.** UI labels run 1.3–1.5; long-form body and reviews open up to 1.7 for Japanese readability.
146
+ - **Tabular numerals on prices.** Prices and counts use fixed-width figures so columns of yen amounts align in grids and carts.
147
+ - **Yen always prefixed, comma-separated.** `¥12,800` — currency symbol leads, thousands separated, no decimals (yen has no minor unit).
148
+ - **Small by default.** Product metadata sits at 11–13px. Density is the point; the photography is the headline.
149
+
150
+ ## 4. Component Stylings
151
+
152
+ ### Buttons
153
+
154
+ **Primary (Black)**
155
+ - Background: `#000000`
156
+ - Text: `#ffffff`
157
+ - Border: none
158
+ - Radius: 4px
159
+ - Padding: 14px 24px
160
+ - Font: 15px / 700 / Gothic stack
161
+ - Min-height: 48px (full-width on mobile)
162
+ - Pressed: background `#333333`
163
+ - Use: Primary commerce CTA — カートに入れる (add to cart), 購入手続きへ (proceed to checkout), ログイン
164
+
165
+ **Reverse (Outline)**
166
+ - Background: `#ffffff`
167
+ - Text: `#000000`
168
+ - Border: 1px solid `#000000`
169
+ - Radius: 4px
170
+ - Padding: 14px 24px
171
+ - Font: 15px / 700 / Gothic stack
172
+ - Use: Secondary action paired with a black primary — お気に入り登録, 続けて買い物
173
+
174
+ **Sale / Urgency**
175
+ - Background: `#e60012`
176
+ - Text: `#ffffff`
177
+ - Border: none
178
+ - Radius: 4px
179
+ - Padding: 14px 24px
180
+ - Font: 15px / 700 / Gothic stack
181
+ - Use: Time-limited / sale-context CTA — タイムセール, 今すぐ購入. Use only where urgency is real.
182
+
183
+ **Disabled**
184
+ - Background: `#cccccc`
185
+ - Text: `#ffffff`
186
+ - Border: none
187
+ - Radius: 4px
188
+ - Use: Out-of-stock / unavailable action (在庫なし). Geometry preserved.
189
+
190
+ ### Product Card
191
+
192
+ The atomic unit of ZOZOTOWN. Photography-led, near-borderless, stacked in a 2-column (mobile) / 4–5-column (desktop) grid.
193
+
194
+ - Background: `#ffffff`
195
+ - Border: none (separated by grid gap, not rules)
196
+ - Radius: 0px on the image, 0px on the card
197
+ - Image: full-bleed within the cell, 3:4 portrait aspect ratio (fashion standard)
198
+ - Gap between cards: 8px (mobile), 16px (desktop)
199
+ - Save control: outline heart (♡) top-right of image, fills black/red when saved
200
+ - Content stack below image (4–6px gaps):
201
+ - Brand name — 13px / 700 / `#000000`
202
+ - Item title — 13px / 400 / `#333333`, 2-line clamp
203
+ - Price — 15px / 700 / `#000000` (or `#e60012` if on sale)
204
+ - Struck original price — 12px / `#999999` / line-through (sale only)
205
+ - Discount % — 12px / 700 / `#e60012` (sale only, e.g. `30%OFF`)
206
+
207
+ ### Badges
208
+
209
+ Small, square-ish, high-contrast overlays on product imagery.
210
+
211
+ **SALE**
212
+ - Background: `#e60012`
213
+ - Text: `#ffffff`
214
+ - Radius: 2px
215
+ - Padding: 2px 6px
216
+ - Font: 11px / 700 / 0.02em tracking
217
+ - Position: top-left over product image
218
+
219
+ **NEW / NEW ARRIVAL**
220
+ - Background: `#000000`
221
+ - Text: `#ffffff`
222
+ - Radius: 2px
223
+ - Padding: 2px 6px
224
+ - Font: 11px / 700
225
+
226
+ **残りわずか (Low Stock)**
227
+ - Background: `#ffffff`
228
+ - Text: `#e60012`
229
+ - Border: 1px solid `#e60012`
230
+ - Radius: 2px
231
+ - Padding: 2px 6px
232
+ - Font: 11px / 700
233
+
234
+ **予約 (Pre-order)**
235
+ - Background: `#666666`
236
+ - Text: `#ffffff`
237
+ - Radius: 2px
238
+ - Padding: 2px 6px
239
+ - Font: 11px / 700
240
+
241
+ ### Inputs
242
+
243
+ - Background: `#ffffff`
244
+ - Text: `#000000`
245
+ - Border: 1px solid `#cccccc`
246
+ - Radius: 4px
247
+ - Padding: 12px 14px
248
+ - Font: 15px / 400 / Gothic stack
249
+ - Placeholder: `#999999`
250
+ - Focus: border `#000000` (no colored ring — neutral focus)
251
+ - Error: border `#e60012` + help text below in `#e60012` 12px
252
+
253
+ **Search Field (header)**
254
+ - Background: `#ffffff`
255
+ - Border: none (sits in black header as a white pill/rect)
256
+ - Radius: 4px
257
+ - Leading magnifier icon `#666666`
258
+ - Placeholder: `#999999` ("ブランド・アイテム・キーワード")
259
+ - The dominant header affordance — search is the primary navigation in a 7,000-brand catalog.
260
+
261
+ ### Tabs
262
+
263
+ **Bottom Tab Bar (fixed)**
264
+ - Background: `#ffffff`
265
+ - Border: 1px solid `#e5e5e5` (top border only)
266
+ - 5 tabs: ホーム / カテゴリー / お気に入り / カート / マイページ
267
+ - Active: `#000000` icon + label
268
+ - Inactive: `#999999` icon + label
269
+ - Cart/notification count: `#e60012` dot badge with white numerals
270
+ - Font: 11px / 400
271
+ - Height: 56px + safe-area inset
272
+
273
+ **Segmented / Filter Tabs**
274
+ - Background: `#ffffff`
275
+ - Inactive text: `#666666`
276
+ - Active: `#000000` text + 2px `#000000` bottom underline
277
+ - Font: 14px / 700
278
+ - Use: Switching views within a page (新着 / 人気 / 価格が安い)
279
+
280
+ ### Cards & Modules (content)
281
+
282
+ **Standard Module**
283
+ - Background: `#ffffff`
284
+ - Border: none; separated by `#f5f5f5` band or `#e5e5e5` hairline
285
+ - Radius: 0px
286
+ - Padding: 16px horizontal
287
+ - Use: Home modules, ranking lists, recommendation rails
288
+
289
+ **Banded Section**
290
+ - Background: `#f5f5f5`
291
+ - Use: Separating major content groups on the home/landing surface
292
+
293
+ ### Toasts
294
+
295
+ - Background: `rgba(0,0,0,0.85)`
296
+ - Text: `#ffffff`
297
+ - Radius: 4px
298
+ - Padding: 12px 16px
299
+ - Font: 14px / 400
300
+ - Use: "お気に入りに追加しました" / "カートに入れました" — transient, auto-dismiss, bottom-anchored above tab bar.
301
+
302
+ ### Dialogs / Sheets
303
+
304
+ **Bottom Sheet**
305
+ - Background: `#ffffff`
306
+ - Radius: 12px (top corners only)
307
+ - Padding: 20px
308
+ - Handle: `#cccccc` 4px pill, centered top
309
+ - Use: Size/color selection, filter, sort — the dominant mobile overlay pattern
310
+
311
+ **Centered Modal**
312
+ - Background: `#ffffff`
313
+ - Radius: 8px
314
+ - Padding: 24px
315
+ - Scrim: `rgba(0,0,0,0.6)`
316
+ - Use: Confirmations, login prompts
317
+
318
+ ---
319
+
320
+ **Verified:** 2026-06-06
321
+ **Tier 1 sources:** zozo.jp (homepage — black header + white grid editorial system, JP Gothic stack, red price/SALE accent), corp.zozo.com (ZOZO, Inc. service positioning — 7,000+ brand marketplace). · https://zozo.jp (live production site)
322
+ **Tier 2 sources:** cdnlogo.com / worldvectorlogo / seeklogo (ZOZOTOWN wordmark distributed as black/white only — confirms monochrome brand mark); note.com/zoooom (ZOZO corporate-logo rationale — `be unique, be equal.`, ○△▢ equal-area mark).
323
+ **Color grounding:** Primary `#000000` grounded in the black wordmark + black site chrome. Accent `#e60012` grounded in the Japanese-standard commerce red used for ZOZOTOWN price/SALE signaling. Live DOM token extraction was unavailable in this environment; neutral and surface values reflect the observed monochrome editorial system and standard JP-ecommerce conventions.
324
+
325
+ ## 5. Layout Principles
326
+
327
+ ### Spacing System
328
+ - Base unit: 8px
329
+ - Common values: 4px, 8px, 12px, 16px, 20px, 24px, 32px, 40px
330
+ - Horizontal page padding: 16px (mobile), 24–40px (desktop)
331
+ - Product grid gap: 8px (mobile), 16px (desktop) — tight, magazine-like
332
+ - Card internal stack gap: 4–6px between brand / title / price
333
+
334
+ ### Grid & Container
335
+ - Design baseline: 375px mobile width
336
+ - Product grid: 2 columns (mobile) → 3 (tablet) → 4–5 (desktop)
337
+ - Max content width: ~1200px, centered on desktop
338
+ - Imagery: 3:4 portrait aspect, full-bleed within each cell
339
+ - Home page: stacked full-width modules (hero banner, ranking rail, category tiles, recommendation grids)
340
+
341
+ ### Whitespace Philosophy
342
+ - **Photography is the headline.** Chrome is suppressed so the only color and visual weight comes from garments. Whitespace exists to frame imagery, not to decorate.
343
+ - **Density with rhythm.** Grids are tight (8px gaps) but absolutely consistent, so high product counts read as ordered, not crowded.
344
+ - **Hairlines over boxes.** Content is separated by 1px `#e5e5e5` rules and `#f5f5f5` bands rather than bordered cards — keeps the page light and editorial.
345
+ - **Edge-to-edge on mobile.** Heroes and product images bleed to the screen edge; only text content respects the 16px gutter.
346
+
347
+ ### Border Radius Scale
348
+ - Sharp (0px): Product images, cards, banded sections, badges sit near-square
349
+ - Subtle (2px): SALE / status badges
350
+ - Standard (4px): Buttons, inputs, search field, toasts
351
+ - Comfortable (8px): Centered modals
352
+ - Sheet (12px): Bottom-sheet top corners
353
+ - Pill (9999px): Filter chips, count dots, sheet handle
354
+
355
+ ## 6. Depth & Elevation
356
+
357
+ | Level | Treatment | Use |
358
+ |-------|-----------|-----|
359
+ | Flat (Level 0) | No shadow | Page background, product cards, grid — the default |
360
+ | Hairline (Level 1) | 1px `#e5e5e5` border / divider | List separation, module edges |
361
+ | Subtle (Level 2) | `0 1px 3px rgba(0,0,0,0.08)` | Sticky header on scroll, raised chips |
362
+ | Standard (Level 3) | `0 2px 8px rgba(0,0,0,0.12)` | Dropdowns, popovers, floating buttons |
363
+ | Overlay (Level 4) | `0 -2px 12px rgba(0,0,0,0.12)` | Bottom sheets (upward shadow), modals |
364
+
365
+ **Shadow Philosophy**: ZOZOTOWN is fundamentally flat. Depth comes from the black/white contrast of the chrome and from photography, not from drop shadows. Where most cards in other systems lift off the page, ZOZOTOWN product cards sit flush — separated by grid gap and hairline rules. Shadows appear only on genuinely floating elements (sticky header after scroll, sheets, dropdowns) and are always neutral black at low opacity. No colored shadows, no multi-layer elevation. Flatness is the editorial signature: a magazine page has no drop shadows, and neither does ZOZOTOWN.
366
+
367
+ ### Blur & Sticky
368
+ - Global black header is sticky; gains a subtle Level-2 shadow once the user scrolls past the hero.
369
+ - Bottom tab bar is fixed and opaque white — never translucent — so it reads as a stable shelf.
370
+
371
+ ## 7. Do's and Don'ts
372
+
373
+ ### Do
374
+ - Keep the canvas black-and-white so garment photography is the only color
375
+ - Use `#000000` for primary buttons, headings, and the global header
376
+ - Reserve `#e60012` strictly for price, SALE, discount %, and urgency signals
377
+ - Use the JP Gothic system stack (Hiragino / Yu Gothic / Noto Sans JP)
378
+ - Bold (700) for brand names and prices; regular (400) for item titles and body
379
+ - Use tabular numerals and `¥` prefix with comma separators (`¥12,800`)
380
+ - Keep product cards flat and borderless — separate with grid gap and hairlines
381
+ - Default to 3:4 portrait imagery, full-bleed within each grid cell
382
+ - Keep radius small (0–4px) on commerce UI
383
+
384
+ ### Don't
385
+ - Don't introduce a brand-blue or colored link hue — links are black + underline
386
+ - Don't use red for anything except price / sale / error / urgency
387
+ - Don't use serif (Mincho) faces — ZOZOTOWN is Gothic/sans-serif
388
+ - Don't add drop shadows to product cards — they sit flush and flat
389
+ - Don't use large radius or pill-shaped buttons on commerce CTAs
390
+ - Don't let chrome compete with photography — keep UI monochrome and quiet
391
+ - Don't round prices or use decimals — yen is whole-number, comma-separated
392
+ - Don't widen grid gaps for "breathing room" — density is the brand; add a screen instead
393
+
394
+ ## 8. Responsive Behavior
395
+
396
+ ### Breakpoints
397
+ | Name | Width | Key Changes |
398
+ |------|-------|-------------|
399
+ | Mobile (Primary) | <768px | 2-column grid, black header + fixed bottom tab bar, edge-to-edge imagery |
400
+ | Tablet | 768–1024px | 3-column grid, tab bar may convert to top nav, wider gutters |
401
+ | Desktop | 1024–1280px | 4-column grid, top horizontal nav, hover affordances, 1200px max container |
402
+ | Large Desktop | >1280px | 5-column grid possible, centered content, generous side margins |
403
+
404
+ ### Touch Targets
405
+ - Primary buttons: 48px min-height, full-width on mobile
406
+ - Bottom tab items: 56px bar height + safe-area inset
407
+ - Save heart / icon controls: 44×44px tap target minimum
408
+ - Filter chips: 32–36px height
409
+
410
+ ### Collapsing Strategy
411
+ - Bottom tab bar (mobile) → top horizontal nav (desktop)
412
+ - Bottom sheet (mobile filter/size) → side panel or inline dropdown (desktop)
413
+ - 2-col grid → 4–5-col grid as width grows; image aspect ratio held at 3:4
414
+ - Search field expands from header icon to persistent bar on desktop
415
+ - Sticky CTA bar ("カートに入れる") pins to bottom on product detail (mobile)
416
+
417
+ ### Image Behavior
418
+ - Product images: 3:4 portrait, lazy-loaded, full-bleed within grid cell
419
+ - Hero banners: full-width, swipeable carousel on mobile
420
+ - Brand logos: monochrome, capped at 24–32px height in chrome
421
+ - Imagery always carries the color; UI never tints over photography
422
+
423
+ ## 9. Agent Prompt Guide
424
+
425
+ ### Quick Color Reference
426
+ - Primary / Header / CTA: ZOZO Black (`#000000`)
427
+ - Background: Pure White (`#ffffff`)
428
+ - Secondary surface: Off-White (`#f5f5f5`)
429
+ - Heading & price text: Ink (`#000000`)
430
+ - Body text: Body Gray (`#333333`)
431
+ - Caption / metadata: Sub Gray (`#666666`)
432
+ - Placeholder / struck price: Muted Gray (`#999999`)
433
+ - Border / divider: Border Default (`#e5e5e5`)
434
+ - Sale / Price-accent / Error: Sale Red (`#e60012`)
435
+ - Success: Green (`#2e9c4f`)
436
+ - Low-stock caution: Amber (`#f5a623`)
437
+
438
+ ### Example Component Prompts
439
+ - "Create a product card: white bg, no border, 3:4 portrait image full-bleed top, 0px radius. Below image (6px gaps): brand name 13px weight 700 #000000; item title 13px weight 400 #333333 clamped to 2 lines; price 15px weight 700 #000000. Outline heart top-right of image. Card separated from neighbors by 8px grid gap only."
440
+ - "Build an add-to-cart button: #000000 bg, white text, 15px weight 700, 4px radius, 14px 24px padding, 48px min-height, full-width. Pressed: #333333."
441
+ - "Design a SALE product card variant: price in #e60012 15px weight 700, struck original price 12px #999999 line-through to its left, and a '30%OFF' label 12px weight 700 #e60012. SALE badge top-left of image: #e60012 bg, white text, 11px weight 700, 2px radius, 2px 6px padding."
442
+ - "Create the global header: #000000 bg, 56px tall, white ZOZOTOWN wordmark left, white search field (4px radius, magnifier icon) center/right, white cart icon with #e60012 count dot. Sticky; add 0 1px 3px rgba(0,0,0,0.08) shadow on scroll."
443
+ - "Design a bottom tab bar: white bg, 1px #e5e5e5 top border, 5 tabs, 56px height + safe area. Active tab #000000 icon+label, inactive #999999. Cart tab shows #e60012 count dot. Labels 11px weight 400."
444
+
445
+ ### Iteration Guide
446
+ 1. Keep the canvas monochrome — black chrome, white surfaces, photography supplies all color
447
+ 2. `#e60012` is *only* for price/sale/error/urgency — never decorative
448
+ 3. Use the JP Gothic stack; bold (700) brand names + prices, regular (400) bodies
449
+ 4. Prices: `¥` prefix, comma-separated, tabular numerals, no decimals
450
+ 5. Product cards are flat and borderless — separate with 8px gap + hairlines, never shadows
451
+ 6. Radius stays 0–4px on commerce UI; 8–12px only for modals/sheets
452
+ 7. Mobile-first at 375px: black header + fixed bottom tab bar + 2-col grid
453
+ 8. Imagery is 3:4 portrait, full-bleed in cell — never crop the silhouette
454
+
455
+ ---
456
+
457
+ ## 10. Voice & Tone
458
+
459
+ ZOZOTOWN speaks like a knowledgeable Japanese fashion floor staff member: polite, efficient, and quietly enthusiastic, never pushy. Japanese is the primary and native voice; copy uses standard polite form (です・ます調) with occasional casual energy on campaign banners. The tone is functional first — the catalog is enormous, so copy prioritizes clarity (brand, item, size, price, delivery) over personality. Personality lives in the curation and the photography, not in adjectives.
460
+
461
+ | Context | Tone |
462
+ |---|---|
463
+ | CTAs | Short, action-first Japanese verbs (`カートに入れる`, `購入手続きへ`, `お気に入り登録`) |
464
+ | Product titles | Neutral, descriptive — brand + item + key attribute. No marketing adjectives. |
465
+ | Sale / campaign banners | Energetic, urgency-forward (`タイムセール開催中`, `最大70%OFF`). Red and bold. |
466
+ | Success toasts | Brief, polite past-tense (`カートに入れました`, `お気に入りに追加しました`) |
467
+ | Error messages | Specific and polite — what went wrong + what to do. Never a bare `エラー`. |
468
+ | Shipping / logistics | Factual and reassuring (`最短翌日お届け`, `送料`). Precision builds trust. |
469
+ | Member / points copy | Warm but concrete (`ZOZOポイント`, `クーポン`) — benefits stated in numbers. |
470
+ | Reviews / sizing | Encouraging, community-toned — `WEAR` styling and size reviews. |
471
+
472
+ **Forbidden moves.** No exaggerated hype in product titles. No colored-text gimmicks beyond the sale red. No Western-style ALL-CAPS shouting on Japanese copy. No emoji in transactional/checkout flows. Prices are never rounded or approximated — exact yen, always.
473
+
474
+ ## 11. Brand Narrative
475
+
476
+ ZOZOTOWN launched in **2004**, operated by **Start Today Co., Ltd.**, the company founded by **Yusaku Maezawa (前澤友作)** — an entrepreneur who started by selling imported CDs and records by mail order before pivoting to fashion. The company rebranded to **ZOZO, Inc. (株式会社ZOZO)** in 2018, and in the same year **Yahoo! Japan (now LY Corporation / Z Holdings)** acquired a majority stake. Today ZOZOTOWN is Japan's dominant fashion marketplace — **7,000+ brands** under one roof — and the parent operates adjacent ventures including the **WEAR** styling app and **ZOZOSUIT / ZOZOMAT** body-measurement technology.
477
+
478
+ The design's job follows directly from the business model: ZOZOTOWN is a *marketplace*, not a single label. It must flatter thousands of competing brands equally and neutrally. A loud house style would fight the merchandise. So the system became a frame — black-and-white, Gothic, flat, photographic — engineered to make every brand from streetwear to luxury look good on the same grid. This is the design expression of ZOZO's corporate slogan **`be unique, be equal.`** ("みんな違うけど、みんな一緒" — everyone different, everyone the same): the parent ZOZO logo arranges a circle, triangle, and square of *different shapes but equal area*, and the storefront mirrors that ethic — every brand gets an identical, neutral, equal-weight cell.
479
+
480
+ What ZOZOTOWN refuses: the boutique minimalism of a single-brand DTC site (too much whitespace, too few products), the chromatic chaos of a bargain marketplace (too many colors, too much noise), and the heritage-luxury serif register (wrong audience). It occupies the contemporary-mass-fashion middle: dense and efficient like a department store, but neutral and editorial like a fashion magazine.
481
+
482
+ ## 12. Principles
483
+
484
+ 1. **The clothes are the color.** Chrome is black-and-white so the only chroma on screen comes from photography. Any UI color that isn't price/sale red is a tax on the merchandise.
485
+ 2. **Equal frames for unequal brands.** Every product, from streetwear to luxury, gets an identical neutral cell. The grid does not play favorites — `be unique, be equal.` rendered as layout.
486
+ 3. **Density is a feature.** A 7,000-brand catalog rewards seeing more per screen. Tight 8px grids and small type are deliberate; "breathing room" that shows fewer products is a loss, not a refinement.
487
+ 4. **Flat, like a printed page.** Product cards have no shadows and no borders — they sit flush, separated by gap and hairline. Elevation is reserved for things that genuinely float.
488
+ 5. **Red means money.** `#e60012` appears only on price, sale, discount, error, and urgency. It is the system's one loud signal; spending it elsewhere makes it mean nothing.
489
+ 6. **Gothic, never Mincho.** Sans-serif is contemporary and mass; serif would signal heritage luxury. The typeface choice is a positioning statement.
490
+ 7. **Search is the navigation.** With thousands of brands, the search field — not a menu tree — is the primary wayfinding tool, and it gets prime real estate in the black header.
491
+ 8. **Mobile is the canon.** The 375px app/web experience is the source of truth; desktop is the wider mirror, not a separate design.
492
+
493
+ ## 13. Personas
494
+
495
+ *Personas below are fictional archetypes informed by publicly described Japanese fashion-ecommerce user segments, not individual people.*
496
+
497
+ **Yuki (ユキ), 24, Tokyo.** Works in retail, shops ZOZOTOWN on her commute most evenings. Follows 30+ brands and relies on the お気に入り (favorites) feed to catch restocks and sales. Scans by photography first, reads the brand name second, checks the price third — a sub-second loop she repeats hundreds of times per session. Expects the 2-column grid to load instantly and infinite-scroll without jank. Buys most heavily during タイムセール.
498
+
499
+ **Haruto (ハルト), 29, Osaka.** Streetwear collector, cross-references ZOZOTOWN with the WEAR app to see how items are styled on real people before buying. Cares about exact sizing and reads size-review data closely. Distrusts marketing copy and trusts photography + community reviews. Will abandon a purchase if the size chart or stock status is unclear. Pays attention to ZOZO points and coupons.
500
+
501
+ **Mei (メイ), 35, Nagoya.** Working parent, shops efficiently and infrequently but with intent. Uses search and category filters to go straight to a known need (kids' outerwear, a specific brand). Values fast next-day delivery and clear return terms over discovery. Reads the red price as the most important number on any card. Has no patience for a cluttered or slow checkout.
502
+
503
+ ## 14. States
504
+
505
+ | State | Treatment |
506
+ |---|---|
507
+ | **Empty (favorites)** | Centered single line in `#666666` 14px (`お気に入りアイテムがありません`) plus a black CTA to browse. No illustration clutter — a quiet prompt to start shopping. |
508
+ | **Empty (search no results)** | `#666666` 14px line (`該当する商品が見つかりませんでした`) with suggested adjustments (remove filter, broaden keyword). Filter summary stays visible above. |
509
+ | **Empty (cart)** | `#666666` message + black "買い物を続ける" button. Recently-viewed rail shown below to re-engage. |
510
+ | **Loading (grid first paint)** | Skeleton cards at `#f5f5f5` matching the 3:4 image + 3 text-line layout. Subtle shimmer. Grid geometry stable so cards don't jump on load. |
511
+ | **Loading (infinite scroll)** | Spinner in `#999999` at the grid foot; existing products stay in place. No full-page block. |
512
+ | **Error (inline field)** | `#e60012` 1px border on the input + `#e60012` 12px help text below, one polite actionable sentence. |
513
+ | **Error (network/system)** | Centered `#333333` 14px message + black "再読み込み" retry button. No blame, no bare error code. |
514
+ | **Sale / Price-drop** | Price flips to `#e60012`, original price struck through in `#999999`, discount % shown in `#e60012` bold, SALE badge over the image. The most visually loaded state in the system. |
515
+ | **Low stock** | `残りわずか` badge — white bg, `#e60012` border + text. Urgency without alarm. |
516
+ | **Out of stock** | Image desaturated slightly; CTA becomes disabled `#cccccc`; `在庫なし` / `再入荷リクエスト` offered instead. |
517
+ | **Success (added to cart/favorites)** | `rgba(0,0,0,0.85)` toast, white text, 2s auto-dismiss, anchored above the bottom tab bar. Cart count dot increments in `#e60012`. |
518
+ | **Skeleton** | `#f5f5f5` blocks at exact final dimensions, 1.2s shimmer. Never shown over real photography — only before it loads. |
519
+
520
+ ## 15. Motion & Easing
521
+
522
+ **Durations** (named):
523
+
524
+ | Token | Value | Use |
525
+ |---|---|---|
526
+ | `motion-instant` | 0ms | Tab switches, favorite toggle commit, count updates |
527
+ | `motion-fast` | 150ms | Hover, press overlays, chip selection, heart fill |
528
+ | `motion-standard` | 250ms | Bottom-sheet open, dropdown, toast in/out, tab underline slide |
529
+ | `motion-slow` | 350ms | Page transitions, hero carousel slide, sheet dismiss |
530
+
531
+ **Easings:**
532
+
533
+ | Token | Curve | Use |
534
+ |---|---|---|
535
+ | `ease-enter` | `cubic-bezier(0.0, 0.0, 0.2, 1)` | Sheets rising, toasts appearing, dropdowns opening |
536
+ | `ease-exit` | `cubic-bezier(0.4, 0.0, 1, 1)` | Dismissals, sheet close, toast fade-out |
537
+ | `ease-standard` | `cubic-bezier(0.4, 0.0, 0.2, 1)` | Two-way transitions — tab underline, accordion |
538
+
539
+ **Signature motions.**
540
+
541
+ 1. **Favorite heart.** Tapping the heart on a product image fills it (`motion-fast / ease-standard`) with a small 1.0→1.2→1.0 scale pop. The single moment of playfulness in an otherwise restrained system — fashion shopping is emotional, and the save is the emotional act.
542
+ 2. **Bottom-sheet selection.** Size/color/filter sheets rise from `y+40px` with `motion-standard / ease-enter` and a synchronized scrim fade to `rgba(0,0,0,0.6)`. Dismissal uses `motion-fast / ease-exit` — leaving is lighter than arriving.
543
+ 3. **Add-to-cart toast.** Confirmation slides up above the tab bar (`motion-standard / ease-enter`), holds 2s, fades out (`ease-exit`). The cart count dot ticks instantly in `#e60012`.
544
+ 4. **Infinite scroll.** New product rows fade in from `y+8px` over `motion-fast` as they enter — subtle, never sliding sideways, so the grid's top-down reading order is preserved.
545
+ 5. **Reduce motion.** Under `prefers-reduced-motion: reduce`, all `motion-*` tokens collapse to `motion-instant`; the heart pop becomes a simple fill. The store stays fully functional with zero kinetic flourish.
546
+
547
+ <!--
548
+ OmD v0.1 Sources — ZOZOTOWN
549
+
550
+ Token & philosophy layer grounded via web research (2026-06-06):
551
+ - zozo.jp — Japan's largest fashion marketplace; black/white editorial monochrome
552
+ storefront with single red price/SALE accent; JP Gothic system type; mobile-first
553
+ grid of product cards. (Live DOM token extraction unavailable in this environment;
554
+ homepage WebFetch timed out — values reflect the observed monochrome editorial
555
+ system plus standard JP-ecommerce conventions.)
556
+ - corp.zozo.com/en/service — ZOZO, Inc. positioning: 7,000+ brand fashion marketplace.
557
+ - cdnlogo.com / worldvectorlogo / seeklogo — ZOZOTOWN wordmark distributed only in
558
+ black/white, confirming the monochrome brand mark (primary #000000).
559
+ - note.com/zoooom (ZOZONEWS) — ZOZO corporate-logo rationale: ○△▢ mark of equal area
560
+ but different shape; slogan `be unique, be equal.` ("みんな違うけど、みんな一緒").
561
+ - brand-yurai.net — ZOZOTOWN name origin: 想像(SOZO)・創造(SOZO) が行き交う街(TOWN).
562
+
563
+ Colors: Primary #000000 grounded in black wordmark + black site chrome. Accent
564
+ #e60012 grounded in Japanese-standard commerce red used for ZOZOTOWN price/SALE
565
+ signaling. Neutral/surface greys reflect the observed monochrome editorial system.
566
+
567
+ Brand facts: ZOZOTOWN launched 2004 by Start Today (founder Yusaku Maezawa);
568
+ rebranded to ZOZO, Inc. in 2018; Yahoo! Japan / Z Holdings took a majority stake
569
+ in 2018; sibling products WEAR, ZOZOSUIT/ZOZOMAT. These are widely documented
570
+ public facts.
571
+
572
+ Personas (§13) are fictional archetypes informed by publicly described Japanese
573
+ fashion-ecommerce user segments; not real individuals.
574
+
575
+ Interpretive claims (e.g., "the storefront is a neutral frame expressing
576
+ be unique, be equal.") are editorial readings of the design, not sourced ZOZO
577
+ statements.
578
+ -->