oh-my-design-cli 1.6.7 → 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 (224) hide show
  1. package/README.md +6 -6
  2. package/data/reference-fingerprints.json +1318 -10
  3. package/package.json +1 -1
  4. package/web/references/11st/DESIGN.md +400 -0
  5. package/web/references/17live/DESIGN.md +43 -0
  6. package/web/references/29cm/DESIGN.md +41 -0
  7. package/web/references/91app/DESIGN.md +31 -0
  8. package/web/references/ably/DESIGN.md +54 -0
  9. package/web/references/airbnb/DESIGN.md +58 -0
  10. package/web/references/airtable/DESIGN.md +39 -0
  11. package/web/references/alipay/DESIGN.md +50 -0
  12. package/web/references/amazingtalker/DESIGN.md +434 -0
  13. package/web/references/appier/DESIGN.md +45 -0
  14. package/web/references/apple/DESIGN.md +47 -0
  15. package/web/references/baemin/DESIGN.md +142 -43
  16. package/web/references/banksalad/DESIGN.md +67 -0
  17. package/web/references/bilibili/DESIGN.md +45 -0
  18. package/web/references/bithumb/DESIGN.md +38 -0
  19. package/web/references/bmw/DESIGN.md +37 -0
  20. package/web/references/brandi/DESIGN.md +414 -0
  21. package/web/references/bunjang/DESIGN.md +47 -0
  22. package/web/references/cakeresume/DESIGN.md +29 -0
  23. package/web/references/cal/DESIGN.md +52 -0
  24. package/web/references/catchtable/DESIGN.md +79 -19
  25. package/web/references/cathay/DESIGN.md +432 -0
  26. package/web/references/channeltalk/DESIGN.md +48 -0
  27. package/web/references/class101/DESIGN.md +51 -0
  28. package/web/references/classting/DESIGN.md +41 -0
  29. package/web/references/classum/DESIGN.md +43 -0
  30. package/web/references/claude/DESIGN.md +157 -70
  31. package/web/references/clay/DESIGN.md +56 -0
  32. package/web/references/clickhouse/DESIGN.md +50 -0
  33. package/web/references/cloudflare/DESIGN.md +637 -0
  34. package/web/references/cohere/DESIGN.md +48 -0
  35. package/web/references/coinbase/DESIGN.md +139 -5
  36. package/web/references/coinone/DESIGN.md +39 -0
  37. package/web/references/composio/DESIGN.md +46 -0
  38. package/web/references/cookpad/DESIGN.md +37 -0
  39. package/web/references/coupang/DESIGN.md +57 -2
  40. package/web/references/cursor/DESIGN.md +44 -0
  41. package/web/references/dabang/DESIGN.md +57 -19
  42. package/web/references/dcard/DESIGN.md +57 -0
  43. package/web/references/dell/DESIGN.md +636 -0
  44. package/web/references/devsisters/DESIGN.md +29 -0
  45. package/web/references/discord/DESIGN.md +604 -0
  46. package/web/references/dji/DESIGN.md +39 -0
  47. package/web/references/drnow/DESIGN.md +52 -0
  48. package/web/references/duolingo/DESIGN.md +563 -0
  49. package/web/references/elevenlabs/DESIGN.md +39 -0
  50. package/web/references/expo/DESIGN.md +39 -0
  51. package/web/references/fastcampus/DESIGN.md +50 -0
  52. package/web/references/ferrari/DESIGN.md +47 -0
  53. package/web/references/figma/DESIGN.md +44 -0
  54. package/web/references/finda/DESIGN.md +413 -0
  55. package/web/references/flex/DESIGN.md +28 -0
  56. package/web/references/flo/DESIGN.md +43 -0
  57. package/web/references/framer/DESIGN.md +38 -0
  58. package/web/references/freee/DESIGN.md +48 -0
  59. package/web/references/fugle/DESIGN.md +41 -1
  60. package/web/references/gangnamunni/DESIGN.md +57 -1
  61. package/web/references/genie/DESIGN.md +415 -0
  62. package/web/references/github/DESIGN.md +727 -0
  63. package/web/references/gmarket/DESIGN.md +51 -0
  64. package/web/references/gogolook/DESIGN.md +25 -1
  65. package/web/references/gogoro/DESIGN.md +38 -0
  66. package/web/references/grip/DESIGN.md +39 -0
  67. package/web/references/hahow/DESIGN.md +26 -0
  68. package/web/references/hashicorp/DESIGN.md +42 -0
  69. package/web/references/hogangnono/DESIGN.md +41 -0
  70. package/web/references/hp/DESIGN.md +563 -0
  71. package/web/references/hyperconnect/DESIGN.md +393 -0
  72. package/web/references/hyundaicard/DESIGN.md +24 -0
  73. package/web/references/ibm/DESIGN.md +44 -0
  74. package/web/references/ichef/DESIGN.md +44 -0
  75. package/web/references/ikala/DESIGN.md +400 -0
  76. package/web/references/inflearn/DESIGN.md +38 -0
  77. package/web/references/intercom/DESIGN.md +38 -0
  78. package/web/references/jandi/DESIGN.md +382 -0
  79. package/web/references/jkopay/DESIGN.md +35 -1
  80. package/web/references/jobkorea/DESIGN.md +39 -0
  81. package/web/references/jumpit/DESIGN.md +37 -0
  82. package/web/references/kakao/DESIGN.md +64 -0
  83. package/web/references/kakaobank/DESIGN.md +55 -1
  84. package/web/references/kakaopay/DESIGN.md +59 -0
  85. package/web/references/kakaot/DESIGN.md +53 -0
  86. package/web/references/karrot/DESIGN.md +49 -0
  87. package/web/references/kbank/DESIGN.md +39 -0
  88. package/web/references/kdan/DESIGN.md +34 -1
  89. package/web/references/kintone/DESIGN.md +586 -0
  90. package/web/references/kkbox/DESIGN.md +22 -0
  91. package/web/references/kkday/DESIGN.md +47 -0
  92. package/web/references/kmong/DESIGN.md +427 -0
  93. package/web/references/krafton/DESIGN.md +37 -0
  94. package/web/references/kraken/DESIGN.md +44 -0
  95. package/web/references/krds/DESIGN.md +63 -0
  96. package/web/references/kream/DESIGN.md +32 -0
  97. package/web/references/kurly/DESIGN.md +38 -1
  98. package/web/references/laftel/DESIGN.md +40 -0
  99. package/web/references/lamborghini/DESIGN.md +54 -0
  100. package/web/references/layerx/DESIGN.md +615 -0
  101. package/web/references/lezhin/DESIGN.md +47 -0
  102. package/web/references/line/DESIGN.md +36 -0
  103. package/web/references/linear.app/DESIGN.md +182 -88
  104. package/web/references/loom/DESIGN.md +396 -0
  105. package/web/references/lovable/DESIGN.md +38 -0
  106. package/web/references/lunit/DESIGN.md +47 -19
  107. package/web/references/mastercard/DESIGN.md +587 -0
  108. package/web/references/meituan/DESIGN.md +42 -0
  109. package/web/references/melon/DESIGN.md +26 -0
  110. package/web/references/mercari/DESIGN.md +41 -0
  111. package/web/references/mercury/DESIGN.md +589 -0
  112. package/web/references/meta/DESIGN.md +615 -0
  113. package/web/references/millie/DESIGN.md +51 -0
  114. package/web/references/minimax/DESIGN.md +53 -0
  115. package/web/references/mintlify/DESIGN.md +45 -0
  116. package/web/references/miro/DESIGN.md +47 -0
  117. package/web/references/mistral.ai/DESIGN.md +37 -0
  118. package/web/references/momoshop/DESIGN.md +43 -0
  119. package/web/references/money-forward/DESIGN.md +42 -0
  120. package/web/references/mongodb/DESIGN.md +44 -0
  121. package/web/references/muji/DESIGN.md +605 -0
  122. package/web/references/musinsa/DESIGN.md +48 -0
  123. package/web/references/mustit/DESIGN.md +47 -1
  124. package/web/references/myrealtrip/DESIGN.md +49 -0
  125. package/web/references/naver/DESIGN.md +50 -1
  126. package/web/references/naverwebtoon/DESIGN.md +48 -0
  127. package/web/references/netflix/DESIGN.md +572 -0
  128. package/web/references/nexon/DESIGN.md +389 -0
  129. package/web/references/nhncloud/DESIGN.md +33 -0
  130. package/web/references/nike/DESIGN.md +588 -0
  131. package/web/references/note/DESIGN.md +28 -0
  132. package/web/references/notion/DESIGN.md +48 -0
  133. package/web/references/nvidia/DESIGN.md +50 -0
  134. package/web/references/ohouse/DESIGN.md +56 -0
  135. package/web/references/oliveyoung/DESIGN.md +47 -1
  136. package/web/references/ollama/DESIGN.md +40 -0
  137. package/web/references/openai/DESIGN.md +641 -0
  138. package/web/references/opencode.ai/DESIGN.md +37 -0
  139. package/web/references/payco/DESIGN.md +40 -0
  140. package/web/references/paypay/DESIGN.md +656 -0
  141. package/web/references/pchome/DESIGN.md +439 -0
  142. package/web/references/perplexity/DESIGN.md +546 -0
  143. package/web/references/piccollage/DESIGN.md +43 -0
  144. package/web/references/pinkoi/DESIGN.md +55 -0
  145. package/web/references/pinterest/DESIGN.md +44 -0
  146. package/web/references/pixiv/DESIGN.md +613 -0
  147. package/web/references/pixnet/DESIGN.md +430 -0
  148. package/web/references/posthog/DESIGN.md +50 -0
  149. package/web/references/publy/DESIGN.md +52 -0
  150. package/web/references/qanda/DESIGN.md +49 -1
  151. package/web/references/ragic/DESIGN.md +444 -0
  152. package/web/references/ramp/DESIGN.md +634 -0
  153. package/web/references/rayark/DESIGN.md +22 -0
  154. package/web/references/raycast/DESIGN.md +45 -0
  155. package/web/references/remember/DESIGN.md +44 -0
  156. package/web/references/renault/DESIGN.md +42 -0
  157. package/web/references/replicate/DESIGN.md +39 -0
  158. package/web/references/resend/DESIGN.md +44 -0
  159. package/web/references/retool/DESIGN.md +645 -0
  160. package/web/references/revolut/DESIGN.md +46 -0
  161. package/web/references/richart/DESIGN.md +465 -0
  162. package/web/references/ridi/DESIGN.md +47 -0
  163. package/web/references/riiid/DESIGN.md +32 -0
  164. package/web/references/robinhood/DESIGN.md +604 -0
  165. package/web/references/runwayml/DESIGN.md +45 -0
  166. package/web/references/sanity/DESIGN.md +50 -0
  167. package/web/references/sansan/DESIGN.md +631 -0
  168. package/web/references/sendbird/DESIGN.md +46 -0
  169. package/web/references/sentry/DESIGN.md +48 -0
  170. package/web/references/shinhancard/DESIGN.md +421 -0
  171. package/web/references/shopline/DESIGN.md +431 -0
  172. package/web/references/slack/DESIGN.md +635 -0
  173. package/web/references/smarthr/DESIGN.md +48 -0
  174. package/web/references/smartnews/DESIGN.md +29 -0
  175. package/web/references/socar/DESIGN.md +35 -0
  176. package/web/references/soomgo/DESIGN.md +326 -0
  177. package/web/references/spacex/DESIGN.md +27 -0
  178. package/web/references/spoon/DESIGN.md +46 -0
  179. package/web/references/spotify/DESIGN.md +49 -0
  180. package/web/references/starbucks/DESIGN.md +597 -0
  181. package/web/references/stripe/DESIGN.md +46 -0
  182. package/web/references/studio/DESIGN.md +602 -0
  183. package/web/references/supabase/DESIGN.md +41 -0
  184. package/web/references/superhuman/DESIGN.md +39 -0
  185. package/web/references/surveycake/DESIGN.md +442 -0
  186. package/web/references/tada/DESIGN.md +51 -0
  187. package/web/references/tesla/DESIGN.md +36 -0
  188. package/web/references/theverge/DESIGN.md +500 -0
  189. package/web/references/together.ai/DESIGN.md +33 -0
  190. package/web/references/toss/DESIGN.md +43 -0
  191. package/web/references/toss-securities/DESIGN.md +54 -19
  192. package/web/references/tossbank/DESIGN.md +57 -0
  193. package/web/references/trenbe/DESIGN.md +41 -0
  194. package/web/references/triple/DESIGN.md +47 -0
  195. package/web/references/tumblbug/DESIGN.md +48 -0
  196. package/web/references/tving/DESIGN.md +40 -0
  197. package/web/references/uber/DESIGN.md +36 -0
  198. package/web/references/ubie/DESIGN.md +615 -0
  199. package/web/references/uniqlo/DESIGN.md +575 -0
  200. package/web/references/upbit/DESIGN.md +42 -0
  201. package/web/references/upstage/DESIGN.md +38 -0
  202. package/web/references/velog/DESIGN.md +28 -0
  203. package/web/references/vercel/DESIGN.md +44 -0
  204. package/web/references/voicetube/DESIGN.md +39 -0
  205. package/web/references/voltagent/DESIGN.md +44 -0
  206. package/web/references/wadiz/DESIGN.md +71 -19
  207. package/web/references/wanted/DESIGN.md +46 -0
  208. package/web/references/warp/DESIGN.md +37 -0
  209. package/web/references/watcha/DESIGN.md +40 -0
  210. package/web/references/wavve/DESIGN.md +43 -1
  211. package/web/references/wconcept/DESIGN.md +45 -0
  212. package/web/references/webflow/DESIGN.md +49 -0
  213. package/web/references/wired/DESIGN.md +572 -0
  214. package/web/references/wise/DESIGN.md +41 -0
  215. package/web/references/x.ai/DESIGN.md +31 -0
  216. package/web/references/xiaohongshu/DESIGN.md +39 -0
  217. package/web/references/yanolja/DESIGN.md +45 -0
  218. package/web/references/yeogiotte/DESIGN.md +42 -1
  219. package/web/references/yogiyo/DESIGN.md +50 -0
  220. package/web/references/yourator/DESIGN.md +453 -0
  221. package/web/references/zapier/DESIGN.md +41 -0
  222. package/web/references/zigbang/DESIGN.md +33 -0
  223. package/web/references/zigzag/DESIGN.md +62 -0
  224. package/web/references/zozotown/DESIGN.md +578 -0
