oh-my-design-cli 1.8.6 → 1.9.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 (275) hide show
  1. package/.claude/hooks/lib/preferences-parser.cjs +1 -0
  2. package/.claude/hooks/lib/preferences-writer.cjs +1 -0
  3. package/.claude/hooks/post-edit-watch.cjs +1 -0
  4. package/.claude/hooks/session-end-foldin.cjs +1 -0
  5. package/.claude/hooks/session-state-loader.cjs +1 -0
  6. package/.claude/hooks/skill-activation.cjs +1 -0
  7. package/.claude/settings.json +10 -1
  8. package/.github/assets/logo-bg.png +0 -0
  9. package/AGENTS.md +20 -1
  10. package/CHANGELOG.md +482 -0
  11. package/MIGRATION.md +103 -0
  12. package/README.ja.md +56 -19
  13. package/README.ko.md +47 -30
  14. package/README.md +48 -30
  15. package/README.zh-TW.md +59 -22
  16. package/agents/AGENT.md +8 -7
  17. package/agents/omd-codex-image.md +1 -1
  18. package/agents/omd-critic.md +6 -7
  19. package/agents/omd-designer-review.md +1 -1
  20. package/agents/omd-final-qa.md +1 -1
  21. package/agents/omd-humanizer.md +38 -0
  22. package/agents/omd-kr-writer.md +3 -4
  23. package/agents/omd-locale-adapter.md +12 -16
  24. package/agents/omd-master.md +24 -19
  25. package/agents/omd-microcopy.md +1 -1
  26. package/agents/omd-orchestrator.md +7 -8
  27. package/agents/omd-slop-auditor.md +31 -0
  28. package/agents/omd-ux-researcher.md +1 -1
  29. package/data/reference-fingerprints.json +2761 -85
  30. package/dist/bin/oh-my-design.js +16 -8
  31. package/dist/bin/oh-my-design.js.map +1 -1
  32. package/dist/chunk-UJIHCEYF.js +99 -0
  33. package/dist/chunk-UJIHCEYF.js.map +1 -0
  34. package/dist/doctor-LDWSFM3I.js +763 -0
  35. package/dist/doctor-LDWSFM3I.js.map +1 -0
  36. package/dist/install-skills-ZZFNJ2II.js +1120 -0
  37. package/dist/install-skills-ZZFNJ2II.js.map +1 -0
  38. package/docs/CLI_QUICKSTART.md +157 -0
  39. package/package.json +25 -4
  40. package/scripts/postinstall.cjs +5 -4
  41. package/skills/claude-design/SKILL.md +38 -14
  42. package/skills/claude-design/references/claude-design-flow.md +11 -11
  43. package/skills/claude-design/references/codebase-analysis.md +5 -4
  44. package/skills/omd-final-qa/SKILL.md +1 -1
  45. package/skills/omd-harness/SKILL.md +51 -50
  46. package/skills/omd-humanize/SKILL.md +116 -0
  47. package/skills/omd-humanize/agents/openai.yaml +4 -0
  48. package/skills/omd-humanize/references/locale-playbooks.md +102 -0
  49. package/skills/omd-humanize/references/sources.md +11 -0
  50. package/skills/omd-init/SKILL.md +18 -12
  51. package/skills/omd-locale-adapter/SKILL.md +58 -91
  52. package/skills/omd-orchestrator/SKILL.md +11 -5
  53. package/skills/omd-reference-capture/SKILL.md +80 -26
  54. package/skills/omd-reference-capture/scripts/PLAYWRIGHT-LICENSE.txt +202 -0
  55. package/skills/omd-reference-capture/scripts/PLAYWRIGHT-NOTICE.txt +5 -0
  56. package/skills/omd-reference-capture/scripts/THIRD_PARTY_NOTICES.md +3 -0
  57. package/skills/omd-reference-capture/scripts/capture-reference-evidence.mjs +159906 -0
  58. package/skills/omd-slop-audit/SKILL.md +110 -0
  59. package/skills/omd-slop-audit/agents/openai.yaml +4 -0
  60. package/skills/omd-slop-audit/references/pattern-catalog.md +96 -0
  61. package/skills/omd-slop-audit/references/sources.md +24 -0
  62. package/web/references/104/DESIGN.md +354 -0
  63. package/web/references/11st/DESIGN.md +197 -316
  64. package/web/references/29cm/DESIGN.md +297 -393
  65. package/web/references/42dot/DESIGN.md +390 -0
  66. package/web/references/8percent/DESIGN.md +438 -0
  67. package/web/references/ably/DESIGN.md +267 -572
  68. package/web/references/acer/DESIGN.md +329 -0
  69. package/web/references/airbnb/DESIGN.md +219 -557
  70. package/web/references/airbridge/DESIGN.md +451 -0
  71. package/web/references/alipay/DESIGN.md +179 -420
  72. package/web/references/apple/DESIGN.md +224 -498
  73. package/web/references/asleep/DESIGN.md +402 -0
  74. package/web/references/au/DESIGN.md +334 -0
  75. package/web/references/autopedia/DESIGN.md +382 -0
  76. package/web/references/aws-cloudscape/DESIGN.md +241 -0
  77. package/web/references/baemin/DESIGN.md +332 -491
  78. package/web/references/banksalad/DESIGN.md +269 -180
  79. package/web/references/barogo/DESIGN.md +416 -0
  80. package/web/references/beusable/DESIGN.md +464 -0
  81. package/web/references/bigin/DESIGN.md +454 -0
  82. package/web/references/bilibili/DESIGN.md +206 -374
  83. package/web/references/bmw/DESIGN.md +162 -276
  84. package/web/references/brandi/DESIGN.md +184 -325
  85. package/web/references/buzzvil/DESIGN.md +457 -0
  86. package/web/references/cafe24/DESIGN.md +472 -0
  87. package/web/references/catchtable/DESIGN.md +219 -264
  88. package/web/references/cgv/DESIGN.md +317 -0
  89. package/web/references/channeltalk/DESIGN.md +210 -336
  90. package/web/references/china-airlines/DESIGN.md +291 -0
  91. package/web/references/cjonstyle/DESIGN.md +453 -0
  92. package/web/references/class101/DESIGN.md +168 -387
  93. package/web/references/classum/DESIGN.md +228 -203
  94. package/web/references/claude/DESIGN.md +242 -479
  95. package/web/references/clay/DESIGN.md +179 -377
  96. package/web/references/clickhouse/DESIGN.md +254 -343
  97. package/web/references/codeit/DESIGN.md +470 -0
  98. package/web/references/cohere/DESIGN.md +214 -324
  99. package/web/references/coinone/DESIGN.md +199 -179
  100. package/web/references/corca/DESIGN.md +414 -0
  101. package/web/references/coupang/DESIGN.md +205 -475
  102. package/web/references/cursor/DESIGN.md +240 -381
  103. package/web/references/dabang/DESIGN.md +248 -213
  104. package/web/references/dable/DESIGN.md +431 -0
  105. package/web/references/datarize/DESIGN.md +338 -0
  106. package/web/references/dealicious/DESIGN.md +402 -0
  107. package/web/references/drdiary/DESIGN.md +404 -0
  108. package/web/references/elastic/DESIGN.md +238 -0
  109. package/web/references/elevenlabs/DESIGN.md +183 -321
  110. package/web/references/elice/DESIGN.md +445 -0
  111. package/web/references/eslite/DESIGN.md +257 -0
  112. package/web/references/evaair/DESIGN.md +338 -0
  113. package/web/references/expo/DESIGN.md +238 -331
  114. package/web/references/familymart-tw/DESIGN.md +254 -0
  115. package/web/references/ferrari/DESIGN.md +160 -377
  116. package/web/references/figma/DESIGN.md +197 -451
  117. package/web/references/fitpet/DESIGN.md +445 -0
  118. package/web/references/flex/DESIGN.md +170 -253
  119. package/web/references/framer/DESIGN.md +197 -340
  120. package/web/references/freee/DESIGN.md +211 -533
  121. package/web/references/friendliai/DESIGN.md +431 -0
  122. package/web/references/frip/DESIGN.md +440 -0
  123. package/web/references/furiosaai/DESIGN.md +450 -0
  124. package/web/references/gangnamunni/DESIGN.md +154 -591
  125. package/web/references/gaudiolab/DESIGN.md +414 -0
  126. package/web/references/google/DESIGN.md +290 -398
  127. package/web/references/goorm/DESIGN.md +470 -0
  128. package/web/references/greencar/DESIGN.md +420 -0
  129. package/web/references/hackle/DESIGN.md +472 -0
  130. package/web/references/hashicorp/DESIGN.md +273 -318
  131. package/web/references/heydealer/DESIGN.md +429 -0
  132. package/web/references/humanscape/DESIGN.md +433 -0
  133. package/web/references/hwahae/DESIGN.md +453 -0
  134. package/web/references/hyundai/DESIGN.md +158 -368
  135. package/web/references/hyundaicard/DESIGN.md +171 -121
  136. package/web/references/ibm/DESIGN.md +227 -378
  137. package/web/references/idus/DESIGN.md +450 -0
  138. package/web/references/igaworks/DESIGN.md +437 -0
  139. package/web/references/inflearn/DESIGN.md +221 -366
  140. package/web/references/intuit/DESIGN.md +244 -0
  141. package/web/references/jandi/DESIGN.md +191 -291
  142. package/web/references/jobplanet/DESIGN.md +415 -0
  143. package/web/references/kakao/DESIGN.md +287 -475
  144. package/web/references/kakaobank/DESIGN.md +220 -521
  145. package/web/references/kakaogames/DESIGN.md +220 -0
  146. package/web/references/kakaopay/DESIGN.md +207 -526
  147. package/web/references/karrot/DESIGN.md +227 -251
  148. package/web/references/kb-kookmin/DESIGN.md +308 -0
  149. package/web/references/kbank/DESIGN.md +220 -175
  150. package/web/references/kcd/DESIGN.md +432 -0
  151. package/web/references/kmong/DESIGN.md +281 -356
  152. package/web/references/krds/DESIGN.md +245 -19
  153. package/web/references/kream/DESIGN.md +224 -359
  154. package/web/references/kurly/DESIGN.md +211 -533
  155. package/web/references/kyobobook/DESIGN.md +445 -0
  156. package/web/references/lablup/DESIGN.md +474 -0
  157. package/web/references/lamborghini/DESIGN.md +198 -360
  158. package/web/references/lemonbase/DESIGN.md +452 -0
  159. package/web/references/lguplus/DESIGN.md +259 -0
  160. package/web/references/likelion/DESIGN.md +283 -0
  161. package/web/references/line/DESIGN.md +396 -355
  162. package/web/references/linear.app/DESIGN.md +209 -562
  163. package/web/references/lotteon/DESIGN.md +386 -0
  164. package/web/references/lovable/DESIGN.md +255 -349
  165. package/web/references/makinarocks/DESIGN.md +242 -0
  166. package/web/references/maum-ai/DESIGN.md +423 -0
  167. package/web/references/medibloc/DESIGN.md +425 -0
  168. package/web/references/megabox/DESIGN.md +232 -0
  169. package/web/references/mercari/DESIGN.md +217 -434
  170. package/web/references/microsoft/DESIGN.md +234 -388
  171. package/web/references/mildang/DESIGN.md +411 -0
  172. package/web/references/millie/DESIGN.md +183 -504
  173. package/web/references/minimax/DESIGN.md +264 -322
  174. package/web/references/miricanvas/DESIGN.md +182 -355
  175. package/web/references/miro/DESIGN.md +234 -232
  176. package/web/references/mistral.ai/DESIGN.md +231 -314
  177. package/web/references/mixi/DESIGN.md +234 -0
  178. package/web/references/moin/DESIGN.md +445 -0
  179. package/web/references/mongodb/DESIGN.md +219 -316
  180. package/web/references/moreh/DESIGN.md +437 -0
  181. package/web/references/musinsa/DESIGN.md +184 -510
  182. package/web/references/mynavi/DESIGN.md +242 -0
  183. package/web/references/myrealtrip/DESIGN.md +169 -406
  184. package/web/references/naver/DESIGN.md +328 -499
  185. package/web/references/naverwebtoon/DESIGN.md +172 -395
  186. package/web/references/neosapience/DESIGN.md +441 -0
  187. package/web/references/nhn/DESIGN.md +169 -346
  188. package/web/references/nhncloud/DESIGN.md +185 -123
  189. package/web/references/nota/DESIGN.md +451 -0
  190. package/web/references/notion/DESIGN.md +271 -475
  191. package/web/references/nrise/DESIGN.md +417 -0
  192. package/web/references/ohouse/DESIGN.md +210 -549
  193. package/web/references/oliveyoung/DESIGN.md +217 -326
  194. package/web/references/ollama/DESIGN.md +241 -308
  195. package/web/references/onestore/DESIGN.md +248 -0
  196. package/web/references/palantir/DESIGN.md +256 -0
  197. package/web/references/panasonic/DESIGN.md +276 -0
  198. package/web/references/patternfly/DESIGN.md +259 -0
  199. package/web/references/payhere/DESIGN.md +438 -0
  200. package/web/references/pega/DESIGN.md +262 -0
  201. package/web/references/peoplefund/DESIGN.md +431 -0
  202. package/web/references/petfriends/DESIGN.md +428 -0
  203. package/web/references/pinkfong/DESIGN.md +199 -367
  204. package/web/references/pinterest/DESIGN.md +258 -308
  205. package/web/references/portone/DESIGN.md +446 -0
  206. package/web/references/poya/DESIGN.md +286 -0
  207. package/web/references/pozalabs/DESIGN.md +438 -0
  208. package/web/references/protopie/DESIGN.md +419 -0
  209. package/web/references/qraft/DESIGN.md +448 -0
  210. package/web/references/queenit/DESIGN.md +432 -0
  211. package/web/references/quotabook/DESIGN.md +449 -0
  212. package/web/references/rebellions/DESIGN.md +449 -0
  213. package/web/references/recruit/DESIGN.md +247 -0
  214. package/web/references/remember/DESIGN.md +202 -396
  215. package/web/references/resend/DESIGN.md +274 -348
  216. package/web/references/returnzero/DESIGN.md +460 -0
  217. package/web/references/sakura-internet/DESIGN.md +269 -0
  218. package/web/references/samsung/DESIGN.md +157 -359
  219. package/web/references/sandoll/DESIGN.md +445 -0
  220. package/web/references/sanity/DESIGN.md +241 -375
  221. package/web/references/saramin/DESIGN.md +465 -0
  222. package/web/references/scatterlab/DESIGN.md +412 -0
  223. package/web/references/selectstar/DESIGN.md +439 -0
  224. package/web/references/servicenow/DESIGN.md +289 -0
  225. package/web/references/shiftee/DESIGN.md +468 -0
  226. package/web/references/shinhanbank/DESIGN.md +161 -341
  227. package/web/references/shinhancard/DESIGN.md +208 -319
  228. package/web/references/sionic/DESIGN.md +454 -0
  229. package/web/references/sktelecom/DESIGN.md +310 -0
  230. package/web/references/socar/DESIGN.md +125 -32
  231. package/web/references/softbank/DESIGN.md +231 -0
  232. package/web/references/solapi/DESIGN.md +483 -0
  233. package/web/references/sony/DESIGN.md +234 -0
  234. package/web/references/soop/DESIGN.md +261 -0
  235. package/web/references/spacex/DESIGN.md +184 -323
  236. package/web/references/spotify/DESIGN.md +253 -394
  237. package/web/references/squeezebits/DESIGN.md +441 -0
  238. package/web/references/stayfolio/DESIGN.md +422 -0
  239. package/web/references/stripe/DESIGN.md +212 -491
  240. package/web/references/supabase/DESIGN.md +244 -316
  241. package/web/references/supertone/DESIGN.md +413 -0
  242. package/web/references/tabling/DESIGN.md +415 -0
  243. package/web/references/taishinbank/DESIGN.md +243 -0
  244. package/web/references/teamlab/DESIGN.md +240 -0
  245. package/web/references/teamsparta/DESIGN.md +472 -0
  246. package/web/references/tellingme/DESIGN.md +392 -0
  247. package/web/references/tesla/DESIGN.md +244 -427
  248. package/web/references/thsr/DESIGN.md +284 -0
  249. package/web/references/thumbtack/DESIGN.md +302 -0
  250. package/web/references/together.ai/DESIGN.md +257 -304
  251. package/web/references/toss/DESIGN.md +251 -593
  252. package/web/references/toss-securities/DESIGN.md +255 -178
  253. package/web/references/tossbank/DESIGN.md +195 -491
  254. package/web/references/toyota/DESIGN.md +238 -0
  255. package/web/references/tving/DESIGN.md +197 -245
  256. package/web/references/typed/DESIGN.md +413 -0
  257. package/web/references/uber/DESIGN.md +256 -333
  258. package/web/references/udn/DESIGN.md +250 -0
  259. package/web/references/upbit/DESIGN.md +145 -256
  260. package/web/references/upstage/DESIGN.md +211 -204
  261. package/web/references/uswds/DESIGN.md +287 -0
  262. package/web/references/vercel/DESIGN.md +236 -440
  263. package/web/references/vuno/DESIGN.md +413 -0
  264. package/web/references/wanted/DESIGN.md +215 -487
  265. package/web/references/weverse/DESIGN.md +437 -0
  266. package/web/references/wise/DESIGN.md +223 -231
  267. package/web/references/wisetracker/DESIGN.md +462 -0
  268. package/web/references/wooribank/DESIGN.md +245 -0
  269. package/web/references/yanolja/DESIGN.md +250 -419
  270. package/web/references/yeogiotte/DESIGN.md +235 -418
  271. package/web/references/zapier/DESIGN.md +256 -377
  272. package/web/references/zendesk/DESIGN.md +288 -0
  273. package/web/references/zigzag/DESIGN.md +200 -621
  274. package/dist/install-skills-7UUDOLG2.js +0 -734
  275. package/dist/install-skills-7UUDOLG2.js.map +0 -1
