oh-my-design-cli 1.6.7 → 1.7.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (229) hide show
  1. package/README.ko.md +17 -36
  2. package/README.md +6 -6
  3. package/agents/AGENT.md +3 -3
  4. package/agents/omd-master.md +7 -7
  5. package/agents/omd-microcopy.md +1 -1
  6. package/agents/omd-ux-researcher.md +1 -1
  7. package/data/reference-fingerprints.json +1318 -10
  8. package/package.json +1 -1
  9. package/web/references/11st/DESIGN.md +400 -0
  10. package/web/references/17live/DESIGN.md +43 -0
  11. package/web/references/29cm/DESIGN.md +41 -0
  12. package/web/references/91app/DESIGN.md +31 -0
  13. package/web/references/ably/DESIGN.md +54 -0
  14. package/web/references/airbnb/DESIGN.md +58 -0
  15. package/web/references/airtable/DESIGN.md +39 -0
  16. package/web/references/alipay/DESIGN.md +50 -0
  17. package/web/references/amazingtalker/DESIGN.md +434 -0
  18. package/web/references/appier/DESIGN.md +45 -0
  19. package/web/references/apple/DESIGN.md +47 -0
  20. package/web/references/baemin/DESIGN.md +142 -43
  21. package/web/references/banksalad/DESIGN.md +67 -0
  22. package/web/references/bilibili/DESIGN.md +45 -0
  23. package/web/references/bithumb/DESIGN.md +38 -0
  24. package/web/references/bmw/DESIGN.md +37 -0
  25. package/web/references/brandi/DESIGN.md +414 -0
  26. package/web/references/bunjang/DESIGN.md +47 -0
  27. package/web/references/cakeresume/DESIGN.md +29 -0
  28. package/web/references/cal/DESIGN.md +52 -0
  29. package/web/references/catchtable/DESIGN.md +79 -19
  30. package/web/references/cathay/DESIGN.md +432 -0
  31. package/web/references/channeltalk/DESIGN.md +48 -0
  32. package/web/references/class101/DESIGN.md +51 -0
  33. package/web/references/classting/DESIGN.md +41 -0
  34. package/web/references/classum/DESIGN.md +43 -0
  35. package/web/references/claude/DESIGN.md +157 -70
  36. package/web/references/clay/DESIGN.md +56 -0
  37. package/web/references/clickhouse/DESIGN.md +50 -0
  38. package/web/references/cloudflare/DESIGN.md +637 -0
  39. package/web/references/cohere/DESIGN.md +48 -0
  40. package/web/references/coinbase/DESIGN.md +139 -5
  41. package/web/references/coinone/DESIGN.md +39 -0
  42. package/web/references/composio/DESIGN.md +46 -0
  43. package/web/references/cookpad/DESIGN.md +37 -0
  44. package/web/references/coupang/DESIGN.md +57 -2
  45. package/web/references/cursor/DESIGN.md +44 -0
  46. package/web/references/dabang/DESIGN.md +57 -19
  47. package/web/references/dcard/DESIGN.md +57 -0
  48. package/web/references/dell/DESIGN.md +636 -0
  49. package/web/references/devsisters/DESIGN.md +29 -0
  50. package/web/references/discord/DESIGN.md +604 -0
  51. package/web/references/dji/DESIGN.md +39 -0
  52. package/web/references/drnow/DESIGN.md +52 -0
  53. package/web/references/duolingo/DESIGN.md +563 -0
  54. package/web/references/elevenlabs/DESIGN.md +39 -0
  55. package/web/references/expo/DESIGN.md +39 -0
  56. package/web/references/fastcampus/DESIGN.md +50 -0
  57. package/web/references/ferrari/DESIGN.md +47 -0
  58. package/web/references/figma/DESIGN.md +44 -0
  59. package/web/references/finda/DESIGN.md +413 -0
  60. package/web/references/flex/DESIGN.md +28 -0
  61. package/web/references/flo/DESIGN.md +43 -0
  62. package/web/references/framer/DESIGN.md +38 -0
  63. package/web/references/freee/DESIGN.md +48 -0
  64. package/web/references/fugle/DESIGN.md +41 -1
  65. package/web/references/gangnamunni/DESIGN.md +57 -1
  66. package/web/references/genie/DESIGN.md +415 -0
  67. package/web/references/github/DESIGN.md +727 -0
  68. package/web/references/gmarket/DESIGN.md +51 -0
  69. package/web/references/gogolook/DESIGN.md +25 -1
  70. package/web/references/gogoro/DESIGN.md +38 -0
  71. package/web/references/grip/DESIGN.md +39 -0
  72. package/web/references/hahow/DESIGN.md +26 -0
  73. package/web/references/hashicorp/DESIGN.md +42 -0
  74. package/web/references/hogangnono/DESIGN.md +41 -0
  75. package/web/references/hp/DESIGN.md +563 -0
  76. package/web/references/hyperconnect/DESIGN.md +393 -0
  77. package/web/references/hyundaicard/DESIGN.md +24 -0
  78. package/web/references/ibm/DESIGN.md +44 -0
  79. package/web/references/ichef/DESIGN.md +44 -0
  80. package/web/references/ikala/DESIGN.md +400 -0
  81. package/web/references/inflearn/DESIGN.md +38 -0
  82. package/web/references/intercom/DESIGN.md +38 -0
  83. package/web/references/jandi/DESIGN.md +382 -0
  84. package/web/references/jkopay/DESIGN.md +35 -1
  85. package/web/references/jobkorea/DESIGN.md +39 -0
  86. package/web/references/jumpit/DESIGN.md +37 -0
  87. package/web/references/kakao/DESIGN.md +64 -0
  88. package/web/references/kakaobank/DESIGN.md +55 -1
  89. package/web/references/kakaopay/DESIGN.md +59 -0
  90. package/web/references/kakaot/DESIGN.md +53 -0
  91. package/web/references/karrot/DESIGN.md +49 -0
  92. package/web/references/kbank/DESIGN.md +39 -0
  93. package/web/references/kdan/DESIGN.md +34 -1
  94. package/web/references/kintone/DESIGN.md +586 -0
  95. package/web/references/kkbox/DESIGN.md +22 -0
  96. package/web/references/kkday/DESIGN.md +47 -0
  97. package/web/references/kmong/DESIGN.md +427 -0
  98. package/web/references/krafton/DESIGN.md +37 -0
  99. package/web/references/kraken/DESIGN.md +44 -0
  100. package/web/references/krds/DESIGN.md +63 -0
  101. package/web/references/kream/DESIGN.md +32 -0
  102. package/web/references/kurly/DESIGN.md +38 -1
  103. package/web/references/laftel/DESIGN.md +40 -0
  104. package/web/references/lamborghini/DESIGN.md +54 -0
  105. package/web/references/layerx/DESIGN.md +615 -0
  106. package/web/references/lezhin/DESIGN.md +47 -0
  107. package/web/references/line/DESIGN.md +36 -0
  108. package/web/references/linear.app/DESIGN.md +182 -88
  109. package/web/references/loom/DESIGN.md +396 -0
  110. package/web/references/lovable/DESIGN.md +38 -0
  111. package/web/references/lunit/DESIGN.md +47 -19
  112. package/web/references/mastercard/DESIGN.md +587 -0
  113. package/web/references/meituan/DESIGN.md +42 -0
  114. package/web/references/melon/DESIGN.md +26 -0
  115. package/web/references/mercari/DESIGN.md +41 -0
  116. package/web/references/mercury/DESIGN.md +589 -0
  117. package/web/references/meta/DESIGN.md +615 -0
  118. package/web/references/millie/DESIGN.md +51 -0
  119. package/web/references/minimax/DESIGN.md +53 -0
  120. package/web/references/mintlify/DESIGN.md +45 -0
  121. package/web/references/miro/DESIGN.md +47 -0
  122. package/web/references/mistral.ai/DESIGN.md +37 -0
  123. package/web/references/momoshop/DESIGN.md +43 -0
  124. package/web/references/money-forward/DESIGN.md +42 -0
  125. package/web/references/mongodb/DESIGN.md +44 -0
  126. package/web/references/muji/DESIGN.md +605 -0
  127. package/web/references/musinsa/DESIGN.md +48 -0
  128. package/web/references/mustit/DESIGN.md +47 -1
  129. package/web/references/myrealtrip/DESIGN.md +49 -0
  130. package/web/references/naver/DESIGN.md +50 -1
  131. package/web/references/naverwebtoon/DESIGN.md +48 -0
  132. package/web/references/netflix/DESIGN.md +572 -0
  133. package/web/references/nexon/DESIGN.md +389 -0
  134. package/web/references/nhncloud/DESIGN.md +33 -0
  135. package/web/references/nike/DESIGN.md +588 -0
  136. package/web/references/note/DESIGN.md +28 -0
  137. package/web/references/notion/DESIGN.md +48 -0
  138. package/web/references/nvidia/DESIGN.md +50 -0
  139. package/web/references/ohouse/DESIGN.md +56 -0
  140. package/web/references/oliveyoung/DESIGN.md +47 -1
  141. package/web/references/ollama/DESIGN.md +40 -0
  142. package/web/references/openai/DESIGN.md +641 -0
  143. package/web/references/opencode.ai/DESIGN.md +37 -0
  144. package/web/references/payco/DESIGN.md +40 -0
  145. package/web/references/paypay/DESIGN.md +656 -0
  146. package/web/references/pchome/DESIGN.md +439 -0
  147. package/web/references/perplexity/DESIGN.md +546 -0
  148. package/web/references/piccollage/DESIGN.md +43 -0
  149. package/web/references/pinkoi/DESIGN.md +55 -0
  150. package/web/references/pinterest/DESIGN.md +44 -0
  151. package/web/references/pixiv/DESIGN.md +613 -0
  152. package/web/references/pixnet/DESIGN.md +430 -0
  153. package/web/references/posthog/DESIGN.md +50 -0
  154. package/web/references/publy/DESIGN.md +52 -0
  155. package/web/references/qanda/DESIGN.md +49 -1
  156. package/web/references/ragic/DESIGN.md +444 -0
  157. package/web/references/ramp/DESIGN.md +634 -0
  158. package/web/references/rayark/DESIGN.md +22 -0
  159. package/web/references/raycast/DESIGN.md +45 -0
  160. package/web/references/remember/DESIGN.md +44 -0
  161. package/web/references/renault/DESIGN.md +42 -0
  162. package/web/references/replicate/DESIGN.md +39 -0
  163. package/web/references/resend/DESIGN.md +44 -0
  164. package/web/references/retool/DESIGN.md +645 -0
  165. package/web/references/revolut/DESIGN.md +46 -0
  166. package/web/references/richart/DESIGN.md +465 -0
  167. package/web/references/ridi/DESIGN.md +47 -0
  168. package/web/references/riiid/DESIGN.md +32 -0
  169. package/web/references/robinhood/DESIGN.md +604 -0
  170. package/web/references/runwayml/DESIGN.md +45 -0
  171. package/web/references/sanity/DESIGN.md +50 -0
  172. package/web/references/sansan/DESIGN.md +631 -0
  173. package/web/references/sendbird/DESIGN.md +46 -0
  174. package/web/references/sentry/DESIGN.md +48 -0
  175. package/web/references/shinhancard/DESIGN.md +421 -0
  176. package/web/references/shopline/DESIGN.md +431 -0
  177. package/web/references/slack/DESIGN.md +635 -0
  178. package/web/references/smarthr/DESIGN.md +48 -0
  179. package/web/references/smartnews/DESIGN.md +29 -0
  180. package/web/references/socar/DESIGN.md +35 -0
  181. package/web/references/soomgo/DESIGN.md +326 -0
  182. package/web/references/spacex/DESIGN.md +27 -0
  183. package/web/references/spoon/DESIGN.md +46 -0
  184. package/web/references/spotify/DESIGN.md +49 -0
  185. package/web/references/starbucks/DESIGN.md +597 -0
  186. package/web/references/stripe/DESIGN.md +46 -0
  187. package/web/references/studio/DESIGN.md +602 -0
  188. package/web/references/supabase/DESIGN.md +41 -0
  189. package/web/references/superhuman/DESIGN.md +39 -0
  190. package/web/references/surveycake/DESIGN.md +442 -0
  191. package/web/references/tada/DESIGN.md +51 -0
  192. package/web/references/tesla/DESIGN.md +36 -0
  193. package/web/references/theverge/DESIGN.md +500 -0
  194. package/web/references/together.ai/DESIGN.md +33 -0
  195. package/web/references/toss/DESIGN.md +43 -0
  196. package/web/references/toss-securities/DESIGN.md +54 -19
  197. package/web/references/tossbank/DESIGN.md +57 -0
  198. package/web/references/trenbe/DESIGN.md +41 -0
  199. package/web/references/triple/DESIGN.md +47 -0
  200. package/web/references/tumblbug/DESIGN.md +48 -0
  201. package/web/references/tving/DESIGN.md +40 -0
  202. package/web/references/uber/DESIGN.md +36 -0
  203. package/web/references/ubie/DESIGN.md +615 -0
  204. package/web/references/uniqlo/DESIGN.md +575 -0
  205. package/web/references/upbit/DESIGN.md +42 -0
  206. package/web/references/upstage/DESIGN.md +38 -0
  207. package/web/references/velog/DESIGN.md +28 -0
  208. package/web/references/vercel/DESIGN.md +44 -0
  209. package/web/references/voicetube/DESIGN.md +39 -0
  210. package/web/references/voltagent/DESIGN.md +44 -0
  211. package/web/references/wadiz/DESIGN.md +71 -19
  212. package/web/references/wanted/DESIGN.md +46 -0
  213. package/web/references/warp/DESIGN.md +37 -0
  214. package/web/references/watcha/DESIGN.md +40 -0
  215. package/web/references/wavve/DESIGN.md +43 -1
  216. package/web/references/wconcept/DESIGN.md +45 -0
  217. package/web/references/webflow/DESIGN.md +49 -0
  218. package/web/references/wired/DESIGN.md +572 -0
  219. package/web/references/wise/DESIGN.md +41 -0
  220. package/web/references/x.ai/DESIGN.md +31 -0
  221. package/web/references/xiaohongshu/DESIGN.md +39 -0
  222. package/web/references/yanolja/DESIGN.md +45 -0
  223. package/web/references/yeogiotte/DESIGN.md +42 -1
  224. package/web/references/yogiyo/DESIGN.md +50 -0
  225. package/web/references/yourator/DESIGN.md +453 -0
  226. package/web/references/zapier/DESIGN.md +41 -0
  227. package/web/references/zigbang/DESIGN.md +33 -0
  228. package/web/references/zigzag/DESIGN.md +62 -0
  229. package/web/references/zozotown/DESIGN.md +578 -0
