oh-my-design-cli 1.8.2 → 1.8.6

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 (53) hide show
  1. package/README.ja.md +5 -5
  2. package/README.ko.md +7 -7
  3. package/README.md +7 -7
  4. package/README.zh-TW.md +5 -5
  5. package/agents/omd-master.md +1 -1
  6. package/data/reference-fingerprints.json +964 -4
  7. package/package.json +3 -1
  8. package/skills/omd-feel/SKILL.md +152 -0
  9. package/skills/omd-feel/provenance.md +233 -0
  10. package/skills/omd-feel/reference.md +254 -0
  11. package/skills/omd-harness/SKILL.md +1 -1
  12. package/skills/omd-init/SKILL.md +1 -1
  13. package/skills/omd-reference-capture/SKILL.md +1 -1
  14. package/web/references/591/DESIGN.md +460 -0
  15. package/web/references/asana/DESIGN.md +485 -0
  16. package/web/references/asos/DESIGN.md +475 -0
  17. package/web/references/bahamut/DESIGN.md +416 -0
  18. package/web/references/bbc/DESIGN.md +439 -0
  19. package/web/references/chunghwa/DESIGN.md +419 -0
  20. package/web/references/databricks/DESIGN.md +467 -0
  21. package/web/references/deliveroo/DESIGN.md +458 -0
  22. package/web/references/doordash/DESIGN.md +429 -0
  23. package/web/references/easywallet/DESIGN.md +449 -0
  24. package/web/references/esunbank/DESIGN.md +445 -0
  25. package/web/references/farfetch/DESIGN.md +436 -0
  26. package/web/references/fubon/DESIGN.md +438 -0
  27. package/web/references/govuk/DESIGN.md +450 -0
  28. package/web/references/hana/DESIGN.md +439 -0
  29. package/web/references/hubspot/DESIGN.md +485 -0
  30. package/web/references/hyundai/DESIGN.md +468 -0
  31. package/web/references/icook/DESIGN.md +432 -0
  32. package/web/references/instacart/DESIGN.md +439 -0
  33. package/web/references/ipassmoney/DESIGN.md +407 -0
  34. package/web/references/kakaopage/DESIGN.md +439 -0
  35. package/web/references/kbpay/DESIGN.md +442 -0
  36. package/web/references/kia/DESIGN.md +411 -0
  37. package/web/references/liner/DESIGN.md +465 -0
  38. package/web/references/monzo/DESIGN.md +461 -0
  39. package/web/references/naverpay/DESIGN.md +478 -0
  40. package/web/references/octopusenergy/DESIGN.md +436 -0
  41. package/web/references/openpoint/DESIGN.md +431 -0
  42. package/web/references/paypal/DESIGN.md +459 -0
  43. package/web/references/reddit/DESIGN.md +537 -0
  44. package/web/references/samsung/DESIGN.md +465 -0
  45. package/web/references/shinhanbank/DESIGN.md +429 -0
  46. package/web/references/skyscanner/DESIGN.md +563 -0
  47. package/web/references/snapchat/DESIGN.md +460 -0
  48. package/web/references/squarespace/DESIGN.md +454 -0
  49. package/web/references/ssg/DESIGN.md +439 -0
  50. package/web/references/starling/DESIGN.md +404 -0
  51. package/web/references/taiwanmobile/DESIGN.md +445 -0
  52. package/web/references/trainline/DESIGN.md +454 -0
  53. package/web/references/zoom/DESIGN.md +457 -0