@@ -8,575 +8,404 @@ primary_color: "#03c75a"
8
8
  logo:
9
9
  type: simpleicons
10
10
  slug: naver
11
- verified: "2026-05-15"
11
+ verified: "2026-07-11"
12
12
  omd: "0.1"
13
13
  ds:
14
14
  name: NAVER Brand Resource
15
- url: "https://www.navercorp.com/en/company/brandGuide"
15
+ url: "https://www.navercorp.com/company/brandGuide"
16
16
  type: brand
17
- description: "NAVER Corp's official brand guide logo usage, NAVER Green #03C75A, and identity rules."
18
- og_image: "https://www.navercorp.com/img/og/OG_TAG_1_Main.png"
17
+ description: "Official NAVER logo, color, and usage guidance; it is not a public product design system."
18
+ verification_v2:
19
+ schema: 2
20
+ checked: "2026-07-11"
21
+ surfaces:
22
+ - { id: portal-home, kind: product, url: "https://www.naver.com/", inspected: "2026-07-11" }
23
+ - { id: search-results, kind: product, url: "https://search.naver.com/search.naver?query=%EB%94%94%EC%9E%90%EC%9D%B8", inspected: "2026-07-11" }
24
+ - { id: corporate-brand, kind: brand, url: "https://www.navercorp.com/company/brandGuide", inspected: "2026-07-11" }
25
+ sources:
26
+ - { id: portal-live, kind: product-surface, url: "https://www.naver.com/", captured: "2026-07-11" }
27
+ - { id: search-live, kind: product-surface, url: "https://search.naver.com/search.naver?query=%EB%94%94%EC%9E%90%EC%9D%B8", captured: "2026-07-11" }
28
+ - { id: brand-live, kind: product-surface, url: "https://www.navercorp.com/company/brandGuide", captured: "2026-07-11" }
29
+ - { id: brand-guide, kind: official-doc, url: "https://www.navercorp.com/company/brandGuide", captured: "2026-07-11" }
30
+ - { id: company-about, kind: official-doc, url: "https://www.navercorp.com/company/about", captured: "2026-07-11" }
31
+ claims:
32
+ "tokens.colors.brand": &brand_doc { surface_id: corporate-brand, source_id: brand-guide, method: official-doc, captured: "2026-07-11" }
33
+ "tokens.colors.canvas": &portal_style { surface_id: portal-home, source_id: portal-live, method: computed-style, captured: "2026-07-11" }
34
+ "tokens.colors.portal-ink": *portal_style
35
+ "tokens.colors.search-ink": &search_style { surface_id: search-results, source_id: search-live, method: computed-style, captured: "2026-07-11" }
36
+ "tokens.colors.search-link": *search_style
37
+ "tokens.colors.search-muted": *search_style
38
+ "tokens.colors.hairline": *search_style
39
+ "tokens.colors.corporate-ink": &brand_style { surface_id: corporate-brand, source_id: brand-live, method: computed-style, captured: "2026-07-11" }
40
+ "tokens.colors.corporate-muted": *brand_style
41
+ "tokens.typography.family.portal": *portal_style
42
+ "tokens.typography.family.corporate": *brand_style
43
+ "tokens.typography.portal-search.size": *portal_style
44
+ "tokens.typography.portal-search.weight": *portal_style
45
+ "tokens.typography.portal-search.lineHeight": *portal_style
46
+ "tokens.typography.portal-search.tracking": *portal_style
47
+ "tokens.typography.portal-ui.size": *portal_style
48
+ "tokens.typography.portal-ui.weight": *portal_style
49
+ "tokens.typography.portal-ui.lineHeight": *portal_style
50
+ "tokens.typography.portal-ui.tracking": *portal_style
51
+ "tokens.typography.search-tab.size": *search_style
52
+ "tokens.typography.search-tab.weight": *search_style
53
+ "tokens.typography.search-tab.lineHeight": *search_style
54
+ "tokens.typography.search-tab.tracking": *search_style
55
+ "tokens.typography.search-title.size": *search_style
56
+ "tokens.typography.search-title.weight": *search_style
57
+ "tokens.typography.search-title.lineHeight": *search_style
58
+ "tokens.typography.search-title.tracking": *search_style
59
+ "tokens.typography.corporate-tab.size": *brand_style
60
+ "tokens.typography.corporate-tab.weight": *brand_style
61
+ "tokens.typography.corporate-tab.lineHeight": *brand_style
62
+ "tokens.typography.corporate-tab.tracking": *brand_style
63
+ "tokens.spacing.xs": *search_style
64
+ "tokens.spacing.sm": *portal_style
65
+ "tokens.spacing.md": *search_style
66
+ "tokens.spacing.lg": *portal_style
67
+ "tokens.spacing.xl": *search_style
68
+ "tokens.rounded.sm": *portal_style
69
+ "tokens.rounded.md": *search_style
70
+ "tokens.rounded.lg": *search_style
71
+ "tokens.rounded.full": *portal_style
72
+ "tokens.components.search-input.type": &portal_search { surface_id: portal-home, source_id: portal-live, method: computed-style, captured: "2026-07-11" }
73
+ "tokens.components.search-input.bg": *portal_search
74
+ "tokens.components.search-input.fg": *portal_search
75
+ "tokens.components.search-input.radius": *portal_search
76
+ "tokens.components.search-input.height": *portal_search
77
+ "tokens.components.search-input.padding": *portal_search
78
+ "tokens.components.search-input.font": *portal_search
79
+ "tokens.components.search-input.states": *portal_search
80
+ "tokens.components.search-input.use": *portal_search
81
+ "tokens.components.search-submit.type": *portal_search
82
+ "tokens.components.search-submit.bg": *portal_search
83
+ "tokens.components.search-submit.fg": *portal_search
84
+ "tokens.components.search-submit.radius": *portal_search
85
+ "tokens.components.search-submit.height": *portal_search
86
+ "tokens.components.search-submit.padding": *portal_search
87
+ "tokens.components.search-submit.states": *portal_search
88
+ "tokens.components.search-submit.use": *portal_search
89
+ "tokens.components.serp-tab.type": &serp_component { surface_id: search-results, source_id: search-live, method: computed-style, captured: "2026-07-11" }
90
+ "tokens.components.serp-tab.bg": *serp_component
91
+ "tokens.components.serp-tab.fg": *serp_component
92
+ "tokens.components.serp-tab.radius": *serp_component
93
+ "tokens.components.serp-tab.padding": *serp_component
94
+ "tokens.components.serp-tab.font": *serp_component
95
+ "tokens.components.serp-tab.states": *serp_component
96
+ "tokens.components.serp-tab.use": *serp_component
97
+ "tokens.components.filter-chip.type": *serp_component
98
+ "tokens.components.filter-chip.bg": *serp_component
99
+ "tokens.components.filter-chip.fg": *serp_component
100
+ "tokens.components.filter-chip.border": *serp_component
101
+ "tokens.components.filter-chip.radius": *serp_component
102
+ "tokens.components.filter-chip.padding": *serp_component
103
+ "tokens.components.filter-chip.font": *serp_component
104
+ "tokens.components.filter-chip.use": *serp_component
105
+ "tokens.components.result-card.type": *serp_component
106
+ "tokens.components.result-card.bg": *serp_component
107
+ "tokens.components.result-card.fg": *serp_component
108
+ "tokens.components.result-card.radius": *serp_component
109
+ "tokens.components.result-card.use": *serp_component
110
+ "tokens.components.paging-button.type": *portal_search
111
+ "tokens.components.paging-button.bg": *portal_search
112
+ "tokens.components.paging-button.fg": *portal_search
113
+ "tokens.components.paging-button.border": *portal_search
114
+ "tokens.components.paging-button.radius": *portal_search
115
+ "tokens.components.paging-button.height": *portal_search
116
+ "tokens.components.paging-button.shadow": *portal_search
117
+ "tokens.components.paging-button.states": *portal_search
118
+ "tokens.components.paging-button.use": *portal_search
119
+ "tokens.components.corporate-tab.type": &corporate_component { surface_id: corporate-brand, source_id: brand-live, method: computed-style, captured: "2026-07-11" }
120
+ "tokens.components.corporate-tab.bg": *corporate_component
121
+ "tokens.components.corporate-tab.fg": *corporate_component
122
+ "tokens.components.corporate-tab.radius": *corporate_component
123
+ "tokens.components.corporate-tab.padding": *corporate_component
124
+ "tokens.components.corporate-tab.font": *corporate_component
125
+ "tokens.components.corporate-tab.states": *corporate_component
126
+ "tokens.components.corporate-tab.use": *corporate_component
127
+ "tokens.components.portal-menu.type": *portal_search
128
+ "tokens.components.portal-menu.bg": *portal_search
129
+ "tokens.components.portal-menu.fg": *portal_search
130
+ "tokens.components.portal-menu.font": *portal_search
131
+ "tokens.components.portal-menu.states": *portal_search
132
+ "tokens.components.portal-menu.use": *portal_search
133
+ conflicts: []
19
134
  tokens:
