oh-my-design-cli 1.5.0 → 1.5.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 (35) hide show
  1. package/README.md +8 -8
  2. package/data/reference-fingerprints.json +1428 -523
  3. package/package.json +3 -3
  4. package/skills/omd-kr-writer/SKILL.md +1 -1
  5. package/web/references/17live/DESIGN.md +424 -0
  6. package/web/references/alipay/DESIGN.md +456 -0
  7. package/web/references/appier/DESIGN.md +420 -0
  8. package/web/references/bilibili/DESIGN.md +426 -0
  9. package/web/references/class101/DESIGN.md +433 -0
  10. package/web/references/cookpad/DESIGN.md +357 -0
  11. package/web/references/dji/DESIGN.md +416 -0
  12. package/web/references/gogoro/DESIGN.md +403 -0
  13. package/web/references/ichef/DESIGN.md +411 -0
  14. package/web/references/kakaopay/DESIGN.md +1 -1
  15. package/web/references/kakaot/DESIGN.md +454 -0
  16. package/web/references/kkday/DESIGN.md +423 -0
  17. package/web/references/meituan/DESIGN.md +424 -0
  18. package/web/references/millie/DESIGN.md +533 -0
  19. package/web/references/money-forward/DESIGN.md +401 -0
  20. package/web/references/myrealtrip/DESIGN.md +445 -0
  21. package/web/references/naverwebtoon/DESIGN.md +429 -0
  22. package/web/references/note/DESIGN.md +318 -0
  23. package/web/references/publy/DESIGN.md +511 -0
  24. package/web/references/smarthr/DESIGN.md +404 -0
  25. package/web/references/smartnews/DESIGN.md +331 -0
  26. package/web/references/spoon/DESIGN.md +446 -0
  27. package/web/references/tada/DESIGN.md +528 -0
  28. package/web/references/tossbank/DESIGN.md +519 -0
  29. package/web/references/triple/DESIGN.md +434 -0
  30. package/web/references/tumblbug/DESIGN.md +530 -0
  31. package/web/references/watcha/DESIGN.md +425 -0
  32. package/web/references/wavve/DESIGN.md +438 -0
  33. package/web/references/wconcept/DESIGN.md +511 -0
  34. package/web/references/xiaohongshu/DESIGN.md +423 -0
  35. package/web/references/yogiyo/DESIGN.md +465 -0
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "oh-my-design-cli",
3
- "version": "1.5.0",
4
- "description": "Bootstrap oh-my-design skills + agents into your project. After install, talk to your AI coding agent in natural language \u2014 no other CLI commands.",
3
+ "version": "1.5.1",
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": {
7
7
  "oh-my-design": "dist/bin/oh-my-design.js",
@@ -73,4 +73,4 @@
73
73
  "typescript": "^5.8.2",
74
74
  "vitest": "^3.1.1"
75
75
  }
76
- }
76
+ }
@@ -87,7 +87,7 @@ oh-my-design 블로그의 한국어 본문을 **Toss Tech 디자인 카테고리
87
87
  oh-my-design용 변형:
88
88
  ```
89
89
  안녕하세요. oh-my-design을 만드는 [이름]이에요.
90
- 107개 브랜드의 디자인 시스템을 라이브로 캡쳐해서 카탈로그로 모으고 있어요.
90
+ 100개가 넘는 브랜드의 디자인 시스템을 라이브로 캡쳐해서 카탈로그로 모으고 있어요.
91
91
  오늘은 그 중 [브랜드]를 들여다본 이야기를 나누려고 해요.
92
92
  ```
93
93
 
