oh-my-design-cli 1.6.0 → 1.6.2

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 (81) hide show
  1. package/AGENTS.md +1 -1
  2. package/README.ko.md +12 -0
  3. package/README.md +49 -0
  4. package/data/reference-fingerprints.json +957 -2
  5. package/dist/bin/oh-my-design.js +4 -3
  6. package/dist/bin/oh-my-design.js.map +1 -1
  7. package/dist/{install-skills-IETT2TBJ.js → install-skills-6QFSN5BN.js} +108 -42
  8. package/dist/install-skills-6QFSN5BN.js.map +1 -0
  9. package/package.json +9 -3
  10. package/scripts/postinstall.cjs +6 -6
  11. package/skills/claude-design/SKILL.md +385 -0
  12. package/skills/claude-design/references/claude-design-flow.md +425 -0
  13. package/skills/claude-design/references/codebase-analysis.md +373 -0
  14. package/skills/claude-design/scripts/analyze_codebase.py +1369 -0
  15. package/skills/claude-design/scripts/clickable_link.sh +48 -0
  16. package/skills/claude-design/scripts/collect_source.py +178 -0
  17. package/skills/claude-design/scripts/drive_claude_design.cjs +378 -0
  18. package/skills/claude-design/scripts/gather_references.py +437 -0
  19. package/web/references/91app/DESIGN.md +151 -0
  20. package/web/references/airtable/DESIGN.md +16 -2
  21. package/web/references/bithumb/DESIGN.md +170 -0
  22. package/web/references/bunjang/DESIGN.md +20 -1
  23. package/web/references/cakeresume/DESIGN.md +162 -0
  24. package/web/references/catchtable/DESIGN.md +19 -0
  25. package/web/references/classting/DESIGN.md +251 -0
  26. package/web/references/classum/DESIGN.md +19 -0
  27. package/web/references/coinone/DESIGN.md +218 -0
  28. package/web/references/dabang/DESIGN.md +19 -0
  29. package/web/references/devsisters/DESIGN.md +253 -0
  30. package/web/references/dji/DESIGN.md +0 -1
  31. package/web/references/drnow/DESIGN.md +331 -0
  32. package/web/references/fastcampus/DESIGN.md +19 -0
  33. package/web/references/flex/DESIGN.md +19 -0
  34. package/web/references/flo/DESIGN.md +306 -0
  35. package/web/references/fugle/DESIGN.md +250 -0
  36. package/web/references/gmarket/DESIGN.md +19 -0
  37. package/web/references/gogolook/DESIGN.md +131 -0
  38. package/web/references/grip/DESIGN.md +250 -0
  39. package/web/references/hahow/DESIGN.md +158 -0
  40. package/web/references/hogangnono/DESIGN.md +308 -0
  41. package/web/references/hyundaicard/DESIGN.md +177 -0
  42. package/web/references/inflearn/DESIGN.md +19 -0
  43. package/web/references/jkopay/DESIGN.md +249 -0
  44. package/web/references/jobkorea/DESIGN.md +310 -0
  45. package/web/references/kbank/DESIGN.md +18 -0
  46. package/web/references/kdan/DESIGN.md +160 -0
  47. package/web/references/kkbox/DESIGN.md +114 -0
  48. package/web/references/krafton/DESIGN.md +230 -0
  49. package/web/references/kream/DESIGN.md +18 -0
  50. package/web/references/laftel/DESIGN.md +253 -0
  51. package/web/references/lezhin/DESIGN.md +301 -0
  52. package/web/references/lunit/DESIGN.md +19 -0
  53. package/web/references/melon/DESIGN.md +153 -0
  54. package/web/references/momoshop/DESIGN.md +279 -0
  55. package/web/references/mustit/DESIGN.md +282 -0
  56. package/web/references/nhncloud/DESIGN.md +174 -0
  57. package/web/references/oliveyoung/DESIGN.md +19 -0
  58. package/web/references/payco/DESIGN.md +227 -0
  59. package/web/references/piccollage/DESIGN.md +277 -0
  60. package/web/references/rayark/DESIGN.md +132 -0
  61. package/web/references/riiid/DESIGN.md +228 -0
  62. package/web/references/sendbird/DESIGN.md +285 -0
  63. package/web/references/socar/DESIGN.md +18 -0
  64. package/web/references/toss-securities/DESIGN.md +19 -0
  65. package/web/references/trenbe/DESIGN.md +252 -0
  66. package/web/references/tving/DESIGN.md +18 -0
  67. package/web/references/upbit/DESIGN.md +19 -0
  68. package/web/references/upstage/DESIGN.md +18 -0
  69. package/web/references/velog/DESIGN.md +168 -0
  70. package/web/references/voicetube/DESIGN.md +227 -0
  71. package/web/references/wadiz/DESIGN.md +19 -0
  72. package/web/references/webflow/DESIGN.md +16 -2
  73. package/web/references/yeogiotte/DESIGN.md +19 -0
  74. package/data/architecture-proposals/2026-05-13-thin-install-fresh-fetch.md +0 -189
  75. package/data/issues/2026-05-13-multi-surface-schema-rfc.md +0 -67
  76. package/data/reference-audits/2026-05-13-kr10.md +0 -132
  77. package/data/reference-audits/2026-05-14-kr10.md +0 -72
  78. package/data/reference-audits/2026-05-15-kr10.md +0 -124
  79. package/data/research/2026-05-18-agent-landscape.md +0 -69
  80. package/data/research/2026-05-18-kr-style-presets.md +0 -572
  81. package/dist/install-skills-IETT2TBJ.js.map +0 -1