20
- source: prose-derived
21
- extracted: "2026-06-09"
135
+ source: reconciled
136
+ extracted: "2026-07-11"
137
+ note: "Portal/search and NAVER Corp brand surfaces are separate domains. System is the live portal/search family; InterVariable is loaded on the corporate brand page. Declared-only Naver fonts are not promoted."
22
138
  colors:
23
- primary: "#03c75a"
24
- primary-hover: "#02b350"
25
- primary-active: "#02a046"
26
139
  brand: "#03c75a"
27
140
  canvas: "#ffffff"
28
- surface: "#f5f6f7"
29
- foreground: "#333333"
30
- muted: "#767676"
31
- on-primary: "#ffffff"
32
- hairline: "#dadce0"
33
- border-subtle: "#e9ebee"
34
- accent-link: "#0068c3"
35
- accent-visited: "#6633b9"
36
- error: "#e74c3c"
37
- warning: "#f5a623"
38
- secondary-text: "#5f6368"
141
+ portal-ink: "#2e2e2e"
142
+ search-ink: "#1c1c1c"
143
+ search-link: "#0c43b7"
144
+ search-muted: "#8c8c8c"
145
+ hairline: "#e5e5e5"
146
+ corporate-ink: "#1a1d24"
147
+ corporate-muted: "#717680"
39
148
  typography:
40
- family: { sans: "Apple SD Gothic Neo", mono: "D2Coding" }
41
- display: { size: 32, weight: 700, lineHeight: 1.38, use: "Brand campaign hero, editorial titles" }
42
- page-title: { size: 22, weight: 700, lineHeight: 1.36, use: "Section headers on portal/SERP" }
43
- card-title: { size: 17, weight: 700, lineHeight: 1.41, use: "News headlines, shopping card titles" }
44
- body-lg: { size: 17, weight: 400, lineHeight: 1.62, tracking: -0.34, use: "Search-result body, blog body" }
45
- body: { size: 14, weight: 400, lineHeight: 1.5, use: "Standard list rows" }
46
- body-small: { size: 13, weight: 400, lineHeight: 1.38, use: "Secondary metadata, attributions" }
47
- caption: { size: 12, weight: 400, lineHeight: 1.33, use: "Timestamps, source bylines" }
48
- spacing: [4, 8, 12, 16, 20, 24, 32, 40, 48, 56, 64]
49
- rounded: { sm: 4, md: 8, lg: 16, full: 9999 }
50
- shadow:
51
- subtle: "0 1px 2px rgba(0,0,0,0.06)"
52
- standard: "0 2px 8px rgba(0,0,0,0.1)"
53
- prominent: "0 4px 16px rgba(0,0,0,0.12)"
149
+ family:
150
+ portal: "System"
151
+ corporate: "InterVariable"
152
+ portal-search: { size: 21, weight: 700, lineHeight: "24px", tracking: "-0.4px" }
153
+ portal-ui: { size: 14.7, weight: 500, lineHeight: "17.85px", tracking: "-0.4px" }
154
+ search-tab: { size: 16, weight: 600, lineHeight: "21px", tracking: "-0.3px" }
155
+ search-title: { size: 18, weight: 600, lineHeight: "24px", tracking: "-0.16px" }
156
+ corporate-tab: { size: 20, weight: 600, lineHeight: "28px", tracking: "-0.6px" }
157
+ spacing: { xs: 4, sm: 8, md: 12, lg: 16, xl: 20 }
158
+ rounded: { sm: 4, md: 8, lg: 12, full: 9999 }
54
159
  components_harvested: true
55
160
  components:
56
- button-primary: { type: button, bg: "#03c75a", fg: "#ffffff", radius: "4px", height: "48px", font: "16px / 700", states: "hover #02b350, pressed #02a046, disabled #dadce0", use: "Primary action CTA" }
57
- button-secondary: { type: button, bg: "#ffffff", fg: "#333333", border: "1px solid #dadce0", radius: "4px", states: "hover #f5f6f7", use: "취소, 닫기, secondary action" }
58
- button-ghost: { type: button, bg: "transparent", fg: "#03c75a", padding: "8px 12px", font: "14px / 500", use: "더보기, 전체보기 expand affordance" }
59
- chip: { type: badge, bg: "#f5f6f7", fg: "#333333", radius: "9999px", height: "32px", padding: "0 14px", active: "bg #03c75a, fg #ffffff", use: "Search refinement / category chip" }
60
- input-search: { type: input, bg: "#ffffff", fg: "#333333", border: "2px solid #03c75a", height: "56px", padding: "0 56px 0 16px", font: "17px / 400", use: "The 녹색창 treat as a logo" }
61
- input: { type: input, bg: "#ffffff", border: "1px solid #dadce0", radius: "4px", height: "40px", padding: "0 12px", focus: "2px solid #03c75a", use: "Standard text input" }
62
- card-news: { type: card, bg: "#ffffff", border: "1px solid #e9ebee", radius: "4px", padding: "16px", use: "News / headline card" }
63
- card-shopping: { type: card, bg: "#ffffff", border: "1px solid #e9ebee", radius: "8px", use: "Shopping / 가격비교 grid item" }
64
- tile: { type: card, bg: "#ffffff", radius: "16px", padding: "16px", shadow: "0 1px 2px rgba(0,0,0,0.06) on hover", use: "Service tile (서비스 바로가기)" }
65
- badge-ad: { type: badge, bg: "#ffffff", fg: "#03c75a", border: "1px solid #03c75a", radius: "2px", use: "광고 ad label" }
66
- tab: { type: tab, fg: "#5f6368", font: "16px / 400", active: "fg #03c75a, weight 700, 3px green underline", use: "SERP vertical tabs" }
67
- toast: { type: toast, bg: "#333333", fg: "#ffffff", font: "14px / 400", use: "Login / save confirmation, 2.5s dismiss" }
161
+ search-input: { type: input, bg: "transparent", fg: "#000000", radius: "0px", height: "58px", padding: "17px 0", font: "21px / 700 / System", states: "focus and autocomplete listbox expansion observed", use: "Portal-home search query input inside the branded search assembly" }
162
+ search-submit: { type: button, bg: "transparent", fg: "#2e2e2e", radius: "0px", height: "58px", padding: "9px 9px 9px 10px", states: "default observed; hover and pressed not retained", use: "Portal AI/search submit control" }
163
+ serp-tab: { type: tab, bg: "transparent", fg: "#8c8c8c", radius: "0px", padding: "6px 12px 14px", font: "16px / 600 / System", states: "default #8c8c8c; hover and pressed #595959", use: "Search-result vertical navigation" }
164
+ filter-chip: { type: badge, bg: "#ffffff", fg: "#0c43b7", border: "1px solid #e5e5e5", radius: "18px", padding: "4px 12px 4px 4px", font: "13px / 400 / System", use: "Search-result image/filter chip" }
165
+ result-card: { type: card, bg: "#ffffff", fg: "#1c1c1c", radius: "12px", use: "Search-result grouped content card" }
166
+ paging-button: { type: button, bg: "#ffffff", fg: "#2e2e2e", border: "1px solid rgba(0,0,0,0.15)", radius: "9999px", height: "36px", shadow: "0 1px 2px rgba(0,0,0,0.06)", states: "default observed; hover and pressed not retained", use: "Portal carousel previous/next control" }
167
+ corporate-tab: { type: tab, bg: "transparent", fg: "#1a1d24", radius: "0px", padding: "17px 0 18px", font: "20px / 600 / InterVariable", states: "selected observed", use: "NAVER Corp brand-resource section switcher" }
168
+ portal-menu: { type: listItem, bg: "transparent", fg: "#2e2e2e", font: "14.7px / 500 / System", states: "expanded listbox and option observed", use: "Portal content-header overflow menu option" }
68
169
  ---
