oh-my-design-cli 1.6.7 → 1.7.1

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 (229) hide show
  1. package/README.ko.md +17 -36
  2. package/README.md +6 -6
  3. package/agents/AGENT.md +3 -3
  4. package/agents/omd-master.md +7 -7
  5. package/agents/omd-microcopy.md +1 -1
  6. package/agents/omd-ux-researcher.md +1 -1
  7. package/data/reference-fingerprints.json +1318 -10
  8. package/package.json +1 -1
  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
@@ -0,0 +1,575 @@
1
+ ---
2
+ id: uniqlo
3
+ name: Uniqlo
4
+ country: JP
5
+ category: ecommerce
6
+ homepage: "https://www.uniqlo.com"
7
+ primary_color: "#ed1d24"
8
+ logo:
9
+ type: simpleicons
10
+ slug: "uniqlo"
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: "#ed1d24"
19
+ primary-hover: "#c8161c"
20
+ canvas: "#ffffff"
21
+ heading: "#1a1a1a"
22
+ body: "#333333"
23
+ secondary: "#666666"
24
+ muted: "#999999"
25
+ error: "#d0021b"
26
+ success: "#1a8917"
27
+ info: "#0070c9"
28
+ gray-50: "#f5f5f5"
29
+ gray-100: "#eeeeee"
30
+ gray-300: "#cccccc"
31
+ border: "#e0e0e0"
32
+ border-strong: "#1a1a1a"
33
+ on-primary: "#ffffff"
34
+ typography:
35
+ family: { sans: "TT Commons Pro", mono: "Helvetica Neue" }
36
+ display-hero: { size: 48, weight: 700, lineHeight: 1.10, tracking: -0.5, use: "Campaign headlines, hero" }
37
+ display-lg: { size: 36, weight: 700, lineHeight: 1.15, tracking: -0.3, use: "Feature section heads" }
38
+ heading-1: { size: 28, weight: 700, lineHeight: 1.20, use: "Page titles, category heads" }
39
+ heading-2: { size: 22, weight: 700, lineHeight: 1.25, use: "Sub-section titles" }
40
+ subtitle: { size: 16, weight: 600, lineHeight: 1.40, use: "Product names in tiles" }
41
+ body: { size: 14, weight: 400, lineHeight: 1.50, use: "Standard catalog text" }
42
+ price: { size: 18, weight: 700, lineHeight: 1.20, use: "Product price, tabular numerals" }
43
+ caption: { size: 12, weight: 400, lineHeight: 1.40, use: "Metadata, fine print" }
44
+ label: { size: 11, weight: 700, lineHeight: 1.20, tracking: 0.5, use: "Uppercase tags NEW/SALE" }
45
+ spacing: { xs: 4, sm: 8, md: 12, base: 16, lg: 24, xl: 32, xxl: 48, section: 64 }
46
+ rounded: { sm: 2, md: 2, lg: 4, full: 9999 }
47
+ shadow:
48
+ none: "none"
49
+ components:
50
+ button-primary: { type: button, bg: "#ed1d24", fg: "#ffffff", radius: 2, padding: "14px 24px", font: "15px/700", use: "Primary CTA ADD TO CART; hover #c8161c" }
51
+ button-secondary: { type: button, bg: "#ffffff", fg: "#1a1a1a", radius: 2, padding: "14px 24px", use: "Outlined; 1px #1a1a1a border, hover inverts to #1a1a1a" }
52
+ button-solid-black: { type: button, bg: "#1a1a1a", fg: "#ffffff", radius: 2, padding: "14px 24px", use: "Neutral strong action; hover #333333" }
53
+ button-disabled: { type: button, bg: "#eeeeee", fg: "#999999", radius: 2, use: "Unavailable action" }
54
+ product-tile: { type: card, bg: "#ffffff", radius: 0, padding: "8px", use: "Atomic product tile, grid-gutter separated, no shadow" }
55
+ input: { type: input, bg: "#ffffff", fg: "#1a1a1a", radius: 2, padding: "12px 14px", font: "14px", use: "Text input; 1px #cccccc border, focus #1a1a1a" }
56
+ size-chip: { type: badge, bg: "#ffffff", fg: "#1a1a1a", radius: 2, padding: "8px 14px", use: "Size selector; 1px #cccccc border, selected 2px #1a1a1a" }
57
+ sale-flag: { type: badge, bg: "#ed1d24", fg: "#ffffff", radius: 0, padding: "2px 6px", font: "11px/700", use: "SALE/LIMITED uppercase flag" }
58
+ components_harvested: true
59
+ ---
60
+
61
+ # Design System Inspiration of Uniqlo (ユニクロ)
62
+
63
+ ## 1. Visual Theme & Atmosphere
64
+
65
+ Uniqlo is the global apparel brand of Japan's Fast Retailing, and its design language is the visual translation of one idea: **LifeWear** -- simple, high-quality, everyday clothing "Made for All." The interface mirrors the product philosophy with almost literal fidelity. Where the clothing is engineering disguised as plainness, the website is a precise, gridded, near-monochrome canvas where a single saturated red (`#ed1d24`) does all the talking. The page opens on pure white (`#ffffff`) with near-black text (`#1a1a1a`), and the only chromatic event on most screens is the Uniqlo red -- in the logo, in price tags, in sale flags, in the primary CTA. Color is rationed like a scarce resource, which makes every red mark read as a deliberate signal rather than decoration.
66
+
67
+ The logo, designed by **Kashiwa Sato** in 2006, is the design system in miniature: a white katakana-inspired wordmark locked into a red square that deliberately echoes the Japanese flag (Hinomaru). That red square is the brand's load-bearing geometry -- a hard-edged rectangle, no rounding, maximum contrast. The whole site inherits that logic: rectangles, hard 90-degree corners, a strict modular grid of product tiles, and typography set in a clean geometric sans (TT Commons Pro on the modern web build, with Helvetica Neue / Arial as the historical fallback, and Hiragino Kaku Gothic for Japanese). Nothing is pill-shaped, nothing is soft, nothing apologizes for being a product catalog.
68
+
69
+ What defines Uniqlo visually is **catalog rigor**: dense, evenly-spaced grids of garment photography on white, where the product is the hero and the chrome recedes to black-and-white. The aesthetic is closer to a Muji-adjacent Japanese retail clarity than to the aspirational editorial mood of luxury fashion or the chaotic density of fast-fashion competitors. It is fashion presented as infrastructure -- orderly, legible, repeatable at the scale of thousands of SKUs.
70
+
71
+ **Key Characteristics:**
72
+ - Uniqlo Red (`#ed1d24`, Pantone 485 C) as the single brand accent -- rationed, never decorative
73
+ - Pure white (`#ffffff`) canvas with near-black (`#1a1a1a`) text -- maximum legibility, no warmth tax
74
+ - Hard 90-degree corners everywhere -- the red square logo's geometry inherited site-wide (radius 0-2px)
75
+ - TT Commons Pro geometric sans (web), Hiragino Kaku Gothic (Japanese), Helvetica/Arial fallback
76
+ - Strict modular product grid -- 2-up mobile, 3-4-up desktop, even gutters, repeating tiles
77
+ - Bold uppercase labels and price-forward hierarchy -- the price is a first-class typographic citizen
78
+ - Flat, shadowless surfaces -- depth comes from grid and whitespace, not elevation
79
+ - Bilingual-native typography -- Japanese and Latin set with equal care, neither subordinate
80
+
81
+ ## 2. Color Palette & Roles
82
+
83
+ ### Primary
84
+ - **Uniqlo Red** (`#ed1d24`): The brand color. Pantone 485 C, RGB(237,29,36), CMYK(1,99,97,0). Logo background, primary CTA, sale/price flags, active states, error emphasis. Unchanged since the 2006 Kashiwa Sato rebrand. This is the *only* saturated hue in the entire system.
85
+ - **Pure White** (`#ffffff`): Page background, card surfaces, logo wordmark, text on red. The default canvas -- everything sits on white.
86
+ - **Near Black** (`#1a1a1a`): Primary text, headings, navigation labels, product names. Not pure `#000000` -- a hair softer to reduce harshness on long catalog scans.
87
+
88
+ ### Brand (Logo / Marketing)
89
+ - **Hinomaru Red** (`#ed1d24`): The red square. Same value as primary -- the logo and the UI accent are intentionally the *same* red, unlike brands that split brand-red from UI-red.
90
+ - **Logo White** (`#ffffff`): The katakana wordmark, always knocked out of the red square. Never inverted (red text on white square is not the lockup).
91
+
92
+ ### Text Scale
93
+ - **Heading** (`#1a1a1a`): Product names, section titles, strong labels.
94
+ - **Body** (`#333333`): Standard reading text, descriptions, paragraph copy.
95
+ - **Secondary** (`#666666`): Sub-labels, metadata, secondary product info, helper text.
96
+ - **Tertiary / Muted** (`#999999`): Placeholder text, disabled labels, fine print, struck-through original prices.
97
+
98
+ ### Semantic
99
+ - **Sale / Price Red** (`#ed1d24`): Sale prices, discount flags, "限定" / "LIMITED OFFER" tags. The red doubles as the price-attention color -- there is no separate "sale orange."
100
+ - **Error Red** (`#ed1d24` / `#d0021b`): Form errors, validation failures. Reuses brand red; deeper `#d0021b` for error text on white when extra contrast is needed.
101
+ - **Success Green** (`#1a8917`): Order confirmation, in-stock indicators, "added to cart." Used sparingly -- green is functional, never decorative.
102
+ - **Info Blue** (`#0070c9`): Informational links, size-guide links, shipping notices. Restrained, utilitarian.
103
+
104
+ ### Neutral Scale
105
+ - **Gray 50** (`#f5f5f5`): Lightest surface, secondary section backgrounds, hover fills, skeleton base.
106
+ - **Gray 100** (`#eeeeee`): Card fills, disabled button surfaces, input backgrounds.
107
+ - **Gray 200** (`#e0e0e0`): Default borders, dividers, grid lines, input outlines.
108
+ - **Gray 300** (`#cccccc`): Stronger borders, inactive controls.
109
+ - **Gray 500** (`#999999`): Muted text, placeholders, struck prices.
110
+ - **Gray 700** (`#666666`): Secondary text.
111
+ - **Gray 900** (`#1a1a1a`): Primary text, near-black.
112
+
113
+ ### Surface & Borders
114
+ - **Border Default** (`#e0e0e0`): Standard dividers, product-tile separators, input borders, table rules.
115
+ - **Border Strong** (`#1a1a1a`): Emphasized outlines -- outlined "secondary" buttons, selected swatches, active filter chips.
116
+ - **Overlay Scrim** (`rgba(0,0,0,0.5)`): Modal/drawer backdrop. Neutral black, no tint.
117
+
118
+ ## 3. Typography Rules
119
+
120
+ ### Font Family
121
+ - **Primary (Latin/web)**: `"TT Commons Pro", "Helvetica Neue", Helvetica, Arial, sans-serif`
122
+ - **Japanese**: `"Hiragino Kaku Gothic ProN", "Hiragino Sans", "Yu Gothic", "Noto Sans JP", sans-serif`
123
+ - **Logo wordmark**: Custom katakana-inspired geometric sans (Kashiwa Sato, 2006) -- not used for body text, lockup only.
124
+ - **Numerals**: Tabular figures for prices and size charts; proportional for running copy.
125
+
126
+ The system is a clean geometric sans with even stroke weight and open counters -- chosen for maximum legibility at catalog density across Latin, Japanese, and dozens of localized scripts. There are no serifs, no display faces, no decorative type anywhere in the product experience.
127
+
128
+ ### Hierarchy
129
+
130
+ | Role | Font | Size | Weight | Line Height | Letter Spacing | Notes |
131
+ |------|------|------|--------|-------------|----------------|-------|
132
+ | Display Hero | TT Commons Pro | 48px (3.00rem) | 700 | 1.10 | -0.5px | Campaign headlines, hero banners |
133
+ | Display Large | TT Commons Pro | 36px (2.25rem) | 700 | 1.15 | -0.3px | Feature section heads |
134
+ | Heading 1 | TT Commons Pro | 28px (1.75rem) | 700 | 1.20 | normal | Page titles, category heads |
135
+ | Heading 2 | TT Commons Pro | 22px (1.38rem) | 700 | 1.25 | normal | Sub-section titles |
136
+ | Heading 3 | TT Commons Pro | 18px (1.13rem) | 600 | 1.33 | normal | Card group titles |
137
+ | Subtitle | TT Commons Pro | 16px (1.00rem) | 600 | 1.40 | normal | Product names in tiles |
138
+ | Body Large | TT Commons Pro | 16px (1.00rem) | 400 | 1.50 | normal | Descriptions, intro copy |
139
+ | Body | TT Commons Pro | 14px (0.88rem) | 400 | 1.50 | normal | Standard catalog text |
140
+ | Body Small | TT Commons Pro | 13px (0.81rem) | 400 | 1.46 | normal | Secondary product info |
141
+ | Caption | TT Commons Pro | 12px (0.75rem) | 400 | 1.40 | normal | Metadata, fine print |
142
+ | Price | TT Commons Pro | 16px-20px | 700 | 1.20 | normal | Product price -- tabular numerals |
143
+ | Sale Price | TT Commons Pro | 16px-20px | 700 | 1.20 | normal | `#ed1d24`, tabular numerals |
144
+ | Label / Tag | TT Commons Pro | 11px (0.69rem) | 700 | 1.20 | 0.5px | UPPERCASE -- "NEW", "LIMITED", "SALE" |
145
+ | Nav Link | TT Commons Pro | 13px (0.81rem) | 600 | 1.20 | normal | Top-nav category links |
146
+
147
+ ### Principles
148
+ - **Price is typography.** Prices use 700 weight and tabular numerals, sized as large as a subtitle. The price never inherits body weight -- it is a headline-class element in every product tile.
149
+ - **Uppercase for tags, sentence case for content.** Status tags and category labels ("NEW", "LIMITED OFFER", "MEN") are uppercase with +0.5px tracking; product names and descriptions are sentence case for readability.
150
+ - **Two weights do the work.** 400 (body) and 700 (headings, prices, tags) carry ~90% of the UI; 600 is the bridge for subtitles and nav. No light weights -- legibility over elegance.
151
+ - **Bilingual parity.** Japanese (Hiragino) and Latin (TT Commons Pro) are weighted to sit harmoniously on the same line; neither script is treated as the fallback. Localized scripts inherit the same hierarchy.
152
+ - **Tight tracking on display only.** Negative letter-spacing appears at 36px+ to tighten campaign headlines; body and UI text use normal tracking.
153
+
154
+ ## 4. Component Stylings
155
+
156
+ ### Buttons
157
+
158
+ Uniqlo buttons are rectangular, hard-cornered, and high-contrast. The system is deliberately small: a red primary, a black/outlined secondary, and a disabled state. Radius stays at 0-2px -- the red-square logo geometry inherited.
159
+
160
+ **Primary (Red)**
161
+ - Background: `#ed1d24`
162
+ - Text: `#ffffff`
163
+ - Border: none
164
+ - Radius: 2px
165
+ - Padding: 14px 24px
166
+ - Font: 15px / 700 / TT Commons Pro
167
+ - Hover: background darkens to `#c8161c`
168
+ - Use: Primary CTA -- "ADD TO CART" (カートに入れる), "BUY NOW", "CHECKOUT"
169
+ - Height: ~48px, often full-width on mobile
170
+
171
+ **Secondary (Outlined Black)**
172
+ - Background: `#ffffff`
173
+ - Text: `#1a1a1a`
174
+ - Border: 1px solid `#1a1a1a`
175
+ - Radius: 2px
176
+ - Padding: 14px 24px
177
+ - Font: 15px / 700 / TT Commons Pro
178
+ - Hover: background `#1a1a1a`, text `#ffffff` (inverts)
179
+ - Use: Secondary action -- "ADD TO WISHLIST", "FIND IN STORE", "CONTINUE SHOPPING"
180
+
181
+ **Solid Black**
182
+ - Background: `#1a1a1a`
183
+ - Text: `#ffffff`
184
+ - Border: none
185
+ - Radius: 2px
186
+ - Padding: 14px 24px
187
+ - Font: 15px / 700 / TT Commons Pro
188
+ - Hover: background `#333333`
189
+ - Use: Neutral strong action where red would over-signal -- account/settings CTAs, "SIGN IN"
190
+
191
+ **Tertiary / Text Link**
192
+ - Background: transparent
193
+ - Text: `#1a1a1a` with underline
194
+ - Border: none
195
+ - Font: 14px / 600 / TT Commons Pro
196
+ - Hover: text `#ed1d24`
197
+ - Use: Inline links -- "View size guide", "See details", "More colors"
198
+
199
+ **Disabled**
200
+ - Background: `#eeeeee`
201
+ - Text: `#999999`
202
+ - Border: none
203
+ - Radius: 2px
204
+ - Use: Unavailable action (out of stock, incomplete form). Geometry identical to active so layout is stable.
205
+
206
+ ### Product Tiles (Cards)
207
+
208
+ The product tile is the atomic unit of the entire site -- the design system exists primarily to render thousands of these in a grid.
209
+
210
+ **Standard Product Tile**
211
+ - Background: `#ffffff`
212
+ - Border: none (separated by grid gutter, not borders)
213
+ - Radius: 0px on image, 0px on tile
214
+ - Image: 1:1.33 (3:4 portrait) garment photo on white or `#f5f5f5`
215
+ - Padding: 0 on image, 8px-12px on text block below
216
+ - Product name: 14px / 600 / `#1a1a1a`
217
+ - Price: 16px / 700 / `#1a1a1a` (or `#ed1d24` if on sale, with struck `#999999` original)
218
+ - Color swatches: row of 16px hard-edged squares below price
219
+ - Tag (optional): top-left "NEW" / "LIMITED" / "SALE" flag in `#ed1d24` or `#1a1a1a`
220
+ - Hover: subtle image swap (alternate view), no shadow lift
221
+
222
+ **Content / Feature Card**
223
+ - Background: `#ffffff` or `#f5f5f5`
224
+ - Border: none
225
+ - Radius: 0px
226
+ - Padding: 24px-32px
227
+ - Use: LifeWear story blocks, fabric-technology features, campaign tiles
228
+
229
+ ### Inputs & Forms
230
+
231
+ **Text Input**
232
+ - Background: `#ffffff`
233
+ - Text: `#1a1a1a`
234
+ - Border: 1px solid `#cccccc`
235
+ - Radius: 2px
236
+ - Padding: 12px 14px
237
+ - Font: 14px / 400 / TT Commons Pro
238
+ - Placeholder: `#999999`
239
+ - Focus: border `#1a1a1a` (1px), no glow
240
+ - Error: border `#ed1d24`, helper text `#ed1d24` 12px below
241
+
242
+ **Select / Dropdown**
243
+ - Same geometry as text input
244
+ - Chevron indicator `#666666`, right-aligned
245
+ - Use: Size, quantity, country/region pickers
246
+
247
+ ### Swatches (Color / Size Selectors)
248
+
249
+ **Color Swatch**
250
+ - Shape: hard-edged square, ~24px
251
+ - Border: 1px solid `#e0e0e0` (unselected)
252
+ - Selected: 2px solid `#1a1a1a` outline with 2px white inset gap
253
+ - Radius: 0px
254
+
255
+ **Size Chip**
256
+ - Background: `#ffffff`
257
+ - Text: `#1a1a1a`
258
+ - Border: 1px solid `#cccccc`
259
+ - Radius: 2px
260
+ - Padding: 8px 14px
261
+ - Selected: border `#1a1a1a` (2px), background `#ffffff`
262
+ - Disabled (out of stock): `#cccccc` text, diagonal strike, `#eeeeee` bg
263
+
264
+ ### Tags / Flags
265
+
266
+ **Sale Flag**
267
+ - Background: `#ed1d24`
268
+ - Text: `#ffffff`
269
+ - Border: none
270
+ - Radius: 0px
271
+ - Padding: 2px 6px
272
+ - Font: 11px / 700 / TT Commons Pro, UPPERCASE, +0.5px tracking
273
+ - Use: "SALE", "LIMITED OFFER", "限定価格"
274
+
275
+ **New / Neutral Flag**
276
+ - Background: `#1a1a1a`
277
+ - Text: `#ffffff`
278
+ - Border: none
279
+ - Radius: 0px
280
+ - Padding: 2px 6px
281
+ - Font: 11px / 700 / TT Commons Pro, UPPERCASE
282
+ - Use: "NEW", "ONLINE EXCLUSIVE"
283
+
284
+ ### Navigation
285
+
286
+ - Top bar: white background, `#1a1a1a` text, red square logo top-left
287
+ - Category links: 13px / 600 / `#1a1a1a`, generous horizontal spacing, hover underline
288
+ - Mega-menu: full-width white drawer, columned category lists, no shadow (1px `#e0e0e0` bottom border separates from content)
289
+ - Utility icons (search, account, wishlist, cart): `#1a1a1a` line icons, ~20px
290
+ - Sticky on scroll with a subtle 1px `#e0e0e0` bottom border, no blur
291
+
292
+ ### Tabs / Filters
293
+
294
+ **Filter Chip**
295
+ - Background: `#ffffff`
296
+ - Text: `#1a1a1a`
297
+ - Border: 1px solid `#cccccc`
298
+ - Radius: 2px
299
+ - Padding: 8px 14px
300
+ - Active: border `#1a1a1a` (2px) or filled `#1a1a1a` bg with white text
301
+ - Use: Category/attribute filters on listing pages
302
+
303
+ ### Toasts / Notifications
304
+
305
+ **Default**
306
+ - Background: `#1a1a1a`
307
+ - Text: `#ffffff`
308
+ - Border: none
309
+ - Radius: 2px
310
+ - Padding: 14px 18px
311
+ - Font: 14px / 600 / TT Commons Pro
312
+ - Use: "Added to cart", "Saved to wishlist" -- brief, auto-dismiss
313
+
314
+ ---
315
+
316
+ **Verified:** 2026-06-06
317
+ **Tier 1 sources:** uniqlo.com (live catalog — grid geometry, white canvas, red CTA, hard-cornered tiles); Kashiwa Sato 2006 logo system (red square + katakana wordmark). Web build typeface TT Commons Pro confirmed via Fonts In Use / TypeType records; Japanese rendered in Hiragino Kaku Gothic. · https://www.uniqlo.com (live production site)
318
+ **Tier 2 sources:** brandpalettes.com/uniqlo-colors (Uniqlo Red `#ed1d24`, Pantone 485 C, RGB 237/29/36 — unchanged since 2006); color-name.com (`#ED1D24`); brandyhq.com (`#ed1d24`, `#ffffff` palette).
319
+ **Conflicts resolved:** Hint suggested `#FF0000`-ish + Helvetica; corrected to verified `#ed1d24` (Pantone 485 C) and TT Commons Pro / Hiragino (Helvetica Neue retained only as historical fallback). Brand-red and UI-red are intentionally the same value.
320
+
321
+ ## 5. Layout Principles
322
+
323
+ ### Spacing System
324
+ - Base unit: 8px
325
+ - Common values: 4px, 8px, 12px, 16px, 24px, 32px, 48px, 64px
326
+ - Product-tile internal text spacing: tight 8-12px
327
+ - Section spacing: generous 48-64px between content blocks
328
+ - Grid gutters: 8-16px on mobile, 16-24px on desktop
329
+
330
+ ### Grid & Container
331
+ - Max content width: ~1280px (centered, with side margins on large screens)
332
+ - Product grid: 2 columns mobile, 3 columns tablet, 4 columns desktop (sometimes 3-up for larger imagery)
333
+ - Even gutters, no per-tile borders -- whitespace is the divider
334
+ - Hero banners: full-bleed edge-to-edge, often with overlaid red/white typography
335
+ - The grid is **strict and repeating** -- the catalog reads as a uniform module system, deliberately un-editorial
336
+
337
+ ### Whitespace Philosophy
338
+ - **Product as hero, chrome as silence.** The garment photo gets the space; navigation, filters, and labels recede to small black-on-white. Whitespace exists to isolate each product so it can be judged on its own.
339
+ - **Even rhythm over drama.** Unlike luxury fashion's asymmetric editorial layouts, Uniqlo uses an even, predictable grid. The lack of layout surprise *is* the brand -- order, reliability, scale.
340
+ - **Generous between, tight within.** Big gaps between sections (48-64px); tight, efficient spacing inside a tile (8-12px). The macro feels calm; the micro feels dense and practical.
341
+
342
+ ### Border Radius Scale
343
+ - Sharp (0px): Product images, swatches, tags, hero banners -- the default
344
+ - Minimal (2px): Buttons, inputs, chips -- a barely-there softening for tap affordance
345
+ - Nothing above 2px. No pills, no rounded cards. Hard corners are the brand's geometry.
346
+
347
+ ## 6. Depth & Elevation
348
+
349
+ | Level | Treatment | Use |
350
+ |-------|-----------|-----|
351
+ | Flat (Level 0) | No shadow | Product tiles, grid, page background — the default |
352
+ | Border (Level 1) | `1px solid #e0e0e0` | Separation where needed — nav bottom edge, input outlines |
353
+ | Subtle (Level 2) | `0px 1px 3px rgba(0,0,0,0.08)` | Dropdowns, sticky add-to-cart bar |
354
+ | Floating (Level 3) | `0px 2px 8px rgba(0,0,0,0.12)` | Mega-menu, mini-cart drawer, popovers |
355
+ | Modal (Level 4) | `0px 4px 16px rgba(0,0,0,0.16)` + scrim `rgba(0,0,0,0.5)` | Size guide, quick-view, dialogs |
356
+
357
+ **Shadow Philosophy**: Uniqlo is fundamentally a **flat, shadowless system**. Depth is communicated through the grid, whitespace, and hard borders -- not elevation. The product grid has zero shadow; tiles separate by gutter alone. Shadows appear *only* on truly floating UI (menus, drawers, modals) and even then they are minimal, neutral black, single-layer. There are no brand-tinted shadows, no multi-layer depth stacks, no glassmorphism. The aesthetic is print-catalog flatness: everything sits on the same plane until it explicitly floats above the page. This restraint reinforces the "honest, no-tricks" product positioning -- the clothing isn't dramatized, and neither is the UI.
358
+
359
+ ### No Blur
360
+ - Sticky nav uses a solid white background, not backdrop blur
361
+ - Modal scrims are flat black at 50% opacity, no blur on the underlying content
362
+
363
+ ## 7. Do's and Don'ts
364
+
365
+ ### Do
366
+ - Use Uniqlo Red (`#ed1d24`) only for brand, primary CTA, prices/sale, and errors -- ration it
367
+ - Keep the canvas pure white (`#ffffff`) with near-black (`#1a1a1a`) text
368
+ - Use hard corners -- radius 0px on images/tags/swatches, max 2px on buttons/inputs
369
+ - Make the price a first-class element: 700 weight, tabular numerals, subtitle-sized
370
+ - Lay products on a strict, even, repeating grid (2/3/4-up) with whitespace gutters
371
+ - Use uppercase + tracking for tags ("NEW", "SALE", "LIMITED OFFER")
372
+ - Set Japanese in Hiragino Kaku Gothic and Latin in TT Commons Pro with equal weight
373
+ - Keep surfaces flat -- borders and whitespace over shadows
374
+
375
+ ### Don't
376
+ - Don't use `#ff0000` -- the verified brand red is `#ed1d24` (Pantone 485 C)
377
+ - Don't introduce a second accent color -- red is the only saturated hue
378
+ - Don't use pill or large-radius shapes -- the brand geometry is the hard-edged red square
379
+ - Don't add shadows to product tiles -- the grid is flat by design
380
+ - Don't use brand-tinted or multi-layer shadows -- shadows are minimal, neutral, floating-UI only
381
+ - Don't make the price visually subordinate to the product name -- price is headline-class
382
+ - Don't use light font weights -- the system is 400 / 600 / 700 only
383
+ - Don't dramatize -- no gradients, no glass, no editorial asymmetry; order is the aesthetic
384
+
385
+ ## 8. Responsive Behavior
386
+
387
+ ### Breakpoints
388
+ | Name | Width | Key Changes |
389
+ |------|-------|-------------|
390
+ | Mobile | <768px | 2-column product grid, full-width CTAs, hamburger nav, sticky add-to-cart bar |
391
+ | Tablet | 768-1024px | 3-column grid, condensed top nav, side filter drawer |
392
+ | Desktop | 1024-1440px | 4-column grid, full horizontal nav with mega-menu, inline filters |
393
+ | Large Desktop | >1440px | Centered ~1280px content, generous side margins, larger hero imagery |
394
+
395
+ ### Touch Targets
396
+ - Buttons: ~48px height, full-width on mobile
397
+ - Size/color chips: minimum 40x40px tap area
398
+ - Nav and utility icons: ~44px tap target with padding
399
+ - Product tiles: entire tile is tappable
400
+
401
+ ### Collapsing Strategy
402
+ - Top nav: full horizontal mega-menu → hamburger drawer on mobile
403
+ - Filters: inline filter bar → bottom-sheet / side-drawer on mobile
404
+ - Product grid: 4-up → 3-up → 2-up (never 1-up — pairs preserve catalog scanning)
405
+ - Add-to-cart: inline button → sticky bottom bar on mobile PDP
406
+ - Hero typography: 48px → 28px, maintaining 700 weight and red/white contrast
407
+
408
+ ### Image Behavior
409
+ - Garment photos maintain 3:4 portrait aspect at all breakpoints
410
+ - Hero banners go full-bleed edge-to-edge; text reflows but stays high-contrast
411
+ - Lazy-loaded grid images fade in over a `#f5f5f5` placeholder
412
+ - Zoom on PDP: pinch/hover magnify, image stays sharp on white
413
+
414
+ ## 9. Agent Prompt Guide
415
+
416
+ ### Quick Color Reference
417
+ - Primary CTA / Brand: Uniqlo Red (`#ed1d24`)
418
+ - CTA Hover: Dark Red (`#c8161c`)
419
+ - Background: Pure White (`#ffffff`)
420
+ - Secondary surface: Gray 50 (`#f5f5f5`)
421
+ - Heading text: Near Black (`#1a1a1a`)
422
+ - Body text: Dark Gray (`#333333`)
423
+ - Secondary text: Gray (`#666666`)
424
+ - Muted / placeholder: Gray (`#999999`)
425
+ - Border: Gray 200 (`#e0e0e0`)
426
+ - Sale / Error: Uniqlo Red (`#ed1d24`)
427
+ - Success: Green (`#1a8917`)
428
+ - Strong neutral button: Near Black (`#1a1a1a`)
429
+
430
+ ### Example Component Prompts
431
+ - "Create a product tile: white bg, 3:4 portrait garment photo (no radius), product name 14px weight 600 #1a1a1a, price 16px weight 700 #1a1a1a tabular numerals, row of 16px hard-edged color swatches below, optional top-left 'NEW' flag (#1a1a1a bg, white 11px uppercase). No shadow — separated by grid gutter."
432
+ - "Build an add-to-cart button: #ed1d24 bg, white text, 15px weight 700, 2px radius, 14px 24px padding, full-width on mobile, ~48px tall. Hover darkens to #c8161c."
433
+ - "Design a secondary button: white bg, #1a1a1a text, 1px solid #1a1a1a border, 2px radius, 15px weight 700. Hover inverts to #1a1a1a bg with white text. Use for 'FIND IN STORE'."
434
+ - "Create a sale price block: original price 14px #999999 strikethrough, sale price 18px weight 700 #ed1d24 tabular numerals, small 'SALE' flag #ed1d24 bg white 11px uppercase 0.5px tracking."
435
+ - "Lay out a product grid: white bg, 4 columns desktop / 2 mobile, even 16px gutters, no tile borders or shadows. Each tile is a tappable product card."
436
+ - "Design a size selector: row of size chips, white bg, #1a1a1a text, 1px #cccccc border, 2px radius, 8px 14px padding. Selected chip gets 2px #1a1a1a border. Out-of-stock chips are #cccccc with a diagonal strike."
437
+
438
+ ### Iteration Guide
439
+ 1. The canvas is always pure white `#ffffff`; text is near-black `#1a1a1a` — never pure black, never tinted backgrounds for primary content
440
+ 2. Red `#ed1d24` is rationed — brand, primary CTA, price/sale, error. If two reds are competing on a screen, remove one
441
+ 3. Hard corners: 0px on images/tags/swatches, 2px max on buttons/inputs. No pills, ever
442
+ 4. Price is headline-class: 700 weight, tabular numerals, sized like a subtitle
443
+ 5. Product grid is strict and even (2/3/4-up), separated by whitespace gutters, zero shadow
444
+ 6. Two-to-three weights only: 400 body, 600 subtitle/nav, 700 headings/prices/tags
445
+ 7. Japanese in Hiragino Kaku Gothic, Latin in TT Commons Pro — equal weight, neither is a fallback
446
+ 8. Flat by default; shadows only on floating UI (menus, drawers, modals), minimal and neutral
447
+
448
+ ---
449
+
450
+ ## 10. Voice & Tone
451
+
452
+ Uniqlo's voice is plain, functional, and quietly confident -- the verbal equivalent of a well-made white T-shirt. It describes what a garment *does* (fabric technology, fit, care) before how it makes you *feel*. There is no hype, no seasonal urgency theater beyond honest sale labeling, no aspirational lifestyle fantasy. The register is the same in Japanese and in every localized market: clear, respectful, practical. The brand line -- **"LifeWear"** and **"Made for All"** -- sets the tone: clothing as a universal daily utility, not a status signal.
453
+
454
+ | Context | Tone |
455
+ |---|---|
456
+ | Product names | Descriptive and functional. "Ultra Light Down Jacket", "AIRism Cotton Crew Neck T-Shirt", "HEATTECH". The technology *is* the name. |
457
+ | Product descriptions | Plain, benefit-first. "Lightweight warmth that packs into its own pouch." Never "Elevate your winter wardrobe." |
458
+ | CTAs | Direct imperatives, often uppercase. "ADD TO CART", "FIND IN STORE", "CHECKOUT" (カートに入れる). |
459
+ | Sale labels | Honest and specific. "LIMITED OFFER", "¥1,990", a struck original price. Never fake countdown pressure. |
460
+ | LifeWear / brand copy | Calm, almost philosophical. "Simple made better." "Clothing that makes your life better." Earnest, not grandiose. |
461
+ | Fabric / technology | Educational. Explains HEATTECH/AIRism/Ultra Light Down like a spec sheet a customer can trust. |
462
+ | Empty / error states | Practical and blameless. "This item is sold out in your size." plus an alternative, never an apology theater. |
463
+ | Legal / care | Formal, precise — care instructions and policy read like clear documentation. |
464
+
465
+ **Forbidden phrases.** "Revolutionary", "must-have", "game-changer", aspirational lifestyle fantasy ("live your best life"), false scarcity ("only 2 left — hurry!"), exclamation-stacked hype. Uniqlo sells utility honestly; manufactured urgency contradicts the LifeWear thesis.
466
+
467
+ ## 11. Brand Narrative
468
+
469
+ Uniqlo (ユニクロ) is the flagship brand of **Fast Retailing**, founded by **Tadashi Yanai (柳井正)**, who opened the first "Unique Clothing Warehouse" store in **Hiroshima in 1984** (the contracted name "Uni-Qlo" came from a registration typo that stuck). Yanai inherited his father's roadside men's tailoring business and reimagined it as something radical for Japanese retail: a self-service, warehouse-style store selling well-made basics at honest prices, free of the formality and markup of department-store fashion.
470
+
471
+ The brand's modern identity dates to **2006**, when Yanai commissioned designer **Kashiwa Sato** to create the global visual system: the red square logo with its white katakana-inspired wordmark, deliberately evoking the Japanese flag (Hinomaru) to signal a Japanese brand thinking globally from the start. That same year Uniqlo opened its New York and London flagships, and the red-and-white system has been unchanged since.
472
+
473
+ The organizing philosophy is **LifeWear** -- articulated by Yanai as "simple, high-quality, everyday clothing designed to improve everyone's life." LifeWear is explicitly **"Made for All"**: clothing engineered to transcend age, gender, ethnicity, and trend. Uniqlo's competitive position is the inverse of fast fashion -- not chasing micro-trends, but perfecting timeless basics through textile engineering (HEATTECH thermal base layers, AIRism breathable fabric, Ultra Light Down). The product is innovation disguised as plainness, and the design system performs the same trick: it looks like a plain catalog, but every grid measure, every rationed red mark, and every hard corner is deliberate.
474
+
475
+ What Uniqlo refuses: the aspirational fantasy of luxury fashion, the disposable trend-churn of fast fashion, the visual chaos of overcrowded retail. What it embraces: Japanese retail clarity, honest pricing, function-first storytelling, and an order so consistent it reads as trust. The red square is a flag planted on that idea.
476
+
477
+ ## 12. Principles
478
+
479
+ 1. **Ration the red.** `#ed1d24` is the only saturated color in the system, so every appearance is a signal -- brand, CTA, price, error. Decorative red dilutes the signal and is forbidden. If red competes with red on a screen, one of them is wrong.
480
+ 2. **Product as hero, chrome as silence.** The garment gets the space and the light; navigation, filters, and labels recede to small black-on-white. The UI's job is to disappear so the product can be judged honestly.
481
+ 3. **Order is the aesthetic.** A strict, even, repeating grid is not boring -- it is the brand. Predictability communicates reliability and scale. Editorial asymmetry belongs to luxury fashion; Uniqlo is infrastructure.
482
+ 4. **Hard corners, always.** The red-square logo's geometry governs the whole system. Radius stays at 0-2px. Pills and soft cards contradict the brand's planted-flag rectangularity.
483
+ 5. **Price is headline-class.** A price set in 700-weight tabular numerals at subtitle size respects the customer's reason for being there. Demoting the price to fine print is a betrayal of an honest-value brand.
484
+ 6. **Flat over deep.** Depth comes from grid and whitespace, not elevation. Shadows appear only when something genuinely floats. A flat catalog says "no tricks" -- which is the product promise.
485
+ 7. **Bilingual by birth.** Japanese and Latin are co-equal, set with equal care. Localized markets inherit the same hierarchy; no script is a second-class fallback. The brand was global from its 2006 rebrand onward.
486
+ 8. **Honesty over urgency.** Sales are labeled plainly with real prices; there is no manufactured scarcity. The voice describes what clothing *does*, not the life it promises. LifeWear is a utility claim, and the UI keeps that promise.
487
+
488
+ ## 13. Personas
489
+
490
+ *Personas below are fictional archetypes informed by publicly described Uniqlo customer segments (value-conscious everyday shoppers, function-first buyers, global basics-wardrobe builders), not individual people.*
491
+
492
+ **Aiko Tanaka, 34, Tokyo.** Working mother, shops Uniqlo online during her commute. Buys HEATTECH for the whole family every autumn and AIRism in summer. Reads fabric descriptions carefully -- she trusts Uniqlo precisely because the site explains *why* a fabric is warm or breathable rather than just calling it "cozy." Expects the size chart to be accurate and the price to be exactly what the tag says. Annoyed by any retailer that buries the real price under fake "was/now" theater. Reads the site in Japanese; the Hiragino type and clean grid feel like home.
493
+
494
+ **Marcus Hale, 41, Chicago.** Software manager who has standardized his wardrobe on Uniqlo basics -- the same Supima T-shirt and chino in multiple colors. Values the strict grid: he can scan a category page in seconds because every tile is identical in structure. Does not want to be sold a lifestyle; wants to find the gray crewneck, confirm it's in stock in M, and check out in under a minute. The flat, shadowless, no-nonsense UI is exactly why he shops here instead of trend-chasing competitors.
495
+
496
+ **Priya Nair, 27, London.** Design-conscious shopper who appreciates Uniqlo as "Muji for clothes" -- minimal, honest, well-engineered. Follows the LifeWear collaborations (the brand's restraint makes the occasional designer collab feel meaningful). Notices and respects the typography and the rationed red. Would immediately distrust a redesign that added gradients, shadows, or a second accent color -- to her the flatness *is* the credibility.
497
+
498
+ **Mr. Sato, 58, Osaka.** Long-time customer since the warehouse-store days. Buys reliable basics -- socks, undershirts, the same down vest -- and values that Uniqlo's pricing and product names are plain and consistent year to year. Uses the website occasionally but mostly to check store stock. The clear, large price and the "FIND IN STORE" button matter more to him than any campaign imagery.
499
+
500
+ ## 14. States
501
+
502
+ | State | Treatment |
503
+ |---|---|
504
+ | **Empty (cart)** | White canvas, single near-black line at 16px: "Your cart is empty." One red primary CTA: "CONTINUE SHOPPING". No illustration, no upsell theater. |
505
+ | **Empty (search no results)** | Gray (`#666666`) single line: "No items found." Suggested categories listed below as plain text links. Filter summary stays visible so the user can widen scope. |
506
+ | **Empty (wishlist)** | Plain line "Your wishlist is empty." plus a link to "Browse new arrivals". Honest about the empty state. |
507
+ | **Loading (grid first paint)** | Skeleton tiles at exact final dimensions, `#f5f5f5` base with 1.2s shimmer. Image blocks at 3:4, name/price as short bars. Prices never skeleton wider than a real price. |
508
+ | **Loading (in-place refresh)** | Subtle red 2px progress bar at top of the listing; previous tiles stay visible. No blocking overlay. |
509
+ | **Error (form validation)** | Field-level. `#ed1d24` border on the input, 12px `#ed1d24` helper text below stating exactly what is wrong ("Enter a valid postal code"). Never just "Invalid". |
510
+ | **Error (out of stock)** | Size chip shows `#cccccc` text with a diagonal strike; PDP swaps "ADD TO CART" for a `#1a1a1a` "GET STOCK ALERT" or "FIND IN STORE" secondary button. |
511
+ | **Error (page-level)** | White screen, single near-black line at 18px stating what failed, red retry button below. No illustration. |
512
+ | **Success (added to cart)** | Brief `#1a1a1a` toast, white 14px text: "Added to cart." Mini-cart drawer slides in from right showing the item. No exclamation, no emoji. |
513
+ | **Success (order placed)** | Dedicated confirmation screen: green (`#1a8917`) check, order number in tabular numerals, item summary, single "CONTINUE SHOPPING" button. |
514
+ | **Skeleton** | `#f5f5f5` blocks at final dimensions, 1.2s neutral shimmer, hard corners matching the flat grid. |
515
+ | **Disabled** | Button becomes `#eeeeee` bg with `#999999` text; geometry unchanged so re-enabling is stable. Inputs keep their `#cccccc` border. |
516
+ | **Sale** | Original price `#999999` strikethrough, sale price `#ed1d24` 700 weight, "LIMITED OFFER" / "SALE" flag in red. Always shows the real numbers. |
517
+
518
+ ## 15. Motion & Easing
519
+
520
+ **Durations**:
521
+
522
+ | Token | Value | Use |
523
+ |---|---|---|
524
+ | `motion-instant` | 0ms | Selection states, swatch picks, focus |
525
+ | `motion-fast` | 150ms | Hover image swap, button hover, chip selection |
526
+ | `motion-standard` | 250ms | Drawer slide, mini-cart, dropdown, mega-menu reveal |
527
+ | `motion-slow` | 350ms | Modal/quick-view open, page-level transitions |
528
+
529
+ **Easings**:
530
+
531
+ | Token | Curve | Use |
532
+ |---|---|---|
533
+ | `ease-enter` | `cubic-bezier(0.0, 0.0, 0.2, 1)` | Arriving — drawers, menus, modals |
534
+ | `ease-exit` | `cubic-bezier(0.4, 0.0, 1, 1)` | Dismissals — closing drawers, toasts |
535
+ | `ease-standard` | `cubic-bezier(0.4, 0.0, 0.2, 1)` | Two-way transitions — accordions, tabs |
536
+
537
+ **Explicitly restrained.** No spring, no bounce, no overshoot. Motion is functional and brief, matching the no-tricks product positioning. Nothing animates just to delight; transitions exist to clarify spatial relationships (where the cart drawer came from, what a filter did).
538
+
539
+ **Signature motions.**
540
+
541
+ 1. **Product image swap.** On hover (desktop) or as a secondary thumbnail (mobile), the tile's primary photo cross-fades to an alternate garment view over `motion-fast`. The tile never lifts or casts a shadow -- the image *changes*, the geometry stays flat.
542
+ 2. **Mini-cart drawer.** "Add to cart" slides a drawer in from the right edge over `motion-standard / ease-enter`, with a synchronized `rgba(0,0,0,0.5)` scrim fade. Dismissal slides back over `motion-fast / ease-exit`.
543
+ 3. **Mega-menu reveal.** Hovering a top-nav category drops a full-width white panel over `motion-standard`. The panel appears flat against the page (1px `#e0e0e0` separator), not floating with heavy shadow.
544
+ 4. **Reduce motion.** Under `prefers-reduced-motion: reduce`, all `motion-*` tokens collapse to `motion-instant`. Image swaps become instant cuts, drawers appear without sliding. The catalog stays fully functional; nothing is gated behind animation.
545
+
546
+ <!--
547
+ OmD v0.1 Sources — Uniqlo
548
+
549
+ Token-level verification:
550
+ - Uniqlo Red #ed1d24 (Pantone 485 C, RGB 237/29/36, CMYK 1/99/97/0) — brandpalettes.com/uniqlo-colors,
551
+ color-name.com/uniqlo-red.color, brandyhq.com/brand-guidelines/uniqlo. Palette unchanged since 2006.
552
+ - Palette is intentionally minimal: "official colors of Uniqlo are Uniqlo red and white."
553
+ - Web typeface TT Commons Pro confirmed via Fonts In Use (fontsinuse.com/uses/73945/uniqlo-website)
554
+ and TypeType (typetype.org/font-in-use/uniqlo). Japanese text in Hiragino Kaku Gothic.
555
+ Helvetica Neue / Arial retained only as historical/fallback stack.
556
+ - Logo: red square + white katakana-inspired wordmark designed by Kashiwa Sato (2006),
557
+ evoking the Japanese flag (Hinomaru) — widely documented brand history.
558
+
559
+ Brand narrative facts (widely documented):
560
+ - Fast Retailing founder/CEO Tadashi Yanai; first "Unique Clothing Warehouse" store Hiroshima 1984.
561
+ - LifeWear philosophy "simple, high-quality clothing designed to improve everyone's life";
562
+ "Made for All" positioning (uniqlo.com LifeWear content, Wallpaper*, Fast Retailing materials).
563
+ - HEATTECH / AIRism / Ultra Light Down as signature textile-technology product lines.
564
+
565
+ Hint correction: brief suggested #FF0000-ish red + Helvetica. Corrected to verified #ed1d24
566
+ (Pantone 485 C) and TT Commons Pro / Hiragino Kaku Gothic. Brand-red and UI-red are the same value
567
+ by design.
568
+
569
+ Personas (§13) are fictional archetypes informed by publicly described Uniqlo customer segments,
570
+ not real individuals.
571
+
572
+ Interpretive claims (e.g., "ration the red", "hard corners inherited from the red-square logo",
573
+ "flat catalog says no tricks") are editorial readings connecting Uniqlo's stated LifeWear philosophy
574
+ to its visual system, not directly sourced Uniqlo statements.
575
+ -->
@@ -10,6 +10,48 @@ logo:
10
10
  slug: "https://www.google.com/s2/favicons?domain=upbit.com&sz=256"
11
11
  verified: "2026-05-15"
12
12
  omd: "0.1"
13
+ tokens:
14
+ source: prose-derived
15
+ extracted: "2026-06-09"
16
+ colors:
17
+ primary: "#1375ec"
18
+ primary-deep: "#0062df"
19
+ primary-darker: "#003597"
20
+ rise: "#dd3c44"
21
+ fall: "#1375ec"
22
+ heading: "#1a2434"
23
+ body: "#333333"
24
+ muted: "#666666"
25
+ subtle: "#565d6a"
26
+ disabled: "#8e929b"
27
+ surface-body: "#e9ecf1"
28
+ surface-card: "#ffffff"
29
+ table-header: "#f9fafc"
30
+ table-alt: "#f4f5f7"
31
+ neutral: "#edeef1"
32
+ border: "#bec1c6"
33
+ on-primary: "#ffffff"
34
+ typography:
35
+ family: { sans: "Roboto", mono: "Roboto" }
36
+ nav: { size: 15, weight: 400, use: "Top-nav primary items" }
37
+ body: { size: 14, weight: 400, use: "Default body, button labels" }
38
+ table-cell: { size: 12, weight: 400, use: "Price/change table cells" }
39
+ header: { size: 11, weight: 400, use: "Table column headers" }
40
+ spacing: { xs: 4, sm: 8, md: 12, base: 16, lg: 20, xl: 32, xxl: 48, section: 64 }
41
+ rounded: { sm: 4, md: 4, lg: 4, full: 9999 }
42
+ shadow:
43
+ none: "none"
44
+ components:
45
+ button-primary: { type: button, bg: "#0062df", fg: "#ffffff", radius: 4, padding: "0 10px", font: "14px/400", use: "로그인/회원가입 in compact nav, h36" }
46
+ button-hero: { type: button, bg: "#003597", fg: "#ffffff", radius: 4, padding: "0 12px", font: "15px/400", use: "Hero CTA, h44" }
47
+ button-secondary: { type: button, bg: "#edeef1", fg: "#1a2434", radius: 4, padding: "0 10px", font: "14px/400", use: "Paired secondary action, h36" }
48
+ tag-percent: { type: badge, bg: "#ffffff", fg: "#1a2434", radius: 4, padding: "0 8px 1px", font: "12px/400", use: "Quick-fill 10/25/50/100%; 1px #bec1c6 border" }
49
+ cell-rise: { type: card, bg: "#ffffff", fg: "#dd3c44", radius: 0, padding: "4.5px 4px", font: "12px/400", use: "상승 가격 셀 / 매수호가 tint" }
50
+ cell-fall: { type: card, bg: "#ffffff", fg: "#1375ec", radius: 0, padding: "4.5px 4px", font: "12px/400", use: "하락 가격 셀 / 매도호가 tint" }
51
+ header-row: { type: card, bg: "#f9fafc", fg: "#666666", radius: 0, padding: "0 14px", font: "11px/400", use: "Column heads, h30, bottom 1px #edeef1" }
52
+ segment: { type: tab, bg: "#ffffff", fg: "#333333", radius: 0, padding: "0", font: "12px/400", use: "KO/EN locale switch; 1px #bec1c6 border", active: "selected bg #f4f5f7" }
53
+ nav: { type: tab, bg: "#ffffff", fg: "#1a2434", radius: 0, padding: "0 20px", font: "15px/400", use: "Persistent top-bar, h80, bottom 1px #edeef1" }
54
+ components_harvested: true
13
55
  ---
14
56
 
15
57
  # Upbit — DESIGN.md