cdragon 0.1.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 (91) hide show
  1. package/README.md +110 -0
  2. package/bin/cdragon.js +170 -0
  3. package/package.json +31 -0
  4. package/skills/agent-browser/SKILL.md +50 -0
  5. package/skills/grill-me/SKILL.md +7 -0
  6. package/skills/herdr-agent/SKILL.md +142 -0
  7. package/skills/herdr-cli/SKILL.md +388 -0
  8. package/skills/herdr-cli/scripts/herdr-agent-run-and-wait +203 -0
  9. package/skills/herdr-cli/scripts/herdr-agent-wait-complete +168 -0
  10. package/skills/notion-presentation/SKILL.md +170 -0
  11. package/skills/notion-presentation/references/example-redis-deck.md +97 -0
  12. package/skills/setup-matt-pocock-skills/SKILL.md +127 -0
  13. package/skills/setup-matt-pocock-skills/domain.md +51 -0
  14. package/skills/setup-matt-pocock-skills/issue-tracker-github.md +34 -0
  15. package/skills/setup-matt-pocock-skills/issue-tracker-gitlab.md +35 -0
  16. package/skills/setup-matt-pocock-skills/issue-tracker-local.md +19 -0
  17. package/skills/setup-matt-pocock-skills/triage-labels.md +15 -0
  18. package/skills/tdd/SKILL.md +108 -0
  19. package/skills/tdd/mocking.md +59 -0
  20. package/skills/tdd/refactoring.md +10 -0
  21. package/skills/tdd/tests.md +61 -0
  22. package/skills/to-html/SKILL.md +83 -0
  23. package/skills/to-html/designs/INDEX.md +74 -0
  24. package/skills/to-html/designs/airbnb.DESIGN.md +581 -0
  25. package/skills/to-html/designs/airtable.DESIGN.md +275 -0
  26. package/skills/to-html/designs/alipay.DESIGN.md +456 -0
  27. package/skills/to-html/designs/apple.DESIGN.md +566 -0
  28. package/skills/to-html/designs/banksalad.DESIGN.md +621 -0
  29. package/skills/to-html/designs/channeltalk.DESIGN.md +374 -0
  30. package/skills/to-html/designs/clay.DESIGN.md +398 -0
  31. package/skills/to-html/designs/clickhouse.DESIGN.md +374 -0
  32. package/skills/to-html/designs/cohere.DESIGN.md +361 -0
  33. package/skills/to-html/designs/coinone.DESIGN.md +218 -0
  34. package/skills/to-html/designs/coupang.DESIGN.md +502 -0
  35. package/skills/to-html/designs/cursor.DESIGN.md +416 -0
  36. package/skills/to-html/designs/elevenlabs.DESIGN.md +376 -0
  37. package/skills/to-html/designs/expo.DESIGN.md +373 -0
  38. package/skills/to-html/designs/figma.DESIGN.md +490 -0
  39. package/skills/to-html/designs/framer.DESIGN.md +393 -0
  40. package/skills/to-html/designs/freee.DESIGN.md +572 -0
  41. package/skills/to-html/designs/gangnamunni.DESIGN.md +621 -0
  42. package/skills/to-html/designs/gmarket.DESIGN.md +483 -0
  43. package/skills/to-html/designs/gogolook.DESIGN.md +131 -0
  44. package/skills/to-html/designs/hahow.DESIGN.md +158 -0
  45. package/skills/to-html/designs/hashicorp.DESIGN.md +369 -0
  46. package/skills/to-html/designs/hyundaicard.DESIGN.md +177 -0
  47. package/skills/to-html/designs/ibm.DESIGN.md +420 -0
  48. package/skills/to-html/designs/kakaobank.DESIGN.md +548 -0
  49. package/skills/to-html/designs/kakaopay.DESIGN.md +544 -0
  50. package/skills/to-html/designs/karrot.DESIGN.md +445 -0
  51. package/skills/to-html/designs/kdan.DESIGN.md +160 -0
  52. package/skills/to-html/designs/krds.DESIGN.md +997 -0
  53. package/skills/to-html/designs/line.DESIGN.md +431 -0
  54. package/skills/to-html/designs/linear.app.DESIGN.md +548 -0
  55. package/skills/to-html/designs/miro.DESIGN.md +272 -0
  56. package/skills/to-html/designs/mistral.ai.DESIGN.md +353 -0
  57. package/skills/to-html/designs/money-forward.DESIGN.md +401 -0
  58. package/skills/to-html/designs/mongodb.DESIGN.md +357 -0
  59. package/skills/to-html/designs/naver.DESIGN.md +533 -0
  60. package/skills/to-html/designs/nhncloud.DESIGN.md +174 -0
  61. package/skills/to-html/designs/opencode.ai.DESIGN.md +388 -0
  62. package/skills/to-html/designs/pinterest.DESIGN.md +322 -0
  63. package/skills/to-html/designs/posthog.DESIGN.md +430 -0
  64. package/skills/to-html/designs/raycast.DESIGN.md +422 -0
  65. package/skills/to-html/designs/remember.DESIGN.md +460 -0
  66. package/skills/to-html/designs/resend.DESIGN.md +396 -0
  67. package/skills/to-html/designs/sanity.DESIGN.md +449 -0
  68. package/skills/to-html/designs/sendbird.DESIGN.md +285 -0
  69. package/skills/to-html/designs/smarthr.DESIGN.md +404 -0
  70. package/skills/to-html/designs/socar.DESIGN.md +403 -0
  71. package/skills/to-html/designs/spotify.DESIGN.md +265 -0
  72. package/skills/to-html/designs/supabase.DESIGN.md +348 -0
  73. package/skills/to-html/designs/superhuman.DESIGN.md +414 -0
  74. package/skills/to-html/designs/together.ai.DESIGN.md +356 -0
  75. package/skills/to-html/designs/toss.DESIGN.md +655 -0
  76. package/skills/to-html/designs/uber.DESIGN.md +387 -0
  77. package/skills/to-html/designs/upstage.DESIGN.md +232 -0
  78. package/skills/to-html/designs/velog.DESIGN.md +168 -0
  79. package/skills/to-html/designs/vercel.DESIGN.md +479 -0
  80. package/skills/to-html/designs/wanted.DESIGN.md +529 -0
  81. package/skills/to-html/designs/wise.DESIGN.md +276 -0
  82. package/skills/to-html/designs/yanolja.DESIGN.md +463 -0
  83. package/skills/to-html/designs/yeogiotte.DESIGN.md +459 -0
  84. package/skills/to-html/designs/zapier.DESIGN.md +433 -0
  85. package/skills/to-html/designs/zigzag.DESIGN.md +633 -0
  86. package/skills/to-issues/SKILL.md +84 -0
  87. package/skills/to-prd/SKILL.md +75 -0
  88. package/src/colors.js +15 -0
  89. package/src/link.js +47 -0
  90. package/src/prompt.js +137 -0
  91. package/src/skills.js +75 -0