69
170
 
70
171
  # Design System Inspiration of Naver (네이버)
71
172
 
72
173
  ## 1. Visual Theme & Atmosphere
73
174
 
74
- Naver's interface is the digital equivalent of a Korean newsstand at 7am dense, utilitarian, search-first, and engineered to surface "the next thing you wanted to do" with one click. The page opens on pure white (`#ffffff`) with a single decisive accent: **Naver Green `#03C75A`** a saturated, almost neon malachite that has become so synonymous with Korean internet that "녹색창" (the green window) is a generic noun for the search bar itself. Body text sits in achromatic grays (`#333` for headings, lighter grays for metadata), and the only sustained color a user encounters is the green border that frames the search input.
175
+ NAVER is a Korean search and discovery platform whose public identity spans the portal home, search results, and a much broader family of local services. Its familiar green is the stable connective tissue, while each product surface optimizes independently for dense information retrieval, quick navigation, and local task completion. NAVER does not expose one public product design system that governs every service, so this reference deliberately separates three inspected domains: the portal home, search results, and the NAVER Corp brand-resource page. That separation preserves the recognizable company identity without turning a corporate font, a search-only pattern, or a portal measurement into a universal product rule.
75
176
 
76
- Naver does not chase the design-system-as-art-piece aesthetics of Apple or Stripe. The portal is intentionally information-dense: news headlines, shopping shortcuts, weather, stock indices, and service tiles all coexist above the fold, on the assumption that the user came to *do something*, not to admire a layout. Where Toss strips the screen to one task and Karrot keeps content warm and conversational, Naver fills the viewport — and trusts that a 26-year-old habit of pressing **녹색창** will guide the eye through the density. Typography defaults to the platform's native Korean sans (Apple SD Gothic Neo on macOS/iOS, Malgun Gothic on Windows), with Naver's own published faces (Naver Maru Buri for editorial, D2 Coding for developer surfaces, Nanum family for general use) reserved for editorial brand moments.
177
+ The official identity constant is NAVER Green (`#03C75A`). Product chrome is otherwise neutral and information-dense. The portal/search surfaces use a System-first Korean stack, while the corporate brand page loads and visibly uses `InterVariable`. Values from one surface must not be silently generalized to the others.
77
178
 
78
- **Key Characteristics:**
79
- - Naver Green (`#03C75A`) as the singular brand accent — the "녹색창" identity is non-negotiable
80
- - Achromatic chrome (white background, gray text) so the green reads at maximum saturation
81
- - Search bar is the visual centerpiece — green-bordered, oversized, top-anchored
82
- - Information density over whitespace many services, many headlines, one viewport
83
- - Native Korean font stack (Apple SD Gothic Neo / Malgun Gothic) for body, with Naver-published faces for editorial
84
- - Logo uses solid gothic-style capitals in Naver Green — never gradient, never line-art, never recolored
85
- - Pantone 2270C / RGB 3,199,90 / CMYK 72-0-88-0 — official color spec across all media
179
+ **Key characteristics:**
180
+ - Official brand green `#03C75A`, backed by the NAVER brand guide
181
+ - Dense portal/search composition on white with dark gray text
182
+ - System-first portal/search typography
183
+ - `InterVariable` on the corporate brand page
184
+ - Search, filters, tabs, cards, menus, and paging controls grounded in live computed evidence
86
185
 
87
186
  ## 2. Color Palette & Roles
88
187
 
89
- ### Primary
90
- - **Naver Green** (`#03C75A`): Pantone 2270C / RGB(3, 199, 90) / CMYK(72, 0, 88, 0). The brand-defining color logo, search-bar border, primary CTA, active-state indicators, "더보기" link accents. <!-- verified: navercorp.com/en/company/brandGuide, 2026-05 -->
91
- - **Pure White** (`#ffffff`): Page background, search input fill, card surfaces. The neutral canvas that lets `#03C75A` carry the entire brand load.
92
- - **Near Black / Heading Gray** (`#222222` ~ `#333333`): Primary heading and body text. Naver uses `#333` as the canonical body color rather than pure black — a faint warmth that reduces eye fatigue in dense feeds.
93
-
94
- ### Secondary / Service
95
- - **Search Link Blue** (`#0068c3`): Search-result title links, navigation accents on `search.naver.com`. The historical "blue link" convention preserved for utilitarian information density.
96
- - **Visited Purple** (`#6633b9`): Visited-link state on search results.
97
- - **Ad Label Green** (`#00a83e`): Slightly darker green used to mark sponsored/ad surfaces — distinguishable from brand green so users can see "이거 광고" at a glance.
98
-
99
- ### Neutral Scale
100
- - **Body Text** (`#333333`): Default body color, standard reading text.
101
- - **Secondary Text** (`#5f6368`): Source attributions, timestamps, secondary metadata.
102
- - **Caption Text** (`#767676`): Captions, fine print, breadcrumb separators.
103
- - **Disabled Text** (`#999999`): Disabled labels, placeholder fallback.
104
- - **Border Light** (`#dadce0`): Standard divider lines, card borders.
105
- - **Border Subtle** (`#e9ebee`): Section separators, list-row dividers.
106
- - **Background Fill** (`#f5f6f7`): Card backgrounds, alternate row surfaces.
107
- - **Background Dim** (`#fafafa`): Section bands, tertiary surfaces.
108
-
109
- ### Semantic
110
- - **Critical Red** (`#e74c3c`): Stock-down indicators, error states, breaking-news flags.
111
- - **Positive Green** (`#03C75A` reused as semantic positive — Naver does not branch a separate semantic green, the brand color itself carries "up/positive" meaning in finance widgets).
112
- - **Information Blue** (`#0068c3`): Informational links, neutral status.
113
- - **Warning Yellow** (`#f5a623`): Caution labels, non-blocking advisories.
114
-
115
- ### Brand-color usage discipline
116
- Naver Green appears on three roles only: (1) the brand mark itself, (2) the search-input border + search button, and (3) primary action accents (active tab underline, primary CTA backgrounds, "더보기" link color). It is never used as a hero background, never as a card fill, never tinted with opacity to "soften" — the brand book explicitly forbids gradient, line-rendering, color shift, and opacity adjustments on the green.
188
+ ### Official identity
189
+ - **NAVER Green** (`#03C75A`): official logo and identity color. The guide specifies RGB 3/199/90, CMYK 72/0/88/0, and Pantone 2270C.
190
+
191
+ ### Portal and search
192
+ - **Canvas** (`#FFFFFF`): portal and result surfaces.
193
+ - **Portal Ink** (`#2E2E2E`): common portal control and chrome text.
194
+ - **Search Ink** (`#1C1C1C`): primary search-result text.
195
+ - **Search Link** (`#0C43B7`): current search-result link/chip blue.
196
+ - **Search Muted** (`#8C8C8C`): inactive tabs and secondary labels.
197
+ - **Hairline** (`#E5E5E5`): filter-chip and light container border.
198
+
199
+ ### Corporate brand page
200
+ - **Corporate Ink** (`#1A1D24`): brand-page navigation and section labels.
201
+ - **Corporate Muted** (`#717680`): secondary corporate copy.
202
+
203
+ Do not promote older `#0068C3`, `#6633B9`, or estimated semantic colors as current universal NAVER tokens without surface-specific live evidence.
117
204
 
118
205
  ## 3. Typography Rules
119
206
 
120
- ### Font Family
121
- - **Primary (web body)**: `-apple-system, BlinkMacSystemFont, "Apple SD Gothic Neo", "Malgun Gothic", "맑은 고딕", "Helvetica Neue", Helvetica, Arial, "Nanum Gothic", sans-serif` — platform-native Korean sans by default. <!-- verified pattern: typical naver.com / search.naver.com surfaces, 2026-05 -->
122
- - **Editorial (Naver-published)**: `"Naver Maru Buri"` (마루부리체) — Naver's own serif/myeongjo-style face, used on editorial surfaces (long-form blog, brand campaigns, papers).
123
- - **Developer surfaces**: `"D2Coding"` — Naver's open-source monospace (SIL OFL), used in Naver D2 (developer portal) and code snippets. Released by Naver 2016, based on Nanum BarunGothic. <!-- verified: github.com/naver/d2codingfont, 2026-05 -->
124
- - **Public open-source family**: Nanum Gothic, Nanum Myeongjo, Nanum Square, Nanum Pen Naver's signature gift to the Korean web typography ecosystem, freely licensed and widely used outside Naver.
125
-
126
- ### Hierarchy
127
-
128
- | Role | Font | Size | Weight | Line Height | Notes |
129
- |------|------|------|--------|-------------|-------|
130
- | Display (campaign) | Maru Buri / System | 32px | 700 | 44px | Brand campaign hero, editorial titles |
131
- | Page Title | System | 22px | 700 | 30px | Section headers on portal/SERP |
132
- | Card Title | System | 17px | 700 | 24px | News headlines, shopping card titles |
133
- | Body Large | System | 17px | 400 | 27.6px | Search-result body, blog body — `letter-spacing: -0.34px` |
134
- | Body | System | 14px | 400 | 21px | Standard list rows, metadata-rich text |
135
- | Body Small | System | 13px | 400 | 18px | Secondary metadata, attributions |
136
- | Caption | System | 12px | 400 | 16px | Timestamps, source bylines, fine print |
137
- | Search Input | System | 17–20px | 400 | n/a | The 녹색창 input itself — large, readable, no weight |
138
-
139
- ### Principles
140
- - **Native first, brand fonts for editorial**: Body chrome uses the user's platform sans. Naver Maru Buri is reserved for editorial and brand moments — dropping it into list rows would feel mannered.
141
- - **Tight letter-spacing on Korean body**: `letter-spacing: -0.34px` on 17px body is canonical Naver Korean glyphs are visually wide, slight negative tracking improves rhythm.
142
- - **Three weights cover 95% of UI**: Regular (400), Medium (500), Bold (700). Light is reserved for very large editorial display only.
143
- - **Bold the headline, never the chrome**: Headlines in 700 to anchor the dense feed; navigation, tabs, and links stay in 400. The contrast itself is the typographic signal.
144
- - **Korean punctuation aware**: Use `「 」`, `『 』`, `·` (middle dot for KR enumerated lists) where appropriate; never substitute Western quotes mechanically.
207
+ ### Font resolution
208
+
209
+ | Evidence class | Resolution |
210
+ |---|---|
211
+ | Official product-use | No single official family is published for every NAVER product surface. |
212
+ | Live surface-use | Portal/search use a System-first stack; the corporate brand page visibly uses loaded `InterVariable`. |
213
+ | Official distributed asset | NAVER distributes Nanum and D2Coding, but distribution alone is not UI usage. |
214
+ | Declared-only | NanumSquare, NanumSquareNeo, NanumHuman, and Pretendard were declared without visible use. |
215
+ | Unresolved | A minority `나눔고딕` usage had no matching loaded FontFace. |
216
+
217
+ Specimen availability is evaluated per surface and never substitutes one NAVER-published font for another.
218
+ - **Portal and search:** `System`. Computed stacks begin with `-apple-system` and continue through Korean platform fallbacks.
219
+ - **Corporate brand page:** `InterVariable`, loaded from `https://www.navercorp.com/font/InterVariable.woff2` and visibly used.
220
+ - **Declared only in this capture:** NanumSquare, NanumSquareNeo, NanumHuman, and Pretendard. Declaration is not visible use.
221
+ - **Unresolved minority:** `나눔고딕` appeared on four search elements without a matching loaded FontFace.
222
+ - **No canonical UI monospace:** D2Coding is a NAVER-published font, not evidence that current portal/search UI uses it.
223
+
224
+ | Role | Surface | Font | Size | Weight | Line height | Tracking |
225
+ |---|---|---|---:|---:|---:|---:|
226
+ | Portal Search | Portal | System | 21px | 700 | 24px | -0.4px |
227
+ | Portal UI | Portal | System | 14.7px | 500 | 17.85px | -0.4px |
228
+ | Search Tab | Search | System | 16px | 600 | 21px | -0.3px |
229
+ | Search Title | Search | System | 18px | 600 | 24px | -0.16px |
230
+ | Corporate Tab | Brand resource | InterVariable | 20px | 600 | 28px | -0.6px |
145
231
 