@@ -0,0 +1,424 @@
1
+ ---
2
+ id: 17live
3
+ name: 17LIVE
4
+ country: TW
5
+ category: consumer-tech
6
+ homepage: "https://17.live"
7
+ primary_color: "#FF4F6E"
8
+ logo:
9
+ type: favicon
10
+ slug: "https://www.google.com/s2/favicons?domain=17.live&sz=128"
11
+ verified: "2026-05-19"
12
+ omd: "0.1"
13
+ ---
14
+
15
+ # Design System Inspiration of 17LIVE
16
+
17
+ ## 1. Visual Theme & Atmosphere
18
+
19
+ 17LIVE is one of the world's largest live-streaming and interactive-entertainment platforms — a place where a "LIVER" (17LIVE's word for a livestreamer) broadcasts to fans who react in real time with virtual gifts, fan-club subscriptions, and chat. Its design system is built for the energy and intimacy of live performance, and the atmosphere is **dark-stage with a hot-pink spotlight**. The interface defaults to dark surfaces (`#121212` / `#1C1C1E`), the way a streaming or video app does — because the content is video, video looks best framed in dark, and a dark UI keeps a phone-screen glowing in a bedroom at midnight from blowing out the room. Against that dark stage, a vivid coral-pink (`#FF4F6E`) is the brand's signature: it lights up the logo, the "GO LIVE" button, the gift-send action, the follow state — every moment of connection and transaction.
20
+
21
+ The emotional register is **playful, social, and immediate**. Where a utility app is calm, 17LIVE is animated: gift animations fly across the stream, hearts float up the screen, level-up effects burst. The pink is warm and youthful, signaling fun and human connection rather than cold tech. Typography is system-stack and locale-aware — Latin sans leading, with Traditional Chinese (`PingFang TC`, `Microsoft JhengHei`), Japanese, and other CJK fallbacks, because 17LIVE's two largest markets are Japan and Taiwan and it operates across 150+ countries. Hierarchy is weight-driven and compact; the UI is chrome around video, so it stays out of the way until a moment of interaction lights up pink.
22
+
23
+ What distinguishes 17LIVE from a generic dark-mode app is that **its design is event-driven and celebratory**. The system is not a static catalog; it is a live floor where reactions, gifts, and rankings animate constantly. Pink is the color of every social action — go live, send gift, follow, join fan club — and the dark stage exists to make both the video and the pink pop.
24
+
25
+ **Key Characteristics:**
26
+ - **Dark-stage default** (`#121212` / `#1C1C1E`) — video-first UI, content framed in dark
27
+ - **Hot coral-pink (`#FF4F6E`)** as the brand + action color — logo, GO LIVE, gift, follow
28
+ - System-stack, locale-aware typography (TC / JP / CJK fallbacks) — JP + TW are the largest markets
29
+ - Playful, social, immediate register — gift animations, floating hearts, level-up bursts
30
+ - Compact, weight-driven hierarchy — UI is chrome around the video stream
31
+ - Vertical-video-first layout (mobile-native, portrait stream + overlay chrome)
32
+ - Pink reserved for connection/transaction moments; dark neutral everywhere else
33
+ - Bright accent secondaries for gamified status (gold for ranking, gradient effects for premium gifts)
34
+ - Rounded, friendly geometry — pill follow buttons, soft cards, circular avatars
35
+ - High motion budget on reactions, low motion on navigation chrome
36
+
37
+ ## 2. Color Palette & Roles
38
+
39
+ > **Note:** Live computed-style verification was not completed this pass (the inspection browser session redirected unreliably; WebFetch surfaced only the tagline). Values below combine the brief-provided primary, 17LIVE's known dark-mode + hot-pink streaming identity, and conventional live-streaming-app roles. Hexes other than the primary are well-grounded approximations pending live re-inspection.
40
+
41
+ ### Primary (Brand / Action)
42
+ - **17 Pink** (`#FF4F6E`): The signature brand + action color. Logo, "GO LIVE" button, gift-send, follow state, active tab, primary CTAs.
43
+ - **Pink Pressed** (`#E8455F`): Darker press/hover state.
44
+ - **Pink Tint** (`#FF4F6E1A`): Pink at ~10% — subtle highlight backgrounds, selected-row wash on dark.
45
+
46
+ ### Surface (Dark Stage)
47
+ - **Stage Black** (`#121212`): Primary app background — the dark stage.
48
+ - **Surface 1** (`#1C1C1E`): Cards, sheets, raised panels.
49
+ - **Surface 2** (`#2C2C2E`): Higher-elevation panels, input fields, chips on dark.
50
+ - **Overlay Scrim** (`rgba(0,0,0,0.5)`): Gradient scrim over video so overlay chrome stays legible.
51
+
52
+ ### Text (on dark)
53
+ - **Text Primary** (`#FFFFFF`): Headings, usernames, primary labels.
54
+ - **Text Secondary** (`rgba(255,255,255,0.7)`): Secondary labels, captions.
55
+ - **Text Tertiary** (`rgba(255,255,255,0.45)`): Metadata, timestamps, viewer counts.
56
+ - **Text Disabled** (`rgba(255,255,255,0.3)`): Disabled labels.
57
+
58
+ ### Accent / Gamified Status
59
+ - **Rank Gold** (`#FFC83D`): Leaderboard #1, top-fan crowns, premium status — the status color.
60
+ - **VIP Purple** (`#8B5CF6`): Premium fan-club / VIP tier accents and gradient effects.
61
+ - **Gift Gradient**: Coral→magenta→gold gradients for premium gift animations (`#FF4F6E` → `#FF2D8E` → `#FFC83D`).
62
+
63
+ ### Semantic
64
+ - **Success / Live** (`#27C76F`): "LIVE" indicator dot, success states, online presence.
65
+ - **Warning** (`#F5A623`): Soft warnings, low-balance prompts.
66
+ - **Error / Danger** (`#FF453A`): Errors, destructive actions, report flows.
67
+
68
+ ### Borders & Dividers
69
+ - **Divider** (`rgba(255,255,255,0.08)`): Hairline separators on dark surfaces.
70
+ - **Border Subtle** (`rgba(255,255,255,0.15)`): Outlined buttons/chips on dark.
71
+
72
+ ## 3. Typography Rules
73
+
74
+ ### Font Stack (locale-aware, inferred)
75
+ | Locale | Stack |
76
+ |---|---|
77
+ | Default | `-apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif` |
78
+ | Traditional Chinese | `… "PingFang TC", "Microsoft JhengHei", sans-serif` |
79
+ | Japanese | `… "Hiragino Kaku Gothic Pro", "Meiryo", sans-serif` |
80
+ | Simplified Chinese | `… "PingFang SC", "Microsoft YaHei", sans-serif` |
81
+
82
+ No custom display typeface — system stacks render natively across JP/TW and keep mobile performant.
83
+
84
+ ### Weights
85
+ - **700 (Bold)**: LIVER names, key labels, CTAs, ranking numbers, gift values.
86
+ - **600 (Semibold)**: Tab labels, section headers, active states.
87
+ - **400 (Regular)**: Body, chat messages, captions, metadata.
88
+
89
+ ### Size Scale (px, inferred — mobile-first)
90
+ | Use | Size |
91
+ |---|---|
92
+ | Micro / viewer count | `11px` |
93
+ | Caption / chat meta | `12px` |
94
+ | Chat message / body | `14px` |
95
+ | LIVER name / list title | `15–16px` |
96
+ | Section heading | `18–20px` |
97
+ | Hero / spotlight | `22–28px` |
98
+
99
+ ### Conventions
100
+ - **Compact, mobile-native sizing** — the UI is overlay chrome on video, so type stays small and legible against the scrim.
101
+ - **Weight + the pink accent** drive hierarchy; the brand rarely uses huge display type because the video is the content.
102
+ - **Numbers are gamified** — viewer counts, gift totals, ranks render bold, often with gold for top status.
103
+ - **Text over video** always sits on a gradient scrim or has a subtle shadow for legibility.
104
+
105
+ ## 4. Component Stylings
106
+
107
+ ### Buttons
108
+
109
+ **Primary (GO LIVE / Action)**
110
+ - Background: `#FF4F6E`
111
+ - Text: `#FFFFFF`
112
+ - Border: none
113
+ - Radius: `24px` (pill)
114
+ - Padding: `12px 24px`
115
+ - Font: `16px` / `700`
116
+ - Pressed: bg `#E8455F`
117
+ - Use: "GO LIVE", primary CTAs, sign-up
118
+
119
+ **Follow**
120
+ - Background: `#FF4F6E` (not-following) → transparent + `1px solid rgba(255,255,255,0.3)` (following)
121
+ - Text: `#FFFFFF` → `rgba(255,255,255,0.7)`
122
+ - Radius: `16px` (pill)
123
+ - Padding: `6px 16px`
124
+ - Font: `14px` / `600`
125
+ - Use: Follow / Following toggle on LIVER profiles and stream overlays
126
+
127
+ **Secondary (Outlined on dark)**
128
+ - Background: transparent
129
+ - Text: `#FFFFFF`
130
+ - Border: `1px solid rgba(255,255,255,0.3)`
131
+ - Radius: `24px`
132
+ - Padding: `12px 24px`
133
+ - Font: `16px` / `600`
134
+ - Use: Secondary actions, "Maybe later"
135
+
136
+ **Gift (special)**
137
+ - Background: gift gradient (`#FF4F6E` → `#FF2D8E`)
138
+ - Text: `#FFFFFF`
139
+ - Radius: `20px`
140
+ - Use: Send-gift action — the highest-energy transaction button
141
+
142
+ ### Inputs
143
+
144
+ **Default (on dark)**
145
+ - Background: `#2C2C2E`
146
+ - Text: `#FFFFFF`
147
+ - Border: none (or `1px solid rgba(255,255,255,0.15)`)
148
+ - Radius: `12px`
149
+ - Padding: `12px 16px`
150
+ - Placeholder: `rgba(255,255,255,0.45)`
151
+ - Focus: `1px solid #FF4F6E`
152
+ - Use: Search, login, profile editing
153
+
154
+ **Chat input**
155
+ - Background: `#2C2C2E` or translucent over video
156
+ - Radius: `24px` (pill)
157
+ - Trailing: pink send icon (`#FF4F6E`)
158
+ - Use: Live-chat composer overlay on stream
159
+
160
+ ### Cards
161
+
162
+ **Stream Card (discover grid)**
163
+ - Background: image/video thumbnail with `rgba(0,0,0,0.5)` bottom gradient
164
+ - Radius: `12px`
165
+ - Overlay: LIVE badge top-left, viewer count, LIVER name + avatar bottom
166
+ - Use: Discover/explore grid of live streams
167
+
168
+ **Profile / List Card**
169
+ - Background: `#1C1C1E`
170
+ - Radius: `12px`
171
+ - Padding: `12px`
172
+ - Use: LIVER lists, ranking rows, fan-club cards
173
+
174
+ ### Badges & Chips
175
+
176
+ **LIVE Badge**
177
+ - Background: `#FF4F6E` or `#27C76F` dot + "LIVE"
178
+ - Text: `#FFFFFF`
179
+ - Radius: `4px`
180
+ - Padding: `2px 6px`
181
+ - Font: `11px` / `700`
182
+ - Use: Live-now indicator on thumbnails
183
+
184
+ **Rank Badge**
185
+ - Background: `#FFC83D` (gold) for #1
186
+ - Text: `#121212`
187
+ - Radius: `50%` or `4px`
188
+ - Use: Leaderboard / top-fan status
189
+
190
+ **Avatar**
191
+ - Radius: `50%`
192
+ - Optional pink/gradient ring for live or VIP status
193
+ - Use: LIVER and viewer avatars
194
+
195
+ ### Navigation
196
+ - Bottom tab bar (mobile-native): Home / Discover / GO LIVE (center, pink) / Messages / Profile
197
+ - Active tab: `#FF4F6E`; inactive: `rgba(255,255,255,0.45)`
198
+ - Center GO LIVE is an elevated pink action
199
+
200
+ ## 5. Layout Principles
201
+
202
+ ### Structure
203
+ - **Mobile / vertical-video first** — the canonical surface is a portrait phone screen with a full-bleed stream and overlay chrome
204
+ - Discover = grid/feed of stream thumbnails; Stream view = full-bleed video + floating chat + gift rail + bottom action bar
205
+ - Web/desktop is a secondary surface that frames the same dark-stage system
206
+
207
+ ### Spacing
208
+ - 4/8px-based spacing scale, tight on overlay chrome
209
+ - Safe-area-aware padding for notches and home indicators on the stream overlay
210
+
211
+ ### Density
212
+ 17LIVE is **medium density with high motion**. Overlay chrome is minimal and edge-anchored so the video breathes; lists and discover grids pack efficiently; the "noise" comes from animated reactions, not from static density.
213
+
214
+ ## 6. Depth & Elevation
215
+
216
+ On a dark UI, elevation is communicated by **surface lightness steps** (`#121212` → `#1C1C1E` → `#2C2C2E`) and by scrims, more than by shadow.
217
+
218
+ - **Bottom sheet / modal**: `#1C1C1E` surface rising over a `rgba(0,0,0,0.5)` scrim; soft top shadow
219
+ - **Stream overlay chrome**: anchored to a bottom/top gradient scrim so it floats legibly over video
220
+ - **Gift animations**: render in a top layer above all chrome
221
+ - **Glow accents**: pink/gradient glows on live-avatar rings and premium gifts — the system's "lighting"
222
+
223
+ ### Z-Index (stream view)
224
+ 1. Video (base)
225
+ 2. Gradient scrims
226
+ 3. Chat + overlay chrome
227
+ 4. Gift/reaction animation layer (highest)
228
+
229
+ ## 7. Do's and Don'ts
230
+
231
+ - **DO** default to the dark stage (`#121212`) — video looks best framed in dark and the UI stays out of the way.
232
+ - **DON'T** use a light background for the streaming surface — it blows out late-night phone viewing and dilutes the video.
233
+ - **DO** reserve pink (`#FF4F6E`) for connection/transaction — go live, send gift, follow, primary CTA.
234
+ - **DON'T** paint neutral chrome pink. Pink reads as "an action / a moment" only because the stage is dark-neutral.
235
+ - **DO** use pill geometry (16–24px radius) on buttons and circular avatars — friendly, social.
236
+ - **DON'T** use sharp enterprise corners — they fight the playful register.
237
+ - **DO** keep overlay text legible with gradient scrims or shadows over video.
238
+ - **DON'T** let chrome cover the LIVER's face — anchor it to edges, keep the center clear.
239
+ - **DO** spend the motion budget on reactions (gifts, hearts, level-ups) — that's the live energy.
240
+ - **DON'T** animate navigation chrome with theatrics; tab/route motion stays quick and quiet.
241
+ - **DO** use gold (`#FFC83D`) for ranking/status and green (`#27C76F`) for LIVE/online.
242
+ - **DON'T** conflate the status colors with the pink action color.
243
+ - **DO** use Traditional Chinese on TW surfaces and native CJK per market; never Simplified on TW.
244
+
245
+ ## 8. Responsive Behavior
246
+
247
+ ### Breakpoints
248
+ | Width | Behavior |
249
+ |---|---|
250
+ | Mobile `<768px` | Canonical surface — full-bleed vertical video, bottom tab bar, overlay chat/gift chrome |
251
+ | Tablet `768–1024px` | Stream centers with side panels (chat / ranking) appearing |
252
+ | Desktop `>1024px` | Stream center stage with persistent chat rail + gift panel + recommendations sidebar (Twitch-like three-zone layout) |
253
+
254
+ ### Touch & Mobile
255
+ - Large tap targets (44px+); center GO LIVE elevated for thumb reach
256
+ - Gift rail and chat composer are bottom-anchored within thumb zone
257
+ - Swipe gestures to switch streams (feed-like) on mobile
258
+ - Safe-area insets respected on overlay chrome
259
+
260
+ ### Media
261
+ - Video full-bleed `object-fit: cover` on mobile, contained on desktop center stage
262
+ - Thumbnails lazy-load; LIVE thumbnails may show a short motion preview on hover (desktop)
263
+
264
+ ## 9. Agent Prompt Guide
265
+
266
+ ### Quick Color Reference
267
+ - Brand / action: 17 Pink (`#FF4F6E`); pressed `#E8455F`
268
+ - Stage: `#121212`; surfaces `#1C1C1E` / `#2C2C2E`
269
+ - Text on dark: white / `rgba(255,255,255,0.7)` / `rgba(255,255,255,0.45)`
270
+ - Rank gold: `#FFC83D`; VIP purple: `#8B5CF6`
271
+ - LIVE/success: `#27C76F`; error: `#FF453A`
272
+
273
+ ### Example Component Prompts
274
+ - "Create a 17LIVE stream card: full-bleed thumbnail, 12px radius, bottom gradient scrim `rgba(0,0,0,0.5)`, LIVE badge top-left (`#FF4F6E`, white, 11px/700, 4px radius), viewer-count chip with eye icon, LIVER avatar (28px circle, pink ring) + name (15px/700 white) bottom-left."
275
+ - "Build a 17LIVE Follow toggle: not-following = `#FF4F6E` bg, white text, 16px pill radius, 14px/600, padding 6px 16px; following = transparent + 1px solid rgba(255,255,255,0.3), text rgba(255,255,255,0.7)."
276
+ - "Design a GO LIVE button: pink (`#FF4F6E`) pill, 24px radius, white 16px/700, padding 12px 24px. As the center bottom-tab action, elevate it slightly above the bar."
277
+ - "Create a gift-send button: gradient `#FF4F6E → #FF2D8E`, 20px radius, white text + gift icon, the highest-energy transaction control. On send, trigger a top-layer gift animation."
278
+ - "Build the stream overlay chat composer: pill input (`#2C2C2E`, 24px radius) over the video bottom scrim, placeholder rgba(255,255,255,0.45), trailing pink (`#FF4F6E`) send icon."
279
+
280
+ ### Iteration Guide
281
+ 1. **Dark stage default; pink is the action.** Never light-mode the streaming surface.
282
+ 2. **Pill geometry + circular avatars** — friendly and social.
283
+ 3. **Locale-aware system fonts** (JP + TW first-class). Never Simplified on TW.
284
+ 4. **Spend motion on reactions, not chrome.** Gifts/hearts/level-ups are the energy.
285
+ 5. **Keep overlay chrome edge-anchored** over scrims; never cover the LIVER's face.
286
+ 6. **Status colors are distinct:** gold = rank, green = LIVE, pink = action.
287
+ 7. **Numbers are gamified** — bold counts, gold for top status.
288
+
289
+ ---
290
+
291
+ ## 10. Voice & Tone
292
+
293
+ 17LIVE speaks like an upbeat host hyping the room — warm, encouraging, and celebratory, the voice of a platform whose whole premise is connection between a LIVER and their fans. The register is **playful and intimate**, leaning on second-person address and the platform's own vocabulary ("LIVER" for streamer, "GO LIVE", fan-club language). It is genuinely multilingual — Japanese and Traditional Chinese are the largest first-class voices, authored per market across 150+ countries, never machine-translated from one master. Copy celebrates moments (a new follower, a gift received, a fan-club join) without being saccharine, and keeps transactional flows (top-ups, gifting) clear and trustworthy because real money moves through them. The bilingual tagline "Live Streaming 直播互動娛樂平台" captures the positioning — interactive entertainment, live and social.
294
+
295
+ | Context | Tone |
296
+ |---|---|
297
+ | Onboarding / hero | Inviting, energetic. `GO LIVE`, `Join the party`. Second-person, action-forward. |
298
+ | CTAs | Imperative + warm. `Go Live`, `Send Gift`, `Follow`, `Join Fan Club`. |
299
+ | Social events (follow / gift) | Celebratory micro-copy. `You're now following <LIVER>!`, `Gift sent — they felt that!`. Genuine, not corporate. |
300
+ | Live chat / reactions | Casual, emoji-friendly (user territory), real-time. |
301
+ | Transactions (coins / top-up) | Clear and trustworthy — exact amounts, no dark patterns, balance always visible. |
302
+ | Empty states | Encouraging next step. `No one's live in this category right now — explore Trending.` |
303
+ | Errors | Blameless, friendly, actionable. Never blame the fan or the LIVER. |
304
+ | Safety / report | Calm, serious, supportive — the one place the playful tone yields to clarity. |
305
+ | Legal / policy | Formal and plain. |
306
+
307
+ **Forbidden phrases.** Manipulative spend-pressure on gifting/top-up (`Hurry, gift now!`), shaming a user for not spending, `Oops! Something went wrong` without a reason, cold corporate jargon in social moments, emoji in safety/report flows (keep those serious), Simplified-Chinese characters on TW-Traditional surfaces, fake hype in error messages.
308
+
309
+ **Voice samples.**
310
+ - `Live Streaming 直播互動娛樂平台` — bilingual platform positioning <!-- verified: 17.live tagline via WebFetch 2026-05-19 -->
311
+ - `GO LIVE` — primary creator CTA <!-- illustrative/conventional: 17LIVE's core action verb; not live-DOM-verified this pass -->
312
+ - `Follow` / `Following` — LIVER follow toggle <!-- illustrative/conventional -->
313
+ - `You're now following this LIVER!` — illustrative follow-success micro-copy <!-- illustrative: not verified as live 17LIVE copy -->
314
+ - `No one's live here right now — check out Trending.` — illustrative empty state <!-- illustrative: not verified as live 17LIVE copy -->
315
+
316
+ ## 11. Brand Narrative
317
+
318
+ 17LIVE was founded in **June 2015 in Taiwan** by **Jeffrey Huang** (黃立成), a musician-entrepreneur, as a live-streaming app built around the idea that broadcasting should be **interactive and intimate** — not a one-way feed but a real-time room where fans shape the show through chat and virtual gifts ([en.wikipedia.org/wiki/17LIVE](https://en.wikipedia.org/wiki/17LIVE)). The name "17" (read "one-seven", and a homophone play in Mandarin) became shorthand for going live. After early leadership transitions — Joseph Phua (co-founder of Paktor) became CEO following a 2017 merger, and Alex Lien became Global CEO in 2023 — the company grew into an international entertainment platform headquartered across Japan, Taiwan, and beyond.
319
+
320
+ The design language is the product-surface expression of that interactive-intimacy thesis. The dark stage exists so the LIVER's video is the hero and the late-night, in-your-hand viewing feels right; the hot pink is the color of every act of connection — going live, following, sending a gift, joining a fan club — because the platform's entire economy and emotion run on those moments. The high motion budget (flying gifts, floating hearts, level-up bursts) is not decoration; it is the visible feedback loop that makes a fan feel *seen* by a LIVER, which is the product.
321
+
322
+ By April 2022, 17LIVE reported roughly **60 million registered users across 154 countries**, around **46,000 contracted artists**, and over **2.3 million monthly active users**, ranking among the largest live-broadcasting platforms in the world; it is publicly listed on the Singapore Exchange (SGX: VT1). Revenue flows through virtual gifting, monthly fan-club subscriptions, pay-per-view ticketed events, and live-commerce (HandsUp / OrderPally). ([en.wikipedia.org/wiki/17LIVE](https://en.wikipedia.org/wiki/17LIVE)) <!-- source: Wikipedia via WebFetch 2026-05-19; metrics not independently audited -->
323
+
324
+ ## 12. Principles
325
+
326
+ 1. **Dark stage, lit content.** The UI is a darkened theater so the LIVER's video and the pink actions carry the light. *UI implication:* Default surfaces to `#121212`/`#1C1C1E`; keep overlay chrome edge-anchored and minimal; never use a light streaming surface.
327
+
328
+ 2. **Pink is connection.** The signature pink marks every act of social connection and transaction. *UI implication:* Apply `#FF4F6E` to GO LIVE, follow, gift, and primary CTA; keep neutral chrome neutral so pink always reads as "a moment of connection."
329
+
330
+ 3. **Reactions are the product.** Gifts, hearts, and level-ups are the visible loop that makes a fan feel seen. *UI implication:* Spend the motion budget here — top-layer gift animations, floating reactions — while keeping navigation motion quiet. The reaction layer is the highest z-index.
331
+
332
+ 4. **Money moves; be trustworthy.** Coins, top-ups, and gifting involve real money and a creator's livelihood. *UI implication:* Show exact balances and amounts; never use spend-pressure dark patterns; keep transaction flows clear, with safety/report flows calm and serious.
333
+
334
+ 5. **Two-plus languages, all native.** Japanese and Traditional Chinese lead; copy is authored per market. *UI implication:* Use the locale-aware CJK font stack; route microcopy through locale bundles; never Simplified on TW surfaces.
335
+
336
+ 6. **Friendly geometry.** Pills, circular avatars, soft cards signal a social, human platform. *UI implication:* Buttons 16–24px radius; avatars 50%; cards ~12px. Avoid sharp enterprise corners.
337
+
338
+ ## 13. Personas
339
+
340
+ *Personas are fictional archetypes informed by publicly described 17LIVE user segments (JP/TW livestream fans and LIVERs), not individual people.*
341
+
342
+ **さくら (Sakura), 23, Tokyo.** A devoted fan who follows three LIVERs and tunes in nightly after work. Belongs to a paid fan club, sends mid-tier gifts during special streams, and treats the chat community as a real social circle. Cares that her gift visibly registers — the animation and the LIVER's reaction are the payoff.
343
+
344
+ **阿哲 (A-Zhe), 27, Taipei.** A part-time LIVER who streams gaming and talk content several evenings a week, building toward full-time. Watches his ranking and fan-club growth closely, optimizes his GO LIVE schedule, and values clear earnings/analytics. The pink GO LIVE button is the most important pixel in his day.
345
+
346
+ **Kevin, 19, Kaohsiung.** A casual viewer who discovers streams through the explore feed, drops in for a few minutes, occasionally sends a free heart, and rarely spends. Browses on mobile in short sessions; the discover grid and quick swipe-between-streams are his whole experience.
347
+
348
+ ## 14. States
349
+
350
+ | State | Treatment |
351
+ |---|---|
352
+ | **Empty (no live streams in category)** | One `rgba(255,255,255,0.7)` line + a CTA to explore Trending. No illustration required; keep it encouraging. |
353
+ | **Empty (no messages / followers)** | Friendly one-liner + suggested action (discover LIVERs). |
354
+ | **Loading (discover grid)** | Dark skeleton tiles (`#1C1C1E`) at 12px radius matching final thumbnails; subtle shimmer. No spinner takeover. |
355
+ | **Loading (stream connecting)** | Centered spinner over a dark scrim with `Connecting…`; preserves the dark stage. |
356
+ | **Loading (inline — send gift)** | Gift button holds width; brief in-button spinner; on success, trigger the gift animation. |
357
+ | **Error (stream failed to load)** | Blameless one-liner over dark scrim + retry in `#FF4F6E`. Never a raw error code alone. |
358
+ | **Error (insufficient coins)** | Clear, non-shaming prompt with exact balance + a top-up action; never pressure language. |
359
+ | **Success (follow)** | Toggle flips to "Following", brief pink confirmation; optional toast `You're now following <LIVER>!`. |
360
+ | **Success (gift sent)** | Top-layer gift animation plays over the stream; chat shows the gift event. The animation IS the confirmation. |
361
+ | **Skeleton** | `#1C1C1E` blocks at exact card dimensions; numeric placeholders render as `—`, never `0`. |
362
+ | **Disabled (button)** | Faded fill + `rgba(255,255,255,0.3)` text; geometry preserved. |
363
+
364
+ ## 15. Motion & Easing
365
+
366
+ 17LIVE has a **bifurcated motion philosophy**: lavish and celebratory on reactions, quick and quiet on navigation. This is the rare brand where overshoot is welcome — but only in the reaction layer.
367
+
368
+ **Durations:**
369
+ | Token | Value | Use |
370
+ |---|---|---|
371
+ | `motion-instant` | 0ms | Toggle flips, reduce-motion fallback |
372
+ | `motion-fast` | 150ms | Hover/press, tab switch, chrome transitions |
373
+ | `motion-standard` | 250ms | Sheets, modals, panel slides |
374
+ | `motion-slow` | 400ms | Stream-switch transitions |
375
+ | `motion-reaction` | 600–1500ms | Gift animations, floating hearts, level-up bursts |
376
+
377
+ **Easings:**
378
+ | Token | Curve | Use |
379
+ |---|---|---|
380
+ | `ease-standard` | `cubic-bezier(0.4, 0, 0.2, 1)` | Navigation, sheets, chrome — quiet and platform-native |
381
+ | `ease-enter` | `cubic-bezier(0, 0, 0.2, 1)` | Things appearing |
382
+ | `ease-spring` | `cubic-bezier(0.34, 1.56, 0.64, 1)` | Reaction layer ONLY — gift pops, heart bursts, level-up |
383
+
384
+ **Spring stance.** Unlike utility brands, 17LIVE **embraces overshoot — but quarantines it to the reaction layer.** A sent gift should pop, scale-bounce, and celebrate; a tab switch should not. Navigation, sheets, and form chrome use the standard non-bouncy easings. The rule: spring lives where the social/emotional payoff lives (gifts, hearts, follows, level-ups); everything structural stays calm.
385
+
386
+ **Signature motions.**
387
+ 1. **Gift send.** On send, a gift graphic enters with `ease-spring` over `motion-reaction`, scales up, drifts, and fades — playing in the top z-index layer above all chrome. Premium gifts trigger full-screen gradient effects.
388
+ 2. **Floating hearts.** Tapping the like control spawns hearts that float up and fade over `motion-reaction` with slight random drift — continuous, ambient live energy.
389
+ 3. **Follow toggle.** Flips to "Following" with a brief pink pulse over `motion-fast` — a small celebratory beat, not a full spring.
390
+ 4. **Stream switch (swipe).** On mobile, swiping between streams transitions over `motion-slow / ease-standard` — smooth, not bouncy, to keep orientation.
391
+
392
+ **Reduce motion.** Under `prefers-reduced-motion: reduce`, gift/heart/level-up animations collapse to a static confirmation (the gift still registers in chat, but without the bounce); navigation motion goes instant. The reaction *event* is never lost — only its theatrics.
393
+
394
+ <!--
395
+ OmD v0.1 Sources — 17live
396
+ Created: 2026-05-19
397
+
398
+ Tier 1 (attempted): live computed-style inspection of 17.live was NOT completed — WebFetch surfaced
399
+ only the tagline "Live Streaming 直播互動娛樂平台" and the Playwright MCP session redirected to
400
+ injected ad interstitials, blocking a clean DOM read this pass. primary_color #FF4F6E is the
401
+ creation-brief-provided value and matches 17LIVE's known hot-pink brand identity, but exact
402
+ production hexes and the dark-surface palette in §2 are NOT live-verified — they are well-grounded
403
+ approximations from live-streaming-app conventions + the brand's known dark+pink identity. Flagged
404
+ for a future omd:add-reference UPDATE pass with a working browser.
405
+
406
+ Tier 2 (philosophy/founders):
407
+ - en.wikipedia.org/wiki/17LIVE (WebFetch 2026-05-19) — founded June 2015 Taiwan by Jeffrey Huang;
408
+ Joseph Phua CEO post-2017 merger; Alex Lien Global CEO 2023; ~60M registered users / 154 countries
409
+ (Apr 2022); ~46k contracted artists; 2.3M+ MAU; SGX-listed (VT1); revenue via virtual gifting,
410
+ fan-club subs, ticketed events, live-commerce (HandsUp/OrderPally); "LIVER" = streamer.
411
+ Metrics not independently audited.
412
+
413
+ Illustrative (not verified as live copy): all CTA/social/empty/error strings beyond the tagline,
414
+ type scale, semantic + accent hexes, font stack (inferred from JP/TW live-streaming conventions).
415
+ Marked inline. Personas fictional (§13).
416
+ -->
417
+
418
+ ---
419
+
420
+ **Verified:** 2026-05-19
421
+ **Tier 1 sources:** 17.live — live inspect NOT completed (browser redirect); tagline "Live Streaming 直播互動娛樂平台" (WebFetch). primary `#FF4F6E` is brief-provided and matches 17LIVE's hot-pink identity; dark-surface palette and other hexes are grounded approximations pending live re-inspection.
422
+ **Tier 2 sources:** styles.refero.design / getdesign.md — not checked this pass (browser session unreliable).
423
+ **Tier 2 (Philosophy/founders):** Wikipedia (17LIVE — Jeffrey Huang / June 2015 Taiwan / SGX VT1 / 60M users 154 countries / LIVER terminology / virtual-gift economy).
424
+ **Style ref:** `pinkoi` (TW consumer tone, adapted dark). **Conflicts unresolved:** production hexes beyond primary not live-verified this pass (browser unreliable) — flagged for UPDATE.