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
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "oh-my-design-cli",
3
- "version": "1.6.7",
3
+ "version": "1.7.0",
4
4
  "description": "Bootstrap oh-my-design skills + agents into your project. After install, talk to your AI coding agent in natural language — no other CLI commands.",
5
5
  "type": "module",
6
6
  "bin": {
@@ -0,0 +1,400 @@
1
+ ---
2
+ id: 11st
3
+ name: 11st
4
+ country: KR
5
+ category: e-commerce
6
+ homepage: "https://www.11st.co.kr"
7
+ primary_color: "#ff0038"
8
+ logo:
9
+ type: favicon
10
+ slug: "https://www.google.com/s2/favicons?domain=11st.co.kr&sz=128"
11
+ verified: "2026-06-09"
12
+ added: "2026-06-09"
13
+ omd: "0.1"
14
+ tokens:
15
+ source: live-extract
16
+ extracted: "2026-06-09"
17
+ components_harvested: true
18
+ colors:
19
+ primary: "#ff0038"
20
+ accent-discount: "#f43142"
21
+ canvas: "#ffffff"
22
+ heading: "#111111"
23
+ body: "#666666"
24
+ muted: "#a9a9a9"
25
+ on-primary: "#ffffff"
26
+ hairline: "#eeeeee"
27
+ ink: "#000000"
28
+ typography:
29
+ family: { sans: "Noto Sans KR", fallback: "Apple SD Gothic Neo, Malgun Gothic, sans-serif" }
30
+ price-hero: { size: 24, weight: 700, lineHeight: 1.2, tracking: 0, use: "Discount price, the largest emphasis unit on a product card" }
31
+ search-input: { size: 16, weight: 400, lineHeight: 1.3, tracking: 0, use: "Global search field text and active search tab label" }
32
+ price-base: { size: 16, weight: 400, lineHeight: 1.3, tracking: 0, use: "Standard price figure, sub-amounts" }
33
+ body: { size: 14, weight: 400, lineHeight: 1.5, tracking: 0, use: "Default reading text, links, nav, labels" }
34
+ heading: { size: 14, weight: 700, lineHeight: 1.5, tracking: 0, use: "Section heads, h1/h2, strong labels" }
35
+ caption: { size: 13, weight: 400, lineHeight: 1.4, tracking: 0, use: "Strikethrough original price, metadata, fine print" }
36
+ micro: { size: 11, weight: 400, lineHeight: 1.4, tracking: 0, use: "Unit suffix, badge digits, tiny labels" }
37
+ spacing: { xs: 4, sm: 8, md: 12, base: 16, lg: 20, xl: 24, xxl: 40 }
38
+ rounded: { sm: 4, md: 8, lg: 25, full: 9999 }
39
+ shadow:
40
+ none: "none"
41
+ ambient: "rgba(0,0,0,0.06) 0px 2px 8px"
42
+ elevated: "rgba(0,0,0,0.12) 0px 6px 16px"
43
+ components:
44
+ button-primary: { type: button, bg: "#ff0038", fg: "#ffffff", radius: "4px", padding: "12px 24px", font: "16px / 700", use: "Primary commerce CTA (구매하기/장바구니), brand red on white" }
45
+ button-ghost: { type: button, bg: "#ffffff", fg: "#111111", radius: "4px", padding: "10px 20px", font: "14px / 400", use: "Secondary action, 1px #eeeeee border" }
46
+ search-tab: { type: tab, fg: "#111111", radius: "25px", padding: "0px 20px 2px", font: "16px / 400", active: "active label #ff0038, rounded 25px pill seat", use: "Integrated search-scope selector (통합검색/아마존)" }
47
+ input-search: { type: input, bg: "#ffffff", fg: "#666666", radius: "4px", padding: "0px 12px", font: "16px / 400", use: "Global search field, hairline #eeeeee underline/border" }
48
+ card-product: { type: card, bg: "#ffffff", fg: "#111111", radius: "8px", use: "Product tile, 1px #eeeeee border, ambient shadow on hover" }
49
+ badge-discount: { type: badge, bg: "#ffffff", fg: "#f43142", radius: "4px", padding: "1px 6px", font: "11px / 700", use: "Discount-rate flag (13%할인), red figure on white" }
50
+ price-discount: { type: badge, bg: "#ffffff", fg: "#111111", radius: "4px", padding: "0px", font: "24px / 700", use: "Final discount price, the loudest type on a card" }
51
+ price-original: { type: badge, bg: "#ffffff", fg: "#a9a9a9", radius: "4px", padding: "0px", font: "13px / 400", use: "Strikethrough original price (판매가)" }
52
+ listItem-nav: { type: listItem, bg: "#ffffff", fg: "#666666", radius: "0px", padding: "0px 12px", font: "14px / 400", use: "GNB / category nav row, #111111 on hover" }
53
+ ---
54
+
55
+ # Design System Inspiration of 11st
56
+
57
+ ## 1. Visual Theme & Atmosphere
58
+
59
+ 11st (11번가) is one of Korea's largest open-market e-commerce platforms, and its homepage is built for one job: get a shopper from a vast, dense catalog to a purchase decision as fast as possible. The atmosphere is high-density and utilitarian — a white canvas (`#ffffff`) packed edge-to-edge with product tiles, prices, badges, and navigation. This is not the airy, whitespace-luxury aesthetic of a Western SaaS landing page; it is the deliberate, information-rich layout of a Korean mega-mall portal where every pixel of above-the-fold real estate earns its place. The reading temperature is set by a neutral gray body color (`#666666`) on near-black headings (`#111111`), keeping the chrome quiet so that color can do exactly one thing: signal commerce urgency.
60
+
61
+ That single signal is the 11st brand red. The live DOM reveals a sharp, saturated red (`#ff0038`) on active and focused states, paired with a slightly warmer discount-accent red (`#f43142`) for promotional emphasis like discount-rate flags. Against the otherwise grayscale field, red is never decorative — it marks the thing you should act on or the saving you should notice. This restraint is the system's core discipline: a dense gray-and-white grid in which red is the only loud color, so the eye is trained to follow it straight to a CTA or a markdown.
62
+
63
+ Typography is Korean-first. The stack leads with `Noto Sans KR`, falling back through `Apple SD Gothic Neo` and `Malgun Gothic` — the standard high-legibility Hangul stack tuned for small sizes at high density. Most text runs at 14px, the workhorse size of Korean portal UIs, with prices escalating to a bold 24px (`#111111`, weight 700) as the loudest unit on any product card. There is almost no shadow and almost no rounding in the base chrome; depth and softness are reserved, appearing only as gentle ambient elevation on hover and a distinctive 25px-radius pill on the integrated search-scope selector.
64
+
65
+ **Key Characteristics:**
66
+ - White canvas (`#ffffff`) with a high-density grid — information-rich, portal-style, anti-whitespace
67
+ - Brand red `#ff0038` as the single action/urgency color on active and focused states
68
+ - Warmer discount red `#f43142` reserved for promotional markdown emphasis
69
+ - `Noto Sans KR` Hangul-first stack tuned for small-size legibility at high density
70
+ - 14px body workhorse; bold 24px price (`#111111` weight 700) as the dominant card emphasis
71
+ - Strikethrough original price in muted gray (`#a9a9a9`) beside the red-adjacent discount figure
72
+ - Near-flat chrome — minimal shadow, minimal rounding — with a signature 25px search-tab pill
73
+ - Grayscale field (`#111111`/`#666666`/`#a9a9a9`) so red reads as pure intent
74
+
75
+ ## 2. Color Palette & Roles
76
+
77
+ ### Primary
78
+ - **11st Red** (`#ff0038`): The brand's signature commerce red. Active/focused search-tab state, primary CTA backgrounds, urgency markers. A sharp, fully saturated red that anchors the entire system.
79
+ - **Near-Black Ink** (`#111111`): Primary heading and price color. Not pure black — a dense near-black that reads as authoritative without harshness on white.
80
+ - **Pure White** (`#ffffff`): Page background, card surfaces, search field fill, CTA text on red.
81
+
82
+ ### Accent
83
+ - **Discount Red** (`#f43142`): Slightly warmer red used on promotional emphasis — discount-rate flags, "관련 상품" accent emphasis. Distinct from the action-red `#ff0038`; this is the markdown/savings register.
84
+
85
+ ### Neutral Scale
86
+ - **Body Gray** (`#666666`): Secondary text, navigation links, labels, the default reading color across chrome.
87
+ - **Muted Gray** (`#a9a9a9`): Strikethrough original price (판매가), de-emphasized metadata, the "before discount" register.
88
+ - **Hairline** (`#eeeeee`): Card borders, dividers, search-field underlines, the quiet structural lines of the dense grid.
89
+
90
+ ### Surface & Ink
91
+ - **Ink** (`#000000`): True black reserved for fine iconography and maximal-contrast micro-elements.
92
+ - **On-Primary** (`#ffffff`): Text and icon color on the red CTA surface.
93
+
94
+ ## 3. Typography Rules
95
+
96
+ ### Font Family
97
+ - **Primary**: `Noto Sans KR`
98
+ - **Fallback**: `Apple SD Gothic Neo`, `Malgun Gothic`, `맑은 고딕`, `돋움`, `sans-serif`
99
+ - The Hangul-first stack is chosen for crisp legibility at the small sizes (11px–14px) that dominate a dense commerce grid.
100
+
101
+ ### Hierarchy
102
+
103
+ | Role | Size | Weight | Line Height | Use |
104
+ |------|------|--------|-------------|-----|
105
+ | Price Hero | 24px | 700 | 1.2 | Final discount price — the largest, loudest unit on a product card |
106
+ | Search Input | 16px | 400 | 1.3 | Global search field text and active search-tab label |
107
+ | Price Base | 16px | 400 | 1.3 | Standard price figure, sub-amounts |
108
+ | Heading | 14px | 700 | 1.5 | Section heads, h1/h2, strong labels |
109
+ | Body | 14px | 400 | 1.5 | Default reading text, links, nav rows |
110
+ | Caption | 13px | 400 | 1.4 | Strikethrough original price, metadata, fine print |
111
+ | Micro | 11px | 400 | 1.4 | Unit suffix (원), badge digits, tiny labels |
112
+
113
+ ### Principles
114
+ - **14px is the workhorse.** The vast majority of chrome, navigation, and labels sit at 14px — the standard Korean portal reading size that balances density against legibility.
115
+ - **Price is the headline.** There is no 48px hero type here. The biggest, boldest text on the page is a price (24px / 700). In a commerce-first system, the number IS the headline.
116
+ - **Weight binary.** The system runs on 400 (everything) and 700 (headings, prices, emphasis). There is no light-weight display register; this is functional type, not luxury type.
117
+ - **Hangul-first legibility.** `Noto Sans KR` is engineered for the small sizes the dense grid demands; the fallback chain keeps Hangul rendering consistent across OSes.
118
+
119
+ ## 4. Component Stylings
120
+
121
+ ### Buttons
122
+ **Primary CTA**
123
+ - Background: `#ff0038`
124
+ - Text: `#ffffff`
125
+ - Padding: 12px 24px
126
+ - Radius: 4px
127
+ - Font: 16px Noto Sans KR weight 700
128
+ - Use: Primary commerce action (구매하기 / 장바구니 / 주문하기)
129
+
130
+ **Ghost / Secondary**
131
+ - Background: `#ffffff`
132
+ - Text: `#111111`
133
+ - Padding: 10px 20px
134
+ - Radius: 4px
135
+ - Border: `1px solid #eeeeee`
136
+ - Use: Secondary actions, filters, quiet controls
137
+
138
+ ### Search Tab (integrated scope selector)
139
+ - Active label color: `#ff0038`
140
+ - Radius: 25px (the system's signature pill seat)
141
+ - Padding: 0px 20px 2px
142
+ - Font: 16px weight 400
143
+ - Use: Switching search scope (통합검색 / 아마존). The 25px-radius pill is the one place softness appears in the chrome.
144
+
145
+ ### Search Input
146
+ - Background: `#ffffff`
147
+ - Text: `#666666`
148
+ - Radius: 4px
149
+ - Padding: 0px 12px
150
+ - Border: hairline `#eeeeee` underline/border
151
+ - Font: 16px weight 400
152
+
153
+ ### Cards & Containers (product tile)
154
+ - Background: `#ffffff`
155
+ - Border: `1px solid #eeeeee`
156
+ - Radius: 8px
157
+ - Shadow: none at rest; ambient `rgba(0,0,0,0.06) 0px 2px 8px` on hover
158
+ - Contents: thumbnail, title at 14px, discount-rate badge, 24px/700 discount price, strikethrough original price at 13px `#a9a9a9`
159
+
160
+ ### Badges
161
+ **Discount-Rate Flag**
162
+ - Background: `#ffffff`
163
+ - Text: `#f43142`
164
+ - Padding: 1px 6px
165
+ - Radius: 4px
166
+ - Font: 11px weight 700
167
+ - Use: Discount percentage (13%할인) — red figure on white
168
+
169
+ ### Navigation (GNB / category)
170
+ - Row text: `#666666` at 14px weight 400
171
+ - Hover: text shifts to `#111111`
172
+ - Radius: 0px (square, dense rows)
173
+ - White background, hairline `#eeeeee` dividers
174
+
175
+ **Tier 1 sources:** https://www.11st.co.kr, https://about.11st.co.kr
176
+
177
+ ## 5. Layout Principles
178
+
179
+ ### Spacing System
180
+ - Base unit: 4px
181
+ - Scale: 4px, 8px, 12px, 16px, 20px, 24px, 40px
182
+ - The dense small-end steps (4–12px) reflect a layout that packs many tiles and labels into limited vertical space.
183
+
184
+ ### Grid & Container
185
+ - Wide centered content column (~1240px) holding multi-column product grids
186
+ - Above-the-fold is information-maximal: GNB, integrated search, category rail, promo banners, and product rails all compete for the first screen
187
+ - Product tiles arranged in dense responsive grids (typically 4–6 across on desktop)
188
+
189
+ ### Whitespace Philosophy
190
+ - **Density as a feature.** Unlike whitespace-forward Western design, 11st treats density as a service to the shopper — more products visible means fewer scrolls to a decision. Gaps are tight and functional.
191
+ - **Hairlines over gaps.** Structure is communicated by `#eeeeee` hairlines and borders rather than large empty margins, keeping the grid legible while maximizing content.
192
+
193
+ ### Border Radius Scale
194
+ - Square (0px): Nav rows, dividers, many structural blocks
195
+ - Small (4px): Buttons, badges, inputs — the workhorse rounding
196
+ - Medium (8px): Product cards, thumbnails
197
+ - Pill (25px): The integrated search-scope tab — the signature soft accent
198
+ - Full (9999px): Circular icon buttons (scroll-to-top, category toggle)
199
+
200
+ ## 6. Depth & Elevation
201
+
202
+ | Level | Treatment | Use |
203
+ |-------|-----------|-----|
204
+ | Flat (Level 0) | No shadow | Page background, nav rows, resting tiles |
205
+ | Ambient (Level 1) | `rgba(0,0,0,0.06) 0px 2px 8px` | Product-card hover lift, quiet panels |
206
+ | Elevated (Level 2) | `rgba(0,0,0,0.12) 0px 6px 16px` | Dropdowns, popovers, floating layers |
207
+
208
+ **Shadow Philosophy**: 11st is a near-flat system. At rest, the chrome carries no shadow at all — structure comes from hairlines and color blocks, not elevation. Shadow appears only as a soft ambient lift on hover and as a slightly deeper layer for floating menus. This restraint keeps the dense grid visually calm; if every tile cast a shadow, the page would become noise. Depth is an interaction affordance here, not a decorative style.
209
+
210
+ ## 7. Do's and Don'ts
211
+
212
+ ### Do
213
+ - Use `#ff0038` as the single action/urgency color — CTAs, active states, focus
214
+ - Reserve `#f43142` for discount/markdown emphasis (rate flags, savings)
215
+ - Make the price the loudest element: 24px weight 700 in `#111111`
216
+ - Pair the discount price with a muted `#a9a9a9` strikethrough original
217
+ - Use `Noto Sans KR` and keep body text at 14px for portal-grade density
218
+ - Communicate structure with `#eeeeee` hairlines, not large gaps
219
+ - Keep chrome flat; reserve ambient shadow for hover/floating layers only
220
+ - Use the 25px pill only on the integrated search-scope tab — it is a signature, not a default
221
+
222
+ ### Don't
223
+ - Don't introduce a second loud color — red is the only urgency signal
224
+ - Don't use pure black (`#000000`) for headings; use near-black `#111111`
225
+ - Don't add airy whitespace at the expense of product density — density is the value
226
+ - Don't pill-round buttons or cards; rounding stays at 4–8px outside the search tab
227
+ - Don't shadow resting tiles — flat-at-rest keeps the dense grid calm
228
+ - Don't shrink the price below its 24px/700 dominance on a card
229
+ - Don't mix `#ff0038` and `#f43142` arbitrarily — action-red vs markdown-red are distinct roles
230
+ - Don't substitute a Latin-first font stack; Hangul legibility leads
231
+
232
+ ## 8. Responsive Behavior
233
+
234
+ ### Breakpoints
235
+ | Name | Width | Key Changes |
236
+ |------|-------|-------------|
237
+ | Mobile | <768px | Single/2-column tile grid, collapsed GNB, sticky search |
238
+ | Tablet | 768–1024px | 3–4 column grid, condensed category rail |
239
+ | Desktop | 1024–1280px | Full 4–6 column product grids, full GNB |
240
+ | Large | >1280px | Centered ~1240px content with side margins |
241
+
242
+ ### Touch Targets
243
+ - Primary CTA at 12px/24px padding gives a comfortable tap surface
244
+ - Nav rows and category items spaced for thumb reach on mobile
245
+ - Circular icon buttons (scroll-to-top, category toggle) sized for tap
246
+
247
+ ### Collapsing Strategy
248
+ - Product grid: 6-column → 4 → 3 → 2 → 1 across breakpoints
249
+ - GNB: full horizontal nav → hamburger/category drawer on mobile
250
+ - Integrated search: persistent and often sticky at the top on mobile
251
+ - Price block maintains its 24px/700 dominance; surrounding metadata wraps or truncates first
252
+
253
+ ### Image Behavior
254
+ - Square product thumbnails with 8px radius, consistent across breakpoints
255
+ - Promo banners scale full-width and swap to mobile-cropped variants
256
+ - Lazy-loaded tiles below the fold to keep the dense grid performant
257
+
258
+ ## 9. Agent Prompt Guide
259
+
260
+ ### Quick Color Reference
261
+ - Primary CTA / urgency: 11st Red (`#ff0038`)
262
+ - Discount / markdown accent: Discount Red (`#f43142`)
263
+ - Background: Pure White (`#ffffff`)
264
+ - Heading / price: Near-Black (`#111111`)
265
+ - Body text / nav: Body Gray (`#666666`)
266
+ - Strikethrough / muted: Muted Gray (`#a9a9a9`)
267
+ - Border / hairline: (`#eeeeee`)
268
+ - CTA text: White (`#ffffff`)
269
+
270
+ ### Example Component Prompts
271
+ - "Create a product card: white background, 1px solid #eeeeee border, 8px radius, no shadow at rest. Discount-rate badge in #f43142 (11px / 700) top-left. Title at 14px Noto Sans KR #666666. Discount price at 24px weight 700 #111111. Strikethrough original price at 13px #a9a9a9 beside it. On hover, ambient shadow rgba(0,0,0,0.06) 0px 2px 8px."
272
+ - "Build a primary CTA: #ff0038 background, white text, 16px Noto Sans KR weight 700, 12px 24px padding, 4px radius. Label '구매하기'."
273
+ - "Design an integrated search bar: white field, 16px #666666 text, hairline #eeeeee border, 4px radius, with a 25px-radius scope tab whose active label is #ff0038."
274
+ - "Create a dense GNB row: white background, #666666 14px links, hover to #111111, #eeeeee divider hairlines, 0px radius square rows."
275
+
276
+ ### Iteration Guide
277
+ 1. Keep `#ff0038` as the only loud color — if a second bright hue appears, remove it.
278
+ 2. The price is the headline: 24px / 700 / `#111111`, never smaller than its surroundings.
279
+ 3. Body stays at 14px `Noto Sans KR`; weight is binary (400 / 700).
280
+ 4. Structure with `#eeeeee` hairlines, not whitespace — density is intentional.
281
+ 5. Chrome is flat at rest; shadow only on hover (`rgba(0,0,0,0.06) 0px 2px 8px`) or floating layers.
282
+ 6. Rounding stays at 4–8px; the 25px pill is exclusive to the search-scope tab.
283
+ 7. Distinguish `#ff0038` (action) from `#f43142` (markdown) by role, never interchangeably.
284
+
285
+ ---
286
+
287
+ ## 10. Voice & Tone
288
+
289
+ 11st's voice is brisk, transactional, and benefit-forward — the register of a Korean open-market that competes on price, speed, and selection. Microcopy is short and action-oriented: 구매하기 (buy), 장바구니 (cart), 할인 (discount), 무료배송 (free shipping). Numbers do the persuading — discount rates, final prices, point rewards — so prose stays out of the way. There is warmth in promotional energy (events, coupons, time-limited deals) but the underlying tone is efficient and shopper-respecting: tell me the price, the saving, and the action, in that order.
290
+
291
+ | Context | Tone |
292
+ |---|---|
293
+ | Product titles | Dense, keyword-rich, scannable. Brand + spec + benefit packed for search legibility. |
294
+ | CTAs | Direct imperatives. "구매하기", "장바구니 담기", "바로구매". |
295
+ | Promotions | Energetic, urgency-flavored. Discount rate and deadline lead. |
296
+ | Price/discount | Numbers first. The saving is the message. |
297
+ | Notices / policy | Plain, procedural Korean. Clear about shipping, returns, points. |
298
+ | Search / empty | Helpful, suggestion-forward. Offers related keywords and categories. |
299
+
300
+ **Forbidden register.** Avoid airy lifestyle-brand prose that buries the price. Avoid burying the discount under adjectives. Avoid a second loud color competing with red for attention. The shopper came to compare and buy — respect that with numbers and clear actions, not mood copy.
301
+
302
+ ## 11. Brand Narrative
303
+
304
+ 11st (11번가) launched in **2008** as the open-market e-commerce platform of **SK** in South Korea, entering a market already contested by Gmarket and Auction. It grew into one of Korea's largest online marketplaces, and in **2018** the e-commerce business was spun off into a standalone company, **Eleven Street Co., Ltd.**, under the SK Square / SK Telecom orbit. The name "11번가" — literally "11th Street" — frames the service as a bustling commercial street where countless sellers and shoppers meet, an open marketplace rather than a single first-party retailer.
305
+
306
+ The platform's defining strategic move in recent years has been its **Amazon Global Store** partnership, surfacing Amazon's catalog to Korean shoppers directly inside 11st — which is why the integrated search even offers an "아마존" scope alongside 통합검색. This positions 11st not just as a domestic open-market but as a gateway to cross-border selection, competing on breadth of catalog and price.
307
+
308
+ The design system follows directly from this identity. An open-market with millions of SKUs and thousands of sellers cannot afford editorial whitespace; it must surface as many comparable options as possible, as fast as possible. Hence the dense grid, the price-as-headline hierarchy, and the single disciplined use of red to mark action and savings. 11st's brand promise is selection and value, and the UI is engineered to deliver both at a glance.
309
+
310
+ ## 12. Principles
311
+
312
+ 1. **Density serves the shopper.** More products visible means fewer steps to a decision. Tight grids and hairline structure are a service, not a compromise.
313
+ 2. **The price is the headline.** In open-market commerce, the most important information is the number. It gets the largest, boldest type on the card.
314
+ 3. **Red means act or save.** A single saturated red (`#ff0038`) marks the action; a markdown red (`#f43142`) marks the saving. Red is never decorative.
315
+ 4. **Hangul-first legibility.** `Noto Sans KR` at small sizes keeps a dense Korean grid crisp and scannable.
316
+ 5. **Flat at rest, lift on intent.** No resting shadows; elevation is an interaction affordance, keeping the busy grid calm.
317
+ 6. **Structure with lines, not gaps.** `#eeeeee` hairlines organize density where whitespace would waste it.
318
+ 7. **One signature softness.** The 25px search-scope pill is the single intentional curve in an otherwise square, functional chrome.
319
+ 8. **Selection is the brand.** From domestic sellers to the Amazon Global Store, breadth of catalog is the promise the layout must honor.
320
+
321
+ ## 13. Personas
322
+
323
+ *Personas below are fictional archetypes informed by publicly observable 11st user segments (deal-seeking shoppers, mobile-first buyers, cross-border bargain hunters, third-party sellers), not individual people.*
324
+
325
+ **Ji-woo Park, 29, Seoul.** Mobile-first deal hunter. Opens 11st during her commute to compare prices on a specific gadget across sellers. Scans discount-rate badges and final prices in seconds; the strikethrough original tells her how good the deal is. Abandons any page where she has to hunt for the price. Trusts the platform because the savings are always legible at a glance.
326
+
327
+ **Min-jun Kim, 42, Daegu.** Household-supplies bulk buyer. Uses 11st on desktop, filling a cart with everyday goods and chasing free-shipping thresholds and point rewards. Values the dense grid — he can see dozens of options without scrolling endlessly. Reads product titles like a spec sheet and ignores anything that looks like marketing fluff.
328
+
329
+ **Seo-yeon Lee, 35, Bundang.** Cross-border bargain shopper. Came to 11st specifically for the Amazon Global Store — she toggles the search scope to 아마존 to compare imported goods against domestic listings. Cares about total landed price and delivery estimate. The integrated search that spans both catalogs is exactly why she stays on 11st instead of using two sites.
330
+
331
+ **Tae-hyun Jung, 38, Incheon.** Third-party seller running a small electronics shop on the open-market. Thinks about how his listings render in the grid — thumbnail, title keywords, discount badge, price. Knows that a clear discount-rate flag and a competitive final price are what win the click in a sea of comparable tiles.
332
+
333
+ ## 14. States
334
+
335
+ | State | Treatment |
336
+ |---|---|
337
+ | **Empty (search, no results)** | White canvas. Plain line in `#666666` at 14px: "검색 결과가 없습니다." Suggested related keywords and popular categories offered below. No illustration-heavy dead end — redirect to selection. |
338
+ | **Empty (cart)** | `#666666` single line: "장바구니에 담긴 상품이 없습니다." One `#ff0038` CTA back to shopping. |
339
+ | **Loading (grid first paint)** | Skeleton tiles at final dimensions in `#eeeeee`. Thumbnail, title bar, and price bar placeholders sized to the real tile. Lazy-load below the fold. |
340
+ | **Loading (price/stock refresh)** | Inline spinner or subtle shimmer on the affected tile; previous price stays visible until updated. |
341
+ | **Error (action failed)** | Inline message near the action in plain Korean: what failed + what to do. No generic "오류가 발생했습니다" without a next step. |
342
+ | **Error (sold out)** | Tile marks 품절; CTA switches to disabled/muted; suggests similar in-stock items. |
343
+ | **Success (added to cart)** | Brief confirmation layer or toast: "장바구니에 담았습니다." Quick links to view cart or keep shopping. No emoji. |
344
+ | **Success (order placed)** | Dedicated confirmation page with order number, total, and shipping estimate in `#111111`; next-step links prominent. |
345
+ | **Disabled** | Muted to `#a9a9a9` on text with reduced surface contrast; red CTAs fade rather than recolor, preserving brand read. |
346
+ | **Discount / deal active** | Discount-rate flag in `#f43142`, final price at 24px/700 `#111111`, strikethrough original at 13px `#a9a9a9`. The savings is the state. |
347
+
348
+ ## 15. Motion & Easing
349
+
350
+ **Durations**:
351
+
352
+ | Token | Value | Use |
353
+ |---|---|---|
354
+ | `motion-instant` | 0ms | Selection ticks, focus marks |
355
+ | `motion-fast` | 150ms | Hover lift, button press, tab switch |
356
+ | `motion-standard` | 250ms | Dropdowns, cart layer, drawer open |
357
+ | `motion-slow` | 400ms | Banner/carousel transitions, drawer slide |
358
+
359
+ **Easings**:
360
+
361
+ | Token | Curve | Use |
362
+ |---|---|---|
363
+ | `ease-standard` | `cubic-bezier(0.25, 0.1, 0.25, 1)` | Most hover and panel transitions |
364
+ | `ease-enter` | `cubic-bezier(0.2, 0.6, 0.25, 1)` | Drawers, dropdowns arriving |
365
+ | `ease-exit` | `cubic-bezier(0.4, 0.0, 1, 1)` | Dismissals |
366
+
367
+ **Restraint.** Motion is functional, not playful. A dense commerce grid stays calm — hover lifts are quick (150ms) and small, panels slide with standard easing, and there is no bounce or spring that would make a busy page feel chaotic.
368
+
369
+ **Signature motions.**
370
+
371
+ 1. **Card hover lift.** Product tiles raise with a fast (150ms) ambient shadow (`rgba(0,0,0,0.06) 0px 2px 8px`) — a small, quick affordance confirming the tile is interactive without disturbing the grid's calm.
372
+ 2. **Search-scope tab switch.** Switching between 통합검색 and 아마존 transitions the active label to `#ff0038` within the 25px pill seat using `ease-standard` — instant feedback on scope change.
373
+ 3. **Category drawer / cart layer.** Slide-in panels use `motion-standard` with `ease-enter`; dismissals use `ease-exit`. The grid behind stays still.
374
+ 4. **Reduce motion.** Under `prefers-reduced-motion: reduce`, hover lifts and panel slides collapse to instant. The dense grid remains fully functional; nothing essential depends on animation.
375
+
376
+ <!--
377
+ OmD v0.1 Sources — 11st
378
+
379
+ Token-level claims (sections 1–9, structured block) are sourced from live DOM
380
+ inspection of https://www.11st.co.kr via Playwright getComputedStyle (2026-06-09):
381
+ - Brand red #ff0038 (active/focused search tab LI), discount red #f43142 (em accent)
382
+ - Heading/price #111111, body #666666, muted/strikethrough #a9a9a9, canvas #ffffff,
383
+ hairline #eeeeee
384
+ - Noto Sans KR / Apple SD Gothic Neo / Malgun Gothic stack
385
+ - 14px body workhorse, 24px/700 discount price, 16px search input, 25px search-tab radius
386
+ See web/references/11st/.verification.md for raw samples.
387
+
388
+ Brand narrative (§11): 11st (11번가) launched 2008 as SK's open-market; the
389
+ e-commerce business was spun off as Eleven Street Co., Ltd. in 2018; the Amazon
390
+ Global Store partnership surfaces Amazon's catalog inside 11st (reflected in the
391
+ 아마존 search scope). Widely documented public facts.
392
+
393
+ Personas (§13) are fictional archetypes informed by publicly observable 11st
394
+ user segments (deal-seekers, mobile buyers, cross-border shoppers, sellers).
395
+ Names are illustrative; they do not refer to real people.
396
+
397
+ Interpretive claims (e.g., "density serves the shopper", "the price is the
398
+ headline") are editorial readings connecting 11st's open-market identity to its
399
+ observed design system, not direct 11st statements.
400
+ -->
@@ -9,6 +9,49 @@ logo:
9
9
  type: favicon
10
10
  slug: "https://www.google.com/s2/favicons?domain=17.live&sz=128"
11
11
  verified: "2026-05-19"
12
+ tokens:
13
+ source: prose-derived
14
+ extracted: "2026-06-08"
15
+ note: "primary = 17 Pink #FF4F6E; dark-stage palette and non-primary hexes are grounded approximations pending live re-inspection (see §2 note)"
16
+ colors:
17
+ primary: "#FF4F6E"
18
+ primary-hover: "#E8455F"
19
+ canvas: "#121212"
20
+ surface-1: "#1C1C1E"
21
+ surface-2: "#2C2C2E"
22
+ foreground: "#FFFFFF"
23
+ on-primary: "#FFFFFF"
24
+ rank-gold: "#FFC83D"
25
+ vip-purple: "#8B5CF6"
26
+ success: "#27C76F"
27
+ warning: "#F5A623"
28
+ error: "#FF453A"
29
+ typography:
30
+ family: { default: "-apple-system, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif", tc: "\"PingFang TC\", \"Microsoft JhengHei\", sans-serif", jp: "\"Hiragino Kaku Gothic Pro\", \"Meiryo\", sans-serif", sc: "\"PingFang SC\", \"Microsoft YaHei\", sans-serif" }
31
+ micro: { size: 11, weight: 700, use: "Viewer count, LIVE badge, gamified numbers" }
32
+ caption: { size: 12, weight: 400, use: "Chat meta, captions, metadata" }
33
+ body: { size: 14, weight: 400, use: "Chat message, body text" }
34
+ liver-name: { size: 16, weight: 700, use: "LIVER name, list title, key labels" }
35
+ section: { size: 20, weight: 600, use: "Section heading, tab labels" }
36
+ hero: { size: 28, weight: 700, use: "Hero / spotlight headline" }
37
+ spacing: { xs: 4, sm: 8, md: 12, base: 16, lg: 24 }
38
+ rounded: { sm: 4, md: 12, lg: 24, full: 9999 }
39
+ shadow:
40
+ sheet: "soft top shadow over rgba(0,0,0,0.5) scrim"
41
+ components_harvested: true
42
+ components:
43
+ button-primary: { type: button, bg: "#FF4F6E", fg: "#FFFFFF", radius: "24px", padding: "12px 24px", font: "16px / 700", states: "pressed #E8455F", use: "GO LIVE, primary CTAs, sign-up" }
44
+ button-follow: { type: button, bg: "#FF4F6E", fg: "#FFFFFF", radius: "16px", padding: "6px 16px", font: "14px / 600", states: "following → transparent + 1px rgba(255,255,255,0.3), fg rgba(255,255,255,0.7)", use: "Follow / Following toggle" }
45
+ button-secondary: { type: button, bg: "transparent", fg: "#FFFFFF", border: "1px solid rgba(255,255,255,0.3)", radius: "24px", padding: "12px 24px", font: "16px / 600", use: "Secondary actions, Maybe later" }
46
+ button-gift: { type: button, bg: "#FF4F6E → #FF2D8E gradient", fg: "#FFFFFF", radius: "20px", use: "Send-gift — highest-energy transaction" }
47
+ input: { type: input, bg: "#2C2C2E", fg: "#FFFFFF", radius: "12px", padding: "12px 16px", focus: "1px solid #FF4F6E", use: "Search, login, profile; placeholder rgba(255,255,255,0.45)" }
48
+ chat-input: { type: input, bg: "#2C2C2E", radius: "24px", use: "Live-chat composer overlay, trailing pink #FF4F6E send icon" }
49
+ stream-card: { type: card, radius: "12px", use: "Discover grid — thumbnail + rgba(0,0,0,0.5) bottom gradient, LIVE badge + viewer count + LIVER name" }
50
+ card: { type: card, bg: "#1C1C1E", radius: "12px", padding: "12px", use: "LIVER lists, ranking rows, fan-club cards" }
51
+ badge-live: { type: badge, bg: "#FF4F6E", fg: "#FFFFFF", radius: "4px", padding: "2px 6px", font: "11px / 700", use: "Live-now indicator (or #27C76F dot)" }
52
+ badge-rank: { type: badge, bg: "#FFC83D", fg: "#121212", radius: "50%", use: "Leaderboard / top-fan #1 status" }
53
+ avatar: { type: avatar, radius: "50%", use: "LIVER and viewer avatars, optional pink/gradient ring for live or VIP" }
54
+ tab-bar: { type: tab, use: "Bottom tab bar; center GO LIVE elevated pink", active: "#FF4F6E label", states: "inactive rgba(255,255,255,0.45)" }
12
55
  omd: "0.1"
13
56
  ---
14
57
 
@@ -9,6 +9,47 @@ logo:
9
9
  type: favicon
10
10
  slug: "https://asset.29cm.co.kr/icon/apple-icon-144x144.png"
11
11
  verified: "2026-05-15"
12
+ tokens:
13
+ source: prose-derived
14
+ extracted: "2026-06-08"
15
+ note: "monochrome system — brand 'color' is the absence of color; #000 ink on #fff, single muted grey, sale-red badge-only accent"
16
+ colors:
17
+ primary: "#000000"
18
+ foreground: "#000000"
19
+ body: "#000000"
20
+ canvas: "#ffffff"
21
+ background: "#ffffff"
22
+ on-primary: "#ffffff"
23
+ hairline: "#c4c4c4"
24
+ border: "#c4c4c4"
25
+ sale: "#ff0066"
26
+ error: "#ff003c"
27
+ skeleton: "#f5f5f5"
28
+ typography:
29
+ family: { sans: "Pretendard Variable" }
30
+ section-headline: { size: 30, weight: 700, lineHeight: 1.13, use: "Special-Order / 29Magazine section headlines, lowercase-English / mixed Korean editorial" }
31
+ sub-headline: { size: 24, weight: 700, lineHeight: 1.21, use: "Smaller category nav items" }
32
+ card-title: { size: 22, weight: 700, lineHeight: 1.36, use: "Signature editorial card title — PT subjects, themed collections" }
33
+ card-body: { size: 15, weight: 400, lineHeight: 1.50, use: "Card descriptions, editorial blurbs" }
34
+ nav-link: { size: 16, weight: 200, use: "Primary nav link — 200 inactive, 800 active BEST/current section" }
35
+ floating-cta: { size: 15, weight: 400, use: "FAQ / 1:1 문의 — black bg, white text, 2px radius" }
36
+ ghost-cta: { size: 14, weight: 700, use: "더보기 — white bg, 1px #c4c4c4 border" }
37
+ footer-heading: { size: 13, weight: 700, lineHeight: 1.40, use: "Caps Latin section labels — NOTICE, ABOUT US, MY ORDER, HELP" }
38
+ product-name: { size: 12, weight: 400, lineHeight: 1.36, use: "Card product name, restrained, under the image" }
39
+ product-price: { size: 12, weight: 700, lineHeight: 1.36, use: "Card price — same size as name, never dominates" }
40
+ price-caption: { size: 12, weight: 400, lineHeight: 1.36, use: "옵션비 별도 in muted grey" }
41
+ spacing: { xs: 4, sm: 8, md: 12, base: 16, page: 20, lg: 24, xl: 32, margin: 48 }
42
+ rounded: { sm: 2, md: 4 }
43
+ shadow:
44
+ flat: "none — depth comes from photography on white, not box-shadow"
45
+ inverted: "#000000 background on #ffffff page — elevation by colour inversion"
46
+ components_harvested: true
47
+ components:
48
+ ghost-outline: { type: button, bg: "#ffffff", fg: "#000000", radius: 4, padding: "52px height", font: "14px/700", use: "workhorse 더보기 CTA, 1px solid #c4c4c4 border" }
49
+ inverted-solid: { type: button, bg: "#000000", fg: "#ffffff", radius: 2, padding: "31px height", font: "15px/400", use: "floating FAQ / 1:1 문의 help control" }
50
+ editorial-tile: { type: card, bg: "#ffffff", radius: 0, font: "22px/700 title + 15px/400 body", use: "full-bleed editorial image, no border, no shadow" }
51
+ product-card: { type: card, bg: "#ffffff", radius: 0, font: "12px/400 name, 12px/700 price", use: "card name then price (#ff0066 if on sale); caption in muted grey" }
52
+ sale-pill: { type: badge, fg: "#ff0066", radius: 0, font: "12px/700", use: "percent-off badge only" }
12
53
  omd: "0.1"
13
54
  ---
14
55
 
@@ -9,6 +9,37 @@ logo:
9
9
  type: favicon
10
10
  slug: "https://www.google.com/s2/favicons?domain=91app.com&sz=128"
11
11
  verified: "2026-06-01"
12
+ tokens:
13
+ source: prose-derived
14
+ extracted: "2026-06-08"
15
+ note: "navy #061C3D is the structural primary (text + headings + primary button); coral #E85040 is the lone action accent, kept rare"
16
+ colors:
17
+ primary: "#061C3D"
18
+ brand: "#061C3D"
19
+ foreground: "#061C3D"
20
+ body: "#061C3D"
21
+ heading: "#061C3D"
22
+ accent: "#E85040"
23
+ error: "#CB200E"
24
+ muted: "#F7F6FB"
25
+ canvas: "#FFFFFF"
26
+ on-primary: "#FFFFFF"
27
+ typography:
28
+ family: { sans: "Noto Sans TC", fallback: "Helvetica" }
29
+ hero: { size: 44, weight: 700, use: "Top-of-page hero heading in structural navy, carries brand authority" }
30
+ body: { size: 16, weight: 400, use: "Standard reading text, calm and scannable" }
31
+ button: { size: 16, weight: 600, use: "Primary / neutral button label" }
32
+ button-accent: { size: 16, weight: 500, use: "Coral CTA label" }
33
+ spacing: { sm: 8, base: 16, lg: 24, xl: 32 }
34
+ rounded: { sm: 3, lg: 16 }
35
+ shadow:
36
+ flat: "none — separation via color/fill contrast, no literal shadow stacking"
37
+ components_harvested: true
38
+ components:
39
+ button-primary: { type: button, bg: "#061C3D", fg: "#FFFFFF", radius: 16, padding: "48px height", font: "16px/600", use: "dominant action" }
40
+ button-coral: { type: button, bg: "#E85040", fg: "#FFFFFF", radius: 16, padding: "40px height", font: "16px/500", use: "lone decisive accent, kept rare" }
41
+ button-neutral: { type: button, bg: "#F7F6FB", fg: "#061C3D", radius: 3, padding: "48px height", font: "16px/600", use: "secondary action" }
42
+ hero-heading: { type: card, fg: "#061C3D", font: "44px/700 Noto Sans TC", use: "top-of-page authority heading" }
12
43
  omd: "0.1"
13
44
  ---
14
45
  # Design System Inspiration of 91APP
@@ -10,6 +10,60 @@ logo:
10
10
  type: favicon
11
11
  slug: "https://www.google.com/s2/favicons?domain=a-bly.com&sz=128"
12
12
  verified: "2026-05-15"
13
+ tokens:
14
+ source: prose-derived
15
+ extracted: "2026-06-08"
16
+ note: "primary = Ably Pink #FA2E5F; sale/urgency collapses into the brand pink by design. Active states use filled black #222222, not pink."
17
+ colors:
18
+ primary: "#FA2E5F"
19
+ primary-disabled: "#FFC2D2"
20
+ hot-deal: "#FF2D55"
21
+ discount: "#F0124B"
22
+ free-shipping: "#00C8B4"
23
+ canvas: "#FFFFFF"
24
+ foreground: "#222222"
25
+ body: "#333333"
26
+ secondary: "#666666"
27
+ muted: "#999999"
28
+ lightest: "#BBBBBB"
29
+ on-primary: "#FFFFFF"
30
+ surface-fill: "#F5F5F5"
31
+ surface-subtle: "#FAFAFA"
32
+ hairline: "#EEEEEE"
33
+ border-subtle: "#F0F0F0"
34
+ success: "#00C896"
35
+ error: "#F0124B"
36
+ info-link: "#2680EB"
37
+ typography:
38
+ family: { sans: "Pretendard", mono: "SF Mono" }
39
+ display: { size: 28, weight: 700, lineHeight: 1.30, tracking: -0.02, use: "Hero banners, promo screens" }
40
+ heading-lg: { size: 22, weight: 700, lineHeight: 1.36, tracking: -0.01, use: "Screen titles, modal headers" }
41
+ heading: { size: 18, weight: 700, lineHeight: 1.40, use: "Section titles in feeds" }
42
+ title: { size: 16, weight: 600, lineHeight: 1.44, use: "Product names in cards" }
43
+ body: { size: 14, weight: 400, lineHeight: 1.50, use: "Description, list rows" }
44
+ body-sm: { size: 13, weight: 400, lineHeight: 1.54, use: "Secondary metadata" }
45
+ caption: { size: 12, weight: 400, lineHeight: 1.50, use: "Timestamps, seller name" }
46
+ caption-bold: { size: 12, weight: 700, lineHeight: 1.50, use: "Badge text (무료배송, 쇼킹딜)" }
47
+ micro: { size: 11, weight: 500, lineHeight: 1.45, use: "Tab bar labels" }
48
+ price-sale: { size: 16, weight: 700, lineHeight: 1.30, use: "Discounted price, #FA2E5F" }
49
+ price-strike: { size: 13, weight: 400, lineHeight: 1.30, use: "Strikethrough comparison, #999999" }
50
+ spacing: { xs: 4, sm: 8, md: 12, base: 16, lg: 20, xl: 24, xxl: 32 }
51
+ rounded: { sm: 4, md: 8, lg: 12, xl: 16, full: 9999 }
52
+ shadow:
53
+ subtle: "0px 1px 2px rgba(0,0,0,0.04)"
54
+ standard: "0px 2px 8px rgba(0,0,0,0.08)"
55
+ elevated: "0px 4px 16px rgba(0,0,0,0.12)"
56
+ sheet: "0px -4px 16px rgba(0,0,0,0.08)"
57
+ components_harvested: true
58
+ components:
59
+ button-primary: { type: button, bg: "#FA2E5F", fg: "#FFFFFF", radius: 8, font: "16px/700", use: "52px full-width bottom CTA; disabled #FFC2D2" }
60
+ button-secondary: { type: button, bg: "#FFFFFF", fg: "#222222", radius: 8, font: "14px/600", use: "secondary action, 1px grey border" }
61
+ chip-filter: { type: badge, bg: "#FFFFFF", fg: "#333333", radius: 9999, use: "filter chip, 1px grey border; active = #222222 fill, white text" }
62
+ badge-free-shipping: { type: badge, bg: "#FFFFFF", fg: "#FA2E5F", radius: 4, font: "11px/700", use: "무료배송, 1px #FA2E5F border" }
63
+ badge-hot-deal: { type: badge, bg: "#FA2E5F", fg: "#FFFFFF", radius: 4, font: "11px/700", use: "쇼킹딜 urgency badge" }
64
+ product-card: { type: card, bg: "#FFFFFF", radius: 4, use: "1:1 image, top radius, flat (no shadow), #EEEEEE divider" }
65
+ tab-bar: { type: tab, bg: "#FFFFFF", use: "56px + safe-area, 6 items; inactive #999999; notification dot #FA2E5F", active: "#222222 filled" }
66
+ bottom-sheet: { type: dialog, bg: "#FFFFFF", radius: 16, use: "top radius, grey handle, sheet shadow over backdrop" }
13
67
  omd: "0.1"
14
68
  ---
15
69