146
232
  ## 4. Component Stylings
147
233
 
148
- ### Buttons
149
-
150
- **Primary CTA — Naver Green Solid**
151
- - Background: `#03C75A`
152
- - Text: `#ffffff`
153
- - Radius: 4px (default), 8px (large card CTA)
154
- - Min-height: 48px (large), 40px (medium), 32px (small)
155
- - Font: 16px weight 700 (large), 14px weight 700 (medium)
156
- - Hover: ~6% darken (`#02b350`)
157
- - Pressed: ~12% darken (`#02a046`)
158
- - Disabled: `#dadce0` background, `#999999` text
159
- - Use: 로그인, 검색, 회원가입, 결제하기 — primary action
160
-
161
- **Search Submit (Green Magnifier)**
162
- - Background: `#03C75A` (matches search-bar border)
163
- - Icon: white magnifier glyph
164
- - Width/Height: ~52px square (within green-bordered input)
165
- - Radius: 0 (sits flush inside the green-bordered search container)
166
- - Use: The `녹색창` submit button — never relabeled, never recolored
167
-
168
- **Secondary — Outline**
169
- - Background: `#ffffff`
170
- - Text: `#333333`
171
- - Border: 1px solid `#dadce0`
172
- - Radius: 4px
173
- - Hover: `#f5f6f7` background
174
- - Use: 취소, 닫기, 보조 액션
175
-
176
- **Ghost / Text-only "더보기"**
234
+ ### Portal Search
235
+
236
+ **Search Input**
177
237
  - Background: transparent
178
- - Text: `#03C75A` (or `#333333` for neutral surfaces)
179
- - Padding: 8px 12px
180
- - Font: 13–14px weight 500
181
- - Use: "더보기 →", "전체보기" — list-end expand affordances
182
-
183
- **Pill Quick Action**
184
- - Background: `#f5f6f7`
185
- - Text: `#333333`
186
- - Radius: 9999px
187
- - Height: 32px, padding 0 14px
188
- - Selected: `#03C75A` background, white text
189
- - Use: Search refinement chips, category quick-filter
190
-
191
- ### Inputs
192
-
193
- **Search Input The 녹색창**
194
- - Container: white `#ffffff` background, **2–3px solid `#03C75A` border** (the iconic green frame)
195
- - Border-radius: small (typically 0–4px on desktop SERP, slightly rounded on m.naver mobile portal)
196
- - Height: 50–58px on portal home; 44–48px on SERP top bar
197
- - Padding: 0 16px (left), 0 56px (right, leaving room for green submit button)
198
- - Font: 17–20px weight 400, color `#333333`, placeholder `#999999`
199
- - Inside-right: green submit button (see above) — the search button is *inside* the green frame, not after it
200
- - Use: The single most recognized search affordance in Korean internet. Treat it as a logo, not a form field.
201
-
202
- **Standard Text Input**
203
- - Background: `#ffffff`
204
- - Border: 1px solid `#dadce0`
205
- - Radius: 4px
206
- - Height: 40px (default), 48px (large form)
207
- - Padding: 0 12px
208
- - Focus: 2px solid `#03C75A` (focus ring uses brand green)
209
- - Error: 1px solid `#e74c3c` border, 13px red helper text below
210
- - Use: Login forms, profile fields, write-post forms
211
-
212
- **Textarea**
213
- - Same border + focus rules as text input
214
- - Min-height: 120px
215
- - Resizing: vertical only
216
-
217
- ### Cards
218
-
219
- **News / Headline Card**
220
- - Background: `#ffffff`
221
- - Border: 1px solid `#e9ebee` (or no border, divider-only)
222
- - Radius: 4–8px
223
- - Padding: 16px
224
- - Title: 17px weight 700 `#333333`, 2-line clamp
225
- - Source + time: 12px weight 400 `#767676`
226
- - Thumbnail: 16:9 or 4:3, 4px radius
227
- - Use: 뉴스, 연예, 스포츠 cards on portal home
228
-
229
- **Shopping Card**
230
- - Background: `#ffffff`
231
- - Border: 1px solid `#e9ebee`
232
- - Radius: 8px
233
- - Thumbnail: 1:1, 8px radius, top
234
- - Title: 14px weight 400 `#333333`, 2-line clamp
235
- - Price: 16px weight 700 `#333333`
236
- - Discount badge: red `#e74c3c` text or pill
237
- - Use: 쇼핑, 가격비교 grid items
238
-
239
- **Service Tile (서비스 바로가기)**
240
- - Background: `#ffffff` or `#f5f6f7` (subtle elevation)
241
- - Radius: 12–16px
242
- - Padding: 16–20px
243
- - Icon: 32–40px, brand-colored where applicable
244
- - Label: 13px weight 500 `#333333`, centered
245
- - Use: 메일 / 카페 / 블로그 / 지식iN / 쇼핑 tiles on portal home — the dense grid users scan in 1 second
246
-
247
- ### Badges & Chips
248
-
249
- **Category Chip**
250
- - Background: `#f5f6f7`
251
- - Text: `#333333` weight 400
238
+ - Text: `#000000`
239
+ - Radius: 0px
240
+ - Padding: 17px 0
241
+ - Height: 58px
242
+ - Font: 21px / 700 / System
243
+ - States: focus and autocomplete listbox expansion observed
244
+ - Use: Query field inside the portal's branded search assembly
245
+
246
+ **Search Submit**
247
+ - Background: transparent
248
+ - Text: `#2E2E2E`
249
+ - Radius: 0px
250
+ - Padding: 9px 9px 9px 10px
251
+ - Height: 58px
252
+ - States: default observed; hover and pressed not retained
253
+ - Use: AI/search submission control adjacent to the query field
254
+
255
+ ### Search Results
256
+
257
+ **Vertical Tab**
258
+ - Background: transparent
259
+ - Text: `#8C8C8C`
260
+ - Radius: 0px
261
+ - Padding: 6px 12px 14px
262
+ - Font: 16px / 600 / System
263
+ - Hover: `#595959`
264
+ - Pressed: `#595959`
265
+ - Use: Search vertical/category navigation
266
+
267
+ **Filter Chip**
268
+ - Background: `#FFFFFF`
269
+ - Text: `#0C43B7`
270
+ - Border: 1px solid `#E5E5E5`
271
+ - Radius: 18px
272
+ - Padding: 4px 12px 4px 4px
273
+ - Font: 13px / 400 / System
274
+ - Use: Image and result refinement filter
275
+
276
+ **Result Card**
277
+ - Background: `#FFFFFF`
278
+ - Text: `#1C1C1C`
279
+ - Radius: 12px
280
+ - Use: Grouped search-result content surface
281
+
282
+ ### Portal Utilities
283
+
284
+ **Paging Button**
285
+ - Background: `#FFFFFF`
286
+ - Text: `#2E2E2E`
287
+ - Border: 1px solid rgba(0,0,0,0.15)
252
288
  - Radius: 9999px
253
- - Height: 28–32px, padding 0 12px
254
- - Selected: `#03C75A` bg, white text, weight 500
255
- - Use: Search-vertical refinement (이미지 / 동영상 / 뉴스 / 지식iN tabs)
256
-
257
- **Status Badge (Live / 광고 / N)**
258
- - "LIVE" / "생방송": red `#e74c3c` background, white text, weight 700, 4px radius
259
- - "광고" (Ad label): `#03c75a` outline 1px, green text, white bg, 2px radius — small and quiet, but visible
260
- - "N" mark: green `#03C75A` square 4px radius, white "N" — Naver's own service signifier on partner cards
261
-
262
- ### Navigation
263
-
264
- **Global Top Bar**
265
- - Background: `#ffffff`
266
- - Logo (NAVER wordmark): green `#03C75A`, gothic capitals, ~24–28px height
267
- - Service links: `#333333` weight 400, 14px, separated by `·` middle dot
268
- - Active link: `#03C75A` (rare on chrome — usually reserved for SERP active tab)
269
- - Height: ~56–64px on desktop, 50–56px on mobile
270
-
271
- **SERP Vertical Tabs (통합 / VIEW / 이미지 / 지식iN / 쇼핑 …)**
272
- - Inactive: `#5f6368` weight 400, 16px
273
- - Active: `#03C75A` weight 700 with 3px green underline
274
- - Padding: 0 16px, height 48px
275
- - Hover: `#333333` color shift
276
- - Use: The SERP discipline — color and weight together carry active state
277
-
278
- **Footer**
279
- - Background: `#ffffff` or very pale gray
280
- - Links: `#5f6368` 12–13px weight 400
281
- - Logo lockup with copyright in `#999999` 12px
289
+ - Height: 36px
290
+ - Shadow: 0 1px 2px rgba(0,0,0,0.06)
291
+ - States: default observed; hover and pressed not retained
292
+ - Use: Carousel previous/next action
293
+
294
+ **Overflow Menu**
295
+ - Background: transparent
296
+ - Text: `#2E2E2E`
297
+ - Font: 14.7px / 500 / System
298
+ - States: expanded listbox and option observed
299
+ - Use: Content-header overflow navigation
300
+
301
+ ### Corporate Brand Resource
302
+
303
+ **Section Tab**
304
+ - Background: transparent
305
+ - Text: `#1A1D24`
306
+ - Radius: 0px
307
+ - Padding: 17px 0 18px
308
+ - Font: 20px / 600 / InterVariable
309
+ - States: selected observed
310
+ - Use: Brand guide versus official-photo section switching
282
311
 
283
312
  ## 5. Layout Principles
284
313
 
285
- ### Spacing System
286
- - Base unit: 4px (with frequent 8px / 16px multiples)
287
- - Standard scale: 4, 8, 12, 16, 20, 24, 32, 40, 48, 56, 64
288
- - Portal-home gutter: 16px on mobile, 20–24px on desktop
289
- - Card-internal padding: 16px standard
290
-
291
- ### Grid & Container
292
- - Desktop portal: ~1080px max content width (the historical Naver portal width — narrower than modern 1280px standards because vertical density beats horizontal sprawl)
293
- - SERP: 1080px max with 220px right rail for related verticals
294
- - Mobile portal (m.naver.com): full-width with 16px gutter
295
- - Service-tile grid: 4-column on portal home (mobile: 4-col tighter), 5–6 col on desktop secondary surfaces
296
-
297
- ### Whitespace Philosophy
298
- - **Density-first**: A Naver portal viewport intentionally surfaces 20–30+ interactive elements above the fold. Users came to do a thing, not to "scroll through a hero."
299
- - **Section bands** separate concerns: news / shopping / weather / stocks each get a horizontal band with 24–32px vertical breathing room between them, but tight 8–12px gaps within.
300
- - **Centered alignment for the search bar; left alignment for everything else.** The 녹색창 sits dead-center as the visual axis; news lists, service tiles, and side-rail content all left-align off the left margin.
301
-
302
- ### Border Radius Scale
303
- - 0: SERP table cells, search submit (flush green)
304
- - 2–4px: Buttons, inputs, badges, news cards (default)
305
- - 8px: Shopping cards, modal panels
306
- - 12–16px: Service tiles, prominent grouped panels
307
- - 9999px: Pills, chips, avatars
314
+ - Use the observed 4/8/12/16/20px spacing clusters for compact UI composition.
315
+ - Portal and SERP density are surface properties, not permission to remove hierarchy.
316
+ - Search remains the primary spatial anchor on the portal.
317
+ - Cards may use 12px rounding on search surfaces; utility controls range from square to fully circular.
318
+ - Corporate pages use more generous rhythm and must not inherit portal density automatically.
308
319
 
