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,605 @@
1
+ ---
2
+ id: muji
3
+ name: MUJI
4
+ country: JP
5
+ category: ecommerce
6
+ homepage: "https://www.muji.com"
7
+ primary_color: "#7f0019"
8
+ logo:
9
+ type: favicon
10
+ slug: "https://www.google.com/s2/favicons?domain=muji.com&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: "#333333"
19
+ primary-hover: "#000000"
20
+ brand: "#7f0019"
21
+ brand-hover: "#6b0015"
22
+ canvas: "#ffffff"
23
+ surface: "#f7f7f7"
24
+ foreground: "#333333"
25
+ muted: "#666666"
26
+ on-primary: "#ffffff"
27
+ hairline: "#dddddd"
28
+ border-strong: "#cccccc"
29
+ error: "#c0392b"
30
+ success: "#4a7c59"
31
+ typography:
32
+ family: { sans: "Helvetica Neue", mono: "Helvetica Neue" }
33
+ page-title: { size: 28, weight: 300, lineHeight: 1.4, tracking: 0.02, use: "Quiet authority page title" }
34
+ section: { size: 22, weight: 400, lineHeight: 1.4, tracking: 0.02, use: "Category / section titles" }
35
+ subheading: { size: 18, weight: 400, lineHeight: 1.5, tracking: 0.02, use: "Card titles, group labels" }
36
+ lead: { size: 16, weight: 300, lineHeight: 1.7, tracking: 0.02, use: "Editorial intro paragraphs" }
37
+ body: { size: 14, weight: 400, lineHeight: 1.7, tracking: 0.02, use: "Standard reading text" }
38
+ body-small: { size: 13, weight: 400, lineHeight: 1.6, tracking: 0.02, use: "Product descriptions, dense copy" }
39
+ caption: { size: 12, weight: 400, lineHeight: 1.5, tracking: 0.04, use: "Metadata, legal, breadcrumbs" }
40
+ price: { size: 16, weight: 400, lineHeight: 1.3, use: "Product price" }
41
+ button: { size: 14, weight: 400, lineHeight: 1.0, tracking: 0.04, use: "Add to cart, primary actions" }
42
+ spacing: [4, 8, 12, 16, 24, 32, 48, 64, 96]
43
+ rounded: { sm: 2, md: 2, lg: 2, full: 9999 }
44
+ shadow:
45
+ subtle: "0 2px 8px rgba(0,0,0,0.08)"
46
+ modal: "0 4px 24px rgba(0,0,0,0.16)"
47
+ components_harvested: true
48
+ components:
49
+ button-primary: { type: button, bg: "#333333", fg: "#ffffff", radius: "2px", padding: "14px 24px", font: "14px / 400", states: "hover #000000", use: "Single primary action (add to cart / checkout)" }
50
+ button-secondary: { type: button, bg: "#ffffff", fg: "#333333", border: "1px solid #333333", radius: "2px", padding: "13px 24px", font: "14px / 400", states: "hover bg #f7f7f7", use: "Secondary actions" }
51
+ button-tertiary: { type: button, bg: "transparent", fg: "#666666", border: "1px solid #dddddd", radius: "2px", padding: "10px 16px", font: "13px / 400", use: "Low-priority actions, filters" }
52
+ button-brand: { type: button, bg: "#7f0019", fg: "#ffffff", radius: "2px", padding: "14px 24px", font: "14px / 400", states: "hover #6b0015", use: "Sale / campaign CTAs only" }
53
+ button-disabled: { type: button, bg: "#eeeeee", fg: "#999999", radius: "2px", use: "Out-of-stock, unavailable" }
54
+ input: { type: input, bg: "#ffffff", fg: "#333333", border: "1px solid #cccccc", radius: "2px", padding: "12px 14px", font: "14px / 400", focus: "border #333333, no glow", use: "Standard form field" }
55
+ input-error: { type: input, bg: "#ffffff", border: "1px solid #c0392b", radius: "2px", use: "Validation failure, help text #c0392b" }
56
+ card-product: { type: card, bg: "#ffffff", radius: "0px", padding: "0", shadow: "none", use: "Catalog grid card, photo is the card" }
57
+ card-editorial: { type: card, bg: "#ffffff", border: "1px solid #eeeeee", radius: "2px", padding: "20px", shadow: "none", use: "Story modules, info panels" }
58
+ tag-sale: { type: badge, bg: "#7f0019", fg: "#ffffff", radius: "0px", padding: "2px 8px", font: "11px / 400", use: "Sale indicator, printed-label feel" }
59
+ tag-neutral: { type: badge, bg: "#eeeeee", fg: "#666666", radius: "0px", padding: "2px 8px", font: "11px / 400", use: "NEW, category labels" }
60
+ tab: { type: tab, fg: "#999999", font: "14px / 400", active: "text #333333, 2px bottom border #333333", use: "PDP detail tabs, category switching" }
61
+ segmented: { type: tab, bg: "#eeeeee", radius: "2px", font: "13px / 400", active: "bg #ffffff, text #333333", use: "View toggles, sort modes" }
62
+ toast: { type: toast, bg: "#333333", fg: "#ffffff", radius: "2px", padding: "12px 16px", shadow: "0 2px 8px rgba(0,0,0,0.12)", font: "13px / 400", use: "Transient confirmation" }
63
+ notice-inline: { type: card, bg: "#f7f7f7", fg: "#333333", border: "2px solid #7f0019", radius: "0px", padding: "12px 16px", use: "Shipping info, stock notices" }
64
+ dialog: { type: dialog, bg: "#ffffff", fg: "#333333", radius: "2px", padding: "32px", shadow: "0 4px 24px rgba(0,0,0,0.16)", use: "Confirmation, size guide, login" }
65
+ checkbox: { type: toggle, border: "1px solid #cccccc", radius: "2px", active: "#333333 fill, white check", use: "Filters, terms agreement, square" }
66
+ toggle: { type: toggle, bg: "#cccccc", radius: "9999px", active: "track #333333, white thumb", use: "Newsletter / setting switches" }
67
+ ---
68
+
69
+ # Design System Inspiration of MUJI (無印良品)
70
+
71
+ ## 1. Visual Theme & Atmosphere
72
+
73
+ MUJI — *Mujirushi Ryohin* (無印良品), "no-brand quality goods" — is the rare retailer whose entire visual identity is an argument *against* visual identity. Founded in 1980 as a product line inside the Seiyu supermarket chain, MUJI was a deliberate rejection of the brand-premium economics of late-bubble Japan: strip out the packaging, strip out the logo tax, keep the material quality. The website is the digital extension of that thesis. It opens on a near-white canvas (`#ffffff` / `#f7f7f7`) with quiet near-black text (`#333333`) and exactly one chromatic note in the whole system — the signature MUJI maroon (`#7f0019`), reserved almost entirely for the logo plate and a few load-bearing accents.
74
+
75
+ The interface feels like a well-lit, empty room. There are no gradients, no shadows for decoration, no rounded "friendly" corners softening every edge. Product photography sits on white with generous margins; text is set in **Helvetica Neue** for Latin script and a clean gothic (ゴシック) for Japanese — the emptiest, most neutral typefaces in circulation, chosen precisely because they disappear and leave only the product. Art director **Kenya Hara** (since 2001) frames this as *emptiness* (空 / 無): not minimalism as a reductive Western program, but a vessel-like openness that invites the user to complete the meaning.
76
+
77
+ What defines MUJI visually is restraint taken to the level of doctrine. The maroon is never used as a button color, never as a link hover, never decoratively — it is the brand mark and almost nothing else. Color in the UI is achieved through grayscale and the natural tones of the merchandise itself. Whitespace is not "negative space" to be filled; it is the primary design material.
78
+
79
+ **Key Characteristics:**
80
+ - MUJI Maroon (`#7f0019`) as the single brand color — logo plate and rare accents only, never a generic UI accent
81
+ - Helvetica Neue (Latin) + neutral Japanese gothic — typefaces chosen to vanish
82
+ - Near-black text (`#333333`), never pure `#000000` — softer, paper-like
83
+ - White and warm off-white surfaces (`#ffffff`, `#f7f7f7`, `#eeeeee`)
84
+ - Minimal-to-zero shadows; separation via hairline borders (`#dddddd`) and whitespace
85
+ - Small, conservative border-radius (0px–2px) — square corners are the default
86
+ - Generous whitespace and wide margins as the core compositional tool
87
+ - Product photography does the talking; chrome stays silent
88
+
89
+ ## 2. Color Palette & Roles
90
+
91
+ ### Primary / Brand
92
+ - **MUJI Maroon** (`#7f0019`): The single signature brand color (RGB 127, 0, 25). Used for the logo plate, the "MUJI" wordmark background, and a handful of high-priority accents (sale tags, active brand-nav markers). Deep brick-red with no orange in it — somber, traditional, Japanese.
93
+ - **Maroon Deep** (`#6b0015`): Pressed/hover state for the rare interactive maroon element.
94
+ - **Maroon Tint** (`#f4e6e9`): Faint maroon-washed surface for sale banners or brand-themed callouts. Used sparingly.
95
+
96
+ ### Text / Ink
97
+ - **Ink** (`#333333`): Primary body and heading color. A soft near-black — never pure black. Reads as ink on uncoated paper.
98
+ - **Ink Secondary** (`#666666`): Captions, metadata, secondary descriptions, price subtext.
99
+ - **Ink Tertiary** (`#999999`): Placeholder text, disabled labels, fine print, breadcrumb separators.
100
+
101
+ ### Neutral / Surface Scale
102
+ - **White** (`#ffffff`): Page background, card surfaces, product photography ground.
103
+ - **Off-White** (`#f7f7f7`): Section backgrounds, subtle zoning, alternating bands.
104
+ - **Mist** (`#eeeeee`): Secondary fills, input backgrounds, hover surfaces.
105
+ - **Cloud** (`#e5e5e5`): Stronger fills, segmented control track.
106
+ - **Hairline** (`#dddddd`): Default border, divider, table rule — the workhorse separator.
107
+ - **Border Strong** (`#cccccc`): Emphasized borders, active input outlines.
108
+
109
+ ### Semantic (used minimally)
110
+ - **Sale Red** (`#7f0019`): MUJI does not introduce a separate "error red" — the brand maroon doubles for sale pricing and critical emphasis.
111
+ - **Error** (`#c0392b`): Reserved, slightly brighter red for true form-validation errors only (distinguished from brand maroon so errors don't read as branding).
112
+ - **Success** (`#4a7c59`): Muted sage-green for confirmation states. Desaturated to fit the palette.
113
+ - **Info Ink** (`#333333`): MUJI conveys information through ink + weight, not color.
114
+
115
+ ### Dark Footer
116
+ - **Footer Ground** (`#333333`): Footer / global navigation dark band on some regional sites.
117
+ - **Footer Text** (`#ffffff` / `rgba(255,255,255,0.7)`): Footer links and muted secondary footer text.
118
+
119
+ ## 3. Typography Rules
120
+
121
+ ### Font Family
122
+ - **Primary (Latin)**: `"Helvetica Neue", Helvetica, Arial, "ヒラギノ角ゴ ProN", "Hiragino Kaku Gothic ProN", "メイリオ", Meiryo, sans-serif`
123
+ - **Japanese**: `"ヒラギノ角ゴ ProN", "Hiragino Kaku Gothic ProN", "Yu Gothic", "Noto Sans JP", sans-serif` — neutral gothic, no decorative mincho on chrome
124
+ - **Numerals**: Helvetica Neue figures for prices; no custom tabular font — alignment via layout, not a special numeral set
125
+
126
+ ### Hierarchy
127
+
128
+ | Role | Font | Size | Weight | Line Height | Letter Spacing | Notes |
129
+ |------|------|------|--------|-------------|----------------|-------|
130
+ | Page Title | Helvetica Neue | 28px | 300 (Light) | 1.4 | 0.02em | Light weight signals quiet authority |
131
+ | Section Heading | Helvetica Neue | 22px | 400 | 1.4 | 0.02em | Category / section titles |
132
+ | Sub-heading | Helvetica Neue | 18px | 400 | 1.5 | 0.02em | Card titles, group labels |
133
+ | Lead / Intro | Helvetica Neue | 16px | 300 | 1.7 | 0.02em | Editorial intro paragraphs |
134
+ | Body | Helvetica Neue | 14px | 400 | 1.7 | 0.02em | Standard reading text |
135
+ | Body Small | Helvetica Neue | 13px | 400 | 1.6 | 0.02em | Product descriptions, dense copy |
136
+ | Caption | Helvetica Neue | 12px | 400 | 1.5 | 0.04em | Metadata, legal, breadcrumbs |
137
+ | Price | Helvetica Neue | 16px | 400 | 1.3 | 0 | Product price, never bolded loud |
138
+ | Price Large | Helvetica Neue | 20px | 400 | 1.3 | 0 | PDP primary price |
139
+ | Nav Link | Helvetica Neue | 13px | 400 | 1.4 | 0.04em | Global nav, restrained tracking |
140
+ | Button Label | Helvetica Neue | 14px | 400 | 1.0 | 0.04em | Add to cart, primary actions |
141
+
142
+ ### Principles
143
+ - **Light weight as register**: Headings often run at weight 300 (Light). Where most retailers shout in bold, MUJI whispers — the lightness is the authority.
144
+ - **Generous line-height**: Body copy runs 1.7 line-height. Air between lines is part of the "emptiness" — text never crowds.
145
+ - **Subtle positive tracking**: A small `0.02em`–`0.04em` letter-spacing opens the text up. Helvetica Neue set slightly loose reads calmer than default.
146
+ - **No bold for hierarchy**: Hierarchy comes from size and color (Ink → Ink Secondary), not from heavy weights. Bold (700) is rare and reserved for an active price or a single emphasized word.
147
+ - **Two scripts, one neutrality**: Latin Helvetica Neue and Japanese gothic are weighted to sit calmly together; neither dominates. No decorative serif/mincho enters the chrome.
148
+
149
+ ## 4. Component Stylings
150
+
151
+ ### Buttons
152
+
153
+ MUJI buttons are flat, square-cornered, and quiet. The default is a near-black outline or fill — the brand maroon is *not* the primary button color.
154
+
155
+ **Primary (Add to Cart / Checkout)**
156
+ - Background: `#333333`
157
+ - Text: `#ffffff`
158
+ - Border: none
159
+ - Radius: 2px
160
+ - Padding: 14px 24px
161
+ - Font: 14px / 400 / Helvetica Neue, `0.04em` tracking
162
+ - Hover: `#000000`
163
+ - Use: The single primary action on a screen (カートに入れる, ご購入手続きへ)
164
+
165
+ **Secondary (Outline)**
166
+ - Background: `#ffffff`
167
+ - Text: `#333333`
168
+ - Border: 1px solid `#333333`
169
+ - Radius: 2px
170
+ - Padding: 13px 24px
171
+ - Font: 14px / 400 / Helvetica Neue
172
+ - Hover: background `#f7f7f7`
173
+ - Use: Secondary actions — お気に入り, 続けて見る
174
+
175
+ **Tertiary (Quiet)**
176
+ - Background: transparent
177
+ - Text: `#666666`
178
+ - Border: 1px solid `#dddddd`
179
+ - Radius: 2px
180
+ - Padding: 10px 16px
181
+ - Font: 13px / 400 / Helvetica Neue
182
+ - Use: Low-priority actions, filters, "もっと見る"
183
+
184
+ **Brand (rare)**
185
+ - Background: `#7f0019`
186
+ - Text: `#ffffff`
187
+ - Border: none
188
+ - Radius: 2px
189
+ - Padding: 14px 24px
190
+ - Font: 14px / 400 / Helvetica Neue
191
+ - Hover: `#6b0015`
192
+ - Use: Reserved for sale / campaign CTAs only — never the everyday add-to-cart
193
+
194
+ **Disabled**
195
+ - Background: `#eeeeee`
196
+ - Text: `#999999`
197
+ - Border: none
198
+ - Radius: 2px
199
+ - Use: Out-of-stock, unavailable action
200
+
201
+ ### Inputs
202
+
203
+ **Default**
204
+ - Background: `#ffffff`
205
+ - Text: `#333333`
206
+ - Border: 1px solid `#cccccc`
207
+ - Radius: 2px
208
+ - Padding: 12px 14px
209
+ - Font: 14px / 400 / Helvetica Neue
210
+ - Placeholder: `#999999`
211
+ - Focus: border `#333333` (no glow, no colored ring — a darkened hairline)
212
+ - Use: Standard form field, search, login
213
+
214
+ **Filled (subtle)**
215
+ - Background: `#f7f7f7`
216
+ - Text: `#333333`
217
+ - Border: 1px solid transparent
218
+ - Radius: 2px
219
+ - Padding: 12px 14px
220
+ - Focus: border `#cccccc`
221
+ - Use: Search bars inside light chrome
222
+
223
+ **Error**
224
+ - Background: `#ffffff`
225
+ - Border: 1px solid `#c0392b`
226
+ - Radius: 2px
227
+ - Help text below in `#c0392b`, 12px
228
+ - Use: Validation failure
229
+
230
+ ### Cards
231
+
232
+ MUJI product cards are nearly invisible frames — the photograph is the card.
233
+
234
+ **Product Card**
235
+ - Background: `#ffffff`
236
+ - Border: none (or 1px `#eeeeee` on dense grids)
237
+ - Radius: 0px
238
+ - Padding: 0 (image flush), text block padded 8px 0
239
+ - Shadow: none
240
+ - Image: square or 3:4, on `#ffffff` or `#f7f7f7` ground
241
+ - Title: 13px / 400 / `#333333`
242
+ - Price: 14px / 400 / `#333333` (sale price in `#7f0019`)
243
+ - Use: The catalog grid — the dominant surface of the site
244
+
245
+ **Content / Editorial Card**
246
+ - Background: `#ffffff`
247
+ - Border: 1px solid `#eeeeee`
248
+ - Radius: 2px
249
+ - Padding: 20px
250
+ - Shadow: none
251
+ - Use: "MUJI passport" callouts, story modules, info panels
252
+
253
+ **Banner Card**
254
+ - Background: `#f7f7f7`
255
+ - Border: none
256
+ - Radius: 0px
257
+ - Padding: 32px
258
+ - Use: Full-bleed campaign / seasonal bands
259
+
260
+ ### Badges / Tags
261
+
262
+ **Sale Tag**
263
+ - Background: `#7f0019`
264
+ - Text: `#ffffff`
265
+ - Border: none
266
+ - Radius: 0px (square — a printed-label feel)
267
+ - Padding: 2px 8px
268
+ - Font: 11px / 400 / Helvetica Neue, `0.04em`
269
+ - Use: 期間限定価格 / sale indicator
270
+
271
+ **Neutral Tag**
272
+ - Background: `#eeeeee`
273
+ - Text: `#666666`
274
+ - Border: none
275
+ - Radius: 0px
276
+ - Padding: 2px 8px
277
+ - Font: 11px / 400
278
+ - Use: NEW, category labels, attribute chips
279
+
280
+ **Outline Tag**
281
+ - Background: transparent
282
+ - Text: `#666666`
283
+ - Border: 1px solid `#dddddd`
284
+ - Radius: 0px
285
+ - Padding: 1px 7px
286
+ - Use: Filter chips, selectable attributes
287
+
288
+ ### Tabs / Segmented Control
289
+
290
+ **Underline Tabs (Active)**
291
+ - Background: transparent
292
+ - Text: `#333333` (active) / `#999999` (inactive)
293
+ - Border: 2px solid `#333333` (bottom, active only)
294
+ - Font: 14px / 400 / Helvetica Neue
295
+ - Use: PDP detail tabs (商品詳細 / レビュー), category switching
296
+
297
+ **Segmented**
298
+ - Track: `#eeeeee`
299
+ - Active: `#ffffff` background + `#333333` text
300
+ - Border: none
301
+ - Radius: 2px
302
+ - Font: 13px / 400
303
+ - Use: View toggles, sort modes
304
+
305
+ ### Toasts / Notices
306
+
307
+ **Default**
308
+ - Background: `#333333`
309
+ - Text: `#ffffff`
310
+ - Border: none
311
+ - Radius: 2px
312
+ - Padding: 12px 16px
313
+ - Shadow: `0 2px 8px rgba(0,0,0,0.12)` (the rare allowed shadow)
314
+ - Font: 13px / 400
315
+ - Use: "カートに追加しました" transient confirmation
316
+
317
+ **Inline Notice**
318
+ - Background: `#f7f7f7`
319
+ - Text: `#333333`
320
+ - Border-left: 2px solid `#7f0019`
321
+ - Radius: 0px
322
+ - Padding: 12px 16px
323
+ - Use: Shipping info, stock notices, page-level messages
324
+
325
+ ### Dialogs
326
+
327
+ **Centered Modal**
328
+ - Background: `#ffffff`
329
+ - Text: `#333333`
330
+ - Border: none
331
+ - Radius: 2px
332
+ - Padding: 32px
333
+ - Shadow: `0 4px 24px rgba(0,0,0,0.16)`
334
+ - Overlay: `rgba(0,0,0,0.4)`
335
+ - Use: Confirmation, size guide, login prompt
336
+
337
+ ### Toggles / Checkboxes
338
+
339
+ **Checkbox**
340
+ - Border: 1px solid `#cccccc`
341
+ - Radius: 2px (square)
342
+ - Checked: `#333333` fill, white check
343
+ - Use: Filters, terms agreement — square, never circular
344
+
345
+ **Toggle**
346
+ - Track: `#cccccc` (off) / `#333333` (on)
347
+ - Thumb: `#ffffff` circle
348
+ - Radius: 9999px (the one pill in the system)
349
+ - Use: Newsletter / setting switches
350
+
351
+ ---
352
+
353
+ **Verified:** 2026-06-06 (full-depth)
354
+ **Tier 1 sources:** muji.com (live brand chrome — Helvetica Neue type stack, near-white surfaces, square-corner buttons, maroon logo plate). brandcolorcode.com/muji and encycolorpedia.com (MUJI Red `#7f0019` / RGB 127,0,25 confirmed across sources). · https://www.muji.com (live production site)
355
+ **Tier 2 sources:** fontalternatives.com (Helvetica Neue confirmed as MUJI's Latin typeface under Kenya Hara). dezeen.com / bworldonline.com (Kenya Hara "emptiness" 空/無 design philosophy, art director since 2001).
356
+ **Conflicts:** none. `#7f0019` is consistently reported as the singular MUJI brand color; the brand intentionally avoids a broader chromatic palette.
357
+ **Note:** MUJI publishes no public token-level design system; chrome values are read from the live site and brand-color registries, then conformed to the brand's documented minimalist doctrine.
358
+
359
+ ## 5. Layout Principles
360
+
361
+ ### Spacing System
362
+ - Base unit: 8px
363
+ - Common values: 4px, 8px, 12px, 16px, 24px, 32px, 48px, 64px, 96px
364
+ - Section vertical rhythm is large: 64px–96px between major bands
365
+ - Product grids use tight internal gutters (8px–16px) but wide outer margins
366
+
367
+ ### Grid & Container
368
+ - Max content width: ~1180px, centered
369
+ - Wide page gutters — content rarely touches the viewport edge except for full-bleed campaign imagery
370
+ - Product catalog: 4–5 column grid on desktop, even gutters, square cells
371
+ - Editorial: single centered column ~720px for readable measure
372
+ - Full-bleed hero/campaign bands alternate with constrained content columns
373
+
374
+ ### Whitespace Philosophy
375
+ - **Emptiness is the material.** Whitespace is not leftover space; it is the primary compositional element. A product floating in white communicates quality more than any frame could.
376
+ - **Let the product speak.** Chrome recedes so merchandise photography carries the page. Reducing UI ornament is a feature, not a constraint.
377
+ - **Even, calm rhythm.** Spacing is regular and predictable — no dramatic density shifts. The page should feel like a tidy shelf, evenly stocked.
378
+ - **Wide margins as luxury.** Generous outer margins signal confidence; cramming signals discount-bin urgency, which MUJI refuses.
379
+
380
+ ### Border Radius Scale
381
+ - Square (0px): Product cards, tags, image frames, banners — the default
382
+ - Hairline (2px): Buttons, inputs, modals, content cards — barely softened
383
+ - Pill (9999px): Toggle switches only
384
+ - **No large radii.** Nothing rounder than 2px except the toggle. Square corners are intrinsic to the printed, no-nonsense MUJI feel.
385
+
386
+ ## 6. Depth & Elevation
387
+
388
+ | Level | Treatment | Use |
389
+ |-------|-----------|-----|
390
+ | Flat (Level 0) | No shadow | Page background, product cards, most surfaces — the default |
391
+ | Hairline (Level 1) | 1px solid `#dddddd` border | Separation without shadow — the primary "elevation" device |
392
+ | Subtle (Level 2) | `0 2px 8px rgba(0,0,0,0.08)` | Sticky header on scroll, toast |
393
+ | Modal (Level 3) | `0 4px 24px rgba(0,0,0,0.16)` | Dialogs, dropdown menus |
394
+
395
+ **Shadow Philosophy**: MUJI's depth system is, by design, almost no depth at all. Where most e-commerce leans on cards-with-shadows to create hierarchy, MUJI separates elements with whitespace and hairline borders (`#dddddd`). Shadows are pure neutral black at low opacity and appear only where physically necessary — a header floating over scrolling content, a modal over a scrim. There are no colored shadows, no multi-layer elevation, no "lifted" decorative cards. Flatness is the brand statement: a printed page does not cast shadows, and MUJI's digital surfaces aspire to the calm of good paper.
396
+
397
+ ### Blur Effects
398
+ - Sticky header may apply a light `backdrop-filter: blur(8px)` with a translucent white background on scroll
399
+ - Otherwise blur is avoided — clarity over effect
400
+
401
+ ## 7. Do's and Don'ts
402
+
403
+ ### Do
404
+ - Reserve MUJI Maroon (`#7f0019`) for the logo and rare brand accents — treat it as precious
405
+ - Use `#333333` for text, never pure `#000000`
406
+ - Default to square corners (0px); use 2px only on buttons, inputs, modals
407
+ - Separate elements with whitespace and hairline `#dddddd` borders, not shadows
408
+ - Set Helvetica Neue with `0.02em`–`0.04em` tracking and generous 1.7 line-height
409
+ - Use weight 300 for headings — lightness is the brand voice
410
+ - Let product photography on white be the visual focus
411
+ - Keep primary buttons near-black (`#333333`), not maroon
412
+
413
+ ### Don't
414
+ - Don't use maroon as a generic UI accent, link color, or everyday button — it is the brand mark, not a utility color
415
+ - Don't add decorative shadows or "floating card" elevation
416
+ - Don't use large border-radius or pill-shaped buttons (toggles excepted)
417
+ - Don't use bold weights to create hierarchy — use size and ink color instead
418
+ - Don't introduce additional brand colors — the palette is grayscale + one maroon
419
+ - Don't crowd content; cramped layouts contradict the emptiness doctrine
420
+ - Don't use pure black text or gradients
421
+ - Don't let chrome compete with merchandise photography
422
+
423
+ ## 8. Responsive Behavior
424
+
425
+ ### Breakpoints
426
+ | Name | Width | Key Changes |
427
+ |------|-------|-------------|
428
+ | Mobile | <768px | Single/2-column product grid, hamburger nav, full-width buttons |
429
+ | Tablet | 768–1024px | 3-column grid, condensed nav |
430
+ | Desktop | 1024–1280px | 4-column grid, full global nav |
431
+ | Large | >1280px | 5-column grid, centered ~1180px content with wide margins |
432
+
433
+ ### Touch Targets
434
+ - Buttons: minimum 44px tall on mobile
435
+ - Product cards: full tappable cell; tap targets never smaller than the photo
436
+ - Nav items and filters: comfortable 44px rows in the mobile drawer
437
+
438
+ ### Collapsing Strategy
439
+ - Global nav collapses to a hamburger drawer with full-height white panel
440
+ - Product grid: 5→4→3→2 columns down the breakpoints
441
+ - Primary buttons become full-width on mobile
442
+ - Editorial column stays centered, padding reduces from 32px to 16px
443
+ - Sticky add-to-cart bar appears on mobile PDP, white with hairline top border
444
+
445
+ ### Image Behavior
446
+ - Product photography maintains square/3:4 ratio across breakpoints
447
+ - Full-bleed campaign imagery scales edge-to-edge; text overlays reflow below image on mobile
448
+ - Images stay on white/off-white ground — never cropped tightly or framed with shadow
449
+
450
+ ## 9. Agent Prompt Guide
451
+
452
+ ### Quick Color Reference
453
+ - Brand mark / sale accent: MUJI Maroon (`#7f0019`)
454
+ - Primary button: Ink (`#333333`)
455
+ - Button hover: Black (`#000000`)
456
+ - Background: White (`#ffffff`)
457
+ - Section background: Off-White (`#f7f7f7`)
458
+ - Heading & body text: Ink (`#333333`)
459
+ - Secondary text: Ink Secondary (`#666666`)
460
+ - Placeholder / disabled: Ink Tertiary (`#999999`)
461
+ - Border / divider: Hairline (`#dddddd`)
462
+ - Input border: Border Strong (`#cccccc`)
463
+ - Error: `#c0392b` · Success: `#4a7c59`
464
+
465
+ ### Example Component Prompts
466
+ - "Create a MUJI product card: white background, no border, 0px radius, no shadow. Square product photo on `#ffffff`. Below: title 13px Helvetica Neue weight 400 `#333333`, price 14px `#333333` (sale price `#7f0019`). No hover lift — only a subtle `#f7f7f7` background tint on hover."
467
+ - "Build a primary add-to-cart button: `#333333` background, white text, 14px Helvetica Neue weight 400 with 0.04em tracking, 2px radius, 14px 24px padding. Hover `#000000`. Full-width on mobile. No shadow."
468
+ - "Design a secondary button: white background, 1px solid `#333333` border, `#333333` text, 2px radius, hover background `#f7f7f7`."
469
+ - "Create a MUJI input: white background, 1px solid `#cccccc` border, 2px radius, 12px 14px padding, 14px Helvetica Neue, placeholder `#999999`. Focus: border darkens to `#333333`, no glow or colored ring."
470
+ - "Design a sale tag: `#7f0019` background, white text, 11px Helvetica Neue, 0px radius (square), 2px 8px padding — printed-label feel."
471
+ - "Build a section: `#f7f7f7` background, 64px vertical padding, centered content ~1180px, heading 22px Helvetica Neue weight 300 `#333333` with 0.02em tracking, body 14px line-height 1.7 `#666666`."
472
+
473
+ ### Iteration Guide
474
+ 1. Maroon (`#7f0019`) is for the logo and sale accents only — never a generic accent or link color
475
+ 2. Text is `#333333`, never pure black; secondary is `#666666`
476
+ 3. Square corners are default; 2px radius only on buttons/inputs/modals; pill only on toggles
477
+ 4. Separate with whitespace + 1px `#dddddd` hairlines, not shadows
478
+ 5. Helvetica Neue, weight 300 headings / 400 body, 0.02–0.04em tracking, 1.7 line-height
479
+ 6. Primary buttons are near-black (`#333333`), not maroon
480
+ 7. Whitespace is the design — when in doubt, add air, not ornament
481
+ 8. Let product photography on white carry the composition
482
+
483
+ ---
484
+
485
+ ## 10. Voice & Tone
486
+
487
+ MUJI's voice is plain, unhurried, and quietly declarative — the verbal equivalent of an unbranded paper bag. It describes, it does not sell. The brand's own founding register is captured in its 1980 slogan *「わけあって、安い」* ("Lower priced for a reason") and the recurring *「これがいい」ではなく「これでいい」* framing — not "this is *the best*," but "this *will do*," a deliberately modest contentment over assertive desire. Copy explains the material, the process, and the reason a thing is the way it is. There are no superlatives, no urgency theater, no exclamation points on routine surfaces.
488
+
489
+ | Context | Tone |
490
+ |---|---|
491
+ | Product descriptions | Factual, material-first. "オーガニックコットン100%。" States what it is and why. Never "amazing" or "luxurious". |
492
+ | CTAs | Plain imperative. "カートに入れる", "ご購入手続きへ", "もっと見る". No hype verbs. |
493
+ | Sale messaging | Reason-given, never panicked. "わけあって、安い。" Explains the why; no countdown urgency. |
494
+ | Confirmation | Calm past-tense. "カートに追加しました". No emoji, no celebration. |
495
+ | Editorial / story | Reflective, essayistic — the "emptiness" voice. Talks about everyday life, not features. |
496
+ | Empty states | Honest and brief. "該当する商品はありません". Offers a quiet next step. |
497
+ | Error messages | Plain and blameless. States what to fix, no apology theater. |
498
+
499
+ **Forbidden register.** No superlatives ("最高", "革命的", "amazing", "luxury"), no urgency manipulation ("今だけ!急いで!"), no exclamation marks on routine CTAs, no emoji on product or checkout surfaces. MUJI never claims to be the best — claiming superiority contradicts the no-brand premise. The voice is "this will do," stated with calm conviction.
500
+
501
+ ## 11. Brand Narrative
502
+
503
+ MUJI launched in **December 1980** as a 40-item private label inside the **Seiyu** supermarket chain, not as a standalone company. Japan's post-bubble consumers were beginning to ask whether they were paying for objects or for the packaging and advertising wrapped around them. MUJI's founding answer — encoded in the name *無印良品*, "no-mark quality goods" — was to strip the brand premium out entirely: remove the logo, remove the decorative packaging, simplify the production process, and pass the honesty on as both lower price and higher trust. The first slogan, *「わけあって、安い」* ("Lower priced for a reason"), made the logic explicit: cheaper *because* of deliberate choices, not despite them.
504
+
505
+ The visual program matured under art director **Kenya Hara**, who joined in 2001 and articulated the concept of **emptiness** (空 / 無) as distinct from minimalism. In a 2017 conversation with *Dezeen*, Hara drew the line sharply: minimalism is a Western system for reducing elements to their essential form; emptiness is a *prior* state — a vessel open enough that the user determines what an object means. A MUJI product, like a MUJI page, does not present a finished argument; it presents an open container. This is why the design refuses to over-specify: square corners, neutral Helvetica Neue, white grounds, and a single reserved maroon are not stylistic preferences but the formal expression of *mu* — a refusal to crowd the user's own meaning out.
506
+
507
+ What MUJI refuses is instructive: the status-signaling of luxury branding, the urgency theater of discount retail, the chromatic noise of mass-market e-commerce, and the "delightful" decoration of consumer apps. What it embraces is the calm of good paper, the dignity of an ordinary object well made, and the radical idea that the most confident thing a brand can do is get out of the way.
508
+
509
+ ## 12. Principles
510
+
511
+ 1. **Emptiness, not minimalism.** The goal is not to remove until nothing remains; it is to leave an open vessel the user completes. Whitespace invites, it doesn't merely subtract.
512
+ 2. **The product speaks; the chrome is silent.** Every UI decision should recede so merchandise photography carries the page. If chrome competes with the product, the chrome is wrong.
513
+ 3. **One color, held precious.** Maroon (`#7f0019`) appears only as the brand mark and rare sale accent. The moment it becomes a generic accent, it stops meaning "MUJI."
514
+ 4. **Square is honest.** Corners are 0px (or barely 2px). Rounded, friendly corners editorialize; the printed-page squareness states the facts plainly.
515
+ 5. **No black, no shouting.** Text is `#333333`, headings are weight 300. Authority comes from calm, not from contrast cranked to maximum.
516
+ 6. **Separate with air and hairlines.** Whitespace first, a 1px `#dddddd` rule second. Shadows only where physics demands (header over scroll, modal over scrim).
517
+ 7. **"This will do" over "this is the best."** Copy and design both choose modest sufficiency over aspirational excess. Restraint *is* the value proposition.
518
+ 8. **Evenness as calm.** Spacing is regular and predictable. A tidy, evenly stocked shelf — never a dramatic, density-jolting layout.
519
+
520
+ ## 13. Personas
521
+
522
+ *Personas below are fictional archetypes informed by publicly observable MUJI customer segments (design-conscious urban professionals, minimalist-lifestyle adopters, students furnishing first apartments), not individual people.*
523
+
524
+ **佐藤 美咲 (Misaki Sato), 32, Tokyo.** UX designer furnishing a small Setagaya apartment. Shops MUJI online for storage, stationery, and skincare because the products "don't decorate" her space — they recede the way good tools should. Notices immediately when an e-commerce site adds shadows and gradients to feel premium; to her that reads as trying too hard. Trusts MUJI precisely because the site looks like it isn't selling. Reads product copy for material and origin, ignores marketing adjectives.
525
+
526
+ **James Whitfield, 41, London.** Architect, MUJI shopper for over a decade across stores and online. Buys in muted color stories and appreciates that the catalog photography is honest — the linen looks like the linen that arrives. Would be put off by urgency banners or countdown timers; he associates them with brands he distrusts. Values the wide whitespace and square product grid because he can scan a category quickly without visual noise competing for attention.
527
+
528
+ **김지원 (Jiwon Kim), 24, Seoul.** Graduate student, first independent apartment. MUJI is aspirational-but-attainable — affordable goods that signal taste without logos. Browses on mobile, building a wishlist of pens, a CD player, and acrylic drawers. Cares that the mobile site is calm and fast; full-width near-black buttons and a clean single-column flow make checkout feel effortless. Came for the aesthetic, stayed because "これでいい" — it's enough, and that's the point.
529
+
530
+ ## 14. States
531
+
532
+ | State | Treatment |
533
+ |---|---|
534
+ | **Empty (no search results)** | White canvas. Single line in Ink (`#333333`) 14px: "該当する商品はありません". One quiet outline CTA to clear filters. No illustration. |
535
+ | **Empty (empty cart)** | Centered single line `#666666`: "カートに商品がありません". One near-black button "お買い物を続ける". Calm, never cute. |
536
+ | **Loading (grid first paint)** | Skeleton blocks in `#eeeeee` at exact product-cell dimensions. Subtle 1.2s shimmer. No spinners on the main grid. |
537
+ | **Loading (action in progress)** | Button label swaps to a small neutral spinner; button keeps its width and `#333333` fill. No color change. |
538
+ | **Error (form validation)** | Field border becomes `#c0392b` (distinct from brand maroon), 12px help text below in the same red. Specific and blameless: states what to fix. |
539
+ | **Error (page-level)** | Inline notice: `#f7f7f7` background, 2px `#7f0019` left border, `#333333` text. One sentence, one action. |
540
+ | **Success (added to cart)** | `#333333` toast, white text, 2px radius, brief `0 2px 8px rgba(0,0,0,0.08)` shadow, 3s auto-dismiss: "カートに追加しました". No emoji. |
541
+ | **Success (order placed)** | Dedicated confirmation page, not a toast. Quiet `#4a7c59` confirmation mark, order summary in plain Ink type, single "続けてお買い物" button. |
542
+ | **Skeleton** | `#eeeeee` blocks at final dimensions, square corners matching the cards. Shimmer is neutral, no brand tint. |
543
+ | **Disabled** | `#eeeeee` background, `#999999` text. Used for out-of-stock add-to-cart. Geometry unchanged so re-enabling is stable. |
544
+ | **Out of stock** | Product card stays; price replaced by `#999999` "在庫切れ" label; add-to-cart disabled. No alarming red. |
545
+
546
+ ## 15. Motion & Easing
547
+
548
+ **Durations**:
549
+
550
+ | Token | Value | Use |
551
+ |---|---|---|
552
+ | `motion-instant` | 0ms | Checkbox/toggle state commits, focus borders |
553
+ | `motion-fast` | 150ms | Hover tints, button press, small fades |
554
+ | `motion-standard` | 250ms | Dropdown, drawer, modal, image crossfade |
555
+ | `motion-slow` | 400ms | Page-level transitions, hero reveals |
556
+
557
+ **Easings**:
558
+
559
+ | Token | Curve | Use |
560
+ |---|---|---|
561
+ | `ease-enter` | `cubic-bezier(0.0, 0.0, 0.2, 1)` | Arriving — drawers, modals, fades-in |
562
+ | `ease-exit` | `cubic-bezier(0.4, 0.0, 1, 1)` | Leaving — dismissals |
563
+ | `ease-standard` | `cubic-bezier(0.4, 0.0, 0.2, 1)` | Two-way transitions — tabs, accordions |
564
+
565
+ **Explicitly avoided.** No spring, no bounce, no overshoot. Playful or kinetic motion contradicts the calm-paper register — a MUJI surface should never feel "delightful" in the consumer-app sense. Motion exists to soften transitions, not to entertain. No `cubic-bezier` with a control value above `1.0` anywhere.
566
+
567
+ **Signature motions.**
568
+
569
+ 1. **Image crossfade.** Product-gallery thumbnails crossfade the main image over `motion-standard / ease-standard`. Never a slide or zoom — the photograph simply replaces itself, calmly.
570
+ 2. **Drawer / hamburger nav.** The mobile nav panel slides in from the side over `motion-standard / ease-enter` with a synchronized `rgba(0,0,0,0.4)` scrim fade. Dismissal uses `motion-fast / ease-exit` — leaving is lighter than arriving.
571
+ 3. **Hover tint, not lift.** Cards and buttons respond to hover with a `motion-fast` background tint (`#f7f7f7`) or border darken — never a shadow or translate. Elements do not "lift"; flatness is preserved.
572
+ 4. **Reduce motion.** Under `prefers-reduced-motion: reduce`, all `motion-*` tokens collapse to `motion-instant`. Crossfades become instant swaps. The site stays fully usable; nothing is lost but the easing.
573
+
574
+ <!--
575
+ OmD v0.1 Sources
576
+
577
+ Direct verification via WebSearch (2026-06-06):
578
+ - brandcolorcode.com/muji — MUJI Red #7F0019, RGB (127, 0, 25), listed as the
579
+ single documented MUJI brand color.
580
+ - encycolorpedia.com/7f0019 and colorswall — corroborate #7f0019 as MUJI's
581
+ signature maroon; related tints #8c1a30, #993347 reported by registries.
582
+ - fontalternatives.com/inspiration/muji-helvetica — confirms Helvetica Neue as
583
+ MUJI's Latin typeface, refined under art director Kenya Hara across signage,
584
+ packaging, and advertising.
585
+ - dezeen.com (2017-12-13 Kenya Hara interview) and bworldonline.com — confirm
586
+ Hara as art director since 2001 and the "emptiness" (空/無) philosophy as
587
+ distinct from minimalism.
588
+ - General brand history (founded December 1980 as a Seiyu private label;
589
+ 「わけあって、安い」 founding slogan; 無印良品 = "no-brand quality goods")
590
+ is widely documented and used as context.
591
+
592
+ Token-level chrome values (#333333 ink, #f7f7f7 / #eeeeee / #dddddd neutrals,
593
+ 2px button/input radius, square cards, near-black primary buttons, Helvetica
594
+ Neue type scale) are read from the live muji.com chrome and conformed to MUJI's
595
+ documented minimalist/emptiness doctrine. MUJI publishes no public design-token
596
+ system, so these are observational, not from an official spec.
597
+
598
+ Personas (§13) are fictional archetypes informed by publicly observable MUJI
599
+ customer segments. Names are illustrative and do not refer to real people.
600
+
601
+ Interpretive claims (e.g., "square is honest", "one color held precious",
602
+ "this will do over this is the best") are editorial readings connecting MUJI's
603
+ stated no-brand / emptiness philosophy to its visual system, not directly
604
+ sourced MUJI statements.
605
+ -->