@@ -0,0 +1,282 @@
1
+ ---
2
+ id: mustit
3
+ name: "MUSTIT"
4
+ country: KR
5
+ category: ecommerce
6
+ homepage: "https://www.mustit.co.kr"
7
+ primary_color: "#D00000"
8
+ logo:
9
+ type: favicon
10
+ slug: "https://www.google.com/s2/favicons?domain=mustit.co.kr&sz=256"
11
+ verified: "2026-06-03"
12
+ omd: "0.1"
13
+ ---
14
+
15
+ # MUSTIT
16
+
17
+ Korea's leading luxury resale marketplace connecting 1,300+ luxury brands and millions of monthly shoppers through a mobile-first, discovery-driven experience.
18
+
19
+ ## 1. Visual Theme & Atmosphere
20
+
21
+ MUSTIT projects a disciplined luxury-marketplace aesthetic: a near-black (`#1F1F2C`) and white canvas that recedes so individual product photography can dominate, accented by a single assertive brand red (`#D00000`) that marks every price-cut, badge, and primary CTA. The official brand philosophy — "Smart Luxury — Make the Best Discovery" — is made tangible through high-density list grids, tight typographic hierarchy in Pretendard, and a periscope-lens symbol (M SCOPE) that signals personal curation. Shadow use is deliberately restrained (max `rgba(0,0,0,.05)`), surfaces feel flat and minimal, and the red accent creates instant visual priority in a visually busy product grid.
22
+
23
+ ## 2. Color Palette & Roles
24
+
25
+ - **Brand Navy:** `#1F1F2C` — official primary brand color (CI logotype, hero backgrounds, brand header)
26
+ - **Brand Red:** `#D00000` — primary action color; discount price labels, primary CTA button, cart badge, active filter, sale tag
27
+ - **Text Primary:** `#222222` — body text, product titles, prices, headings
28
+ - **Text Secondary:** `#888888` — captions, secondary metadata, placeholder
29
+ - **Text Tertiary:** `#555555` — supporting body copy, sub-descriptions
30
+ - **Text Disabled:** `#cccccc` — disabled input labels, muted controls
31
+ - **Info Blue:** `#3083e4` — informational tags, delivery status, link text
32
+ - **Outlet Burgundy:** `#8c1e46` — outlet badge background
33
+ - **Background White:** `#ffffff` — page and card backgrounds
34
+ - **Surface Light:** `#fafafa` — list section backgrounds, hot deal section
35
+ - **Surface Mid:** `#f5f5f5` — divider fills, skeleton base
36
+ - **Border Default:** `#e6e6e6` — card borders, divider lines
37
+ - **Border Subtle:** `#f0f0f0` — tab underlines, light dividers
38
+
39
+ ## 3. Typography Rules
40
+
41
+ Primary typeface: **Pretendard** (all UI copy); secondary: **SD Gothic Neo** (legacy web); display: **Archivo Expanded** (brand marketing/corp headings).
42
+
43
+ | Token | Size | Weight | Line-height | Usage |
44
+ |-------|------|--------|-------------|-------|
45
+ | Display | 28px | 700 | 1.35 | Section hero titles |
46
+ | Title L | 24px | 700 | 1.33 | Modal, page headers |
47
+ | Title M | 20px | 700 | 1.35 | Section headers |
48
+ | Title S | 18px | 600 | 1.5 | Card group titles |
49
+ | Body L | 16px | 500 | 1.5 | Navigation links |
50
+ | Body M | 15px | 600 | 1.47 | Button labels, product name |
51
+ | Body S | 14px | 700 | 1.43 | Product price, form labels |
52
+ | Caption L | 13px | 700 | 1.38 | Search keyword, chips |
53
+ | Caption S | 12px | 700 | 1.33 | Metadata, sizes |
54
+ | Label | 11px | 700 | 1.45 | Badges, micro-copy |
55
+ | Fine | 10px | 400 | 1.6 | Legal, cart count |
56
+
57
+ ## 4. Component Stylings
58
+
59
+ ### Button
60
+
61
+ **Primary (Black)**
62
+ - Background: `#333333`
63
+ - Text: `#ffffff`
64
+ - Radius: 4px
65
+ - Height: 48px
66
+ - Font: 15px / 600
67
+ - Padding: 0 16px
68
+
69
+ **Primary (Red / Confirm)**
70
+ - Background: `#D00000`
71
+ - Text: `#ffffff`
72
+ - Border: 1px solid `#D00000`
73
+ - Radius: 4px
74
+ - Height: 48px
75
+ - Font: 18px / 500
76
+
77
+ **Outline (Secondary)**
78
+ - Background: `#ffffff`
79
+ - Text: `#222222`
80
+ - Border: 1px solid `#333333`
81
+ - Radius: 4px
82
+ - Height: 32px
83
+ - Font: 13px / 600
84
+
85
+ **Disabled**
86
+ - Background: `#ffffff`
87
+ - Text: `#888888`
88
+ - Border: 1px solid `#dddddd`
89
+ - Radius: 4px
90
+
91
+ ---
92
+
93
+ ### Tab
94
+
95
+ **Active**
96
+ - Text: `#222222`
97
+ - Font: 16px / 700
98
+ - Border-bottom: 2px solid `#222222`
99
+
100
+ **Inactive**
101
+ - Text: `#aaaaaa`
102
+ - Font: 16px / 500
103
+
104
+ ---
105
+
106
+ ### Badge
107
+
108
+ **Outlet**
109
+ - Background: `#8c1e46`
110
+ - Text: `#ffffff`
111
+ - Radius: 2px
112
+ - Height: 22px
113
+ - Padding: 0 8px
114
+ - Font: 11px / 700
115
+
116
+ **Info Tag**
117
+ - Text: `#3083e4`
118
+ - Border: 1px solid `#3083e4`
119
+ - Radius: 2px
120
+ - Height: 24px
121
+ - Font: 12px / 400
122
+
123
+ ---
124
+
125
+ ### Filter Chip
126
+
127
+ **Default**
128
+ - Border: 1px solid `#cccccc`
129
+ - Radius: 17px
130
+ - Height: 34px
131
+
132
+ **Active**
133
+ - Border: 1px solid `#D00000`
134
+ - Radius: 17px
135
+
136
+ ---
137
+
138
+ ### Search Input
139
+
140
+ **Default**
141
+ - Background: `#ffffff`
142
+ - Text: `#222222`
143
+ - Radius: 4px
144
+ - Height: 40px
145
+ - Padding: 0 12px
146
+ - Font: 15px / 600
147
+
148
+ **Placeholder**
149
+ - Text: `#aaaaaa`
150
+ - Font: 15px / 400
151
+
152
+ ---
153
+
154
+ **Verified:** 2026-06-03
155
+ **Tier 1 sources:** https://www.mustit.co.kr (homepage HTML + embedded CSS bundle, 1.2 MB), https://corp.mustit.co.kr/brand (CI/BI brand page HTML), https://corp.mustit.co.kr/lib/css/mustit-corp.css (corp brand CSS, 70 kB), https://static-ux.mustit.co.kr/ux/service/common/pretendard.css (font CSS)
156
+ **Tier 2 sources:** getdesign.md/mustit — NOT LISTED (no data returned). refero — KR/TW brand, no result expected.
157
+ **Conflicts unresolved:** The main shopping app uses `#333` as the primary CTA (near-black), while the corp site uses `#000`/`#1F1F2C` for brand backgrounds; `#D00000` is consistent across both as the accent/discount/action color.
158
+
159
+ ## 5. Layout Principles
160
+
161
+ MUSTIT is built mobile-first as a Nuxt.js SPA served from `m.web.mustit.co.kr`. The standard content gutter is 16px on each side. Product grids use a 2-column layout with an ~8px gap between cards. Sections are separated by a 10px gray divider strip (`#f5f5f5`) or a 1px border line (`#f0f0f0`). The bottom fixed action bar (buy / cart) sits above the native safe-area inset. Maximum content width on desktop is 360–420px, centered with a white card. Sticky top navigation height is 44–56px.
162
+
163
+ ## 6. Depth & Elevation
164
+
165
+ Surfaces are intentionally flat. Elevation is expressed through subtle shadows, not strong drop shadows:
166
+
167
+ - **Level 0** — flat (no shadow): content sections, list items
168
+ - **Level 1** — `box-shadow: 0 2px 4px 0 rgba(0,0,0,.03)`: product cards, filter chips
169
+ - **Level 2** — `box-shadow: 0 2px 8px 0 rgba(0,0,0,.05)`: bottom sheets, filter buttons
170
+ - **Overlay** — `background: rgba(0,0,0,.5)`: modal/sheet backdrop
171
+ - **Dark scrim** — `rgba(0,0,0,.03)` pseudo-overlay on product thumbnails
172
+
173
+ Bottom sheets use `border-radius: 15px 15px 0 0`; modals/alerts use `border-radius: 8px`.
174
+
175
+ ## 7. Do's and Don'ts
176
+
177
+ ### Do
178
+ - Use `#D00000` exclusively for price discounts, sale badges, and primary conversion CTAs
179
+ - Keep all button radius at 4px for UI elements; use 17px+ only for pill chips/filter controls
180
+ - Use Pretendard weight 700 for all prices and product names to create scan hierarchy
181
+ - Keep section backgrounds alternating between `#ffffff` and `#fafafa` for visual rhythm
182
+ - Apply `transition: all 0.2s ease` for interactive micro-feedback (hover/active states)
183
+ - Use the 16px horizontal gutter consistently across all list and card views
184
+
185
+ ### Don't
186
+ - Don't mix the brand red `#D00000` with decorative elements — reserve it for urgency/action signals
187
+ - Don't use more than two typeface families in any single view (Pretendard + one brand face)
188
+ - Don't apply heavy shadows (`rgba >0.1`) — the luxury positioning demands minimal depth cues
189
+ - Don't round product image containers — keep them square with sharp corners to frame merchandise
190
+ - Don't use the outlet burgundy `#8c1e46` outside of the Outlet category badge context
191
+
192
+ ## 8. Responsive Behavior
193
+
194
+ The primary product is a mobile web app (max-width ~360–428px). The viewport is locked: `user-scalable=no, initial-scale=1.0`. At wider breakpoints the layout centers in a white card against a neutral background. The product grid collapses from a 2-column to a 1-column detail view on PDP. Images use Cloudflare `/_dims_/format/webp/autorotate/on` for adaptive delivery. Font sizes do not scale with viewport — they are fixed px values throughout.
195
+
196
+ ## 9. Agent Prompt Guide
197
+
198
+ When generating MUSTIT-style UI:
199
+ - Mobile-first, max-width 428px, 16px side padding
200
+ - Color: `#222` body, `#D00000` price/CTA, `#888` secondary, `#fafafa` section background
201
+ - Font: Pretendard; body 14px/700 for prices, 13px/700 for captions, 15px/600 for buttons
202
+ - Buttons: bg `#333`, color `#fff`, radius 4px, height 48px — or red `#D00000` for confirm actions
203
+ - Cards: no radius, white bg, `box-shadow: 0 2px 4px 0 rgba(0,0,0,.03)`, 1px `#f0f0f0` border
204
+ - Tabs: `border-bottom: 2px solid #222` active, `color: #aaa` inactive
205
+ - Chips: `border-radius: 17px`, `border: 1px solid #ccc` default, `#D00000` active
206
+ - No heavy gradients in product areas; hotdeal sections may use deep purple-to-teal gradients
207
+ - Keep all decorative shadow under `rgba(0,0,0,.05)`
208
+
209
+ ## 10. Voice & Tone
210
+
211
+ **Three adjectives:** Direct, Discovery-forward, Confident
212
+
213
+ | Do | Don't |
214
+ |----|-------|
215
+ | Use active, action-oriented verbs ("발견하세요", "탐험하세요") | Use passive constructions or vague luxury puffery |
216
+ | Keep copy concise — product names and discount percentages speak | Over-explain or add unnecessary adjectives |
217
+ | Lead with the deal / discovery hook | Lead with brand philosophy in transactional flows |
218
+ | Mix Korean and brand/product names naturally | Force awkward Konglish or all-Korean transliterations |
219
+
220
+ **Illustrative voice samples:**
221
+ - *Illustrative:* "세상 모든 럭셔리 취향을 탐험하세요." — broad, aspirational, discovery-forward
222
+ - *Illustrative:* "정품 200% 보장. 오늘 핫딜 특가를 놓치지 마세요." — direct, urgency-led, trust-anchored
223
+ - *Illustrative:* "1,300개 해외명품 브랜드. 매일 달라지는 특가." — data-led, no fluff, scan-friendly
224
+
225
+ ## 11. Brand Narrative
226
+
227
+ MUSTIT (머스트잇) launched in 2011 as Korea's first dedicated luxury goods marketplace, solving a single friction: accessing authenticated global luxury brands without travelling abroad or paying full retail. The platform grew into a multi-sided market, adding seller tools, authentication guarantees, and eventually a price-comparison engine across 1,300+ brands and 3.7 million+ product listings (2022 figures).
228
+
229
+ The company's second chapter, captured in the tagline "Smart Luxury — Make the Best Discovery," shifts emphasis from access to personalised taste-curation. Where early MUSTIT competed on price and breadth, today it competes on intelligence: surfacing the right item from an enormous catalogue for each individual shopper. The M SCOPE periscope symbol — introduced in the 2020s rebrand — encodes this shift from "shopping" to "exploration."
230
+
231
+ At its core, MUSTIT positions luxury not as an exclusive club but as an everyday enrichment layer. The brand promises that even a person who has never bought a designer item before can "minimise the risk of failure" through personalised guidance — democratising taste without cheapening aspiration.
232
+
233
+ ## 12. Principles
234
+
235
+ 1. **Discovery over search.** Every surface should surface the unexpected, not just confirm known intent. *UI implication:* Prioritise curated carousels and personalised shelf rows over pure search-result grids.
236
+
237
+ 2. **Trust before conversion.** Authentication guarantees and seller ratings must be visible at the product card level, not buried in PDP fine print. *UI implication:* Show authenticity badges inline on thumbnails; never hide them behind a tap.
238
+
239
+ 3. **Speed as luxury.** A slow page is a brand failure in a segment where impatience is typical. *UI implication:* Use WebP images, skeleton loading, and SSR; never show empty-state jumps on first paint.
240
+
241
+ 4. **Red means action.** The brand red is a semantic signal, not a decoration. *UI implication:* Apply `#D00000` only to discount labels, CTA buttons, and active states — never to illustrative or informational copy.
242
+
243
+ 5. **Mobile is the brand.** The desktop experience is secondary. *UI implication:* Design all layouts at 375px width first; use fixed px font sizes; lock zoom.
244
+
245
+ ## 13. Personas
246
+
247
+ *Illustrative persona A — "명품 입문자" (Luxury Newcomer):* A mid-20s professional buying their first designer piece. Price-sensitive but aspirational, anxious about authenticity. Scans price discounts and authentication badges before product names. Expects clear return/guarantee copy.
248
+
249
+ *Illustrative persona B — "셀럽 팔로워" (Trend Follower):* A late-20s social-media-active consumer chasing the same items worn by influencers or K-pop idols. Arrives via specific brand + item searches. Values speed of finding the item and peer review signals over price.
250
+
251
+ *Illustrative persona C — "컬렉터" (Collector):* A 35–50 connoisseur who tracks rare or discontinued items across multiple platforms. Filters heavily, compares price histories, and values seller reputation data. Low churn once trusted.
252
+
253
+ *Illustrative persona D — "선물 구매자" (Gift Buyer):* An occasional visitor purchasing for a birthday or anniversary. Needs curated "best-seller" shelving, category gift guides, and express delivery confidence. Highly reactive to the discount badge.
254
+
255
+ ## 14. States
256
+
257
+ - **Empty — search no results:** White background, centered illustration, heading "검색 결과가 없어요" in `#222`, subtitle in `#888`; height fills viewport minus nav
258
+ - **Loading — product grid:** 2-column skeleton grid; each card shows a `#f5f5f5` rectangle (image placeholder) and two `#f5f5f5` text lines at 14px and 12px height; no shimmer animation measured
259
+ - **Error — network failure:** Toast-style slide-up notification in `#333` background, white text, 0.4s cubic-bezier spring entry
260
+ - **Error — sold-out PDP:** Primary CTA replaced with a disabled-styled gray button (`#ddd` border, `#888` text); "품절" (sold out) label in `#D00000`
261
+ - **Success — add to cart:** Slide-up toast message confirms addition; green check in `#12cf35`; auto-dismiss at 2–3 s
262
+ - **Skeleton — product card:** `border-radius: 0` image block + two placeholder lines in `#f5f5f5` rendered before data arrives
263
+ - **Disabled — form field:** `background: #fafafa`, `border: 1px solid #f0f0f0`, label text `#ccc`
264
+ - **Active filter chip:** `border: 1px solid #D00000`; badge counter circle `background: #D00000`, `color: #fff`, `border-radius: 9px`
265
+
266
+ ## 15. Motion & Easing
267
+
268
+ | Token | Duration | Easing | Usage |
269
+ |-------|----------|--------|-------|
270
+ | Micro | 150ms | `ease-out` | Icon rotation (dropdown arrow), tap highlight |
271
+ | Fast | 200ms | `ease` | Slide-up toast entry, top/bottom position change |
272
+ | Standard | 250ms | `ease-out` | Fade in/out, bottom-sheet slide up/down |
273
+ | Medium | 400ms | `cubic-bezier(.25,.46,.45,.94)` | Sheet slide + opacity composite |
274
+ | Spring | 400ms | `cubic-bezier(.47,1.64,.41,.8)` | Toast bounce-in |
275
+ | Slow | 500ms | `ease` | Pagination indicator slide, banner swipe |
276
+ | Wish | 400ms | `ease-in` | Wishlist heart animation (on/off) |
277
+
278
+ **Rules:**
279
+ - Enter animations use `ease-out`; exit animations use `ease-in`
280
+ - Never animate product image loads — swap instantly to avoid layout shift
281
+ - Sheet overlays fade backdrop at 250ms separate from content slide
282
+ - All interaction animations ≤ 500ms total; prefer ≤ 250ms for taps
@@ -0,0 +1,174 @@
1
+ ---
2
+ id: "nhncloud"
3
+ name: "NHN Cloud"
4
+ country: KR
5
+ category: backend-devops
6
+ homepage: "https://www.nhncloud.com"
7
+ primary_color: "#125DE6"
8
+ logo:
9
+ type: favicon
10
+ slug: "https://www.google.com/s2/favicons?domain=nhncloud.com&sz=128"
11
+ verified: "2026-06-01"
12
+ omd: "0.1"
13
+ ds:
14
+ name: TOAST UI
15
+ url: "https://ui.toast.com"
16
+ type: system
17
+ description: NHN's official open-source component library (TUI Grid/Editor/Calendar/Chart/Image-Editor), MIT-licensed under the nhn GitHub org and documented at ui.toast.com.
18
+ ---
19
+ # Design System Inspiration of NHN Cloud
20
+
21
+ ## 1. Visual Theme & Atmosphere
22
+
23
+ NHN Cloud presents two distinct but related faces, and the brand's character lives in the gap between them. The corporate marketing site is confident and saturated — a vivid #125DE6 blue carried on large, fully-rounded pill CTAs that feel approachable and modern, anchored by clean near-black text on Pretendard Variable. The TOAST UI open-source widget library is the engineering counterpart: tighter, more functional, and a touch cooler in hue, leaning on a lighter accent blue (#00a9ff) and small 4px corner radii built for dense data interfaces like grids and editors. Where the corporate site sells trust and scale, the component library optimizes for legibility and information density. Together they read as one company speaking two registers — the marketing voice for executives evaluating an enterprise cloud, and the practitioner voice for developers embedding NHN's tools. The consistent thread is a blue-forward, clean, no-nonsense Korean enterprise aesthetic that never feels playful for its own sake.
24
+
25
+ ## 2. Color Palette & Roles
26
+ The brand operates across two surfaces, each with its own blue.
27
+
28
+ **Corporate site (live nhncloud.com)**
29
+ - Brand primary blue: #125DE6 (rgb 18,93,230) — every primary CTA
30
+ - Dark CTA: #111111 — high-contrast alternate action
31
+ - Newsletter input border: #51565F
32
+ - Muted text: #727781
33
+ - Body text: near-black
34
+
35
+ **TOAST UI (source-verified CSS)**
36
+ - Accent blue: #00a9ff — primary interactive accent
37
+ - Hover / active blue: #0088d9
38
+ - Light tint: #e5f6ff
39
+ - Secondary blue: #009bf2
40
+ - Error red: #fa2828
41
+ - Neutral background: #f7f9fc
42
+
43
+ Roles: on the corporate surface, #125DE6 is reserved for the single most important action on a section, with #111111 serving as a dark high-contrast alternate. On TOAST UI, #00a9ff drives interactive accents with #0088d9 as the hover/active darkening and #e5f6ff as a soft selection/tint fill; #fa2828 is the dedicated error signal and #f7f9fc the calm neutral canvas behind widgets.
44
+
45
+ ## 3. Typography Rules
46
+ The corporate site uses Pretendard Variable throughout. Body copy is set at 16px; primary CTAs render at 15px / 400; a secondary heading-style CTA steps up to 17px / 500 for slightly more presence. The TOAST UI library defaults to a compact 13px body, appropriate for the data-dense grids and editors it powers. The hierarchy is restrained: weight moves between 400 and 500 rather than relying on heavy display weights, and size differences are modest, keeping the overall feel even and professional. Use Pretendard Variable for any corporate-aligned interface and the smaller 13px scale when matching the embedded TOAST UI surface.
47
+
48
+ ## 4. Component Stylings
49
+
50
+ ### Primary CTA (Corporate)
51
+
52
+ **Vivid-blue pill**
53
+ - Background: #125DE6
54
+ - Text: #FFFFFF
55
+ - Border: none
56
+ - Radius: 30px
57
+ - Padding: 8px 19px
58
+ - Height: 40px
59
+ - Font: 15px / 400
60
+ - Use: the primary call-to-action on corporate marketing sections
61
+
62
+ ### Dark CTA (Corporate)
63
+
64
+ **Near-black pill**
65
+ - Background: #111111
66
+ - Text: #FFFFFF
67
+ - Border: none
68
+ - Radius: 30px
69
+ - Height: 40px
70
+ - Font: 15px / 400
71
+ - Use: high-contrast alternate primary action
72
+
73
+ ### Outline CTA on Dark (Corporate)
74
+
75
+ **Ghost pill**
76
+ - Background: transparent
77
+ - Text: #FFFFFF
78
+ - Border: 1px solid #FFFFFF
79
+ - Radius: 30px
80
+ - Height: 50px
81
+ - Font: 17px / 500
82
+ - Use: larger secondary action placed over a dark section
83
+
84
+ ### Newsletter Input (Corporate)
85
+
86
+ **Transparent field**
87
+ - Background: transparent
88
+ - Text: #727781
89
+ - Border: 1px solid #51565F
90
+ - Radius: 6px
91
+ - Height: 42px
92
+ - Font: 14px / 400
93
+ - Use: email capture field in the newsletter/footer area
94
+
95
+ ### TOAST UI Widget Element (Source)
96
+
97
+ **Compact surface**
98
+ - Background: #f7f9fc
99
+ - Text: near-black
100
+ - Border: derived from accent #00a9ff on interactive states
101
+ - Radius: 4px
102
+ - Font: 13px / 400
103
+ - Use: base styling for TOAST UI grid/editor widgets
104
+
105
+ **Interactive (accent)**
106
+ - Background: #e5f6ff
107
+ - Border: #00a9ff
108
+ - Use: selected / accented state within the widget
109
+
110
+ **Hover / active**
111
+ - Border: #0088d9
112
+ - Use: hover and active darkening of the accent
113
+
114
+ ## 5. Layout Principles
115
+ The corporate site favors generous, breathing layouts where a single saturated CTA anchors each section against ample whitespace, letting the vivid blue do the work of directing attention. Fully-rounded 30px pills are placed as clear focal points rather than crowded clusters. The TOAST UI surface inverts this priority: it is built for density, with the calm #f7f9fc neutral background framing tight, legible grids and editors at the 13px scale and small 4px radii that keep many adjacent cells visually quiet. Match the corporate layout when designing marketing or top-of-funnel pages, and the TOAST UI layout when designing functional, data-heavy application screens.
116
+
117
+ ## 6. Depth & Elevation
118
+ NHN Cloud reads as a fundamentally flat, modern system on both surfaces — depth is expressed through color contrast and crisp 1px borders rather than heavy shadow. On the corporate site, separation comes from the saturated #125DE6 (or #111111) fill standing out against light backgrounds, and from thin 1px outlines such as the #51565F input border and the #FFFFFF ghost-button stroke. On TOAST UI, the #f7f9fc neutral canvas and small 4px-radius elements establish quiet layering, with the #00a9ff accent and #e5f6ff tint lifting interactive elements forward through hue rather than elevation. Keep elevation subtle: prefer contrast and hairline borders over drop shadows.
119
+
120
+ ## 7. Do's and Don'ts
121
+
122
+ ### Do
123
+ - Reserve #125DE6 for the single primary action on a corporate section.
124
+ - Use Pretendard Variable for corporate-aligned interfaces.
125
+ - Use fully-rounded 30px pills for corporate CTAs and the compact 4px radius for TOAST UI elements.
126
+ - Keep the two surfaces visually distinct: vivid #125DE6 for corporate, lighter #00a9ff for TOAST UI.
127
+
128
+ ### Don't
129
+ - Blur the two blues — #125DE6 (corporate) and #00a9ff (TOAST UI) are not interchangeable.
130
+ - Introduce heavy drop shadows; rely on color contrast and 1px borders.
131
+ - Crowd multiple saturated pills together; let one CTA lead.
132
+ - Use the dense 13px scale on marketing pages or the large pills inside data grids.
133
+
134
+ ## 8. Responsive Behavior
135
+ Component sizing in the blob points to comfortable, finger-friendly targets: corporate CTAs stand at 40px high (50px for the larger ghost button) and the newsletter input at 42px, with rounded 30px pills that stay legible at small widths. The Pretendard Variable type scale — 16px body, 15px and 17px CTAs — remains readable across breakpoints without restyling. The TOAST UI surface, designed for embedding, holds its compact 13px scale and 4px radii so that grids and editors retain density on whatever container they sit in. Preserve these heights and radii across viewports; scale layout and spacing rather than re-theming the components.
136
+
137
+ ## 9. Agent Prompt Guide
138
+ When generating UI in the NHN Cloud style, first decide which surface you are matching. For corporate/marketing work, use Pretendard Variable, set body at 16px, and render the primary CTA as a fully-rounded 30px pill with background #125DE6, white text, 15px / 400, 40px tall, padding 8px 19px; offer #111111 as a dark alternate and a transparent ghost button with a 1px #FFFFFF border (50px, 17px / 500) over dark sections; style inputs as transparent fields with a 1px #51565F border, 6px radius, 42px height, #727781 text at 14px / 400. For TOAST UI / application work, use the 13px scale, 4px radii, an #f7f9fc neutral background, the #00a9ff accent with #0088d9 hover and #e5f6ff tint, #009bf2 as a secondary blue, and #fa2828 for errors. Never mix the two blues, and never invent shadows the system doesn't use.
139
+
140
+ ## 10. Voice & Tone
141
+ NHN Cloud speaks in two registers tied to its two surfaces. The corporate voice is confident, trust-building, and enterprise-minded — selling scale, reliability, and partnership to decision-makers, with bold blue CTAs that invite a clear next step. The TOAST UI voice is the practitioner's: precise, functional, and documentation-driven, addressing developers who want their widgets to work predictably. Keep corporate copy assured and outcome-focused; keep TOAST UI copy exact and utilitarian.
142
+
143
+ ## 11. Brand Narrative
144
+ NHN Cloud is the enterprise cloud arm of NHN Corp, headquartered in Pangyo, Korea. Its identity is built on two complementary pillars: a polished corporate presence that markets cloud infrastructure to enterprises, and TOAST UI — NHN's open-source component library (TUI Grid, Editor, Calendar, Chart, Image-Editor) released MIT-licensed under the nhn GitHub organization and documented at ui.toast.com. This pairing mirrors how strong product companies maintain a marketing surface and a developer surface side by side: the corporate site earns trust at the buying level, while TOAST UI earns credibility at the building level. The brand's story is one of a Korean enterprise that both sells the cloud and contributes the tools developers use on top of it.
145
+
146
+ ## 12. Principles
147
+ - Two surfaces, one brand: corporate marketing and TOAST UI are parallel systems, each internally consistent.
148
+ - Blue-forward clarity: a single saturated blue leads attention on each surface.
149
+ - Flat and clean: contrast and hairline borders over shadow.
150
+ - Density where it counts: marketing breathes; application widgets pack tight at 13px / 4px.
151
+ - Restraint in type: weights stay between 400 and 500.
152
+
153
+ ## 13. Personas
154
+ - Enterprise buyer: evaluating NHN Cloud for infrastructure; meets the confident corporate site, vivid #125DE6 CTAs, and Pretendard Variable copy.
155
+ - Developer / integrator: embedding TOAST UI widgets; works in the compact 13px, 4px-radius surface with the #00a9ff accent system.
156
+ - Korean enterprise team: expecting a clean, professional, blue-forward Korean cloud aesthetic across both touchpoints.
157
+
158
+ ## 14. States
159
+ - Default (corporate CTA): #125DE6 background, white text, 30px pill.
160
+ - Default (TOAST UI accent): #00a9ff accent on #f7f9fc neutral background.
161
+ - Hover / active (TOAST UI): accent darkens to #0088d9.
162
+ - Selected / tinted (TOAST UI): #e5f6ff light tint fill with #00a9ff edge.
163
+ - Error (TOAST UI): #fa2828 red.
164
+ - Input resting (corporate): transparent field, 1px #51565F border, #727781 text.
165
+
166
+ ## 15. Motion & Easing
167
+ No motion or easing values were captured in live inspection, so specifics are not asserted here. In keeping with the system's flat, clean, contrast-driven character, treat motion as restrained and functional: brief, confident transitions on the corporate CTAs and the lightest possible state feedback on TOAST UI's dense widgets, where the #00a9ff → #0088d9 darkening communicates interaction without distracting from data. Favor subtle, purposeful movement over decorative animation.
168
+
169
+ ---
170
+ **Verified:** 2026-06-01
171
+ **Tier 1 sources:** https://www.nhncloud.com (live corporate DOM — #125DE6 primary CTAs, #111111 dark CTA, #51565F input border, #727781 muted text, Pretendard Variable 16/15/17px), https://ui.toast.com (TOAST UI system entry point — open-source widget library), https://github.com/nhn (nhn org source CSS — tui.grid grid.css #00a9ff/#0088d9/#e5f6ff 13px, tui.editor editor.css #00a9ff/#009bf2/#fa2828/#f7f9fc radius 4px)
172
+ **Tier 2 sources:** getdesign.md/nhncloud — NOT LISTED. refero — not listed. Note: corporate brand blue #125DE6 differs from TOAST UI accent #00a9ff (two surfaces).
173
+ **Conflicts unresolved:** none
174
+ **Proof:** see .verification.md (## Proof block)
@@ -208,6 +208,25 @@ Olive Young presents as a **dense, scan-first H&B catalog**: a near-monochrome g
208
208
  - Border: 0 (separated by `#EBEBEB` grid gap)
209
209
  - Use: Search result / category list / best list
210
210
 
211
+
212
+ ## 16. Do's and Don'ts
213
+
214
+ ### Do
215
+ - Keep all chrome — nav, header, footer, buttons, search input, headings — on the `#131518`–`#888` grayscale neutrals and reserve every hue for status payload
216
+ - Confine the five flag hues (`#F65C60` sale, `#F374B7` 오늘드림, `#9BCE26` coupon, `#6FCFF7` gift, `#F05A5E` best) to inside the thumbnail rectangle as 9px-radius status pills
217
+ - Map each flag color 1:1 to a single service fact (sale / same-day / coupon / gift / best) rather than to a marketing mood
218
+ - Encode interactive state with ink-darkening plus shape change — e.g. flip active pagination from transparent/`#888` radius-0 to `#2F3030`/`#FFF` 50% circle — not with hue
219
+ - Keep the Korean fallback chain ending at `dotum / 돋움` to preserve rendering for older Windows/macOS Korean readers
220
+ - Write CTAs as factual `하기`-verb labels like "장바구니 담기" and "찜하기" in casual-polite declarative tone, not imperative urgency copy
221
+
222
+ ### Don't
223
+ - Put any flag color or hue on a primary CTA or chrome surface — the filled CTA stays `#000000` background with `#FFFFFF` text
224
+ - Introduce a sixth status color for a "new" or extra badge — reuse one of the existing five flag roles or skip the chrome
225
+ - Add hover lift, shadow gain, or drop shadows to tiles, chips, or pills — depth in this system stays line-only and state is static-encoded
226
+ - Spread Olive Green or the coupon lime `#9BCE26` across chrome or large backgrounds — corporate olive is absent from the storefront and the lime lives only in the coupon flag
227
+ - Prune the Korean fallback chain down to system-ui only, dropping the deliberate `돋움` legacy-OS support floor
228
+ - Reproduce verbatim Olive Young marketing taglines or write hard-sell copy like "지금 안 사면 손해예요" — copy works as neutral labels and offers
229
+
211
230
  ---
212
231
 
213
232
  **Verified:** 2026-05-15