309
320
  ## 6. Depth & Elevation
310
321
 
311
- | Level | Treatment | Use |
312
- |-------|-----------|-----|
313
- | Flat (Level 0) | No shadow | News rows, list items, SERP body |
314
- | Subtle | `0 1px 2px rgba(0,0,0,0.06)` | Service tiles, hover-elevated cards |
315
- | Standard | `0 2px 8px rgba(0,0,0,0.1)` | Dropdowns, autocomplete suggestions, popovers |
316
- | Prominent | `0 4px 16px rgba(0,0,0,0.12)` | Modals, full-screen sheets |
317
-
318
- **Shadow Philosophy**: Naver uses shadows sparingly and exclusively for affordance signaling — never for decoration. The portal is mostly flat (borders + background tints carry separation), and shadow appears only when something *moves* (autocomplete dropdown from search input, modal over content). The brand green never casts a tinted shadow — shadows are pure black with low opacity, keeping the green at maximum saturation.
322
+ - Most sampled portal/search controls use no shadow.
323
+ - The portal paging button uses a restrained `0 1px 2px rgba(0,0,0,0.06)` shadow.
324
+ - Prefer border, spacing, and type hierarchy before introducing elevation.
325
+ - No universal NAVER shadow scale is claimed.
319
326
 
320
327
  ## 7. Do's and Don'ts
321
328
 
322
329
  ### Do
323
- - Use Naver Green (`#03C75A`) on the search-bar border, primary CTA, and active-state indicators only — three roles, period
324
- - Anchor the search input as the visual centerpiece on any portal-style surface
325
- - Use platform-native Korean fonts (Apple SD Gothic Neo / Malgun Gothic) for body chrome
326
- - Reserve Naver Maru Buri for editorial / long-form / brand campaigns
327
- - Use `letter-spacing: -0.34px` on 17px Korean body for the canonical Naver rhythm
328
- - Show source attribution (`출처`, `By 작성자`, timestamp) on every news / blog card — provenance is non-negotiable
329
- - Keep service-tile grids dense (4–6 col) — users scan many tiles fast
330
- - Pair the green active tab with weight 700 + underline; color alone is not enough
330
+ - Use official NAVER Green exactly as `#03C75A` for identity applications.
331
+ - Keep portal/search System typography separate from corporate InterVariable typography.
332
+ - Preserve compact Korean text rhythm and explicit interactive states.
333
+ - Treat live product evidence and the official brand guide as different authorities.
331
334
 
332
335
  ### Don't
333
- - Don't apply gradient, opacity tint, or line-render to the Naver Green logo or wordmark — explicitly forbidden in the brand guide
334
- - Don't let the search input drop below 44px height — the 녹색창 must read as a primary surface, not a form field
335
- - Don't use Naver Green as a hero background or large fill it's an accent, not a wash
336
- - Don't mix Naver Maru Buri with system sans on the same surface pick editorial *or* chrome
337
- - Don't introduce a second brand color — Naver is a one-accent system, full stop
338
- - Don't strip source attribution from feed cards — it's a trust contract, not chrome
339
- - Don't use pure black `#000000` for body — `#333333` is the canonical body gray
340
- - Don't break the "search bar centered, content left-aligned" rule on portal-style layouts
336
+ - Do not infer native-app typography from these web surfaces.
337
+ - Do not promote declared-only Nanum/Pretendard faces as current UI fonts.
338
+ - Do not invent a public NAVER product design system from brand-resource guidance.
339
+ - Do not alter the official logo's proportions, color, or style.
341
340
 
342
341
  ## 8. Responsive Behavior
343
342
 
344
- ### Breakpoints
345
- | Name | Width | Key Changes |
346
- |------|-------|-------------|
347
- | Mobile | <768px | Single-column feed, full-width search, m.naver.com surface |
348
- | Tablet | 768–1024px | 2-col feed, condensed top bar |
349
- | Desktop | >1024px | Full portal grid (4-col service tiles, news+shopping+weather bands), 1080px max width |
350
-
351
- ### Touch Targets
352
- - Search input: 50–58px height on portal, 44–48px on SERP — always above the 44px touch minimum
353
- - Buttons: 48px (large), 40px (medium), 32px (small)
354
- - Service tiles: minimum 64px square hit area
355
- - News card row: 56px minimum row height
356
-
357
- ### Collapsing Strategy
358
- - Service-tile grid: 6-col → 4-col → 2-col as viewport narrows
359
- - News + shopping bands stack vertically below tablet
360
- - SERP right rail collapses below 1024px (related verticals move below main column)
361
- - Top-bar service shortcuts collapse into a hamburger / overflow menu on mobile
362
-
363
- ### Image Behavior
364
- - News thumbnails: 16:9 standard, 4px radius, lazy-loaded
365
- - Shopping thumbnails: 1:1, 8px radius
366
- - Profile / avatar: circular (9999px), 24–48px
367
- - Brand-campaign hero: full-width edge-to-edge, no radius
343
+ - The inspected evidence is desktop at 1440×900; mobile-native claims are intentionally absent.
344
+ - Preserve 44px-or-larger touch targets when adapting dense portal utilities to narrow layouts.
345
+ - Allow search-result cards to stack before shrinking readable Korean type.
346
+ - Keep the search control visually dominant and avoid horizontal overflow in tab/filter rows.
368
347
 
369
348
  ## 9. Agent Prompt Guide
370
349
 
371
- ### Quick Color Reference
372
- - Primary brand: Naver Green (`#03C75A`)
373
- - CTA hover: Darker Green (~`#02b350`)
374
- - Background: Pure White (`#ffffff`)
375
- - Heading + body text: Dark Gray (`#333333`)
376
- - Secondary text: Mid Gray (`#5f6368`)
377
- - Caption: Gray (`#767676`)
378
- - Disabled: Light Gray (`#999999`)
379
- - Border: Soft Gray (`#dadce0`)
380
- - Subtle border: Pale Gray (`#e9ebee`)
381
- - Card fill: Background Gray (`#f5f6f7`)
382
- - Search-result link: Blue (`#0068c3`)
383
- - Visited link: Purple (`#6633b9`)
384
- - Error / down: Red (`#e74c3c`)
385
-
386
- ### Example Component Prompts
387
- - "Build the Naver search bar (녹색창): white input with 3px solid `#03C75A` border, 56px tall, 17px text, placeholder `#999`, with a 52px-square `#03C75A` submit button containing a white magnifier icon, flush inside the green frame on the right."
388
- - "Create a Naver news card: white background, 1px solid `#e9ebee` border, 4px radius, 16:9 thumbnail top with 4px radius, title 17px weight 700 `#333` with 2-line clamp, source `#767676` 12px + middle dot + timestamp."
389
- - "Design a service-tile grid: 4-column responsive grid (collapses to 2-col below 480px), each tile 16px radius, white bg, 32px brand-colored icon centered top, 13px weight 500 `#333` label, 16px padding, subtle `0 1px 2px rgba(0,0,0,0.06)` shadow on hover."
390
- - "Build a SERP vertical-tab bar (통합/이미지/뉴스/쇼핑/지식iN): horizontal row, 48px height, inactive tabs `#5f6368` 16px weight 400, active tab `#03C75A` weight 700 with 3px green underline."
391
- - "Create a Naver primary CTA: `#03C75A` background, white text 16px weight 700, 48px height, 4px radius, hover `#02b350`, pressed `#02a046`, disabled `#dadce0` bg `#999` text."
392
-
393
- ### Iteration Guide
394
- 1. The search bar is the brand — if a Naver-style screen has no green-bordered search box, it's wrong
395
- 2. One green, three roles: brand mark, search frame, primary CTA. Never as a fill, never as a tint
396
- 3. Density beats whitespace — Naver layouts are supposed to feel busy
397
- 4. Native Korean font stack for chrome; Maru Buri only for editorial
398
- 5. Source attribution on every feed card — Naver is a portal, not a magazine
399
- 6. `#333` for body text, never pure black
400
- 7. Cards are mostly border + tint, not shadow — flat by default
401
-
402
- ---
350
+ > Build a NAVER-inspired information surface using a white canvas, System-first Korean typography, compact 4/8/12/16/20px spacing, dark neutral text, and `#03C75A` only where identity or a verified action requires it. Separate portal/search components from NAVER Corp brand-page components. Use 12px result cards, 18px filter chips, and explicit hover/pressed/selected states. Do not claim Nanum, Pretendard, or InterVariable outside the surfaces where they were actually observed.
403
351
 
404
352
  ## 10. Voice & Tone
405
353
 
406
- Naver speaks like a long-time librarian at the front desk of Korea's biggest reference room: helpful, fast, slightly clinical, and absolutely not interested in marketing flourish. The voice assumes the user already knows what they want and just wants the friction gone. It uses everyday Korean (`-요`, `-입니다` mixed by surface — formal `-입니다` on legal/account screens, conversational `-요` on consumer feeds) and stays close to neutral verbs (`검색`, `더보기`, `로그인`, `확인`) rather than personality-loaded copy.
354
+ The inspected public copy is direct, functional, and navigation-led. Labels such as “검색하기”, “삭제”, “전체 서비스”, and “브랜드 리소스” describe the action or destination without promotional filler.
407
355
 
408
- Naver does not try to be your friend. It tries to be the place you check first. Where Karrot leans warm-neighborly and Toss leans modern-minimal, Naver leans pragmatic-utility — it's the green window you've been pressing for 20 years.
409
-
410
- | Context | Tone |
356
+ | Do | Don't |
411
357
  |---|---|