@@ -0,0 +1,415 @@
1
+ ---
2
+ id: genie
3
+ name: Genie Music
4
+ country: KR
5
+ category: consumer-tech
6
+ homepage: "https://www.genie.co.kr"
7
+ primary_color: "#fa4065"
8
+ logo:
9
+ type: favicon
10
+ slug: "https://www.google.com/s2/favicons?domain=genie.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: "#fa4065"
20
+ primary-hover: "#d62952"
21
+ accent-blue: "#0096ff"
22
+ heading: "#27282d"
23
+ body: "#444444"
24
+ muted: "#969697"
25
+ label: "#8b8b8b"
26
+ secondary: "#666666"
27
+ canvas: "#ffffff"
28
+ surface: "#f7f8f9"
29
+ hairline: "#eef1f4"
30
+ border: "#d2d2d2"
31
+ icon-gray: "#a6afb6"
32
+ on-primary: "#ffffff"
33
+ chip-dark: "#434354"
34
+ typography:
35
+ family: { sans: "dotum", fallback: "sans-serif" }
36
+ gnb: { size: 18, weight: 700, lineHeight: 1.30, use: "Global nav primary menu items" }
37
+ heading: { size: 14, weight: 400, lineHeight: 1.71, use: "Account / utility menu labels" }
38
+ body: { size: 12, weight: 400, lineHeight: 1.50, use: "Standard list rows, track titles, metadata" }
39
+ body-bold: { size: 12, weight: 700, lineHeight: 1.50, use: "Emphasised labels, active chart tab" }
40
+ chip: { size: 12, weight: 700, lineHeight: 2.08, use: "Search keyword chip on dark pill" }
41
+ caption: { size: 11, weight: 400, use: "Rank numerals, fine print, timestamps" }
42
+ spacing: { xs: 1, sm: 6, md: 8, base: 12, lg: 18, xl: 24, xxl: 32 }
43
+ rounded: { sm: 4, md: 8, lg: 13, full: 9999 }
44
+ shadow:
45
+ ambient: "rgba(0,0,0,0.06) 0px 1px 3px"
46
+ panel: "rgba(0,0,0,0.12) 0px 4px 12px"
47
+ components:
48
+ button-primary: { type: button, bg: "#fa4065", fg: "#ffffff", radius: "4px", padding: "8px 18px", font: "12px / 700", use: "Primary listen/play action, hover #d62952" }
49
+ button-ghost: { type: button, fg: "#444444", radius: "4px", padding: "6px 12px", font: "12px / 400", use: "Secondary row action, 1px #d2d2d2 border" }
50
+ chip-search: { type: badge, bg: "#434354", fg: "#ffffff", radius: "13px", padding: "0px 12px", font: "12px / 700", use: "Realtime search keyword pill, 25px tall" }
51
+ tab-chart: { type: tab, fg: "#8b8b8b", padding: "0px 8px", font: "12px / 700", active: "active text #0096ff bold", use: "Chart scope tabs — 종합 / 국내 / 국외" }
52
+ nav-gnb: { type: tab, fg: "#27282d", font: "18px / 700", active: "#fa4065 with bottom border", use: "Top global nav bar items" }
53
+ card: { type: card, bg: "#ffffff", radius: "8px", use: "Chart / album panel, 1px #eef1f4 border, ambient shadow" }
54
+ input-search: { type: input, fg: "#444444", radius: "4px", padding: "1px 6px", font: "12px / 400", use: "Header search field, 1px #d2d2d2 border, placeholder #969697" }
55
+ list-item: { type: listItem, fg: "#444444", font: "12px / 400", use: "Track row, rank numeral #969697, title #27282d on hover" }
56
+ badge-rank: { type: badge, fg: "#969697", font: "11px / 400", use: "Chart rank position numeral" }
57
+ ---
58
+
59
+ # Design System Inspiration of Genie Music
60
+
61
+ ## 1. Visual Theme & Atmosphere
62
+
63
+ Genie Music (지니뮤직) is a Korean music-streaming service whose web surface reads as a dense, utilitarian catalog rather than a glossy marketing site — and that density is the point. The page opens on a pure white canvas (`#ffffff`) carrying a tightly packed information grid of charts, rankings, and album rows, all rendered in a compact `dotum` system at a base of 12px. Against this restrained gray-on-white field, a single saturated hot-pink (`#fa4065`) does all the emotional work: it marks the brand, the primary play actions, and the moments of selection. The atmosphere is that of a working jukebox interface — efficient, scannable, and built for people who came to find a song, not to admire whitespace.
64
+
65
+ The defining tension is information-density versus a vivid accent. Body text sits in a soft near-black (`#444444`) while headings deepen to `#27282d`, and a whole staircase of grays — `#969697`, `#8b8b8b`, `#666666`, `#d2d2d2` — handles ranks, labels, dividers, and metadata. This gray scaffolding keeps thousands of rows legible without visual fatigue. Then the pink arrives only where action lives, so the eye is trained to read `#fa4065` as "this is the thing you press." A secondary interactive blue (`#0096ff`) appears on active chart-scope tabs, the one place where selection is signalled in cool rather than warm.
66
+
67
+ Geometry is conservative and quietly Korean-portal in heritage: small 4px radii on buttons and inputs, an occasional 13px pill on search-keyword chips (the dark `#434354` capsule), hairline borders in `#eef1f4`, and shadows kept to a whisper. Nothing floats dramatically. The result is a surface that prioritizes throughput and recognizability over spectacle — the music, the chart position, and the play button are the heroes.
68
+
69
+ **Key Characteristics:**
70
+ - Hot-pink `#fa4065` as the single brand + action accent against an otherwise gray-on-white field
71
+ - Compact `dotum` typography at a 12px base — built for dense catalog rows
72
+ - Gray staircase (`#969697`, `#8b8b8b`, `#666666`, `#d2d2d2`) carrying ranks, labels, and dividers
73
+ - Heading near-black `#27282d`, body `#444444` — soft, never pure black
74
+ - Interactive blue `#0096ff` reserved for active chart-scope tabs
75
+ - Conservative 4px button/input radius; 13px pill only on the dark search chip
76
+ - Hairline `#eef1f4` borders and barely-there shadows — flat, utilitarian depth
77
+
78
+ ## 2. Color Palette & Roles
79
+
80
+ ### Primary
81
+ - **Genie Pink** (`#fa4065`): The signature brand color and primary action color — play/listen buttons, selected states, brand marks. A saturated hot-pink that is the one warm note in a gray system.
82
+ - **Pink Hover** (`#d62952`): Darker rose for pressed/hover states on pink actions.
83
+ - **Pure White** (`#ffffff`): Page background, panel surfaces, text on pink.
84
+
85
+ ### Text Neutrals
86
+ - **Heading** (`#27282d`): Strongest text — nav items, track titles on emphasis, section heads. A near-black with a faint warm cast, not `#000000`.
87
+ - **Body** (`#444444`): Default reading color for list rows, track titles, and metadata.
88
+ - **Secondary** (`#666666`): Supporting text and second-line metadata.
89
+ - **Muted** (`#969697`): De-emphasized labels, placeholders, rank numerals.
90
+ - **Label** (`#8b8b8b`): Inactive tab labels, small utility text.
91
+
92
+ ### Interactive
93
+ - **Accent Blue** (`#0096ff`): Active chart-scope tab text (종합 / 국내 / 국외) — the one cool interactive signal.
94
+
95
+ ### Surface & Borders
96
+ - **Surface** (`#f7f8f9`): Subtle off-white fill for grouped panels and zebra rows.
97
+ - **Hairline** (`#eef1f4`): Standard light divider/border for cards and table rows.
98
+ - **Border** (`#d2d2d2`): Stronger 1px border on inputs and ghost buttons.
99
+ - **Icon Gray** (`#a6afb6`): Outline/icon stroke gray on player controls.
100
+
101
+ ### Chips
102
+ - **Chip Dark** (`#434354`): Dark slate capsule background for realtime search-keyword pills, with white text.
103
+
104
+ ### On-color
105
+ - **On Primary** (`#ffffff`): Text/icon color on pink and dark-chip backgrounds.
106
+
107
+ ## 3. Typography Rules
108
+
109
+ ### Font Family
110
+ - **Primary**: `dotum` (돋움), with fallback `sans-serif`. A classic Korean Gothic system face chosen for crisp legibility at very small sizes — the foundation of Korean-portal density.
111
+ - No custom web font is loaded; the system relies on platform `dotum`/Gothic rendering, which keeps the catalog fast and consistent across Korean Windows clients.
112
+
113
+ ### Hierarchy
114
+
115
+ | Role | Font | Size | Weight | Line Height | Notes |
116
+ |------|------|------|--------|-------------|-------|
117
+ | GNB Nav | dotum | 18px | 700 | 1.30 | Top global-nav menu items, `#27282d`, active turns `#fa4065` |
118
+ | Menu Label | dotum | 14px | 400 | 1.71 | Account / utility links (로그인·회원가입) |
119
+ | Body | dotum | 12px | 400 | 1.50 | Standard list rows, track titles, metadata |
120
+ | Body Bold | dotum | 12px | 700 | 1.50 | Emphasised labels, active chart tab text |
121
+ | Search Chip | dotum | 12px | 700 | 2.08 | Keyword pill on dark `#434354` capsule |
122
+ | Caption | dotum | 11px | 400 | normal | Rank numerals, fine print, timestamps |
123
+
124
+ ### Principles
125
+ - **12px is the workhorse.** Almost the entire catalog runs at 12px — Genie optimizes for rows-per-screen, and `dotum` stays sharp at this size where many faces would smear.
126
+ - **Weight as the primary emphasis lever.** With size held constant at 12px, the jump from 400 to 700 is how Genie signals importance (active tab, selected keyword) rather than color or size.
127
+ - **Two functional sizes plus nav.** 18px exists almost exclusively for the global nav; everything informational lives at 11-14px. There is no display/hero tier — this is an app surface, not a landing page.
128
+ - **Normal tracking throughout.** Letter-spacing stays at `normal`; the density comes from small sizes and tight line-heights, not negative tracking.
129
+
130
+ ## 4. Component Stylings
131
+
132
+ ### Buttons
133
+
134
+ **Primary (Listen / Play)**
135
+ - Background: `#fa4065`
136
+ - Text: `#ffffff`
137
+ - Padding: 8px 18px
138
+ - Radius: 4px
139
+ - Font: 12px dotum weight 700
140
+ - Hover: `#d62952`
141
+ - Use: Primary play/listen action
142
+
143
+ **Ghost / Row Action**
144
+ - Background: transparent
145
+ - Text: `#444444`
146
+ - Border: `1px solid #d2d2d2`
147
+ - Padding: 6px 12px
148
+ - Radius: 4px
149
+ - Font: 12px dotum weight 400
150
+ - Use: Secondary per-row actions (add to playlist, more)
151
+
152
+ ### Search Keyword Chip
153
+ - Background: `#434354`
154
+ - Text: `#ffffff`
155
+ - Padding: 0px 12px (height ~25px)
156
+ - Radius: 13px
157
+ - Font: 12px dotum weight 700
158
+ - Use: Realtime search-keyword pills in the header search panel
159
+
160
+ ### Chart Scope Tabs
161
+ - Inactive text: `#8b8b8b`, weight 400
162
+ - Active text: `#0096ff`, weight 700
163
+ - Padding: 0px 8px
164
+ - Use: Chart scope switch — 종합 / 국내 / 국외. Active state signalled by blue bold text.
165
+
166
+ ### Global Nav (GNB)
167
+ - Text: `#27282d`, 18px dotum weight 700
168
+ - Active item: `#fa4065` text with a pink bottom border
169
+ - Sits on a white bar, left brand mark, horizontal menu
170
+
171
+ ### Cards & Panels
172
+ - Background: `#ffffff`
173
+ - Border: `1px solid #eef1f4`
174
+ - Radius: 8px
175
+ - Shadow (ambient): `rgba(0,0,0,0.06) 0px 1px 3px`
176
+ - Shadow (panel/popover): `rgba(0,0,0,0.12) 0px 4px 12px`
177
+ - Use: Chart panels, album cards, dropdown menus
178
+
179
+ ### Inputs
180
+ - Border: `1px solid #d2d2d2`
181
+ - Radius: 4px
182
+ - Padding: 1px 6px
183
+ - Text: `#444444`
184
+ - Placeholder: `#969697`
185
+ - Use: Header search field
186
+
187
+ ### List Rows & Rank Badges
188
+ - Row text: `#444444`, 12px; title strengthens to `#27282d` on hover/selection
189
+ - Rank numeral: `#969697`, 11px, left-aligned
190
+ - Row divider: `1px solid #eef1f4`
191
+
192
+ ---
193
+
194
+ **Verified:** 2026-06-09 (omd-add-reference — Tier 1 live inspect)
195
+ **Tier 1 sources:** https://www.genie.co.kr, https://company.genie.co.kr (Genie Music corporate)
196
+
197
+ ## 5. Layout Principles
198
+
199
+ ### Spacing System
200
+ - Base unit: small and dense — 1px, 6px, 8px, 12px, 18px, 24px, 32px
201
+ - The scale is compressed at the low end because catalog rows are packed tightly; whitespace is rationed, not lavished.
202
+
203
+ ### Grid & Container
204
+ - Centered fixed-width content column (Korean-portal convention) rather than fluid full-bleed
205
+ - Multi-column chart/ranking blocks laid side by side
206
+ - Header zone: brand + search + utility links; main zone: charts and album grids; footer: corporate/legal links
207
+ - Album artwork in consistent square thumbnails seeded across grid cells
208
+
209
+ ### Whitespace Philosophy
210
+ - **Density first.** Genie maximizes rows-per-screen so a user scanning a chart sees as many positions as possible without scrolling. Gaps are functional separators, not breathing room.
211
+ - **Gray dividers, not gaps.** Separation between rows is achieved with `#eef1f4` hairlines rather than large empty space.
212
+ - **Accent as wayfinding.** The pink and the active-blue tab are the only visual interruptions in an otherwise even gray field, so they double as navigation landmarks.
213
+
214
+ ### Border Radius Scale
215
+ - Standard (4px): buttons, inputs, badges — the workhorse
216
+ - Comfortable (8px): card/panel containers
217
+ - Pill (13px): search-keyword chips only
218
+ - Full (9999): circular avatar/icon controls
219
+
220
+ ## 6. Depth & Elevation
221
+
222
+ | Level | Treatment | Use |
223
+ |-------|-----------|-----|
224
+ | Flat (Level 0) | No shadow | Page background, inline catalog rows |
225
+ | Ambient (Level 1) | `rgba(0,0,0,0.06) 0px 1px 3px` | Card and panel lift |
226
+ | Panel (Level 2) | `rgba(0,0,0,0.12) 0px 4px 12px` | Dropdowns, search panel, popovers |
227
+ | Ring (Accessibility) | `#0096ff` / `#fa4065` outline | Keyboard focus on tabs and actions |
228
+
229
+ **Shadow Philosophy:** Genie keeps depth almost entirely flat. The surface is a working catalog where dozens of rows must read as a single plane; heavy elevation would fracture that plane. Shadows are reserved for transient overlays (the search panel, dropdown menus) where the user genuinely needs to perceive a layer floating above the catalog. Even then the shadow is neutral black at low alpha — there is no chromatic or brand-tinted depth. Hierarchy is carried by hairline borders and the gray staircase, not by elevation.
230
+
231
+ ## 7. Do's and Don'ts
232
+
233
+ ### Do
234
+ - Use `#fa4065` only for brand marks and primary play/action moments — keep it rare so it reads as "press here"
235
+ - Run catalog text at 12px `dotum` and use weight 700 (not size or color) for emphasis
236
+ - Separate rows with `#eef1f4` hairlines rather than large gaps
237
+ - Reserve `#0096ff` for the active chart-scope tab state
238
+ - Keep buttons and inputs at a 4px radius; use the 13px pill only for the dark search chip
239
+ - Use the gray staircase (`#969697`, `#8b8b8b`, `#666666`) to rank importance of metadata
240
+ - Keep shadows neutral, low, and limited to overlays
241
+
242
+ ### Don't
243
+ - Don't spread pink across decorative areas — it is an action signal, not a background
244
+ - Don't introduce a display/hero type tier; Genie has no oversized marketing headlines
245
+ - Don't use pure black (`#000000`) for text — headings are `#27282d`, body is `#444444`
246
+ - Don't add large radii or pill shapes to buttons/cards — geometry stays conservative
247
+ - Don't tint shadows or add dramatic elevation — the catalog must read as one plane
248
+ - Don't widen row spacing for "breathing room" — density is the product
249
+ - Don't use blue for anything other than active tab selection
250
+
251
+ ## 8. Responsive Behavior
252
+
253
+ ### Breakpoints
254
+ | Name | Width | Key Changes |
255
+ |------|-------|-------------|
256
+ | Mobile | <640px | Single-column chart, collapsed nav, stacked search |
257
+ | Tablet | 640-1024px | Reduced column count, condensed utility bar |
258
+ | Desktop | 1024-1280px | Full multi-column chart + album grid |
259
+ | Large Desktop | >1280px | Centered fixed content column with side margins |
260
+
261
+ ### Touch Targets
262
+ - Pink primary actions get comfortable 8px/18px padding for tap
263
+ - Search chips at 25px height with 12px horizontal padding
264
+ - Row controls (play, add) sized for finger taps on mobile while staying compact on desktop
265
+
266
+ ### Collapsing Strategy
267
+ - Global nav: horizontal 18px menu → hamburger/drawer on mobile
268
+ - Multi-column charts → single stacked column
269
+ - Album grids: many-per-row → 2-3 per row → list rows
270
+ - Search keyword chips wrap to multiple lines rather than truncating
271
+ - 12px base holds across breakpoints; only layout columns collapse, not type scale
272
+
273
+ ### Image Behavior
274
+ - Album artwork stays square at all sizes, served as consistent thumbnails
275
+ - Artwork maintains the same hairline framing across breakpoints
276
+ - Lazy-loaded grid cells fill from a neutral `#f7f8f9` placeholder
277
+
278
+ ## 9. Agent Prompt Guide
279
+
280
+ ### Quick Color Reference
281
+ - Primary action / brand: Genie Pink (`#fa4065`)
282
+ - Action hover: Pink Hover (`#d62952`)
283
+ - Active tab: Accent Blue (`#0096ff`)
284
+ - Heading text: `#27282d`
285
+ - Body text: `#444444`
286
+ - Muted / placeholder: `#969697`
287
+ - Inactive label: `#8b8b8b`
288
+ - Background: White (`#ffffff`)
289
+ - Subtle surface: `#f7f8f9`
290
+ - Hairline border: `#eef1f4`
291
+ - Input border: `#d2d2d2`
292
+ - Dark chip: `#434354`
293
+
294
+ ### Example Component Prompts
295
+ - "Create a chart row list: white background, rows separated by 1px #eef1f4 hairlines. Rank numeral at 11px dotum #969697, track title at 12px dotum #444444 (strengthens to #27282d on hover). A pink play button (#fa4065, 4px radius, 8px 18px padding, white 12px/700 text, hover #d62952) at the right."
296
+ - "Design chart scope tabs: 종합 / 국내 / 국외 at 12px dotum. Inactive #8b8b8b weight 400, active #0096ff weight 700. Padding 0px 8px."
297
+ - "Build a realtime-search panel: white card, 8px radius, 1px #eef1f4 border, shadow rgba(0,0,0,0.12) 0px 4px 12px. Keyword chips on #434354 pills, 13px radius, white 12px/700 text, 0px 12px padding."
298
+ - "Create the global nav: white bar, brand mark left, horizontal menu at 18px dotum weight 700 #27282d. Active item turns #fa4065 with a pink bottom border. Search field right: 1px #d2d2d2 border, 4px radius, placeholder #969697."
299
+
300
+ ### Iteration Guide
301
+ 1. Keep everything at 12px `dotum` unless it is the global nav (18px) — resist scaling up
302
+ 2. Use weight 700 for emphasis before reaching for color or size
303
+ 3. `#fa4065` is rare and reserved for action/brand; never use it as a fill
304
+ 4. Separate content with `#eef1f4` hairlines, not whitespace
305
+ 5. Active selection in tabs is `#0096ff` bold; everything else stays gray
306
+ 6. Radius is 4px (controls), 8px (cards), 13px (search chip) — no large rounding
307
+ 7. Shadows are neutral, low-alpha, and only for overlays
308
+
309
+ ---
310
+
311
+ ## 10. Voice & Tone
312
+
313
+ Genie Music's web voice is functional, friendly, and unmistakably Korean-consumer — it speaks the plain, warm Korean of a service that wants you to find and play music quickly. The service tagline *"지니 : 음악, 그리고 설레임"* ("Genie: Music, and the flutter of excitement") sets a gently emotional register that the dense utilitarian UI then keeps in check. Labels are short imperative Korean nouns and verbs (듣기, 담기, 다운, 검색), never marketing slogans inside the catalog itself.
314
+
315
+ | Context | Tone |
316
+ |---|---|
317
+ | Nav & menu labels | Short Korean nouns: 차트, 최신음악, 라디오, 매거진 |
318
+ | Row actions | Bare imperatives: 듣기, 담기, 다운 |
319
+ | Search | Helpful and immediate: 인기검색어, 최근검색어, 최근검색어 전체삭제 |
320
+ | Empty / no-result | Plain and honest: "검색 결과가 없습니다" |
321
+ | Promotional banners | Warmer, benefit-led Korean — the only place with emotional copy |
322
+ | Legal / corporate | Formal Korean, full company disclosure in the footer |
323
+
324
+ **Forbidden register.** No English hype loaned in where Korean works, no exclamation-stacked CTAs inside the catalog, no clever wordplay on functional buttons. The emotional warmth lives in the tagline and promotional surfaces; the working UI stays terse and clear.
325
+
326
+ ## 11. Brand Narrative
327
+
328
+ Genie Music (지니뮤직) is one of Korea's major music-streaming services, operated by **지니뮤직 (Genie Music Corporation)**, a company affiliated with **KT** (Korea Telecom). It competes in the Korean streaming market alongside Melon, FLO, and others, with the tagline *"지니 : 음악, 그리고 설레임"*. The brand identity centers on the genie/lamp metaphor — music summoned on demand — and a signature hot-pink that distinguishes it instantly in a category crowded with greens and blues.
329
+
330
+ The product's design heritage is the Korean web portal: information-dense, chart-driven, and optimized for the daily ritual of checking what is trending (실시간 차트). Where Western streaming services lead with editorial imagery and generous whitespace, Genie leads with the chart — a live ranked list of what Korea is listening to right now. That cultural difference is encoded directly in the design: the catalog is the homepage, density is a feature, and the realtime chart is the centerpiece.
331
+
332
+ What Genie embraces: speed, recognizability (one bold pink), and throughput for users who arrive knowing what they want. What it avoids: the slow, image-heavy "discovery experience" of Western competitors — Genie assumes you came to play music, and gets out of the way.
333
+
334
+ ## 12. Principles
335
+
336
+ 1. **The chart is the homepage.** Genie's center of gravity is the realtime ranked list. Design serves scanning a chart fast, not browsing editorial imagery.
337
+ 2. **Density is a feature.** Maximize rows-per-screen. Korean music listeners expect to see the whole top-100 with minimal scrolling; whitespace that costs a row costs trust.
338
+ 3. **One bold accent.** A single saturated pink (`#fa4065`) carries brand and action. Restraint everywhere else makes the accent legible as a signal.
339
+ 4. **Weight before color.** With type held at 12px, emphasis is expressed through `dotum` weight 700 — the cheapest, most consistent emphasis lever for dense data.
340
+ 5. **Gray does the structural work.** A disciplined gray staircase ranks importance across thousands of metadata cells without introducing color noise.
341
+ 6. **Flat by default.** The catalog reads as one plane; elevation is reserved for genuine overlays. No decorative depth.
342
+ 7. **Warmth lives in the words, not the chrome.** The emotional "설레임" promise is carried by tagline and promo copy; the functional UI stays terse.
343
+
344
+ ## 13. Personas
345
+
346
+ *Personas below are fictional archetypes informed by publicly observable Korean music-streaming user segments, not individual people.*
347
+
348
+ **Seo-yeon, 24, Seoul.** University student who opens Genie every morning to check the 실시간 차트 before class. Measures the app by how fast she can see the current top 10 and tap play. Values the dense list — she can scan twenty positions without scrolling. Would be annoyed by a "redesign" that turned the chart into big editorial cards.
349
+
350
+ **Min-jae, 31, Busan.** KT bundle subscriber who got Genie with his phone plan. Listens on the morning commute, mostly via the chart and a few saved playlists. Doesn't care about discovery features; cares that 듣기 works instantly and the download for offline play is one tap.
351
+
352
+ **Hyun-woo, 38, Daegu.** Long-time K-pop fan who follows specific artists and watches their chart positions during comeback week. Refreshes the realtime chart obsessively. The pink play button and the bold active-tab state are his entire interaction vocabulary — everything else is gray context.
353
+
354
+ **Ji-woo, 19, Incheon.** New listener comparing Genie against Melon and FLO. Recognizes Genie immediately by the hot-pink. Finds the interface "fast and to the point" compared to image-heavy competitors, which is exactly why she keeps it.
355
+
356
+ ## 14. States
357
+
358
+ | State | Treatment |
359
+ |---|---|
360
+ | **Empty (search, no results)** | White canvas, single plain Korean line in `#444444` at 12px: "검색 결과가 없습니다." No illustration. Search field stays focused for retry. |
361
+ | **Empty (playlist, none saved)** | Muted `#969697` single line prompting the user to add tracks. One pink CTA to browse the chart. |
362
+ | **Loading (chart first paint)** | Neutral `#f7f8f9` skeleton rows at exact final row height. No shimmer drama — rows fill top-down as the chart resolves. |
363
+ | **Loading (artwork grid)** | `#f7f8f9` square placeholders that swap to album art on load, preserving grid geometry. |
364
+ | **Error (playback failed)** | Inline message in `#444444` near the row with a plain-Korean reason; retry affordance in pink. No generic "오류가 발생했습니다" when a specific cause is known. |
365
+ | **Active (selected tab)** | Tab text switches to `#0096ff` weight 700; siblings stay `#8b8b8b`. |
366
+ | **Hover (track row)** | Title strengthens from `#444444` to `#27282d`; row may take a `#f7f8f9` fill. Play affordance reveals in pink. |
367
+ | **Selected (now playing)** | Active row marked with `#fa4065` accent (title color and a left marker). |
368
+ | **Disabled** | Control opacity reduced; pink fades toward `#fa406580`-equivalent muting rather than switching to gray, preserving brand read. |
369
+ | **Success (added to playlist)** | Brief inline confirmation in plain Korean; no heavy toast. The row reflects the new state directly. |
370
+
371
+ ## 15. Motion & Easing
372
+
373
+ **Durations**:
374
+
375
+ | Token | Value | Use |
376
+ |---|---|---|
377
+ | `motion-instant` | 0ms | Selection commits, tab switches, focus |
378
+ | `motion-fast` | 120ms | Row hover, button press feedback |
379
+ | `motion-standard` | 200ms | Dropdown / search-panel open, overlay fade |
380
+ | `motion-slow` | 300ms | Banner / promo carousel transitions |
381
+
382
+ **Easings**:
383
+
384
+ | Token | Curve | Use |
385
+ |---|---|---|
386
+ | `ease-enter` | `cubic-bezier(0.2, 0.6, 0.25, 1)` | Panels and dropdowns arriving |
387
+ | `ease-exit` | `cubic-bezier(0.4, 0.0, 1, 1)` | Dismissals |
388
+ | `ease-standard` | `cubic-bezier(0.25, 0.1, 0.25, 1)` | Two-way state transitions |
389
+
390
+ **Forbidden.** No bounce or overshoot on functional controls — the catalog is a working surface, not a playful one. Spring delight belongs to promotional banners at most, never to chart rows or playback controls.
391
+
392
+ **Signature motions.**
393
+
394
+ 1. **Tab scope switch.** Switching 종합 / 국내 / 국외 commits near-instantly with a quick `#0096ff` color transition on the active label; the chart body cross-fades over `motion-standard`.
395
+ 2. **Search panel reveal.** The realtime-search panel drops in over `motion-standard / ease-enter` with the panel shadow (`rgba(0,0,0,0.12) 0px 4px 12px`) signalling the overlay layer above the flat catalog.
396
+ 3. **Row hover.** Track rows respond at `motion-fast` with a subtle `#f7f8f9` fill and title darkening — fast enough to feel responsive across a long scrolling list.
397
+ 4. **Reduce motion.** Under `prefers-reduced-motion: reduce`, all transitions collapse to `motion-instant`; carousels stop auto-advancing. The catalog remains fully functional with no loss of information.
398
+
399
+ ## 16. Do's and Don'ts (Brand Philosophy)
400
+
401
+ ### Do
402
+ - Treat the realtime chart as the centerpiece — design for fast scanning of ranked lists
403
+ - Keep the hot-pink `#fa4065` rare and tied to action and brand identity
404
+ - Let the gray staircase and `dotum` weight carry hierarchy in dense data
405
+ - Honor the warm Korean tagline register in promo copy while keeping UI labels terse
406
+ - Maintain flat, neutral depth so the catalog reads as one plane
407
+ - Preserve density — measure success by rows-per-screen, not whitespace
408
+
409
+ ### Don't
410
+ - Don't dilute the pink into backgrounds or decoration
411
+ - Don't import a Western "discovery-first" image-heavy layout that buries the chart
412
+ - Don't scale type up into a marketing hero tier inside the app
413
+ - Don't use pure black, large radii, or tinted/dramatic shadows
414
+ - Don't let promotional warmth leak into functional button copy
415
+ - Don't trade catalog density for empty space