@@ -0,0 +1,478 @@
1
+ ---
2
+ id: naverpay
3
+ name: Naver Pay
4
+ display_name_kr: 네이버페이
5
+ country: KR
6
+ category: fintech
7
+ homepage: "https://new.pay.naver.com/"
8
+ primary_color: "#09aa5c"
9
+ logo:
10
+ type: favicon
11
+ slug: "https://www.google.com/s2/favicons?domain=pay.naver.com&sz=128"
12
+ verified: "2026-06-22"
13
+ omd: "0.1"
14
+ tokens:
15
+ source: live-extract
16
+ extracted: "2026-06-22"
17
+ note: "primary = live Green 500 (#09aa5c) from official bridge UI guide (developers.pay.naver.com/design/bridge); brand logo bg = Naver Pay Green (#00de5a) from logo guide. Merchant center main surface (admin.pay.naver.com) and official developer design guide are the two brand-owned Tier 1 sources. Web app (new.pay.naver.com) is fully login-gated — tokens from pre-auth surfaces and official design spec."
18
+ colors:
19
+ primary: "#09aa5c"
20
+ primary-hover: "#0b9552"
21
+ brand-green: "#00de5a"
22
+ green-tint-100: "#eef9f3"
23
+ green-tint-200: "#e3f6ed"
24
+ canvas: "#ffffff"
25
+ surface: "#f6f8fa"
26
+ surface-alt: "#f3f5f7"
27
+ ink: "#1e1e23"
28
+ body: "#404048"
29
+ muted: "#767678"
30
+ muted-light: "#aaaaac"
31
+ hairline: "#dcdee0"
32
+ hairline-alt: "#c8cacc"
33
+ on-primary: "#ffffff"
34
+ link: "#007eff"
35
+ typography:
36
+ family: { display: "NanumSquareNeo", body: "Pretendard" }
37
+ display-hero: { size: 42, weight: 700, lineHeight: 1.33, use: "Hero headline — NanumSquareNeo Bold, merchant center H2" }
38
+ section: { size: 40, weight: 700, lineHeight: 1.25, use: "Section title — Pretendard Bold" }
39
+ subsection: { size: 28, weight: 600, lineHeight: 1.50, use: "Feature card header — Pretendard SemiBold" }
40
+ nav: { size: 16, weight: 400, lineHeight: 1.50, use: "Nav link — Pretendard Regular" }
41
+ body: { size: 14, weight: 400, lineHeight: 1.50, use: "Body copy — Pretendard Regular" }
42
+ caption: { size: 13, weight: 400, lineHeight: 1.46, use: "Footer link — Pretendard Regular" }
43
+ spacing: { xs: 4, sm: 8, md: 12, base: 16, lg: 20, xl: 28, xxl: 40, section: 60 }
44
+ rounded: { sm: 6, md: 8, lg: 20, xl: 28, full: 9999 }
45
+ shadow:
46
+ none: "none"
47
+ components:
48
+ button-primary: { type: button, bg: "#1e1e23", fg: "#ffffff", radius: "8px", padding: "18px 24px", font: "20px / 700 NanumSquareNeo", use: "Primary hero CTA (가맹점 가입하기)" }
49
+ button-secondary: { type: button, bg: "#ffffff", fg: "#1e1e23", radius: "6px", padding: "10px 13px", font: "16px / 500 Pretendard", border: "1px solid #dcdee0", use: "Secondary action (로그인)" }
50
+ button-green: { type: button, bg: "#09aa5c", fg: "#ffffff", radius: "8px", font: "16px / 700 Pretendard", use: "Green payment CTA — primary pay action in checkout" }
51
+ card-surface: { type: card, bg: "#f6f8fa", radius: "20px", use: "Feature content card on grey surface (no shadow)" }
52
+ card-benefit: { type: card, bg: "#f6f8fa", radius: "28px", use: "Benefit/feature showcase card — larger radius" }
53
+ card-green-tint: { type: card, bg: "#eef9f3", fg: "#404048", radius: "12px", padding: "40px 26px", use: "Guide/help card on green-tinted surface" }
54
+ badge-green: { type: badge, bg: "#eef9f3", fg: "#09aa5c", radius: "9999px", font: "12px / 400 Pretendard", use: "Naver Pay point/benefit badge" }
55
+ badge-ink: { type: badge, bg: "#1e1e23", fg: "#ffffff", radius: "9999px", font: "12px / 400 Pretendard", use: "Dark label badge" }
56
+ input-default: { type: input, bg: "#ffffff", fg: "#1e1e23", border: "1px solid #dcdee0", radius: "6px", font: "16px / 400 Pretendard", use: "Default text input (from bridge UI spec)" }
57
+ input-focus: { type: input, bg: "#ffffff", fg: "#1e1e23", border: "1px solid #09aa5c", radius: "6px", font: "16px / 400 Pretendard", use: "Focused text input — green border" }
58
+ nav-link: { type: tab, fg: "#767678", font: "16px / 400 Pretendard", radius: "8px", use: "Top nav item", active: "text #09aa5c on active" }
59
+ components_harvested: true
60
+ ---
61
+
62
+ # Design System Inspiration of Naver Pay
63
+
64
+ ## 1. Visual Theme & Atmosphere
65
+
66
+ Naver Pay (네이버페이) is Korea's dominant payment platform, embedded across the Naver super-app ecosystem — spanning shopping, booking, banking, and loyalty. Its visual language reflects that scale: a system engineered to be instantly recognizable in every merchant checkout context while remaining calm and trustworthy. The merchant-facing landing at `admin.pay.naver.com` opens on a clean white canvas (`#ffffff`) with a cool blue-grey surface (`#f6f8fa`) that organizes content into ordered, airy zones. Primary text is near-black ink (`#1e1e23`) rather than pure black — a subtle premium move. The single "action" color, Naver Pay Green (`#09aa5c`), carries the weight of every purchase interaction: it's bright, unambiguous, and instantly associated with Naver's broader brand identity.
67
+
68
+ The typographic personality is split across two registers. Hero headlines use **NanumSquareNeo Bold (weight 700)** at 42px — the typeface native to the Naver ecosystem, with its distinctly Korean-optimized geometric strokes — delivering declarative Korean fintech confidence ("매출을 만드는 가장 쉬운 방법"). Section and body text drop to **Pretendard**, Korea's refined system font, at weights 400–700, keeping dense information legible and neutral. This is a two-font system where the display font persuades and the body font explains — a pattern common to Korean fintech products (Toss, Finda, Naver) that must serve both mobile-first consumers and information-heavy transaction contexts.
69
+
70
+ What distinguishes Naver Pay visually is its **shadow-free flatness**. Depth is achieved through flat `#f6f8fa` surface tints rather than elevation — cards exist as tinted rectangles (border-radius 20–28px) against white or grey bands, with no drop shadows detected across the merchant surface. The generous rounded corners (20px–28px) on cards give the system a soft, approachable character without the pill extremes of some payment apps. The green color system uses a careful four-step ramp: brand logo green (`#00de5a`) for signature logomark contexts, primary interactive green (`#09aa5c`), hover green (`#0b9552`), and two tinted surfaces (`#eef9f3`, `#e3f6ed`) for benefit badges and help cards.
71
+
72
+ **Key Characteristics:**
73
+ - NanumSquareNeo Bold at hero scale — Naver ecosystem's native display voice
74
+ - Pretendard 400–700 for body and dense UI — clean, hangul-optimized
75
+ - Naver Pay Green (`#09aa5c`) as the single payment-action color
76
+ - Logo brand color (`#00de5a`) reserved for logomark and brand surface contexts
77
+ - Shadow-free flat system — tinted `#f6f8fa` surfaces + `#dcdee0` hairlines for separation
78
+ - Large-radius cards (20–28px) for warmth and approachability
79
+ - Near-black ink (`#1e1e23`) instead of pure black for premium feel
80
+ - Grayscale ladder from `#f6f8fa` to `#1e1e23` — eight defined steps
81
+
82
+ ## 2. Color Palette & Roles
83
+
84
+ ### Primary
85
+ - **Naver Pay Green** (`#09aa5c`): Primary interactive color — payment CTAs, focus rings on inputs, active nav states, and all payment-action elements. Live-confirmed as Green 500 in the official bridge UI color system.
86
+ - **Green Hover** (`#0b9552`): Green 600 — darker shade for hover/pressed states on green interactive elements.
87
+ - **Brand Green** (`#00de5a`): The signature Naver Pay logomark background color. Brighter and more saturated than the interactive green — used exclusively for logo/brand surface contexts per the official logo guide.
88
+
89
+ ### Green Tint
90
+ - **Green Tint 100** (`#eef9f3`): Soft green surface for benefit badges, guide cards, and success-state backgrounds.
91
+ - **Green Tint 200** (`#e3f6ed`): Slightly deeper green tint for secondary success surfaces.
92
+
93
+ ### Neutral & Surface
94
+ - **Canvas** (`#ffffff`): Page background, white card surfaces, button text on dark backgrounds.
95
+ - **Surface** (`#f6f8fa`): Grayscale 100 — cool-grey tinted surface for feature cards and content bands.
96
+ - **Surface Alt** (`#f3f5f7`): Grayscale 150 — slightly deeper surface variant.
97
+ - **Hairline** (`#dcdee0`): Grayscale 250 — primary border color for inputs, dividers, secondary button outlines.
98
+ - **Hairline Alt** (`#c8cacc`): Grayscale 300 — stronger divider for prominent separation.
99
+
100
+ ### Text Hierarchy
101
+ - **Ink** (`#1e1e23`): Grayscale 900 — primary heading and body text; near-black with warmth.
102
+ - **Body** (`#404048`): Grayscale 800 — secondary text and card descriptions.
103
+ - **Muted** (`#767678`): Grayscale 700 — nav links, tertiary text, metadata.
104
+ - **Muted Light** (`#aaaaac`): Grayscale 500 — placeholder text, disabled labels.
105
+
106
+ ### Interactive
107
+ - **Link Blue** (`#007eff`): Accent link color for inline anchors in merchant context (e.g., "취급불가상품안내", "내 사업에 맞는 가입 유형 확인하기").
108
+
109
+ ## 3. Typography Rules
110
+
111
+ ### Font Family
112
+ - **Display**: `NanumSquareNeo` — Naver's own typeface, used for hero-level headlines and primary CTAs at the largest scale. Bold (700) exclusively.
113
+ - **Body**: `Pretendard` — the Korean fintech standard, used for all navigation, body copy, UI labels, buttons, and secondary headings. Weights 400, 500, 600, 700.
114
+
115
+ ### Hierarchy
116
+
117
+ | Role | Font | Size | Weight | Line Height | Notes |
118
+ |------|------|------|--------|-------------|-------|
119
+ | Display Hero | NanumSquareNeo | 42px | 700 | 1.33 | Merchant center hero H2 |
120
+ | Section Large | Pretendard | 40px | 700 | 1.25 | "내 사업에는 어떤 방식이 맞을까?" |
121
+ | Sub-section | Pretendard | 28px | 600 | 1.50 | Feature card headers |
122
+ | Nav Link | Pretendard | 16px | 400 | 1.50 | Top nav items, muted gray |
123
+ | Button Primary | NanumSquareNeo | 20px | 700 | 1.00 | Hero CTA "가맹점 가입하기" |
124
+ | Button Default | Pretendard | 16px | 500 | 1.50 | Secondary/outlined buttons |
125
+ | Body | Pretendard | 14px | 400 | 1.50 | Card body, descriptions |
126
+ | Caption / Footer | Pretendard | 13px | 400 | 1.46 | Footer links, fine print |
127
+
128
+ ### Principles
129
+ - **Two fonts, two registers**: NanumSquareNeo owns the persuasive hero layer; Pretendard owns every functional UI text layer. They do not swap.
130
+ - **Bold for action**: CTA labels run at 700 weight; body text at 400. The weight contrast is the clearest hierarchy signal.
131
+ - **Hangul-first sizing**: 14px body is deliberate — the sweet spot for dense hangul legibility in data-heavy financial layouts.
132
+ - **Display restraint**: Large headlines are in Korean ("매출을 만드는 가장 쉬운 방법"), never in English — the brand speaks to Korean merchants in their language.
133
+
134
+ ## 4. Component Stylings
135
+
136
+ ### Buttons
137
+
138
+ **Primary CTA (Hero)**
139
+ - Background: `#1e1e23`
140
+ - Text: `#ffffff`
141
+ - Radius: 8px
142
+ - Padding: 18px 24px
143
+ - Font: 20px NanumSquareNeo weight 700
144
+ - Height: 62px
145
+ - Use: Main landing page action — "가맹점 가입하기" (merchant signup)
146
+
147
+ **Secondary (Outlined)**
148
+ - Background: `#ffffff`
149
+ - Text: `#1e1e23`
150
+ - Radius: 6px
151
+ - Padding: 10px 13px
152
+ - Font: 16px Pretendard weight 500
153
+ - Border: 1px solid `#dcdee0`
154
+ - Height: 44px
155
+ - Use: "로그인" — secondary nav-level action
156
+
157
+ **Green Payment Button**
158
+ - Background: `#09aa5c`
159
+ - Text: `#ffffff`
160
+ - Radius: 8px
161
+ - Font: 16px Pretendard weight 700
162
+ - Use: Primary payment/checkout CTA — the green pay button that appears in merchant checkout contexts
163
+
164
+ ### Cards & Containers
165
+
166
+ **Surface Feature Card**
167
+ - Background: `#f6f8fa`
168
+ - Radius: 20px
169
+ - Use: Merchant type info cards and step info cards — shadow-free flat surface
170
+
171
+ **Benefit Showcase Card**
172
+ - Background: `#f6f8fa`
173
+ - Radius: 28px
174
+ - Use: Larger benefit showcase panels with more corner radius — consistent shadow-free flatness
175
+
176
+ **Green Tint Guide Card**
177
+ - Background: `#eef9f3`
178
+ - Text: `#404048`
179
+ - Radius: 12px
180
+ - Padding: 40px 26px
181
+ - Use: Help/guide cards — the green tint marks Naver Pay branded informational surfaces
182
+
183
+ ### Badges
184
+
185
+ **Benefit Badge (Green)**
186
+ - Background: `#eef9f3`
187
+ - Text: `#09aa5c`
188
+ - Radius: 9999px (full pill)
189
+ - Font: 12px Pretendard weight 400
190
+ - Use: Naver Pay point/benefit highlight tag
191
+
192
+ **Dark Label Badge**
193
+ - Background: `#1e1e23`
194
+ - Text: `#ffffff`
195
+ - Radius: 9999px (full pill)
196
+ - Font: 12px Pretendard weight 400
197
+ - Use: Dark label — partner tags, count badges
198
+
199
+ ### Inputs & Forms
200
+
201
+ **Default Input**
202
+ - Background: `#ffffff`
203
+ - Text: `#1e1e23`
204
+ - Border: 1px solid `#dcdee0`
205
+ - Radius: 6px
206
+ - Font: 16px Pretendard weight 400
207
+ - Use: Default text field state (휴대폰 번호 입력, bridge UI pattern)
208
+
209
+ **Focus Input**
210
+ - Background: `#ffffff`
211
+ - Text: `#1e1e23`
212
+ - Border: 1px solid `#09aa5c`
213
+ - Radius: 6px
214
+ - Font: 16px Pretendard weight 400
215
+ - Use: Active/focused text field — green border is the pay brand's focus signal
216
+
217
+ **Error Input**
218
+ - Border: 1px solid `#e53935` (error red, standard; not green-system)
219
+ - Use: Validation error state per bridge UI spec
220
+
221
+ ### Navigation
222
+
223
+ **Top Nav**
224
+ - Background: `#ffffff`
225
+ - Text: `#767678` (nav links), `#1e1e23` (logo)
226
+ - Font: 16px Pretendard weight 400
227
+ - Radius on items: 8px
228
+ - Height: 44px
229
+ - Active: green `#09aa5c` text on active item
230
+ - Use: Horizontal top navigation with logo left-aligned
231
+
232
+ ---
233
+
234
+ **Verified:** 2026-06-22 (omd:add-reference CREATE — Tier 1 live inspect)
235
+ **Tier 1 sources:** https://admin.pay.naver.com/front/m/v2, https://developers.pay.naver.com/design/bridge, https://developers.pay.naver.com/design/brand/logo
236
+ **Tier 2 sources:** getdesign.md/naverpay — not found (404); refero — no results for "naver pay"
237
+ **Conflicts unresolved:** none — core green palette cross-confirmed between merchant center live DOM and official bridge UI spec (#09aa5c = Green 500 in both); brand logo green (#00de5a) is separate from interactive green (#09aa5c) per official logo guide, not a conflict
238
+
239
+ ## 5. Layout Principles
240
+
241
+ ### Spacing System
242
+ - Base unit: 4px
243
+ - Scale: 4px, 8px, 12px, 16px, 20px, 28px, 40px, 60px
244
+ - Notable: Hero CTA uses 18px vertical padding for a commanding 62px hit height on the main "가맹점 가입하기" button; card padding tends to 35–40px vertical for generous content breathing room
245
+
246
+ ### Grid & Container
247
+ - Centered single-column hero with 42px NanumSquareNeo headline as the anchor
248
+ - Feature cards arranged in horizontal scroll/wrap rows (merchant benefit cards, type selector cards)
249
+ - Full-width grey surface bands (`#f6f8fa`) alternate with white sections for content rhythm
250
+ - Feature cards sit at fixed heights (420px showcase cards, 208px step cards, 480px type info cards)
251
+
252
+ ### Whitespace Philosophy
253
+ - **Generous card padding**: Cards breathe — 35–40px vertical internal padding on showcase cards
254
+ - **Flat segmentation**: sections separate by `#f6f8fa` vs `#ffffff` tint, never shadows
255
+ - **Large radius creates warmth**: 20–28px card radius softens what could be a cold financial layout
256
+
257
+ ### Border Radius Scale
258
+ - Small (6px): inputs, secondary buttons — tight, utilitarian
259
+ - Medium (8px): primary buttons, nav items — moderate, action-oriented
260
+ - Large (20px): standard content cards — the workhorse
261
+ - XLarge (28px): showcase/benefit cards — generous, consumer-friendly
262
+ - Full (9999px): badges, pill chips — fully round
263
+
264
+ ## 6. Depth & Elevation
265
+
266
+ | Level | Treatment | Use |
267
+ |-------|-----------|-----|
268
+ | Flat (Level 0) | No shadow | Page background, inline text, nav |
269
+ | Surface (Level 1) | `#f6f8fa` background shift | Card/section separation |
270
+ | Hairline (Level 2) | `1px solid #dcdee0` border | Input outlines, secondary button borders |
271
+
272
+ **Shadow Philosophy**: Naver Pay's merchant and developer surfaces are entirely shadow-free — `box-shadow: none` was confirmed across nav, hero, cards, buttons, and chips across both inspected surfaces. Depth is communicated via flat color bands and hairlines. This is consistent with modern Korean fintech (Finda, Toss mobile-web, KakaoBank) and keeps the surface feeling fast, clean, and mobile-native. The green color system does the work that shadows do elsewhere: a green focus ring on an input creates more depth signal than a soft shadow could.
273
+
274
+ ## 7. Do's and Don'ts
275
+
276
+ ### Do
277
+ - Use NanumSquareNeo Bold (700) for hero-level Korean headlines — it carries the Naver ecosystem voice
278
+ - Use Pretendard 400–700 for all body, nav, and button labels
279
+ - Reserve Naver Pay Green (`#09aa5c`) for payment/purchase action elements — keep it the single action color
280
+ - Use `#00de5a` brand green only on the logo and brand surface contexts — not for UI buttons
281
+ - Separate sections with flat `#f6f8fa` tint bands and `#dcdee0` hairlines, not shadows
282
+ - Apply green focus rings on inputs — `#09aa5c` border signals the Naver Pay checkout context
283
+ - Use large border-radius (20–28px) on cards — warmth matters in a payment context
284
+ - Use near-black `#1e1e23` for primary text instead of pure black
285
+
286
+ ### Don't
287
+ - Use drop shadows on any surface — the system is flat-first
288
+ - Apply `#00de5a` brand green to interactive buttons or links — it's a logo color, not a UI color
289
+ - Use a second saturated accent alongside green — the system is monochromatic except for the blue link color
290
+ - Set headlines in Pretendard — NanumSquareNeo owns the hero display register
291
+ - Use pure black (`#000000`) for body text — the system uses warm near-black `#1e1e23`
292
+ - Create pill-shaped buttons for primary actions — the system uses moderate 8px radius buttons, not full-round
293
+ - Use the green colors for error states — errors use a separate red signal independent of the green system
294
+
295
+ ## 8. Responsive Behavior
296
+
297
+ ### Breakpoints
298
+ | Name | Width | Key Changes |
299
+ |------|-------|-------------|
300
+ | Mobile | <640px | Single column, hero headline compresses, cards stack |
301
+ | Tablet | 640-1024px | 2-column card grids, moderate padding |
302
+ | Desktop | 1024-1440px | Full layout, multi-column feature cards, centered hero |
303
+
304
+ ### Touch Targets
305
+ - Primary CTA at 62px height — very comfortable tap target
306
+ - Secondary nav buttons at 44px height — standard Korean mobile minimum
307
+ - Input fields at 44px height with clear focus ring (green border)
308
+
309
+ ### Collapsing Strategy
310
+ - Hero: 42px NanumSquareNeo headline compresses on mobile, weight 700 maintained
311
+ - Feature cards: horizontal multi-card → single-column stacked
312
+ - Tinted surface bands: maintain full-width treatment at all sizes
313
+ - Nav: horizontal links collapse to condensed top navigation on mobile
314
+
315
+ ### Image Behavior
316
+ - Product illustrations and screenshots carry no shadow at any size — consistent with flat system
317
+ - Cards maintain 20–28px radius across breakpoints
318
+
319
+ ## 9. Agent Prompt Guide
320
+
321
+ ### Quick Color Reference
322
+ - Primary payment CTA: Naver Pay Green (`#09aa5c`)
323
+ - Green hover: `#0b9552`
324
+ - Logo brand green: `#00de5a`
325
+ - Green tint surface: `#eef9f3`
326
+ - Dark hero CTA: Ink (`#1e1e23`)
327
+ - Background: Canvas (`#ffffff`)
328
+ - Surface / card bg: `#f6f8fa`
329
+ - Primary text: Ink (`#1e1e23`)
330
+ - Secondary text: Body (`#404048`)
331
+ - Muted / nav: `#767678`
332
+ - Border / hairline: `#dcdee0`
333
+ - Inline link: `#007eff`
334
+
335
+ ### Example Component Prompts
336
+ - "Create a hero on white background. Headline at 42px NanumSquareNeo weight 700, color #1e1e23. Black CTA button: #1e1e23 background, white text, 8px radius, 18px 24px padding, 20px NanumSquareNeo. Green link: #007eff text. Subtitle 28px Pretendard 600, color #1e1e23."
337
+ - "Design a feature card: #f6f8fa background, 20px radius, no shadow. Title 28px Pretendard weight 600, color #1e1e23. Body 14px Pretendard weight 400, color #404048."
338
+ - "Build a tinted section: #f6f8fa background full-width. Section title 40px Pretendard weight 700, #1e1e23. Cards inside: #f6f8fa bg, 20px radius, no shadow."
339
+ - "Create a checkout payment button: #09aa5c background, white text, 8px radius, Pretendard 16px/700."
340
+ - "Build a benefit badge: #eef9f3 background, #09aa5c text, full pill radius, 12px Pretendard."
341
+
342
+ ### Iteration Guide
343
+ 1. NanumSquareNeo Bold (700) for hero Korean copy only; Pretendard for everything else
344
+ 2. Green (`#09aa5c`) = payment action; avoid spreading to non-payment UI elements
345
+ 3. No shadows — separate content bands with `#f6f8fa` and hairlines
346
+ 4. Cards at 20–28px radius, inputs and buttons at 6–8px
347
+ 5. Text color is `#1e1e23`, never pure black for body
348
+ 6. Green focus ring on inputs: `1px solid #09aa5c` is the checkout context signal
349
+ 7. Secondary buttons use white bg + `1px solid #dcdee0` + `#1e1e23` text
350
+
351
+ ---
352
+
353
+ ## 10. Voice & Tone
354
+
355
+ Naver Pay's voice is **practical, merchant-friendly, and confidence-instilling** — a platform that speaks to Korean business owners in plain, efficient Korean. The merchant center headline "매출을 만드는 가장 쉬운 방법" ("The easiest way to generate revenue") sets the register: direct, benefit-first, zero hype. Copy is grounded in concrete outcomes (매출, 정산, 포인트 혜택) and treats the merchant as a capable operator who wants clear answers, not marketing language.
356
+
357
+ | Context | Tone |
358
+ |---|---|
359
+ | Hero headlines | Declarative, benefit-first. "매출을 만드는 가장 쉬운 방법." Confident without superlatives. |
360
+ | Feature descriptions | Outcome-framed. "Npay 포인트 혜택으로 고객의 구매를 더 쉽게" (Make it easier for customers to buy). |
361
+ | CTAs | Direct, specific. "가맹점 가입하기", "내 사업에 맞는 가입 유형 확인하기". |
362
+ | Design guide text | Matter-of-fact spec language. "로고 사이의 간격 길이를 사용하여 로고 바깥쪽에 최소 여백을 둡니다." |
363
+ | Error / guidance | Calm, actionable. "잘못된 사용은 브랜드 이미지를 왜곡하거나 커뮤니케이션 효과를 약화하므로 사용상 주의를 필요로 합니다." |
364
+
365
+ **Voice samples (verbatim from live surfaces):**
366
+ - "매출을 만드는 가장 쉬운 방법" — hero H2 (merchant center). *(verified live 2026-06-22)*
367
+ - "Npay 포인트 혜택으로 고객의 구매를 더 쉽게" — benefit H3 (merchant center). *(verified live 2026-06-22)*
368
+ - "사업자라면 누구나 쉽게 시작할 수 있어요" — onboarding H3 (merchant center). *(verified live 2026-06-22)*
369
+
370
+ **Forbidden register**: technical payment jargon left unexplained, aggressive urgency cues, English-language hero copy, exclamation-heavy sales tone.
371
+
372
+ ## 11. Brand Narrative
373
+
374
+ Naver Pay (네이버페이) launched in **2015** as Naver Corporation's integrated payment and financial services product, initially embedded within Naver Shopping and gradually expanding across the Naver super-app ecosystem. Part of **Naver Financial Corp** (네이버파이낸셜), a Naver subsidiary established in 2019 to house the company's financial infrastructure, Naver Pay benefits from Naver's dominant position in Korean search and content — making it one of the highest-reach payment touchpoints in Korea without requiring standalone acquisition.
375
+
376
+ The product's positioning is built on the Naver ecosystem advantage: users who are already logged into Naver for search, news, blogs, and webtoons can pay across millions of merchant integrations without re-entering credentials. The loyalty layer — Naver Pay Points — creates a closed-loop reward system that keeps spending within the Naver ecosystem. The merchant-facing pitch ("매출을 만드는 가장 쉬운 방법") leans on this reach: integration with Naver Pay means exposure to Korea's most-used digital platform.
377
+
378
+ What Naver Pay refuses: the cold institutional chrome of legacy Korean banking (no navy-and-gold, no heavy corporate formality). What it embraces: a clean, almost editorial layout; a Naver-green that signals trust and familiarity to tens of millions of daily Naver users; and a merchant experience that makes onboarding feel achievable even for a solo business operator.
379
+
380
+ ## 12. Principles
381
+
382
+ 1. **Ecosystem trust as the product.** Naver Pay's strongest design signal is the green — Koreans associate Naver green with search results, map pins, and webtoon bookmarks. Bringing that color into the payment button creates an instant trust transfer. *UI implication:* the green pay button must be unambiguous and undiluted — no secondary greens competing for attention.
383
+ 2. **Flat and fast for mobile commerce.** Korea's mobile-first commerce context demands surfaces that load fast and render cleanly. *UI implication:* shadow-free flatness with surface tints is the right call — it keeps file sizes small and rendering sharp on Korean mobile networks.
384
+ 3. **Benefit before process.** The merchant center leads with outcomes (revenue, settlement, points) rather than technical setup steps. *UI implication:* feature cards lead with benefit headlines, not feature names; the CTA is "시작하기" not "설치하기".
385
+ 4. **Clear hierarchy through weight contrast.** Two fonts at many weights means the hierarchy must be clear — NanumSquareNeo Bold for hero scale, Pretendard for everything else. *UI implication:* do not mix NanumSquareNeo with body text; the contrast between the two fonts IS the hierarchy.
386
+ 5. **Design guide as brand protection.** The official Naver Pay design guide (logo guide, bridge UI, benefit badge) is unusually explicit — color steps are named (Green 500, Grayscale 900), spacing is measured. *UI implication:* these specs should be treated as hard constraints by any integration using Naver Pay branding.
387
+
388
+ ## 13. Personas
389
+
390
+ *Personas below are fictional archetypes informed by publicly observable Naver Pay user segments (Korean online merchants, small business operators, everyday shoppers using Naver Pay in checkout), not individual people.*
391
+
392
+ **이준혁, 38, 서울.** Online clothing reseller on SmartStore (네이버 스마트스토어). Chose to integrate Naver Pay because his customers already have Naver accounts and points. Doesn't write code — followed the merchant center guide to set up the payment integration himself in under a day. Values quick settlement so he can reinvest in inventory. Trusts Naver because he uses Naver Search, Maps, and Pay Points daily.
393
+
394
+ **박미경, 44, 부산.** Runs a small restaurant listed on Naver Maps. Added Naver Pay QR as a payment option after seeing other restaurants use it. Pays attention to her Naver Pay Point accumulation because she shops online herself and knows the value of the point system from the consumer side.
395
+
396
+ **김태우, 29, 경기.** A freelance web developer who builds SmartStore sites for small businesses. Uses the Naver Pay developer docs frequently and reads the bridge UI spec to implement compliant checkout pages. Cares about the design guide because non-compliant logo usage can fail the Naver Pay integration review.
397
+
398
+ **최수아, 25, 서울.** A daily Naver Pay user — pays for convenience stores, online shopping, and food delivery using Naver Pay QR and the app. Values points accumulation and the seamless checkout (no re-entering card details). Trusts the green button — when she sees it, she knows how to complete the payment.
399
+
400
+ ## 14. States
401
+
402
+ | State | Treatment |
403
+ |---|---|
404
+ | **Empty (no merchant transactions)** | White canvas. Ink Navy (`#1e1e23`) single line at body size with plain Korean explanation. One green CTA to set up payment. No illustration clutter. |
405
+ | **Loading (merchant dashboard first paint)** | Skeleton blocks on `#f6f8fa` surface at final card dimensions, 20px radius. No shimmer shadow — flat pulse consistent with the shadow-free system. |
406
+ | **Loading (transaction list refresh)** | Flat inline progress indicator; previous data stays visible. No full-page block. |
407
+ | **Error (payment failed)** | Inline message in near-black ink with plain Korean explanation and a retry action. No generic "오류가 발생했습니다" alone — states what went wrong and next step. |
408
+ | **Error (form validation — bridge UI)** | Field-level message below the input in red; describes what's valid, not just "필수". Green focus ring switches to red border on error field. |
409
+ | **Success (payment complete)** | Brief inline confirmation. Green tint (`#eef9f3`) background with `#09aa5c` text confirmation. Transaction reference shown immediately. No confetti. |
410
+ | **Success (merchant onboarded)** | Calm confirmation page in Pretendard. Next-step action highlighted with green CTA. |
411
+ | **Skeleton** | `#f6f8fa` blocks at final dimensions, 20–28px radius, flat pulse. Consistent with card shapes. |
412
+ | **Disabled** | Muted Light (`#aaaaac`) text; surfaces reduce opacity. Green elements fade to muted grey rather than disappear — avoids losing the brand signal entirely. |
413
+ | **Benefit badge (active)** | Green tint `#eef9f3` surface with `#09aa5c` text, full-pill shape — "N% 적립" or similar. Activates when merchant has configured point benefits. |
414
+
415
+ ## 15. Motion & Easing
416
+
417
+ **Durations**:
418
+
419
+ | Token | Value | Use |
420
+ |---|---|---|
421
+ | `motion-fast` | 100ms | Button press, badge tap, checkbox check |
422
+ | `motion-standard` | 200ms | Card enter, modal open, dropdown reveal |
423
+ | `motion-slow` | 300ms | Page-level transitions, hero reveal |
424
+
425
+ **Easings**:
426
+
427
+ | Token | Curve | Use |
428
+ |---|---|---|
429
+ | `ease-enter` | `cubic-bezier(0.2, 0.6, 0.25, 1)` | Arriving — cards, modals, dropdowns |
430
+ | `ease-exit` | `cubic-bezier(0.4, 0.0, 1, 1)` | Dismissals |
431
+ | `ease-standard` | `cubic-bezier(0.25, 0.1, 0.25, 1)` | Two-way transitions |
432
+
433
+ **Motion rules**: Motion is minimal and purposeful — consistent with the flat, fast payment context. Green CTAs respond to press with a brief `#0b9552` color shift at `motion-fast`. Cards entering the viewport fade in from below at `motion-standard / ease-enter`. No bounce, spring, or overshoot — a payment interface signals reliability, not playfulness. Under `prefers-reduced-motion: reduce`, all transitions collapse to instant; the checkout flow remains fully functional without any animation.
434
+
435
+ <!--
436
+ OmD v0.1 Sources — Philosophy Layer (sections 10–15)
437
+
438
+ Tier 1 live inspect (2026-06-22) via playwright getComputedStyle on:
439
+ - https://admin.pay.naver.com/front/m/v2 (Naver Pay merchant center — brand-owned, pre-login public landing)
440
+ - Hero H2 "매출을 만드는 가장 쉬운 방법" — NanumSquareNeo 42px/700/color #1e1e23
441
+ - H3s "Npay 포인트 혜택으로 고객의 구매를 더 쉽게" etc — Pretendard 28px/600
442
+ - Primary CTA "가맹점 가입하기" — bg #1e1e23 / 8px radius / NanumSquareNeo 20px/700
443
+ - Secondary btn "로그인" — bg #ffffff / border 1px solid #dcdee0 / 6px radius
444
+ - Cards — bg #f6f8fa / radius 20–28px / shadow none
445
+ - Link color — rgb(0,126,255) = #007eff (merchant type link, "취급불가상품안내")
446
+ - Color frequency: #f6f8fa ×13, #ffffff ×5, #1e1e23 ×2, #eef9f3 ×1
447
+ - Nav font: Pretendard, 16px/400, color #767678
448
+
449
+ - https://developers.pay.naver.com/design/bridge (official Naver Pay bridge UI design spec — Tier 1)
450
+ - Official color palette confirmed: Green 500 = #09AA5C, Green 600 = #0B9552
451
+ - Green tints: Green 100 = #EEF9F3, Green 200 = #E3F6ED
452
+ - Grayscale 900 = #1E1E23 (primary dark), 800 = #404048, 700 = #767678, 500 = #AAAAAC, 250 = #DCDEE0
453
+ - Surface/card colors: Grayscale 100 = #F6F8FA
454
+ - Input field spec: default 1px #dcdee0 border, focus 1px #09aa5c border, error state documented
455
+ - Button spec: primary 60% width / secondary 40% (payment completion flow)
456
+ - box-shadow: none across all components
457
+
458
+ - https://developers.pay.naver.com/design/brand/logo (official logo guide — Tier 1)
459
+ - Logo background green = #00de5a (live DOM: rgb(0,222,90)) — brand logomark context ONLY
460
+ - Naver green (secondary logo context) = #09aa5c (same as interactive Green 500)
461
+ - Login page (nid.naver.com redirect): rgb(9,170,92) = #09aa5c confirmed on sign-in button
462
+
463
+ Token-level claims (§1-9) are sourced from these three live inspections.
464
+
465
+ Voice samples (§10) are verbatim from the live merchant center (admin.pay.naver.com 2026-06-22).
466
+
467
+ Brand narrative (§11): Naver Pay launched 2015, Naver Financial Corp established 2019.
468
+ These are widely documented public facts about the company; specific founding details
469
+ are general public knowledge about the Naver ecosystem.
470
+
471
+ Personas (§13) are fictional archetypes informed by publicly observable Naver Pay user
472
+ segments (Korean merchants, everyday Naver app users). Names are illustrative; they do
473
+ not refer to real people.
474
+
475
+ Interpretive claims (e.g., "ecosystem trust as the product", "shadow-free for mobile commerce")
476
+ are editorial readings connecting Naver Pay's observed design to its market positioning,
477
+ not directly sourced Naver statements.
478
+ -->