412
- | Search placeholder | Single neutral noun or short prompt (`검색어를 입력해 주세요`). No personality. |
413
- | CTAs | Verb-first Korean (`검색`, `로그인`, `회원가입`, `더보기`, `구독하기`). Imperative, never pleading. |
414
- | Empty states | One factual sentence (`검색 결과가 없습니다` or with suggestion: `다른 검색어를 입력해 보세요`). Never apologetic, never illustrated. |
415
- | Error messages | Specific and actionable. `비밀번호를 다시 입력해 주세요` over `오류가 발생했습니다`. |
416
- | News card metadata | `출처 · 시간` — source first, time second, middle-dot separator. Always. |
417
- | Account / security | Formal `-입니다` ending, factual, no emoji. The user is doing serious account work. |
418
- | Service shortcuts | Bare service names (`메일`, `카페`, `블로그`, `지식iN`, `쇼핑`). No taglines. |
419
- | Editorial / brand campaign | Allowed warmer, longer-form copy in Naver Maru Buri — but only on dedicated editorial surfaces, never bleeding into chrome. |
420
-
421
- **Forbidden phrases.** `오류가 발생했습니다` (use specific cause), `잠시만 기다려 주세요` as a standalone (always pair with what's loading), `죄송합니다만` opening to error states, marketing-speak like `혁신적인`, `최고의`, `놀라운`. Emoji are not used in chrome at all — they appear only in user-generated content (블로그, 카페, 댓글) and in some editorial campaigns. Never in error messages, never in account flows, never on the search surface itself.
422
-
423
- **Voice samples.**
424
-
425
- - `검색어를 입력해 주세요` — search-input placeholder, the canonical Naver microcopy. <!-- common pattern across naver.com / search.naver.com surfaces -->
426
- - `더보기` — universal list-expand affordance on news, shopping, blog feed. <!-- canonical Naver chrome -->
427
- - `검색 결과가 없습니다. 다른 검색어를 입력해 보세요.` — empty SERP state. <!-- canonical SERP empty state -->
428
- - `네이버를 시작페이지로` — hero CTA on portal home — turn Naver into your browser homepage. <!-- portal-home historical CTA -->
429
- - `출처 · 1시간 전` — news-card metadata pattern (publisher name then relative time). <!-- canonical feed metadata -->
430
- - `로그인이 필요한 서비스입니다` — auth gate microcopy. <!-- canonical account-flow copy -->
431
- - `네이버에서 만나는 더 큰 세상` — illustrative brand line in editorial register. <!-- illustrative; reflects Naver brand voice on editorial surfaces -->
358
+ | Use short Korean action labels | Add decorative slogans to utility controls |
359
+ | Explain the next recoverable action | Blame the user |
360
+ | Name destinations consistently | Rename familiar portal concepts for novelty |
432
361
 
433
- ## 11. Brand Narrative
362
+ Verified live samples:
363
+ - “검색하기” — corporate-site integrated search. <!-- verified: https://www.navercorp.com/company/brandGuide -->
364
+ - “브랜드 리소스” — official brand-resource section. <!-- verified: https://www.navercorp.com/company/brandGuide -->
365
+ - “기술과 서비스로 세상의 모든 가능성을 연결합니다” — corporate navigation statement. <!-- verified: https://www.navercorp.com/company/about -->
434
366
 
435
- Naver was founded on **June 2, 1999** by **이해진 (Lee Hae-jin)**, a former Samsung SDS engineer (BS Seoul National University, MS KAIST), who in October 1997 had begun an internal Samsung SDS skunkworks project named **Web Glider** — a Korean-language search engine. The seven-person team launched its first service in January 1998 and spun out as **Naver Comm** with Samsung SDS seed funding. The bet was simple: the first wave of Korean internet was being indexed by Western search engines that didn't understand Korean morphology, and a Korean-built engine could win on linguistic accuracy alone ([Wikipedia — Lee Hae-jin](https://en.wikipedia.org/wiki/Lee_Hae-jin), [Wikipedia — Naver Corporation](https://en.wikipedia.org/wiki/Naver_Corporation)).
367
+ ## 11. Brand Narrative
436
368
 
437
- In **July 2000** Naver merged with **Hangame Communications** (a Korean web-game company) to form what was renamed **NHN Corporation (Next Human Network)** in 2001 — pairing search/portal revenue with gaming cashflow. NHN listed on KOSDAQ in 2002 and graduated to KOSPI as Korea's dominant internet portal through the 2000s, repeatedly outranking Google in domestic search share — a rare feat globally. On **August 1, 2013** the conglomerate split: Naver Corporation absorbed the search/portal business and reverted to its pre-merger name; **NHN Entertainment** took the gaming business. The Japanese arm split in parallel into **LINE Corporation** (web/messaging) and **Hangame Japan**, with LINE going on to become the dominant messenger across Japan, Taiwan, and Thailand.
369
+ NAVER's official company page describes its beginning in 1999 and frames the organization as “Navigators” connecting possibilities through technology and services. The same official timeline presents integrated search in 2000, HyperCLOVA in 2021, and the 1784 robot-friendly headquarters in 2022.
438
370
 
439
- What followed was a decade of platform expansion: **Naver Webtoon** (the digital-comics platform that pioneered scrollable webcomics globally), the **Wattpad acquisition for US$600M in January 2021** to build a global IP pipeline, and **Naver Cloud** as the B2B cloud arm. In **August 2023** Naver unveiled **HyperCLOVA X**, a 204-billion-parameter Korean-first LLM, positioning itself as the **sovereign-AI alternative** for Korean and Asian-language users — a deliberate counter-thesis to GPT-4 / Gemini global generality. Naver CEO Choi Soo-yeon disclosed >₩1 trillion (~$3.8B USD) of AI investment over the prior five years, plus a hyperscale data center designed to host 600,000+ servers — Asia's largest. **Founder Lee Hae-jin returned as Board Chairman in March 2025** after years away from day-to-day operations ([KED Global — HyperCLOVA X](https://www.kedglobal.com/artificial-intelligence/newsView/ked202308240018), [The Register — Sovereign AI](https://www.theregister.com/2024/04/08/naver_cloud_hyperclova_llm_sovereign_ai/), [TechCrunch](https://techcrunch.com/2023/08/24/koreas-internet-giant-naver-unveils-generative-ai-services/)).
371
+ The official brand guide describes NAVER Green as carrying trust, challenge, exploration, familiarity, and an eco-friendly image. This reference uses those statements only as sourced brand context; it does not infer unpublished product principles.
440
372
 
441
- What Naver refuses: the minimal-search-page aesthetic of Google (Naver doubles down on portal density), the social-graph-as-product framing of Meta (Naver's center is search and content, not the friend graph), and the universal English/Western-default UX of global tech (Naver designs Korean-first, then exports). Naver Green became the brand's anchor not by accident but by repetition — for an entire generation of Korean internet users, the green-bordered input on the front page is the muscle memory of "going online." The brand book treats the green as something close to a logotype — explicitly forbidding gradient, line-rendering, opacity tint, and recoloring on the green wordmark. Naver-published typography (Maru Buri, D2 Coding, the Nanum family released open-source under SIL OFL) functions as a public good: Korea's web type ecosystem leans on Naver's font releases the way the global web leans on Google Fonts.
373
+ In product terms, this produces a useful tension: NAVER must remain instantly recognizable while supporting services with very different densities and jobs. Search favors fast scanning and compact labels; the portal coordinates many destinations; the corporate brand surface explains the shared identity. Green, logo rules, and company statements stay at brand level, while typography, spacing, and components remain attached to the surface where they were observed.
442
374
 
443
375
  ## 12. Principles
444
376
 
445
- 1. **The 녹색창 is the brand.** Whatever else changes, the green-bordered search input on Naver's surfaces is treated as a logotype. *UI implication:* never demote the search input below the visual top of any Naver-style portal screen; never thin its border below 2px; never strip the green submit button from inside the frame.
446
- 2. **Density is a service, not a debt.** Users come to Naver to *do something*, often more than one thing in a 5-second visit. *UI implication:* a portal-home viewport should surface 20+ interactive elements above the fold without apology. If a redesign drops below 10 interactive surfaces above the fold, it has stopped being Naver.
447
- 3. **One green, three roles.** Naver Green is the brand mark, the search frame, and the primary CTA — nothing else. *UI implication:* if a design uses green as a fill, a wash, a tint, or a shadow color, it has drifted off-system. Reject or re-scope.
448
- 4. **Native fonts for chrome, Naver-published fonts for editorial.** The platform sans (Apple SD Gothic Neo / Malgun Gothic) carries everyday density; Naver Maru Buri / Nanum are reserved for editorial where the typography itself is a feature. *UI implication:* never mix editorial faces and system sans on the same surface; pick the surface's register first, then choose font.
449
- 5. **Provenance is non-negotiable.** Every news card, blog post, knowledge answer carries a visible source. Naver is a portal, and a portal's contract is that the user can always see *who said this*. *UI implication:* source + timestamp metadata is a required slot on any Naver-style content card, never demoted to a hover or detail screen.
450
- 6. **Korean-first, then exported.** Microcopy, font tracking, punctuation, line-height — all tuned for Korean. English / global versions follow, not lead. *UI implication:* design at Korean baseline (`letter-spacing: -0.34px` body, Korean punctuation, formal/casual register switch by surface), and adapt rather than starting from English defaults.
451
- 7. **Sovereign tech, sovereign UI.** From HyperCLOVA X (Korean-first LLM) to the home-grown Naver Cloud, the brand bets on building *Korea's own* version of the global stack. *UI implication:* avoid wholesale adoption of US-tech UI conventions when a Korean-native pattern works better — `즐겨찾기` not "favorites," `더보기` not "see more," `통합검색` not "all results."
452
- 8. **The brand is built by repetition.** Naver Green became iconic because it appeared in the same place, in the same form, for 26 years. *UI implication:* surface-level redesign is allowed; the search bar's color, position, and frame are not. They are the brand.
377
+ 1. **Keep identity consistent.** The official logo and `#03C75A` must not be arbitrarily recolored, distorted, outlined, or given effects.
378
+ - *UI implication:* isolate brand identity tokens from transient service colors.
379
+ 2. **Connect people to destinations quickly.** Public navigation and search copy is literal and compact.
380
+ - *UI implication:* prioritize recognizable labels and scanning speed.
381
+ 3. **Separate service surfaces.** NAVER operates many products with different local systems.
382
+ - *UI implication:* never treat one service's typography or component geometry as a universal NAVER token.
453
383
 
454
384
  ## 13. Personas
455
385
 
456
- *Personas are fictional archetypes informed by publicly described Naver user segments, not individual people.*
457
-
458
- **민지 (Minji), 29, Seoul.** Office worker in 강남. Opens Naver app first thing every morning to skim headlines (정치 / 경제 / 연예 — in that order), checks weather, glances at the KOSPI ticker, and saves a 카페 thread for lunch reading. Uses 네이버 지도 instead of Google Maps reflexively. Expects the search to know her based on prior queries; doesn't think of "personalization" as a feature, just as how it works.
459
-
460
- **아저씨 (Mr. Park), 54, Daegu.** Small-business owner. Uses Naver as his only browser homepage — has done so since 2003. Searches `오늘 날씨`, `서울 → 대구 KTX`, `세무사 추천 대구` daily. Has never used incognito mode and would not trust a search engine that didn't show news + shopping + stocks on the same screen as the search box.
461
-
462
- **현우 (Hyunwoo), 22, Busan.** University student. Uses Naver for 지식iN (the Q&A community older than Quora), 카페 (the persistent forum-club system that powers Korean fan communities), and 블로그 for restaurant reviews. Treats Google as the engine for English-language queries; Naver as the engine for everything Korean.
463
-
464
- **Sumi 어머니 (Mrs. Kim), 62, Gwangju.** Retired. Uses Naver primarily through the mobile app — large text mode on, voice search frequently, watches Naver TV shorts after dinner. Navigates by the colored service tiles on the portal home, not by typing URLs. Loyalty is absolute: Naver has been "the internet" for two decades.
386
+ NAVER has not published validated product personas for the inspected portal, search, and brand-resource surfaces. The evidence supports usage contexts instead: people entering a query and comparing results; portal visitors scanning news, shopping, maps, mail, and other destinations; and designers or partners retrieving official identity assets. These are task contexts, not demographic profiles. Implementations should validate the specific NAVER service, language, device, and task before turning them into research personas.
465
387
 
466
388
  ## 14. States
467
389
 
468
- | State | Treatment |
469
- |---|---|
470
- | **Empty (no search results)** | Single line in `#333` body weight 400: `검색 결과가 없습니다.` Followed by a short `#5f6368` suggestion line (`다른 검색어를 입력해 보세요`). No illustration. No CTA. |
471
- | **Empty (feed band, no items)** | One-line `#767676` 13px caption explaining why (`구독한 소식이 없어요. 채널을 추가해 보세요`). Never `데이터가 없습니다`. |
472
- | **Empty (first-time user)** | Default state shows the public portal feed Naver doesn't ship a personalization onboarding wall, the portal *is* the empty-state default. |
473
- | **Loading (autocomplete)** | Suggestions skeleton: 3 rows of `#f5f6f7` blocks at 36px height, no shimmer. Resolves <120ms typically. |
474
- | **Loading (SERP first paint)** | Vertical-tab bar renders immediately with cached labels; result rows render as gray `#f5f6f7` skeleton blocks matching final card geometry (16:9 thumb + 2 text lines). |
475
- | **Loading (infinite scroll)** | 24px gray spinner centered at list bottom. No overlay. Existing rows stay visible. |
476
- | **Error (search-side)** | Body sentence in `#333` 16px: `일시적인 오류로 결과를 불러올 수 없습니다.` With small text-only retry link in `#03C75A` (`다시 시도`). |
477
- | **Error (network / blocking)** | Full-card centered message: `#333` 18px weight 700 title, `#5f6368` 14px subline, primary CTA `#03C75A` (`새로고침`). |
478
- | **Error (inline form field)** | Input border becomes `#e74c3c` 1px, helper text below in red 13px (`비밀번호를 확인해 주세요`). One sentence, blameless, action-oriented. |
479
- | **Success (login / save)** | Brief 2.5s toast: `#333333` background, white 14px text, bottom-center, no icon. Past-tense single sentence (`저장되었습니다`). |
480
- | **Disabled** | Background drops to `#dadce0`, text to `#999999`. Geometry stays identical so re-enable doesn't reflow. |
481
- | **Skeleton** | `#f5f6f7` blocks at exact final dimensions — thumbnail box, title line, source-meta line. No shimmer on portal home (resolves fast); 1.2s shimmer on slower SERP verticals. |
390
+ - **Hover / pressed:** captured on search tabs and utility actions.
391
+ - **Selected:** captured on portal/search/corporate tabs.
392
+ - **Expanded:** captured for the portal listbox/menu.
393
+ - **Checked / unchecked:** captured for portal display controls and a search switch.
394
+ - **Empty, loading, error, success, disabled:** [FILL INno safe representative live evidence captured in this run.]
395
+
396
+ Do not fill absent states with generic NAVER-looking values.
482
397
 
483
398
  ## 15. Motion & Easing
484
399
 
485
- **Durations:**
486
-
487
- | Token | Value | Use |
488
- |---|---|---|
489
- | `motion-instant` | 0ms | Toggles, focus rings, color state changes |
490
- | `motion-fast` | 150ms | Hover, button press feedback, autocomplete row fade-in |
491
- | `motion-standard` | 200ms | Tab content swaps, dropdown open, modal fade |
492
- | `motion-slow` | 300ms | Page transitions, full-screen sheet presentations |
493
-
494
- **Easings:**
495
-
496
- | Token | Curve | Use |
497
- |---|---|---|
498
- | `ease-default` | `ease-in-out` | The dominant easing — Naver leans on browser-default `ease-in-out` for almost everything |
499
- | `ease-enter` | `cubic-bezier(0.0, 0.0, 0.2, 1)` | Modals, dropdowns, autocompletes appearing |
500
- | `ease-exit` | `cubic-bezier(0.4, 0.0, 1, 1)` | Dismissals — slightly faster than entries |
501
-
502
- **Motion stance.** Motion at Naver is *invisible* — it should never be the thing the user notices. The portal is dense and fast; spring physics, overshoot, and elaborate stagger sequences are forbidden because they slow the user down. The autocomplete dropdown opens in 150ms with a flat fade; the SERP tab content swaps in 200ms with no slide; modals fade-in over a static backdrop in 200ms without translate-Y theatrics. The one place motion is allowed to be expressive is **brand campaigns and editorial micro-interactions** (e.g., 네이버 캠페인 page hero scroll-driven illustration), and even there the rule is "kinetic typography is fine; UI chrome bouncing is not."
503
-
504
- **Signature motions.**
505
-
506
- 1. **Search autocomplete reveal.** Suggestions list fades in below the input over 150ms with `ease-enter`. No translate-Y. The list disappears on blur in 100ms. The input's green border does not animate — it's there or it's not.
507
- 2. **Tab swap (SERP).** Active-tab underline does *not* slide between tabs (Naver historically rejected the "underline-pill" indicator that Material made popular). The previous tab's underline disappears, the new one appears. Discrete, not continuous.
508
- 3. **Modal / login overlay.** Fade-in over 200ms with `ease-enter`, backdrop `rgba(0,0,0,0.5)`. Dismissal 150ms `ease-exit`. No scale, no spring.
509
- 4. **Reduce motion.** Under `prefers-reduced-motion: reduce` all `motion-*` tokens collapse to `motion-instant`. No exceptions. The site stays fully functional — Naver was a fast portal before motion was a design discipline, and reduces gracefully.
510
-
511
- <!--
512
- OmD v0.1 Sources — Naver
513
-
514
- Tier 1 — live DOM (playwright):
515
- - Attempted www.naver.com / search.naver.com / m.naver.com on 2026-05-09.
516
- Browser environment in this session was repeatedly hijacked by interstitial
517
- ad redirects (kakaobank, qanda.ai, ohou.se, ridibooks, coupang, musinsa)
518
- before evaluate() could run against the Naver context. Tier 1 live DOM
519
- treated as UNAVAILABLE for this session — see .verification.md for detail.
520
- - Cited values reflect canonical, repeatedly-documented Naver web patterns
521
- (e.g., body font-family with Apple SD Gothic Neo + Malgun Gothic;
522
- 17px / -0.34px tracking / 27.625px line-height body) and the official
523
- brand color spec from navercorp.com brand guide.
524
-
525
- Tier 2 — official brand assets and ecosystem:
526
- - https://www.navercorp.com/en/company/brandGuide — official brand guide.
527
- Naver Green = #03C75A, Pantone 2270C, RGB(3,199,90), CMYK(72,0,88,0).
528
- Logo prohibitions: no line-rendering, no color shift, no gradient,
529
- no proportion change, no effects, no poor-contrast backgrounds.
530
- - https://github.com/naver/d2codingfont — D2 Coding open-source monospace,
531
- SIL OFL v1.1, released 2016, based on Nanum BarunGothic.
532
- - getdesign.md/naver — no record (collection does not yet contain Naver).
533
- - styles.refero.design ?q=naver — no record.
534
-
535
- Tier 2 — history / corporate (WebSearch):
536
- - Wikipedia (Lee Hae-jin) — born 1967, BS SNU CS, MS KAIST, Samsung SDS,
537
- Web Glider project Oct 1997, Naver Comm spinoff Jun 2, 1999.
538
- - Wikipedia (Naver Corporation) — Hangame merger Jul 2000, NHN rename 2001,
539
- KOSDAQ listing 2002, NHN split Aug 1 2013 (Naver Corp + NHN Entertainment),
540
- LINE Corp / Hangame Japan parallel split, Wattpad acquisition Jan 2021
541
- (US$600M), Webtoon global launch 2014.
542
- - KED Global / TechCrunch / The Register / VentureBeat (2023-08-24 +
543
- 2024-04-08) — HyperCLOVA X reveal Aug 24 2023, 204B parameters,
544
- HCX-L / HCX-S sizes, ~₩1T AI investment over 5 years, sovereign-AI
545
- positioning, 600,000-server hyperscale data center.
546
- - Pestel-analysis.com / matrixbcg.com / portersfiveforce.com — Lee Hae-jin
547
- return as Board Chairman March 2025; CEO Choi Soo-yeon second term.
548
-
549
- Re-verification status:
550
- - Brand color #03C75A is the official spec from navercorp.com/en/company/brandGuide
551
- and is repeatedly cited across third-party brand-color aggregators
552
- (brandcolorcode.com, logotyp.us, brandfetch.com). High confidence.
553
- - Body font-family pattern (Apple SD Gothic Neo / Malgun Gothic) and
554
- 17px / -0.34px tracking is sourced from third-party Korean web typography
555
- documentation (lqez.github.io blog post on Hangul typography) describing
556
- Naver's canonical body type spec; not independently re-verified live this
557
- session due to ad redirects. Verify before quoting in production.
558
- - The "녹색창" cultural noun is general Korean internet vocabulary and not
559
- attributed to any single Naver source.
560
-
561
- Personas (§13) are fictional archetypes informed by publicly described
562
- Naver user segments (urban office worker, mid-career SMB owner, university
563
- student, retired older user). Any resemblance to specific individuals
564
- is unintended.
565
-
566
- Interpretive claims (editorial, not documented Naver statements):
567
- - "The 녹색창 is the brand" framing in §12 — editorial reading of brand
568
- consistency over 26 years, not a sourced Naver statement.
569
- - "Density is a service, not a debt" framing — editorial; Naver does
570
- not publish a "density principle" doctrine.
571
- - The motion stance ("invisible motion") is derived from observed
572
- Naver web behavior over years, not a documented Naver motion spec.
573
- -->
400
+ The collector captured state changes but did not establish a canonical duration or easing scale. Use motion only to clarify menu expansion, tab selection, and focus transitions; respect reduced-motion preferences.
401
+
402
+ [FILL IN official product motion tokens were not found in the inspected public sources.]
574
403
 
575
404
  ---
576
405
 
577
- **Verified:** 2026-05-08 (omd:add-reference run — initial create)
578
- **Tier 1 sources:** Live DOM access on www.naver.com / search.naver.com / m.naver.com unavailable this session due to ad-interstitial redirects (see `.verification.md`). All token values cite Tier 2 brand guide + canonical Naver patterns documented in third-party Korean web typography references.
579
- **Tier 2 sources:** navercorp.com/en/company/brandGuide (official `#03C75A` Naver Green, Pantone 2270C, logo prohibitions); github.com/naver/d2codingfont (D2 Coding monospace, SIL OFL); brandcolorcode.com/naver, brandfetch.com/naver.com (color cross-reference).
580
- **Tier 2 (Philosophy/founders):** Wikipedia (Lee Hae-jin + Naver Corporation), KED Global (HyperCLOVA X 2023), TechCrunch (generative AI services 2023), The Register (sovereign AI 2024), Pestel-analysis / MatrixBCG (founder return 2025).
581
- **Style ref:** `karrot` (Korean voice register) + `kakao` (KR portal counterpart structure).
582
- **Conflicts unresolved:** Tier 1 live verification of body typography (`letter-spacing: -0.34px`, 17px / 27.625px line-height) carried from third-party documentation — re-verify with live DOM in a session without ad-redirect interference before quoting publicly.
406
+ **Verified:** 2026-07-11 (omd:migrate)
407
+ **Tier 1 sources:** https://www.naver.com/ · https://search.naver.com/search.naver?query=%EB%94%94%EC%9E%90%EC%9D%B8 · https://www.navercorp.com/company/brandGuide · https://www.navercorp.com/company/about
408
+ **Tier 2 sources:** https://getdesign.md/naver (no importable record in available path) · https://styles.refero.design/?q=naver (no importable result in available path)
409
+ **Tier 2 status:** unavailable; no Tier 2 value promoted
410
+ **Conflicts unresolved:** none
411
+ **Migration depth:** Apple-tier evidence graph; visual smoke pending