@@ -0,0 +1,431 @@
1
+ ---
2
+ id: line
3
+ name: LINE
4
+ country: JP
5
+ category: consumer-tech
6
+ homepage: "https://line.me"
7
+ primary_color: "#06c755"
8
+ logo:
9
+ type: simpleicons
10
+ slug: line
11
+ verified: "2026-05-15"
12
+ omd: "0.1"
13
+ ds:
14
+ name: LINE Design System
15
+ url: "https://designsystem.line.me"
16
+ type: system
17
+ description: LINE's shared design system for products across the LINE family.
18
+ og_image: "https://designsystem.line.me/static/36a4ead41b7b972b1130287e849a14b1/73f08/SEO_IMG_1741574443.png"
19
+ ---
20
+
21
+ # Design System Inspiration of LINE
22
+
23
+ ## 1. Visual Theme & Atmosphere
24
+
25
+ LINE is the messaging platform that anchors daily life across Japan, Taiwan, Thailand, and Indonesia, and its visual identity reflects exactly that role — confident, friendly, instantly recognizable. The page chrome is bright white with the famous **LINE Green** (`#07b53b`) reserved for the brand mark and the most important interactive moments. Headlines are oversized and bold (`Life on LINE` renders at 70px weight 700, in near-black `#1e1e1e`), creating a high-contrast editorial feel that matches LINE's positioning as a media-style super-app rather than a utility messenger.
26
+
27
+ The signature interaction primitive is the **fully pill-shaped button** (`border-radius: 50px`) — used for category filters, navigation chips, and CTAs. This is LINE's tactile fingerprint: every clickable surface curves into a complete oval, signaling approachability and a touch-friendly design heritage. Contrast this with Pinkoi's sharp 4px corners or Dcard's modest 8px Material radii — LINE's pill-shape is unmistakably its own.
28
+
29
+ Typography is **multi-locale system fonts** with the global SF Pro foundation: `SFPro, Arial, "Noto Sans JP", "Noto Sans KR", sans-serif`. The Korean and Japanese fallbacks are first-class — LINE serves localized markets where native font rendering is non-negotiable. There is no custom brand typeface; instead, weight 700 and large display sizes do the visual work. Body text starts at a generous 20px (vs. typical 14-16px), reinforcing the editorial, content-forward atmosphere of LINE's marketing surfaces.
30
+
31
+ **Key Characteristics:**
32
+ - LINE Green (`#07b53b`) reserved for the brand mark and primary "selected" / active states
33
+ - Pill-shaped controls: `border-radius: 50px` is the workhorse on buttons, category chips, and navigation
34
+ - Weight 700 dominant on headlines (H2 70px, H3 40px), buttons, and category labels
35
+ - Editorial-scale hero typography — display headlines 40-70px, body 20px (much larger than commerce sites)
36
+ - Locale-aware font stack: `SFPro, Arial, Noto Sans JP, Noto Sans KR` — Japanese and Korean as first-class fallbacks
37
+ - Dimmed inactive states via alpha — `rgba(30, 30, 30, 0.7)` for unselected pills (vs. solid `#1e1e1e` active)
38
+ - White surface background with bright green accents — never dark mode or muted palettes for the marketing chrome
39
+ - Subtle grid: oversized hero images with vertical scroll narrative (services listed below the hero)
40
+ - "Life on LINE" voice: aspirational, lifestyle-led, not utility-functional
41
+
42
+ ## 2. Color Palette & Roles
43
+
44
+ ### Brand
45
+ - **LINE Green** (`#07b53b`): The signature brand color. Used as button bg for the active/selected state, brand iconography, the LINE logo bubble. RGB: `rgb(7, 181, 59)`.
46
+ - **LINE Green Dark** (`#069030`): Inferred hover/pressed state — darker variant for press feedback (estimated, not officially confirmed).
47
+ - **Pure White** (`#ffffff`): Default page surface, pill button text on green bg.
48
+
49
+ ### Text & Foreground
50
+ - **Near Black** (`#1e1e1e`): Primary headline color, active pill label, body emphasis.
51
+ - **Pure Black** (`#000000`): Body text default.
52
+ - **Inactive Label** (`rgba(30, 30, 30, 0.7)`): Unselected pill labels, secondary text.
53
+ - **Tertiary** (`rgba(30, 30, 30, 0.4)`): Hint text, muted captions (estimated).
54
+
55
+ ### Surface
56
+ - **Page White** (`#ffffff`): Default background. LINE marketing rarely uses gray surfaces — content sits on white with rich imagery providing visual interest.
57
+ - **Image Overlay**: Hero sections layer text on full-bleed photography; no card chrome required.
58
+
59
+ ### Sectional / Service Brand Accents
60
+ LINE products span Communication / Entertainment / Lifestyle / Shopping / Fintech / Business / News categories. Each LINE service (LINE NEWS, LINE MUSIC, LINE Pay, etc.) carries its own accent color in product UIs. Marketing surfaces stay green-anchored; product UIs may use service-specific palettes.
61
+
62
+ ### Swiper Defaults (carousel UI)
63
+ - **Swiper Theme** (`#007aff`): iOS system blue used for carousel navigation arrows (`--swiper-theme-color`).
64
+ - **Swiper Nav Size**: `44px` (`--swiper-navigation-size`) — touch-friendly circular controls.
65
+
66
+ ## 3. Typography Rules
67
+
68
+ ### Font Stack
69
+ ```
70
+ SFPro, Arial, "Noto Sans JP", "Noto Sans KR", sans-serif
71
+ ```
72
+
73
+ LINE leads with `SFPro` (Apple system font) for instant familiarity on iOS/macOS, then falls back to Noto Sans JP and Noto Sans KR for Japanese and Korean content. There is **no custom brand typeface** — system fonts respect each market's native reading habits.
74
+
75
+ ### Weights
76
+ - **700 (bold)**: The dominant weight. All headlines, all buttons, all category pills, all emphasis. LINE almost never uses weight 400 or 500 for visible interactive text.
77
+ - **400 (regular)**: Reserved for long-form body copy and supporting captions.
78
+
79
+ ### Size Scale (verified live on `line.me`)
80
+ | Use | Size | Weight |
81
+ |---|---|---|
82
+ | Body default | `20px` | 400 |
83
+ | Hero subtitle | `20px` | 400-700 |
84
+ | H1 (page title) | `20px` | 700 |
85
+ | H3 (service names — LINE NEWS, LINE MUSIC) | `40px` | 700 |
86
+ | H2 (hero — "Life on LINE") | `70px` | 700 |
87
+
88
+ The size jumps are aggressive: 20px body → 40px section heads → 70px hero. There is no quiet middle tier (no 24/32 between body and 40). Headlines exist to dominate the viewport, not to fill it.
89
+
90
+ ### Conventions
91
+ - **No letter-spacing tweaks** — system defaults trusted.
92
+ - **`font-style: italic` not used** in marketing chrome.
93
+ - **No tabular numerals** — body type flows naturally.
94
+ - **All-caps reserved** for the LINE wordmark itself.
95
+
96
+ ## 4. Component Stylings
97
+
98
+ ### Buttons
99
+
100
+ **Active Pill (`.productCategory`)**
101
+ - Background: `#07b53b` (LINE Green)
102
+ - Text: `#ffffff`
103
+ - Radius: 50px (fully pill-shaped)
104
+ - Padding: 8px 15px
105
+ - Font: 14-16px / 700
106
+ - Use: Active/selected category pill, primary CTA — verified live on line.me
107
+
108
+ **Inactive Pill**
109
+ - Background: transparent
110
+ - Text: `rgba(30, 30, 30, 0.7)`
111
+ - Radius: 50px
112
+ - Padding: 8px 15px
113
+ - Font: 14-16px / 700
114
+ - Hover: text opacity transitions to `rgba(30, 30, 30, 1)`
115
+ - Use: Unselected category pill — no shadow, no border
116
+
117
+ **Hover Pressed**
118
+ - Background: `#069030` (LINE Green Dark, inferred)
119
+ - Text: `#ffffff`
120
+ - Radius: 50px
121
+ - Padding: 8px 15px
122
+ - Use: Hover/pressed state for primary pill
123
+
124
+ ### Inputs
125
+
126
+ **Default**
127
+ - Background: `#ffffff`
128
+ - Text: `#1e1e1e`
129
+ - Border: 1px solid `rgba(0, 0, 0, 0.06)`
130
+ - Radius: 12px
131
+ - Padding: 12px 16px
132
+ - Font: 16px / 400 / SFPro
133
+ - Focus: border `#07b53b`
134
+ - Use: Inferred from §1-§2 baseline (no explicit DS variant in source).
135
+
136
+ ### Cards
137
+
138
+ **Service / Feature Card**
139
+ - Background: `#ffffff`
140
+ - Text: `#1e1e1e`
141
+ - Border: 1px solid `rgba(0, 0, 0, 0.06)` (whisper-light)
142
+ - Radius: 12px
143
+ - Padding: 20-24px
144
+ - Shadow: `0 2px 8px rgba(0, 0, 0, 0.04)`
145
+ - Use: Service / feature card with icon (32-40px) + title (16px / 700) + 1-line description (14px / 400 `rgba(30,30,30,0.7)`)
146
+
147
+ **Image-Led Card (LINE STICKERS, WEBTOON tiles)**
148
+ - Background: `#ffffff` (image fills 70-80%)
149
+ - Radius: 12px (image inside `border-radius: 12px 12px 0 0`)
150
+ - Padding: 0px (title strip uses `rgba(0, 0, 0, 0.6)` overlay + white text at bottom)
151
+ - Use: Image-dominant tile
152
+
153
+ **App Download Tile**
154
+ - Background: `#ffffff`
155
+ - Border: 1px solid `rgba(0, 0, 0, 0.06)`
156
+ - Radius: 12px
157
+ - Padding: 12px (56px square touch target)
158
+ - Hover: background tints to very light green or gray
159
+ - Use: App store badges (Apple, Google Play, Desktop)
160
+
161
+ ### Badges
162
+
163
+ **Default**
164
+ - Background: `#07b53b`
165
+ - Text: `#ffffff`
166
+ - Radius: 50px
167
+ - Padding: 4px 10px
168
+ - Font: 12px / 700 / SFPro
169
+ - Use: Inferred from §1-§2 baseline (no explicit DS variant in source) — pill-style badge matching LINE's pill control language.
170
+
171
+ ### Navigation
172
+ - Sticky horizontal header: LINE logo left, page-section nav center, language switcher right
173
+ - Active nav link gets a `2px` solid `#1e1e1e` underline accent
174
+ - Nav items: `font-weight: 700`, `font-size: 16px`, color `#1e1e1e`
175
+ - Background: `#ffffff` with subtle bottom border on scroll
176
+
177
+ ### Hero Sections
178
+ - Full-bleed background image (typically lifestyle photography)
179
+ - Centered overlay text (white or near-black depending on background contrast)
180
+ - Hero CTA below the headline, often using app store badges (Apple, Google Play, Desktop)
181
+
182
+ ### Scroll Indicators
183
+ - Centered "Scroll" label below the hero with a subtle vertical line animation
184
+ - Reinforces the magazine-like vertical narrative
185
+
186
+ **Anti-pattern**
187
+ - Don't apply the pill `50px` button radius to cards — that's reserved for interactive controls only.
188
+
189
+ ## 5. Layout Principles
190
+
191
+ ### Spacing
192
+ LINE marketing pages use **vertical sections of generous height** — each service block (LINE NEWS, LINE MUSIC, etc.) takes a full viewport scroll. Section paddings are large (typically 80-120px vertical).
193
+
194
+ | Use | Padding |
195
+ |---|---|
196
+ | Pill button | `8px 15px` |
197
+ | Section vertical | `80–120px` |
198
+ | Hero vertical | `100vh` (full viewport) |
199
+
200
+ ### Grid
201
+ - Single-column hero with overlay text
202
+ - Service blocks use full-width imagery + centered or left-aligned text overlay
203
+ - Footer uses 3-4 column grid for links
204
+
205
+ ### Density
206
+ LINE is **low-density, high-impact**. Each viewport scroll reveals one service or one message. Don't pack multiple features into a single fold — let imagery dominate, let typography shout.
207
+
208
+ ## 6. Depth & Elevation
209
+
210
+ LINE marketing chrome is **almost entirely flat**. Buttons have no shadow. Cards (when used) have no shadow. The visual depth comes from full-bleed photography behind the chrome.
211
+
212
+ ### Where shadow does appear
213
+ - **Sticky header on scroll**: very subtle `0 1px 0 rgba(0, 0, 0, 0.1)` bottom border (or inset shadow)
214
+ - **Modal / popup**: `0 4px 24px rgba(0, 0, 0, 0.15)` (estimated — LINE rarely uses modals on marketing surfaces)
215
+ - **App download icon hover**: subtle lift via `box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08)`
216
+
217
+ ### Z-Index Hierarchy
218
+ - Sticky header above scroll content
219
+ - Modal/popup above all chrome
220
+ - Toast/snackbar at the highest level
221
+
222
+ ### Animation
223
+ - Scroll-triggered fade-in for hero text and service blocks
224
+ - Pill hover transition: `0.2s ease` color/bg transition
225
+ - Image parallax: subtle vertical translate on scroll within hero
226
+
227
+ ## 7. Do's and Don'ts
228
+
229
+ - **DO** use weight 700 for everything visible — headlines, buttons, pills, nav, captions. LINE doesn't whisper.
230
+ - **DON'T** use weight 300 or 400 for interactive text. Buttons that look quiet read as broken in LINE's voice.
231
+ - **DO** use pill-shaped buttons (`border-radius: 50px`). This is LINE's tactile signature.
232
+ - **DON'T** use 4px, 8px, or any "rectangular" radius for primary CTAs — that breaks the brand language entirely.
233
+ - **DO** reserve LINE Green (`#07b53b`) for the brand mark, the active selected state, and the primary "Download LINE" CTA. It's a finite signal.
234
+ - **DON'T** use LINE Green for warnings, links, or general accents — it dilutes the brand association.
235
+ - **DO** lead with the locale-aware font stack: `SFPro, Arial, Noto Sans JP, Noto Sans KR` — Japanese and Korean as first-class.
236
+ - **DON'T** load a custom web font. LINE's audience reads on phones across many markets; system fonts are fastest and most native.
237
+ - **DO** use oversized display headlines (40-70px) with high vertical spacing. LINE's marketing is editorial, not utilitarian.
238
+ - **DON'T** pack a viewport with multiple competing CTAs. One scroll = one service block = one message.
239
+ - **DO** dim inactive UI with alpha (`rgba(30, 30, 30, 0.7)`) instead of swapping to a different gray hex.
240
+ - **DON'T** introduce shadow to flatten interactive controls. LINE chrome is overwhelmingly flat — depth comes from photography.
241
+
242
+ ## 8. Responsive Behavior
243
+
244
+ ### Breakpoints (inferred from line.me layout shifts)
245
+ | Width | Behavior |
246
+ |---|---|
247
+ | Desktop `>1024px` | Full nav visible, hero at 70px, services full-width with overlay text |
248
+ | Tablet `768–1024px` | Nav condenses, hero shrinks to ~50px, service blocks stack |
249
+ | Mobile `<768px` | Hamburger nav, hero scales to ~40px, service blocks become full-mobile views |
250
+
251
+ ### Touch & Mobile
252
+ - Pill buttons stay touch-friendly at all sizes (min `44px` tappable height per Apple HIG)
253
+ - App download badges remain prominent on mobile (top of fold)
254
+ - Image-heavy hero sections gracefully crop on portrait orientation
255
+
256
+ ### Image Behavior
257
+ - Hero photography: full-bleed, lazy-loaded, art-directed for desktop vs. mobile crops
258
+ - Service icons: vector SVG (LINE NEWS, LINE MUSIC, LINE Pay icons all single-color or 2-tone)
259
+ - Carousel (`swiper`-based): horizontal scroll with `44px` circular nav arrows in `#007aff`
260
+
261
+ ## 9. Agent Prompt Guide
262
+
263
+ ### Quick Color Reference
264
+ - LINE Green (brand / active CTA): `#07b53b` (`rgb(7, 181, 59)`)
265
+ - Headline / active text: `#1e1e1e`
266
+ - Inactive text: `rgba(30, 30, 30, 0.7)`
267
+ - Body text: `#000000` (or `#1e1e1e`)
268
+ - Page bg: `#ffffff`
269
+ - Carousel theme: `#007aff` (iOS system blue)
270
+
271
+ ### Example Component Prompts
272
+ - "Create a LINE-style category pill: `border-radius: 50px`, `padding: 8px 15px`, `font-weight: 700`, `font-size: 14px`. Active state: bg `#07b53b`, white text. Inactive: transparent bg, `rgba(30, 30, 30, 0.7)` text. No shadow, no border. Smooth `0.2s ease` transition on color/bg."
273
+ - "Build a LINE hero: full-viewport white bg with full-bleed lifestyle photography behind. Centered headline 'Life on LINE' at 70px weight 700 color `#1e1e1e` (or white if photo is dark). Subhead at 20px weight 400 below. Three app download icon tiles (Apple, Google, Desktop) — 56px squares, `12px` radius, thin border, no fill."
274
+ - "Design a LINE service card: full-bleed product screenshot on left, oversized `40px` weight 700 service name (e.g., 'LINE NEWS') on right with brand accent color, supporting copy at 20px weight 400 below. No card chrome — section uses background color contrast for separation."
275
+ - "Create a LINE sticky nav: white bg, 56-64px height, LINE logo wordmark left, horizontal pill nav center (active item gets `#1e1e1e` 2px underline), language switcher (globe icon + locale code) right. On scroll, add a subtle `0 1px 0 rgba(0, 0, 0, 0.1)` bottom shadow."
276
+ - "Build a LINE 'Download Now' primary CTA: `border-radius: 50px`, bg `#07b53b`, white text, `font-weight: 700`, `padding: 16px 32px`, `font-size: 18px`. Hover: bg darkens to `#069030`. Active: scale `0.98`. Add LINE icon (the speech bubble) to the left of the text label."
277
+
278
+ ### Iteration Guide
279
+ 1. **Always default to weight 700** for visible interactive text. LINE never whispers.
280
+ 2. **Pill radius (50px) is non-negotiable** for buttons and chips — it's the brand signature.
281
+ 3. **LINE Green (`#07b53b`) is rare** — use it for the brand mark, the single primary CTA, and the active "selected" state. Nothing else.
282
+ 4. **Use the locale-aware font stack with Noto Sans JP and Noto Sans KR** in the fallback chain — never hardcode a single Latin-only font family.
283
+ 5. **Body type is 20px** (not 14-16px). Editorial scale, not utility scale.
284
+ 6. **Hero typography 40-70px** at weight 700. No middle tier between 20px and 40px — LINE's hierarchy jumps.
285
+ 7. **No shadow on the modern button system** — depth comes from photography behind the chrome, not from elevation primitives.
286
+ 8. **Use alpha (`rgba(30, 30, 30, 0.7)`) for inactive states**, not a different gray hex. Maintains color-family coherence.
287
+ 9. **One viewport = one message** — let each service block breathe with full-screen vertical sections.
288
+ 10. **Service-specific color accents** (LINE NEWS green, LINE MUSIC pink, etc.) belong inside product UIs — marketing chrome stays green-anchored.
289
+
290
+ ---
291
+
292
+ ## 10. Voice & Tone
293
+
294
+ LINE's marketing voice is warm, aspirational, and lifestyle-forward — *"Life on LINE"* is the whole stance. The product is framed not as utility but as **infrastructure for everyday moments**: keeping in touch with family, paying a friend back, reading news on the commute, sending a sticker to soften a pricing question. The voice is confident but never boastful, friendly but never childish, and locale-aware enough to speak differently to Tokyo, Taipei, Bangkok, and Jakarta audiences while keeping brand character consistent.
295
+
296
+ | Context | Tone |
297
+ |---|---|
298
+ | Headlines | Short, declarative, aspirational. "Life on LINE." "Always at your side." No hedge words, no superlatives. |
299
+ | CTAs | Imperative verb + noun ("Download LINE", "Start chatting"). Plain, not clever. |
300
+ | Service descriptions | Lifestyle-framed ("Discover what's happening around you") — never feature-listed ("40 million news articles"). |
301
+ | Error / system messages | Direct and blameless in each locale's polite register (Japanese keigo 丁寧語; Korean 존댓말). |
302
+ | Onboarding | Friendly first-person plural ("Let's get started"), never technical jargon. |
303
+ | Sticker store copy | Playful but disciplined — LINE stickers ARE the emoji, so external emoji flooding is unnecessary. |
304
+ | Push notifications | Context-aware; news pushes, friend-message pushes, and payment pushes all differ in register. |
305
+ | Business / LINE for Business surfaces | Slightly more formal, reads closer to a B2B tone — a deliberate shift the consumer voice does not make. |
306
+
307
+ **Forbidden phrases.** "Revolutionary", "unparalleled", "next-generation", "world-class". In Japanese user-facing copy: avoid カタカナ-heavy jargon like イノベーティブ, ディスラプティブ. In Korean: avoid 혁신적인, 완벽한 as self-descriptors. Generic tech-bro emoji (🚀 ✨ 💡) on product surfaces — LINE has its own sticker/sticon ecosystem; external emoji dilute it.
308
+
309
+ ## 11. Brand Narrative
310
+
311
+ LINE was born **June 2011** in Japan, launched by **NHN Japan** (a subsidiary of Korean internet giant **Naver/NHN**), in direct response to the **March 11 2011 Tōhoku earthquake and tsunami**. **Naver/NHN co-founder and chairman Lee Hae-Jin** and a team of engineers were in Japan when the disaster struck — phone lines and SMS networks were overwhelmed, leaving millions unable to reach family and friends. Lee tasked NHN Japan with building a messenger; **a beta version was testing within two months**, and the app shipped as **Line in June 2011** ([LINE — Wikipedia](https://en.wikipedia.org/wiki/Line_(software)), [Line Corporation — Wikipedia](https://en.wikipedia.org/wiki/Line_Corporation)). That founding moment still shapes the brand: being "always at your side" is not a marketing phrase but a literal design goal inherited from how the app was conceived. **April 1 2013** NHN Japan was renamed **LINE Corporation**. Over the following decade LINE grew from a crisis-era messenger into a **super-app that anchors daily life** across Japan, Taiwan, Thailand, and Indonesia: payments, news, music, manga, mobile commerce, business tools — all held together by a single chat metaphor. **December 2020**: LINE Corporation **delisted from NYSE + Tokyo Stock Exchange** ahead of an absorption-type merger; **March 1 2021** SoftBank Group affiliate **Z Holdings** (Yahoo! Japan operator) completed the merger with LINE under **A Holdings** (SoftBank + Naver, 65.3% Z Holdings). **October 1 2023**: LINE Corporation merged with **Z Holdings + Yahoo Japan** into **LY Corporation**, reflecting LINE's scale as Japan's de facto communication and lifestyle infrastructure ([LY Corp — corporate](https://www.lycorp.co.jp/en/), [KED Global — LY-Naver tech tie cut 2024](https://www.kedglobal.com/business-politics/newsView/ked202406190005)).
312
+
313
+ What LINE refuses: the utility-minimalism of Western messengers (WhatsApp, iMessage), the engagement-bait aesthetics of most content super-apps, and the cold enterprise blue of Japanese incumbents. What it embraces: full-bleed lifestyle photography, oversized editorial typography, finite use of LINE Green, and a **sticker-first emotional vocabulary** that respects local cultural register in every market it serves.
314
+
315
+ ## 12. Principles
316
+
317
+ 1. **"Always at your side" is a design constraint.** The app must work when connectivity is poor. Offline-first patterns, light payloads, minimal shell — interfaces that load in 1s on a train in rural Hokkaido or a subway in Bangkok.
318
+ 2. **LINE Green is a finite signal.** `#07b53b` appears only for the brand mark, the primary "Download LINE" CTA, and the active-selected state. Used decoratively, it stops meaning anything.
319
+ 3. **Weight 700 or weight 400. No middle.** Hierarchy jumps are aggressive by design — body 20px → service head 40px → hero 70px. Quiet in-between weights undermine the editorial voice.
320
+ 4. **Pill radius (50px) is the tactile signature.** Buttons, chips, category filters — always pills on marketing surfaces. A 4px or 8px corner breaks the brand language entirely.
321
+ 5. **Photography carries depth; chrome stays flat.** Shadows are absent from interactive controls. Hero imagery is the elevation system.
322
+ 6. **Locale fidelity is first-class, not a fallback.** Japanese, Korean, Thai, Indonesian, Traditional Chinese rendering — every market's native font stack and cultural register matter equally to English.
323
+ 7. **One viewport = one message.** Scrolling a LINE marketing page is chapters, not feature bullets. Each service gets its own 100vh block with imagery + one CTA.
324
+ 8. **The sticker ecosystem is the emoji vocabulary.** External emoji (🚀 ✨ 💡) are banned on product surfaces; LINE has its own emotional primitives (Brown, Cony, Moon + the creator sticker economy).
325
+
326
+ ## 13. Personas
327
+
328
+ *Personas below are fictional archetypes informed by publicly described LINE user segments across its four primary markets (JP / TW / TH / ID), not individual people.*
329
+
330
+ **Haruka Takeda, 34, Tokyo.** Product manager at a consumer electronics company. Uses LINE for everything — family group chat with her parents in Osaka, splitting dinner bills with colleagues via LINE Pay, checking LINE NEWS on the Yamanote Line commute, sending Brown stickers to her 6-year-old daughter. Expects the app to Just Work in tunnels where signal drops. Does not use other messengers except for overseas work contacts on Slack.
331
+
332
+ **Chih-Wei Chen, 27, Taipei.** Designer at a startup. Uses LINE primarily for Taiwanese friends and family; follows international accounts on Instagram for design inspiration. Watches LINE WEBTOON daily at lunch. Pays via LINE Pay at 7-Eleven and sees the QR flow as unremarkable — it's simply how paying works now. Appreciates that LINE respects Traditional Chinese font rendering in a way that apps designed primarily in San Francisco don't.
333
+
334
+ **Somchai Boonmee, 41, Bangkok.** Small business owner (restaurant). Uses LINE Official Account to message his regulars about daily specials. Would be lost running his business without LINE OA as a CRM substitute. Uses LINE stickers to soften direct pricing questions — Thai business communication norms reward warmth, and a Cony sticker alongside an invoice changes the emotional register entirely.
335
+
336
+ **Ibu Dwi Lestari, 23, Jakarta.** University student. Opens LINE primarily for friend group chats and LINE TODAY (news feed). Uses LINE stickers more than typed emoji. Treats the app as her close-friends social layer while Instagram handles the broader social feed. Notices immediately when a brand uses English-only copy in Indonesia — it reads as lazy localization and she mentally downgrades the company.
337
+
338
+ ## 14. States
339
+
340
+ | State | Treatment |
341
+ |---|---|
342
+ | **Empty (friend list, no contacts)** | White canvas. One near-black line of body copy (20px weight 400) in the local register explaining what "adding friends" does in LINE. One pill CTA "Add friends" at the bottom of the viewport. No illustration. |
343
+ | **Empty (chat, no messages)** | White canvas with centered 14px `rgba(30,30,30,0.7)` hint in the local register ("Say hi with a sticker"). Sticker picker button is more visible than the text input. |
344
+ | **Loading (chat messages)** | Message bubbles render as `#f5f5f5` blocks at their final width and height. 1.2s shimmer. Sender avatar as circular gray placeholder. Timestamp skeletons are narrower than final width — never wider. |
345
+ | **Loading (sticker store)** | Sticker tiles render as 1:1 grayscale squares matching the final grid. Shimmer pass over the whole grid, not per tile — faster visual scan. |
346
+ | **Error (message send failed)** | Red exclamation circle (`#e50019` variant) next to the pending bubble. Tap to retry inline. Never a modal — the failure stays attached to the message that failed, where it happened. |
347
+ | **Error (service unavailable)** | Top banner in warm gray (`#f5f5f5`) with near-black text. One sentence + retry pill. Banner never blocks content. |
348
+ | **Error (network)** | Inline banner at top of the chat view: "Not connected". LINE's core brand promise is connectivity; the banner is honest about when the promise is unmet and disappears without fanfare when it returns. |
349
+ | **Success (payment sent via LINE Pay)** | Full-screen LINE Green (`#07b53b`) confirmation with white checkmark. Amount + recipient in 40px weight 700. Single "Done" pill CTA. This is the one place the brand green floods the screen — confidence about money, not delight about it. |
350
+ | **Success (sticker purchased)** | Brief inline toast: "Stickers added". 3s auto-dismiss. No celebratory illustration — the sticker itself, appearing in the sticker picker immediately, is the reward. |
351
+ | **Skeleton** | `#f5f5f5` blocks at exact final dimensions. 1.2s shimmer. Never on price/amount fields — those show the proper locale-formatted placeholder (`¥ -`, `NT$ -`, `฿ -`, `Rp -`). |
352
+ | **Disabled** | Opacity on text and fill together. Disabled pill keeps its 50px radius — never flattens to a rectangle. |
353
+ | **Read receipt (既読 / 읽음 / อ่านแล้ว)** | Tiny 11px `rgba(30,30,30,0.5)` label below the message bubble on the sender's side. Culturally significant in JP / KR / TW markets; never hide this. |
354
+
355
+ ## 15. Motion & Easing
356
+
357
+ **Durations**:
358
+
359
+ | Token | Value | Use |
360
+ |---|---|---|
361
+ | `motion-instant` | 0ms | Toggle commits, selection state |
362
+ | `motion-fast` | 150ms | Pill hover/press feedback, sticker tap scale |
363
+ | `motion-standard` | 250ms | Sheet rise, modal appear, chat bubble send |
364
+ | `motion-slow` | 400ms | Full-screen success (payment confirmation) |
365
+ | `motion-page` | 350ms | Navigation push/pop in app shell |
366
+
367
+ **Easings**:
368
+
369
+ | Token | Curve | Use |
370
+ |---|---|---|
371
+ | `ease-enter` | `cubic-bezier(0.2, 0.6, 0.25, 1)` | Things arriving — sheets, toasts, pushed views |
372
+ | `ease-exit` | `cubic-bezier(0.4, 0.0, 0.9, 1)` | Dismissals |
373
+ | `ease-standard` | `cubic-bezier(0.25, 0.1, 0.25, 1)` | Two-way transitions |
374
+ | `ease-sticker` | `cubic-bezier(0.34, 1.3, 0.64, 1)` | **Reserved.** Sticker send animation only — soft overshoot, never on other elements. |
375
+
376
+ **Signature motions.**
377
+
378
+ 1. **Sticker send.** When a sticker is sent, it scales from `0.8` → `1.05` → `1.0` over `motion-standard` with `ease-sticker`. The tiny overshoot is the only spring in the product, and it matches the emotional register of sending a Brown or Cony to a friend.
379
+ 2. **Pill state transition.** Category pills and buttons use `motion-fast` on `background-color` and `color` simultaneously. Never transition one without the other — creates a weird half-state where text and surface disagree.
380
+ 3. **Hero scroll parallax.** On marketing pages, hero photography translates vertically at `0.5×` the scroll rate. Text stays fixed. This creates the "infrastructure of your life" feeling of content flowing past you rather than being navigated.
381
+ 4. **Payment success.** The full-screen green confirmation (§14) fades in at `motion-slow` with `ease-enter`. The checkmark draws as a path over 500ms. No spring — payment is about confidence, not delight.
382
+ 5. **Reduce motion.** Under `prefers-reduced-motion: reduce`, all `motion-*` tokens collapse to `motion-instant`, and the sticker overshoot flattens to a simple scale-to-1.0 appearance. The app stays fully functional; there is no delightful motion at the cost of accessibility.
383
+
384
+ <!--
385
+ OmD v0.1 Sources — Philosophy Layer (sections 10–15)
386
+
387
+ Direct verification via WebFetch (2026-04-19):
388
+ - https://line.me/en/ — confirms marketing taglines "LINE—always at your side"
389
+ and "More than just a messenger app. LINE is new level of communication, and
390
+ the very infrastructure of your life". Also confirms the multi-locale footprint
391
+ through published language options (EN / JP / KR / TW / TH / ID).
392
+ - https://engineering.linecorp.com/en — confirms LINE Corporation rebranded to
393
+ LY Corporation on 2023-10-01 (footer: "© LY Corporation"), and publishes
394
+ engineering culture values: "Take Ownership", "Be Open", "Trust & Respect".
395
+ - https://designsystem.line.me/ — public entry point for LINE Design System
396
+ confirmed to exist. Detailed sub-pages (e.g., LDSM at designsystem.line.me/LDSM/)
397
+ are access-restricted (returned HTTP 403), so no further specific token values
398
+ could be verified directly.
399
+
400
+ Base DESIGN.md (sections 1–9) is the source for all token-level claims including
401
+ LINE Green #07b53b, pill radius 50px, weight-700 dominance on interactive text,
402
+ the SFPro / Arial / Noto Sans JP / Noto Sans KR font stack, and the 20 / 40 / 70
403
+ size scale.
404
+
405
+ Not independently verified via WebFetch — widely documented public facts used:
406
+ - LINE launched in 2011 in Japan (originally by NHN Japan Corporation), built
407
+ in response to the 2011 Tōhoku earthquake when phone networks were disrupted.
408
+ - The LINE Stickers ecosystem (Brown, Cony, Moon plus a creator sticker economy)
409
+ is a culturally significant brand primitive across LINE's primary markets.
410
+ - LINE's primary-market footprint (Japan, Taiwan, Thailand, Indonesia) is
411
+ reported consistently in tech press and in LY Corporation's own communications.
412
+
413
+ Personas (§13) are fictional archetypes informed by publicly described LINE
414
+ user segments across the four primary markets. Names are illustrative and do
415
+ not refer to real people.
416
+
417
+ Interpretive claims (e.g., "the 2011 earthquake origin shaped the 'always at
418
+ your side' brand positioning", or the framing of LINE Green as a "finite
419
+ signal") are editorial readings that connect public facts; they are not
420
+ directly sourced LINE statements.
421
+ -->
422
+
423
+ ---
424
+
425
+ **Verified:** 2026-05-08 (omd:migrate run 33 — Apple-tier)
426
+ **Tier 1 sources:** line.me/en (consumer LINE Green `#07b53b` 50px full-pill / 8×15 / 36px / 13px·**700** BOLD + inactive `rgba(30,30,30,0.7)` ghost); lycorp.co.jp/en (corporate **LY Charcoal `#2e2e2e`** 4px / 56px / 16px·400 + asymmetric block links + 50% circular carousel chrome).
427
+ **Tier 2 sources:** styles.refero.design / getdesign.md — no record.
428
+ **Tier 2 (Philosophy/founders):** Wikipedia (LINE software, LINE Corporation, Naver), KED Global (LY-Naver tech-tie split 2024-06), LY Corporation corporate, KEIA.
429
+ **Style ref:** `line` (self).
430
+ **Conflicts unresolved:** none. **Earlier mistake reverted:** prior footer captured only consumer surface; LY Corporate is a separate Charcoal `#2e2e2e` 4px / 16px·400 enterprise track that should be documented alongside.
431
+