@@ -0,0 +1,588 @@
1
+ ---
2
+ id: nike
3
+ name: Nike
4
+ country: US
5
+ category: ecommerce
6
+ homepage: "https://www.nike.com"
7
+ primary_color: "#111111"
8
+ logo:
9
+ type: simpleicons
10
+ slug: "nike"
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
+ ink: "#111111"
19
+ canvas: "#ffffff"
20
+ volt: "#d8ff00"
21
+ volt-ui: "#cdfb40"
22
+ orange-heritage: "#fa5400"
23
+ sale: "#d43f21"
24
+ error: "#e34f2b"
25
+ success: "#0a8800"
26
+ info: "#1463ff"
27
+ warning: "#cd7b00"
28
+ grey-50: "#f7f7f7"
29
+ grey-100: "#f5f5f5"
30
+ grey-200: "#e5e5e5"
31
+ grey-300: "#cccccc"
32
+ grey-500: "#8d8d8d"
33
+ grey-600: "#757575"
34
+ grey-700: "#707072"
35
+ typography:
36
+ family: { sans: "Helvetica Now Text", mono: "Helvetica Now Text" }
37
+ hero: { size: 80, weight: 700, lineHeight: 0.95, tracking: "-0.01em", use: "Hero headline, UPPERCASE condensed" }
38
+ display-lg: { size: 48, weight: 700, lineHeight: 1.0, tracking: "-0.01em", use: "Section banners (JUST IN)" }
39
+ display-md: { size: 36, weight: 700, lineHeight: 1.05, use: "Editorial sub-headers" }
40
+ h1: { size: 28, weight: 700, lineHeight: 1.2, use: "Product title (PDP)" }
41
+ h2: { size: 24, weight: 500, lineHeight: 1.25, use: "Card / section titles" }
42
+ subtitle: { size: 20, weight: 400, lineHeight: 1.4, use: "Product category, list headers" }
43
+ body-lg: { size: 16, weight: 400, lineHeight: 1.5, use: "Descriptions, paragraphs" }
44
+ body: { size: 15, weight: 400, lineHeight: 1.5, use: "Standard reading text" }
45
+ price: { size: 16, weight: 500, lineHeight: 1.4, use: "Price; sale price in red" }
46
+ caption: { size: 13, weight: 400, lineHeight: 1.4, use: "Metadata, color count" }
47
+ label: { size: 13, weight: 700, lineHeight: 1.3, tracking: "0.04em", use: "UPPERCASE micro-labels" }
48
+ spacing: { xs: 4, sm: 8, md: 12, base: 16, lg: 24, xl: 32 }
49
+ rounded: { sm: 4, md: 8, lg: 12, full: 9999 }
50
+ shadow:
51
+ toast: "0 4px 16px rgba(0,0,0,0.12)"
52
+ components:
53
+ button-primary: { type: button, bg: "#111111", fg: "#ffffff", radius: 9999, padding: "0 24px", font: "16px/500", use: "Add to Bag, Checkout on white" }
54
+ button-inverted: { type: button, bg: "#ffffff", fg: "#111111", radius: 9999, padding: "0 24px", font: "16px/500", use: "Primary CTA on dark sections" }
55
+ button-secondary: { type: button, bg: "transparent", fg: "#111111", radius: 9999, padding: "0 24px", font: "16px/500", use: "Secondary outline action" }
56
+ button-volt: { type: button, bg: "#d8ff00", fg: "#111111", radius: 9999, padding: "0 24px", font: "16px/700", use: "Energy CTA, drops/SNKRS" }
57
+ input-default: { type: input, bg: "#ffffff", fg: "#111111", radius: 8, padding: "14px 16px", font: "16px/400", use: "Form / checkout field" }
58
+ input-search: { type: input, bg: "#f5f5f5", fg: "#111111", radius: 9999, padding: "12px 20px", font: "16px/400", use: "Header search field" }
59
+ product-card: { type: card, bg: "#ffffff", fg: "#111111", radius: 0, use: "Grid PLP product tile" }
60
+ surface-card: { type: card, bg: "#f7f7f7", radius: 12, padding: "24px", use: "Member panels, bag summary" }
61
+ promo-pill: { type: badge, bg: "#111111", fg: "#ffffff", radius: 9999, padding: "4px 12px", font: "12px/700", use: "MEMBER ACCESS tags" }
62
+ sale-pill: { type: badge, bg: "#d43f21", fg: "#ffffff", radius: 4, padding: "2px 8px", font: "12px/700", use: "Discount flag on imagery" }
63
+ filter-chip: { type: tab, bg: "#ffffff", fg: "#111111", radius: 9999, padding: "8px 16px", font: "15px/400", use: "PLP filter row", active: "filled #111111 bg, #ffffff text" }
64
+ toast: { type: toast, bg: "#ffffff", fg: "#111111", radius: 8, padding: "16px 20px", use: "Cart confirmation, favorite saved" }
65
+ dialog: { type: dialog, bg: "#ffffff", fg: "#111111", radius: 12, padding: "32px", use: "Size guide, quick add, login wall" }
66
+ components_harvested: true
67
+ ---
68
+
69
+ # Design System Inspiration of Nike
70
+
71
+ ## 1. Visual Theme & Atmosphere
72
+
73
+ Nike's digital storefront is athletic minimalism turned into a sales engine. The page opens on pure white (`#ffffff`) with near-black ink (`#111111`) and a single high-voltage accent — **Volt** (`#d8ff00` / commonly rendered `#cdfb40`) — held in reserve for moments of energy. The default mood is editorial and confident: enormous product photography sits on generous whitespace, headlines shout in condensed bold caps, and almost nothing competes with the product or the swoosh. This is not a "friendly" e-commerce template; it is a brand magazine that happens to take payment.
74
+
75
+ The typographic hero is the condensed, geometric sans lineage Nike has used since the mid-1970s. The marketing wordmark and hero headlines descend from **Futura Bold Condensed** (custom-cut as *Futura ND Nike 365*), while the live web UI runs on Nike's bespoke **Helvetica Now / Nike TG** stack — a Trade-Gothic-adjacent condensed face for display, with clean neutral grotesque for body. Headlines are frequently set in ALL CAPS, tightly tracked, italicized for motion, and stacked left-aligned like a stadium banner.
76
+
77
+ What defines Nike visually is *contrast as a system*: black on white, then white on black. Entire sections invert to a full-bleed `#111111` canvas for drama, then snap back to white. Color is rationed — a product page can be entirely monochrome until a single Volt CTA or a "Just In" pill provides the spark. Corners are nearly square (small 4-8px radii) or fully pill (9999px) — almost nothing in between. The result feels fast, premium, and kinetic: motion implied even in static layout.
78
+
79
+ **Key Characteristics:**
80
+ - Black (`#111111`) + White (`#ffffff`) as the load-bearing palette; everything else is accent
81
+ - Volt (`#d8ff00`) as the signature energy color — rationed, never decorative wallpaper
82
+ - Condensed bold uppercase display type (Futura / Trade Gothic lineage) for headlines
83
+ - Full-bleed inverted (black) sections alternating with white for editorial rhythm
84
+ - Pill buttons (radius 9999px) as the dominant interactive shape
85
+ - Photography-first: huge imagery, minimal chrome, swoosh as punctuation
86
+ - Flat surfaces — depth comes from contrast and scale, not shadow
87
+
88
+ ## 2. Color Palette & Roles
89
+
90
+ ### Primary
91
+ - **Nike Black** (`#111111`): `black`. Primary ink, headings, body text, primary button fill, inverted section backgrounds. The dominant brand color — Nike is a black-and-white brand first.
92
+ - **Pure White** (`#ffffff`): `white`. Page background, inverted-section text, primary-button label on black, card surfaces.
93
+ - **Volt** (`#d8ff00`): `volt`. Nike's signature high-energy accent (the neon yellow-green of running shoes). Used sparingly for hero CTAs, highlights, sale energy, sport moments. Bright variant `#cdfb40` appears in UI accents.
94
+
95
+ ### Brand (Logo / Marketing)
96
+ - **Swoosh Black** (`#111111`): The swoosh and wordmark render in black on light, white on dark. The mark is monochrome by doctrine.
97
+ - **Orange Heritage** (`#fa5400`): Legacy Nike orange (the original shoebox / "Nike orange"). Used in heritage, Jordan, and packaging contexts — not the core web UI accent.
98
+
99
+ ### Semantic
100
+ - **Sale / Error Red** (`#d43f21` / `#e34f2b`): Markdown pricing, sale labels, destructive states, error text. Nike shows discounted prices in a warm red.
101
+ - **Success Green** (`#0a8800`): In-stock confirmations, order-success, positive availability.
102
+ - **In-Stock / Info** (`#1463ff`): Informational links, "Member Access" accents, focus rings on some surfaces.
103
+ - **Warning Amber** (`#cd7b00`): Low-stock ("Almost Sold Out"), pending order states.
104
+
105
+ ### Neutral Scale
106
+ - **Grey 50** (`#f7f7f7`): Lightest surface, section fills, hover background for white cards.
107
+ - **Grey 100** (`#f5f5f5`): Secondary background, input fills, skeleton base.
108
+ - **Grey 200** (`#e5e5e5`): Default borders, dividers, disabled outlines.
109
+ - **Grey 300** (`#cccccc`): Stronger borders, inactive thumbnails.
110
+ - **Grey 500** (`#8d8d8d`): Placeholder text, disabled labels, struck-through original price.
111
+ - **Grey 600** (`#757575`): Secondary/caption text — "Men's Shoes", subtitles, metadata.
112
+ - **Grey 700** (`#707072`): Body sub-text on white, breadcrumb text.
113
+ - **Grey 900** (`#111111`): Strongest text — equal to Nike Black.
114
+
115
+ ### Surface & Borders
116
+ - **Border Default**: `#e5e5e5` (grey200). Cards, inputs, dividers, swatch outlines.
117
+ - **Border Strong**: `#cccccc` (grey300). Active/hovered input outlines, selected swatch ring becomes `#111111`.
118
+ - **Inverted Surface**: `#111111`. Full-bleed dark sections, footer, video overlays.
119
+ - **Overlay Scrim**: `rgba(0,0,0,0.5)` to `rgba(0,0,0,0.75)`. Modal/quick-view backdrop, image gradients for legible overlaid text.
120
+
121
+ ## 3. Typography Rules
122
+
123
+ ### Font Family
124
+ - **Display / Headlines**: `"Nike Futura", "Futura ND", "Trade Gothic", "Helvetica Now Display", "Helvetica Neue", Helvetica, Arial, sans-serif` — condensed, bold, frequently uppercase.
125
+ - **UI / Body**: `"Helvetica Now Text", "Helvetica Neue", Helvetica, Arial, "Nike TG", sans-serif` — neutral grotesque for runs of text.
126
+ - **Brand Wordmark**: *Futura ND Nike 365* (custom Futura Bold Condensed) — logo and tier-1 marketing only.
127
+
128
+ ### Hierarchy
129
+
130
+ | Role | Font | Size | Weight | Line Height | Letter Spacing | Notes |
131
+ |------|------|------|--------|-------------|----------------|-------|
132
+ | Hero Headline | Display (condensed) | 64-88px | 700 | 0.95 (tight) | -0.01em | UPPERCASE, left-aligned, often italic |
133
+ | Display Large | Display (condensed) | 48px | 700 | 1.0 | -0.01em | Section banners ("JUST IN") |
134
+ | Display Medium | Display | 36px | 700 | 1.05 | normal | Editorial sub-headers |
135
+ | Heading 1 | Helvetica Now | 28px | 500/700 | 1.2 | normal | Product title (PDP) |
136
+ | Heading 2 | Helvetica Now | 24px | 500 | 1.25 | normal | Card / section titles |
137
+ | Subtitle | Helvetica Now | 20px | 400/500 | 1.4 | normal | Product category, list headers |
138
+ | Body Large | Helvetica Now | 16px | 400 | 1.5 | normal | Descriptions, paragraphs |
139
+ | Body | Helvetica Now | 15px | 400 | 1.5 | normal | Standard reading text |
140
+ | Price | Helvetica Now | 16px | 500 | 1.4 | normal | Tabular feel; sale price in red |
141
+ | Caption | Helvetica Now | 13px | 400 | 1.4 | normal | Metadata, "Men's Shoes", color count |
142
+ | Label / Eyebrow | Display | 12-14px | 700 | 1.3 | 0.04em | UPPERCASE micro-labels, "MEMBER ACCESS" |
143
+
144
+ ### Principles
145
+ - **Uppercase is a brand voice.** Headlines, eyebrows, and labels lean ALL CAPS with positive tracking. Body copy stays sentence case.
146
+ - **Condensed for shout, grotesque for read.** Display moments use condensed bold (Futura/Trade Gothic lineage); anything the user actually reads switches to clean Helvetica Now.
147
+ - **Tight display leading.** Hero headlines run at 0.95-1.0 line-height so multi-line caps stack like a stadium banner.
148
+ - **Italic implies motion.** Italicized condensed caps are reserved for energy/sport moments — "JUST DO IT", drop announcements.
149
+ - **Two weights do the work.** UI text lives at 400 (body) and 500 (emphasis/price/buttons); 700 is for display and labels only.
150
+
151
+ ## 4. Component Stylings
152
+
153
+ ### Buttons
154
+
155
+ Nike's primary interactive shape is the **pill** (fully rounded). Buttons are bold, high-contrast, and uppercase-or-sentence depending on context.
156
+
157
+ **Primary (Fill / Black)**
158
+ - Background: `#111111`
159
+ - Text: `#ffffff`
160
+ - Border: none
161
+ - Radius: 9999px (pill)
162
+ - Padding: 0 24px
163
+ - Height: 48px (default), 60px (hero)
164
+ - Font: 16px / 500 / Helvetica Now
165
+ - Hover: background `#757575`
166
+ - Disabled: background `#e5e5e5`, text `#8d8d8d`
167
+ - Use: "Add to Bag", "Checkout", primary CTAs on white surfaces
168
+
169
+ **Inverted (Fill / White)**
170
+ - Background: `#ffffff`
171
+ - Text: `#111111`
172
+ - Border: none
173
+ - Radius: 9999px
174
+ - Padding: 0 24px
175
+ - Height: 48px
176
+ - Font: 16px / 500 / Helvetica Now
177
+ - Hover: background `#e5e5e5`
178
+ - Use: Primary CTA on black / photographic / inverted sections
179
+
180
+ **Secondary (Outline)**
181
+ - Background: transparent
182
+ - Text: `#111111`
183
+ - Border: 1.5px solid `#111111`
184
+ - Radius: 9999px
185
+ - Padding: 0 24px
186
+ - Height: 48px
187
+ - Font: 16px / 500 / Helvetica Now
188
+ - Hover: border `#757575`, text `#757575`
189
+ - Use: Secondary action ("Favorite", "Find in Store") beside a primary fill
190
+
191
+ **Volt Accent**
192
+ - Background: `#d8ff00`
193
+ - Text: `#111111`
194
+ - Border: none
195
+ - Radius: 9999px
196
+ - Padding: 0 24px
197
+ - Height: 48px
198
+ - Font: 16px / 700 / Helvetica Now
199
+ - Use: Energy CTA — limited drops, SNKRS, sport campaigns. Rare and intentional.
200
+
201
+ **Text Link (Ghost)**
202
+ - Background: none
203
+ - Text: `#111111`, underline on hover
204
+ - Font: 15px / 400 / Helvetica Now
205
+ - Trailing arrow `→` for "Shop All", "Learn More"
206
+ - Use: Tertiary navigation, editorial links
207
+
208
+ ### Inputs
209
+
210
+ **Default**
211
+ - Background: `#ffffff`
212
+ - Text: `#111111`
213
+ - Border: 1.5px solid `#e5e5e5`
214
+ - Radius: 8px
215
+ - Padding: 14px 16px
216
+ - Font: 16px / 400 / Helvetica Now
217
+ - Placeholder: `#8d8d8d`
218
+ - Focus: border `#111111` (1.5px), no glow
219
+ - Use: Forms, checkout fields
220
+
221
+ **Search (rounded)**
222
+ - Background: `#f5f5f5`
223
+ - Text: `#111111`
224
+ - Border: none
225
+ - Radius: 9999px (pill)
226
+ - Padding: 12px 20px (leading search icon `#757575`)
227
+ - Font: 16px / 400 / Helvetica Now
228
+ - Focus: background `#ffffff`, border 1.5px `#e5e5e5`
229
+ - Use: Header search field
230
+
231
+ **Error**
232
+ - Background: `#ffffff`
233
+ - Border: 1.5px solid `#d43f21`
234
+ - Radius: 8px
235
+ - Padding: 14px 16px
236
+ - Helper text below in `#d43f21`, 13px
237
+ - Use: Validation failure on checkout/login
238
+
239
+ ### Cards
240
+
241
+ **Product Card**
242
+ - Background: `#ffffff`
243
+ - Border: none
244
+ - Radius: 0px (image), text block flush-left below
245
+ - Padding: 0 (image full-bleed) + 12px top gap to text
246
+ - Shadow: none
247
+ - Hover: image subtle scale or quick-add reveal; no shadow lift
248
+ - Detail: title 16px/500 `#111111`, category 15px/400 `#757575`, price 16px/500; sale price `#d43f21` with struck-through `#8d8d8d` original
249
+ - Use: Grid PLP product tile — image does all the work, chrome is invisible
250
+
251
+ **Editorial Card**
252
+ - Background: image full-bleed with `rgba(0,0,0,0.0→0.5)` bottom gradient
253
+ - Text: `#ffffff` overlaid, condensed caps headline
254
+ - Radius: 0px (full-bleed) or 12px (carousel cards)
255
+ - Padding: 24-32px content inset
256
+ - Use: Hero tiles, "Featured" story blocks
257
+
258
+ **Surface Card (rounded)**
259
+ - Background: `#f7f7f7`
260
+ - Border: none
261
+ - Radius: 12px
262
+ - Padding: 24px
263
+ - Shadow: none
264
+ - Use: Member panels, info modules, bag summary
265
+
266
+ ### Badges / Pills
267
+
268
+ **Status Pill (Just In)**
269
+ - Background: transparent / `#ffffff`
270
+ - Text: `#d43f21` ("Just In", "Sustainable Materials" `#0a8800`)
271
+ - Border: none
272
+ - Font: 13px / 500 / Helvetica Now
273
+ - Use: Product card eyebrow label above title
274
+
275
+ **Promo Pill (Filled)**
276
+ - Background: `#111111`
277
+ - Text: `#ffffff`
278
+ - Radius: 9999px
279
+ - Padding: 4px 12px
280
+ - Font: 12px / 700 / Helvetica Now, often UPPERCASE
281
+ - Use: "MEMBER ACCESS", "SNKRS EXCLUSIVE" tags
282
+
283
+ **Sale Pill**
284
+ - Background: `#d43f21`
285
+ - Text: `#ffffff`
286
+ - Radius: 4px
287
+ - Padding: 2px 8px
288
+ - Font: 12px / 700
289
+ - Use: Discount flag on imagery
290
+
291
+ ### Size Selector (Swatch)
292
+
293
+ - Default: white bg, 1.5px `#e5e5e5` border, radius 4px, height 44px, label 15px `#111111`, centered
294
+ - Hover: border `#111111`
295
+ - Selected: border 1.5px `#111111`, bg `#ffffff`
296
+ - Disabled (sold out): text `#cccccc`, diagonal strike, border `#e5e5e5`
297
+ - Use: PDP size grid — square-ish, high tap target
298
+
299
+ ### Color Swatch
300
+
301
+ - Circle/rounded-square 56px thumbnail, radius 8px
302
+ - Selected: 1.5px `#111111` ring with 2px offset
303
+ - Use: Colorway picker on PDP
304
+
305
+ ### Tabs / Filters
306
+
307
+ **Filter Chip**
308
+ - Background: `#ffffff`
309
+ - Text: `#111111`
310
+ - Border: 1px solid `#e5e5e5`
311
+ - Radius: 9999px
312
+ - Padding: 8px 16px
313
+ - Selected: bg `#111111`, text `#ffffff`
314
+ - Font: 15px / 400 / Helvetica Now
315
+ - Use: PLP filter row (size, color, sport)
316
+
317
+ ### Toasts / Notices
318
+
319
+ **Default (Added to Bag)**
320
+ - Background: `#ffffff`
321
+ - Text: `#111111`
322
+ - Border: 1px solid `#e5e5e5`
323
+ - Radius: 8px
324
+ - Padding: 16px 20px
325
+ - Shadow: `0 4px 16px rgba(0,0,0,0.12)`
326
+ - Slides from top-right; auto-dismiss
327
+ - Use: Cart confirmation, favorite saved
328
+
329
+ ### Dialogs
330
+
331
+ **Modal / Quick View**
332
+ - Background: `#ffffff`
333
+ - Text: `#111111`
334
+ - Radius: 0px (full-screen) or 12px (centered)
335
+ - Padding: 32px
336
+ - Backdrop: `rgba(0,0,0,0.5)`
337
+ - Close: `✕` top-right, 24px, `#111111`
338
+ - Use: Size guide, quick add, login wall
339
+
340
+ ---
341
+
342
+ **Verified:** 2026-06-06 (token-level from Nike brand corpus + nike.com observation)
343
+ **Tier 1 sources:** nike.com homepage/PLP/PDP visual language; Nike wordmark (Futura ND Nike 365). Live fetch returned HTTP 403 (bot-blocked); tokens grounded in Nike's documented black/white + Volt system and condensed-display typography. · https://www.nike.com (live production site)
344
+ **Tier 2 sources:** Nike typography history (Futura Bold Condensed since mid-1970s; Trade Gothic / Helvetica Now for digital UI) — designyourway.net, fontsinuse.com.
345
+ **Conflicts unresolved:** none. Volt exact hex varies by surface (`#d8ff00` product / `#cdfb40` UI accent); both retained.
346
+
347
+ ## 5. Layout Principles
348
+
349
+ ### Spacing System
350
+ - Base unit: 8px
351
+ - Common values: 4px, 8px, 12px, 16px, 24px, 32px, 48px, 64px, 96px
352
+ - Section vertical rhythm: 64-96px between major editorial blocks
353
+ - Product grid gutter: 16px; card internal text gap: 8-12px
354
+
355
+ ### Grid & Container
356
+ - Max content width: ~1600px, centered, with edge padding 24-48px
357
+ - PLP grid: 2 columns (mobile) → 3 → 4 (desktop)
358
+ - Hero blocks: full-bleed, edge-to-edge imagery breaking the container
359
+ - Editorial: asymmetric 1:1 or 2:1 splits, left-aligned text columns
360
+
361
+ ### Whitespace Philosophy
362
+ - **Product breathes.** Generous margin around photography; the shoe is never crowded.
363
+ - **Edge-to-edge drama.** Heroes and campaign blocks bleed past the container to feel immersive; text modules respect the grid.
364
+ - **Left-aligned authority.** Headlines and copy hang on a left rail like print editorial — rarely centered except single CTAs.
365
+
366
+ ### Border Radius Scale
367
+ - Square (0px): Product images, full-bleed heroes, sale flags
368
+ - Compact (4px): Size swatches, small tags
369
+ - Standard (8px): Inputs, surface tags, toasts
370
+ - Comfortable (12px): Surface cards, carousel cards, modals
371
+ - Pill (9999px): Buttons, chips, search field, promo pills
372
+
373
+ ## 6. Depth & Elevation
374
+
375
+ | Level | Treatment | Use |
376
+ |-------|-----------|-----|
377
+ | Flat (Level 0) | No shadow | Product cards, sections, the default — Nike is a flat brand |
378
+ | Hairline (Level 1) | 1px `#e5e5e5` border | Inputs, surface cards, filter chips |
379
+ | Floating (Level 2) | `0 4px 16px rgba(0,0,0,0.12)` | Toasts, dropdowns, sticky add-to-bag bar |
380
+ | Modal (Level 3) | `0 8px 32px rgba(0,0,0,0.18)` | Quick view, size guide, login dialogs |
381
+ | Sticky header | `0 1px 0 rgba(0,0,0,0.08)` on scroll | Pinned nav separation |
382
+
383
+ **Shadow Philosophy**: Nike communicates hierarchy through **contrast and scale**, not depth. Most surfaces are perfectly flat; an item earns a shadow only when it floats above content (toast, modal, sticky bar). There are no colored shadows and no multi-layer elevation stacks — depth would compete with the photography. Inverted black sections create separation without any shadow at all.
384
+
385
+ ### Blur Effects
386
+ - Sticky header gains a subtle backdrop blur + white translucency on scroll over imagery
387
+ - Video heroes use gradient scrims (not blur) for text legibility
388
+
389
+ ## 7. Do's and Don'ts
390
+
391
+ ### Do
392
+ - Lead with black (`#111111`) and white (`#ffffff`) — they carry the brand
393
+ - Use pill (9999px) buttons as the default interactive shape
394
+ - Set headlines in condensed bold UPPERCASE, left-aligned, tight leading
395
+ - Ration Volt (`#d8ff00`) for true energy moments — one spark per view
396
+ - Let product photography go edge-to-edge and dominate the layout
397
+ - Invert whole sections to black for editorial drama
398
+ - Keep surfaces flat; reserve shadow for genuinely floating elements
399
+
400
+ ### Don't
401
+ - Don't scatter accent colors — Volt and orange are spices, not the meal
402
+ - Don't add drop shadows to product cards — flat is the aesthetic
403
+ - Don't center body copy or headlines — Nike hangs text on a left rail
404
+ - Don't mix many border radii — square, 8/12px, or pill; avoid in-betweens
405
+ - Don't set running body text in condensed display faces — switch to Helvetica Now
406
+ - Don't crowd the product — whitespace signals premium
407
+ - Don't use Nike orange (`#fa5400`) as the primary UI accent — it's heritage/packaging
408
+
409
+ ## 8. Responsive Behavior
410
+
411
+ ### Breakpoints
412
+ | Name | Width | Key Changes |
413
+ |------|-------|-------------|
414
+ | Mobile | <600px | 2-col product grid, full-width pill CTAs, hamburger nav, sticky add-to-bag |
415
+ | Tablet | 600-960px | 3-col grid, condensed nav, side margins 24px |
416
+ | Desktop | 960-1440px | 4-col grid, full mega-nav, hero edge-bleed |
417
+ | Wide | >1440px | Max 1600px content, larger heroes, increased whitespace |
418
+
419
+ ### Touch Targets
420
+ - Buttons: 48px default height, 60px hero — full-width pills on mobile
421
+ - Size swatches: minimum 44px tap height
422
+ - Nav/menu items: 48px row height
423
+
424
+ ### Collapsing Strategy
425
+ - Mega-nav collapses to slide-in drawer on mobile
426
+ - PDP image gallery → swipeable carousel under 960px
427
+ - Sticky bottom "Add to Bag" bar appears on mobile PDP scroll
428
+ - Editorial 2-col splits stack vertically on mobile, image first
429
+
430
+ ### Image Behavior
431
+ - Hero/campaign images: full-bleed, art-directed crops per breakpoint
432
+ - Product images: square 1:1, white or neutral background, lazy-loaded
433
+ - Maintain aspect ratio; never letterbox the product
434
+
435
+ ## 9. Agent Prompt Guide
436
+
437
+ ### Quick Color Reference
438
+ - Primary / Ink: Nike Black (`#111111`)
439
+ - Background: White (`#ffffff`)
440
+ - Energy Accent: Volt (`#d8ff00`)
441
+ - Body text: Black (`#111111`)
442
+ - Secondary text: Grey (`#757575`)
443
+ - Caption / placeholder: Grey (`#8d8d8d`)
444
+ - Border: Grey 200 (`#e5e5e5`)
445
+ - Sale / Error: Red (`#d43f21`)
446
+ - Success: Green (`#0a8800`)
447
+ - Inverted surface: Black (`#111111`) with white text
448
+
449
+ ### Example Component Prompts
450
+ - "Create a Nike product card: square 1:1 product image on white, no border, no shadow. Below, 12px gap: 'Just In' label 13px #d43f21, title 16px weight 500 #111111, category 15px #757575, price 16px weight 500 #111111. Hover reveals a black pill 'Add to Bag'."
451
+ - "Build a primary CTA: #111111 background, white text, 16px weight 500, pill radius 9999px, 48px height, 24px horizontal padding. Hover background #757575. On a black section, invert to white bg / black text."
452
+ - "Design a PDP size selector: grid of square swatches, 44px tall, 1.5px #e5e5e5 border, 4px radius, 15px #111111 centered. Selected: 1.5px #111111 border. Sold out: #cccccc text with diagonal strike."
453
+ - "Create a hero: full-bleed photo, bottom gradient to rgba(0,0,0,0.5), left-aligned UPPERCASE condensed headline 64px weight 700 white at 0.95 line-height, white pill CTA below."
454
+ - "Design a filter chip row: white pill chips, 1px #e5e5e5 border, 8px/16px padding, 15px #111111. Selected chip: #111111 bg, white text."
455
+
456
+ ### Iteration Guide
457
+ 1. Black + white first; color only where energy or status demands it
458
+ 2. Buttons are pills (9999px); product cards are flat and square
459
+ 3. Headlines: condensed bold UPPERCASE, left-aligned, 0.95-1.0 line-height
460
+ 4. Body and UI text: Helvetica Now / Helvetica Neue at 400, emphasis at 500
461
+ 5. Volt (`#d8ff00`) is a spark — one per view, never wallpaper
462
+ 6. Let imagery bleed edge-to-edge; keep chrome invisible
463
+ 7. No shadows on resting surfaces — only floating elements lift
464
+
465
+ ---
466
+
467
+ ## 10. Voice & Tone
468
+
469
+ Nike speaks like a coach who believes in you and refuses small talk. The voice is imperative, motivational, and brief — verbs first, second person, present tense. Headlines command ("Just Do It", "Dream Crazy", "Find Your Greatness"). Product copy is confident and benefit-led, never apologetic. Sentences are short. Periods land like a finish line.
470
+
471
+ | Context | Tone |
472
+ |---|---|
473
+ | CTAs | Imperative, sentence case ("Add to Bag", "Shop All", "Become a Member") |
474
+ | Campaign headlines | UPPERCASE, aspirational, 2-5 words ("JUST DO IT", "MOVE TO ZERO") |
475
+ | Product titles | Plain, factual, model-forward ("Nike Air Max 270") |
476
+ | Success states | Affirming, brief ("Added to Bag", "You're in.") |
477
+ | Error messages | Direct, blameless, actionable ("Select a size to continue.") |
478
+ | Member / loyalty | Insider, exclusive, warm ("Members get more. Join us.") |
479
+ | Sustainability | Plainspoken, proud, no greenwash jargon ("Move to Zero — our journey toward zero carbon and zero waste.") |
480
+
481
+ **Forbidden patterns.** No hedging ("maybe", "kind of"), no corporate apology ("We apologize for the inconvenience"), no exclamation-mark spam, no jargon. Never weaken a CTA ("Click here to maybe add"). Energy without noise.
482
+
483
+ ## 11. Brand Narrative
484
+
485
+ Nike was founded in 1964 as **Blue Ribbon Sports** by University of Oregon runner **Phil Knight** and his coach **Bill Bowerman**, rebranding to **Nike** — for the Greek goddess of victory — in 1971. That same year design student **Carolyn Davidson** drew the Swoosh for $35; it would become one of the most recognized marks on earth. The waffle sole, born from Bowerman pouring rubber into a kitchen waffle iron, set the template: performance innovation as brand story.
486
+
487
+ The aesthetic doctrine is athletic clarity. Nike adopted **Futura Bold Condensed** as its brand typeface in the mid-1970s — a geometric, no-nonsense face that reads as fast and engineered. In 1988 the agency Wieden+Kennedy delivered **"Just Do It,"** set in Futura Condensed Extra Black, and the brand voice was fixed: imperative, universal, unstoppable. The visual identity has stayed deliberately spare ever since — black, white, and the swoosh — so the product and the athlete are always the loudest thing on screen.
488
+
489
+ Online, Nike is one of the largest direct-to-consumer retailers in the world, with the **Nike**, **Jordan**, **SNKRS**, and **Nike Run/Training Club** apps forming a membership ecosystem. The design's job is commerce that feels like culture: a storefront that reads like a sports magazine, where buying a shoe is buying into a story about effort and victory. Volt — the neon yellow-green Nike popularized in elite running and the 2012 Olympics — is the one color permitted to break the monochrome, because it signals pure energy.
490
+
491
+ What Nike refuses: clutter, timidity, decoration for its own sake, and any visual that competes with the athlete. The brand occupies the space where minimalism meets adrenaline — restrained in palette, maximal in conviction.
492
+
493
+ ## 12. Principles
494
+
495
+ 1. **Product is the hero.** Photography dominates; UI chrome shrinks to invisibility. If a UI element competes with the shoe, the UI loses.
496
+ 2. **Black and white carry the brand.** Color is rationed. A view should work in monochrome; accent is the exception that creates emphasis.
497
+ 3. **One spark per view.** Volt (or a single status color) appears once, intentionally. Two sparks is no spark.
498
+ 4. **Command, don't ask.** Copy and CTAs use imperative verbs. The interface has a point of view and states it plainly.
499
+ 5. **Flat is premium.** Depth comes from contrast, scale, and inversion — not shadows. Resting surfaces stay flat.
500
+ 6. **Left-aligned authority.** Text hangs on a left rail like editorial print. Centering is reserved for solitary CTAs.
501
+ 7. **Condensed shouts, grotesque reads.** Display type is condensed bold caps; running text is clean Helvetica Now. Never confuse the two roles.
502
+ 8. **Speed is a feeling.** Tight leading, italic energy, edge-bleed imagery, and snappy motion make a static page feel kinetic.
503
+
504
+ ## 13. Personas
505
+
506
+ *Personas below are fictional archetypes informed by publicly described athletic-retail segments, not individual people.*
507
+
508
+ **Marcus, 24, Atlanta.** Sneakerhead and SNKRS power user. Has push notifications on for drops; can recite release calendars. Shops on mobile, mostly at midnight ET when limited pairs go live. Judges the experience by speed and fairness of the draw — a laggy add-to-bag during a drop is unforgivable. Reads the product page for materials and colorway names, not marketing copy. Volt and OG colorways catch his eye instantly.
509
+
510
+ **Priya, 31, Chicago.** Marathon trainer, three runs a week. Uses Nike Run Club and buys for performance — cushioning, drop, weight matter more than hype. Wants honest product detail, size guidance, and easy reorder of the same model. Trusts the brand's running pedigree. Browses on desktop at lunch, buys on mobile. Annoyed by anything that hides the spec behind lifestyle imagery.
511
+
512
+ **Dani, 17, Los Angeles.** High-school athlete and style-conscious buyer. Discovers through Instagram and the Nike app's editorial tiles. Responds to campaign energy — bold headlines, athletes, the "Just Do It" feeling. Budget-aware, watches sale labels and member-exclusive access. Mixes performance and lifestyle; cares how it looks as much as how it runs. Mobile-only, fast scroller — the image has one second to land.
513
+
514
+ ## 14. States
515
+
516
+ | State | Treatment |
517
+ |---|---|
518
+ | **Empty (bag)** | Centered short line `#111111` 18px ("Your bag is empty."), one black pill CTA "Start Shopping". No illustration clutter. |
519
+ | **Empty (search/filter)** | `#757575` caption ("No results. Try another filter."), filters remain editable. |
520
+ | **Loading (grid)** | Skeleton tiles at `#f5f5f5` matching square product aspect ratio, 1.2s shimmer with 8% white sweep. Price/title as grey bars. |
521
+ | **Loading (button)** | Label replaced by white spinner on `#111111`; button width preserved, no double-submit. |
522
+ | **Error (inline field)** | 1.5px `#d43f21` border, helper text below in `#d43f21` 13px, one actionable sentence ("Select a size to continue."). |
523
+ | **Error (page)** | Centered black headline + grey body + black pill "Try Again". No stack traces, no apology spam. |
524
+ | **Success (added to bag)** | White toast top-right, 1px `#e5e5e5` border, `0 4px 16px rgba(0,0,0,0.12)` shadow, "Added to Bag" + mini product thumb. Auto-dismiss ~4s. |
525
+ | **Sold out** | Size swatch text `#cccccc` with diagonal strike; "Sold Out" replaces CTA; "Notify Me" outline button offered. |
526
+ | **Low stock** | Amber `#cd7b00` caption ("Almost Sold Out") under price. |
527
+ | **Sale** | Original price struck-through `#8d8d8d`, sale price `#d43f21`, optional `#d43f21` "Sale" pill on image. |
528
+ | **Disabled (button)** | `#e5e5e5` background, `#8d8d8d` text, no pointer. |
529
+ | **Skeleton** | `#f5f5f5` blocks at exact final dimensions, shimmer at component radius (0px image / pill button). |
530
+
531
+ ## 15. Motion & Easing
532
+
533
+ **Durations** (named):
534
+
535
+ | Token | Value | Use |
536
+ |---|---|---|
537
+ | `motion-instant` | 0ms | Reduced-motion fallback, state flips |
538
+ | `motion-fast` | 150ms | Hover, focus, button press, chip select |
539
+ | `motion-standard` | 250ms | Default — quick-add reveal, toast in, tab switch |
540
+ | `motion-slow` | 400ms | Image gallery transitions, section reveals |
541
+ | `motion-hero` | 600ms | Hero/campaign entrance, parallax settle |
542
+
543
+ **Easings:**
544
+
545
+ | Token | Curve | Use |
546
+ |---|---|---|
547
+ | `ease-enter` | `cubic-bezier(0.0, 0.0, 0.2, 1)` | Things appearing — toasts, drawers, quick-add |
548
+ | `ease-exit` | `cubic-bezier(0.4, 0.0, 1, 1)` | Dismissals, pops out |
549
+ | `ease-standard` | `cubic-bezier(0.4, 0.0, 0.2, 1)` | Two-way — tabs, accordions, hover scale |
550
+ | `ease-power` | `cubic-bezier(0.2, 0.8, 0.2, 1)` | Athletic accelerate-out — image zoom, hero parallax, the "fast" feeling |
551
+
552
+ **Signature motions.**
553
+
554
+ 1. **Hover product zoom.** On product-card hover the image scales `1.0 → 1.04` over `motion-standard` with `ease-power`, conveying athletic momentum. No shadow lift — scale alone.
555
+ 2. **Quick-add reveal.** A black pill "Add to Bag" slides up from the card's bottom edge (`y+12px → 0`, `motion-standard / ease-enter`) on hover, fading in. Exits faster (`motion-fast / ease-exit`).
556
+ 3. **Section inversion / scroll reveal.** Editorial blocks fade-and-rise (`y+24px → 0`, `motion-slow / ease-power`) as they enter the viewport — content arrives with momentum, not a passive fade.
557
+ 4. **Bag toast.** Confirmation slides from the top-right (`x+24px → 0`, `motion-standard / ease-enter`), holds, then exits with `ease-exit`.
558
+ 5. **Reduce motion.** Under `prefers-reduced-motion: reduce`, all tokens collapse to `motion-instant`; scales and parallax disable, crossfades replace slides. The store stays fully usable.
559
+
560
+ <!--
561
+ OmD v0.1 Sources — Nike
562
+
563
+ Token layer (sections 1-9): grounded in Nike's documented brand system —
564
+ black (#111111) + white (#ffffff) core with Volt (#d8ff00) energy accent,
565
+ pill button geometry, condensed-display + Helvetica grotesque typography.
566
+ Live WebFetch of nike.com returned HTTP 403 (bot protection); tokens reflect
567
+ Nike's published identity and observed storefront conventions rather than a
568
+ single scraped DOM, so exact pixel values are representative, not asserted as
569
+ pulled from one live computed style.
570
+
571
+ Typography history (Futura ND Nike 365 / Futura Bold Condensed since mid-1970s;
572
+ Trade Gothic + Helvetica Now for digital UI; "Just Do It" in Futura Condensed
573
+ Extra Black, 1988) corroborated via WebSearch:
574
+ - designyourway.net/blog/nike-font
575
+ - fontsinuse.com/uses/14239/nike-website-2016
576
+ - fontyouneed.com / fontinlogo.com
577
+
578
+ Brand narrative facts (Blue Ribbon Sports 1964, renamed Nike 1971, Swoosh by
579
+ Carolyn Davidson for $35, Bowerman waffle sole, Wieden+Kennedy "Just Do It"
580
+ 1988) are widely documented public history.
581
+
582
+ Volt exact hex varies by surface (#d8ff00 product / #cdfb40 UI accent); both
583
+ retained. Heritage orange #fa5400 noted as packaging/legacy, not core UI accent.
584
+
585
+ Personas (§13) are fictional archetypes informed by publicly described athletic-
586
+ retail segments. Interpretive claims (e.g., "one spark per view") are editorial
587
+ readings of the design, not documented Nike statements.
588
+ -->
@@ -10,6 +10,34 @@ logo:
10
10
  slug: "https://www.google.com/s2/favicons?domain=note.com&sz=128"
11
11
  verified: "2026-05-19"
12
12
  omd: "0.1"
13
+ tokens:
14
+ source: prose-derived
15
+ extracted: "2026-06-09"
16
+ colors:
17
+ brand: "#41c9b4"
18
+ theme: "#2cb696"
19
+ theme-dark: "#228d74"
20
+ primary: "#000000"
21
+ canvas: "#f7f9f9"
22
+ surface: "#ffffff"
23
+ text: "#222222"
24
+ on-primary: "#ffffff"
25
+ typography:
26
+ family: { sans: "Hiragino Kaku Gothic ProN", mono: "Hiragino Kaku Gothic ProN" }
27
+ body: { weight: 400, use: "Long-form Japanese article body" }
28
+ heading: { weight: 700, use: "Titles and headings" }
29
+ spacing: { sm: 8, base: 16 }
30
+ rounded: { sm: 8, md: 8, lg: 8, full: 9999 }
31
+ shadow:
32
+ none: "none"
33
+ components:
34
+ button-primary: { type: button, bg: "#000000", fg: "#ffffff", radius: 8, use: "Primary action (Publish / フォロー / 投稿)" }
35
+ button-secondary: { type: button, bg: "#ffffff", fg: "#222222", radius: 8, use: "Lower-emphasis action" }
36
+ button-theme: { type: button, bg: "#2cb696", fg: "#ffffff", radius: 8, use: "Brand-context action, the teal moment" }
37
+ article-card: { type: card, bg: "#ffffff", fg: "#222222", radius: 8, use: "Article preview on off-white canvas" }
38
+ editor-canvas: { type: card, bg: "#ffffff", fg: "#222222", use: "Distraction-free long-form editor" }
39
+ text-field: { type: input, bg: "#ffffff", fg: "#222222", radius: 8, use: "Forms, search, profile fields" }
40
+ components_harvested: true
13
41
  ---
14
42
 
15
43
  # Design System Inspiration of note