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.
- package/.claude/hooks/lib/preferences-parser.cjs +1 -0
- package/.claude/hooks/lib/preferences-writer.cjs +1 -0
- package/.claude/hooks/post-edit-watch.cjs +1 -0
- package/.claude/hooks/session-end-foldin.cjs +1 -0
- package/.claude/hooks/session-state-loader.cjs +1 -0
- package/.claude/hooks/skill-activation.cjs +1 -0
- package/.claude/settings.json +10 -1
- package/.github/assets/logo-bg.png +0 -0
- package/AGENTS.md +20 -1
- package/CHANGELOG.md +482 -0
- package/MIGRATION.md +103 -0
- package/README.ja.md +56 -19
- package/README.ko.md +47 -30
- package/README.md +48 -30
- package/README.zh-TW.md +59 -22
- package/agents/AGENT.md +8 -7
- package/agents/omd-codex-image.md +1 -1
- package/agents/omd-critic.md +6 -7
- package/agents/omd-designer-review.md +1 -1
- package/agents/omd-final-qa.md +1 -1
- package/agents/omd-humanizer.md +38 -0
- package/agents/omd-kr-writer.md +3 -4
- package/agents/omd-locale-adapter.md +12 -16
- package/agents/omd-master.md +24 -19
- package/agents/omd-microcopy.md +1 -1
- package/agents/omd-orchestrator.md +7 -8
- package/agents/omd-slop-auditor.md +31 -0
- package/agents/omd-ux-researcher.md +1 -1
- package/data/reference-fingerprints.json +2761 -85
- package/dist/bin/oh-my-design.js +16 -8
- package/dist/bin/oh-my-design.js.map +1 -1
- package/dist/chunk-UJIHCEYF.js +99 -0
- package/dist/chunk-UJIHCEYF.js.map +1 -0
- package/dist/doctor-LDWSFM3I.js +763 -0
- package/dist/doctor-LDWSFM3I.js.map +1 -0
- package/dist/install-skills-ZZFNJ2II.js +1120 -0
- package/dist/install-skills-ZZFNJ2II.js.map +1 -0
- package/docs/CLI_QUICKSTART.md +157 -0
- package/package.json +25 -4
- package/scripts/postinstall.cjs +5 -4
- package/skills/claude-design/SKILL.md +38 -14
- package/skills/claude-design/references/claude-design-flow.md +11 -11
- package/skills/claude-design/references/codebase-analysis.md +5 -4
- package/skills/omd-final-qa/SKILL.md +1 -1
- package/skills/omd-harness/SKILL.md +51 -50
- package/skills/omd-humanize/SKILL.md +116 -0
- package/skills/omd-humanize/agents/openai.yaml +4 -0
- package/skills/omd-humanize/references/locale-playbooks.md +102 -0
- package/skills/omd-humanize/references/sources.md +11 -0
- package/skills/omd-init/SKILL.md +18 -12
- package/skills/omd-locale-adapter/SKILL.md +58 -91
- package/skills/omd-orchestrator/SKILL.md +11 -5
- package/skills/omd-reference-capture/SKILL.md +80 -26
- package/skills/omd-reference-capture/scripts/PLAYWRIGHT-LICENSE.txt +202 -0
- package/skills/omd-reference-capture/scripts/PLAYWRIGHT-NOTICE.txt +5 -0
- package/skills/omd-reference-capture/scripts/THIRD_PARTY_NOTICES.md +3 -0
- package/skills/omd-reference-capture/scripts/capture-reference-evidence.mjs +159906 -0
- package/skills/omd-slop-audit/SKILL.md +110 -0
- package/skills/omd-slop-audit/agents/openai.yaml +4 -0
- package/skills/omd-slop-audit/references/pattern-catalog.md +96 -0
- package/skills/omd-slop-audit/references/sources.md +24 -0
- package/web/references/104/DESIGN.md +354 -0
- package/web/references/11st/DESIGN.md +197 -316
- package/web/references/29cm/DESIGN.md +297 -393
- package/web/references/42dot/DESIGN.md +390 -0
- package/web/references/8percent/DESIGN.md +438 -0
- package/web/references/ably/DESIGN.md +267 -572
- package/web/references/acer/DESIGN.md +329 -0
- package/web/references/airbnb/DESIGN.md +219 -557
- package/web/references/airbridge/DESIGN.md +451 -0
- package/web/references/alipay/DESIGN.md +179 -420
- package/web/references/apple/DESIGN.md +224 -498
- package/web/references/asleep/DESIGN.md +402 -0
- package/web/references/au/DESIGN.md +334 -0
- package/web/references/autopedia/DESIGN.md +382 -0
- package/web/references/aws-cloudscape/DESIGN.md +241 -0
- package/web/references/baemin/DESIGN.md +332 -491
- package/web/references/banksalad/DESIGN.md +269 -180
- package/web/references/barogo/DESIGN.md +416 -0
- package/web/references/beusable/DESIGN.md +464 -0
- package/web/references/bigin/DESIGN.md +454 -0
- package/web/references/bilibili/DESIGN.md +206 -374
- package/web/references/bmw/DESIGN.md +162 -276
- package/web/references/brandi/DESIGN.md +184 -325
- package/web/references/buzzvil/DESIGN.md +457 -0
- package/web/references/cafe24/DESIGN.md +472 -0
- package/web/references/catchtable/DESIGN.md +219 -264
- package/web/references/cgv/DESIGN.md +317 -0
- package/web/references/channeltalk/DESIGN.md +210 -336
- package/web/references/china-airlines/DESIGN.md +291 -0
- package/web/references/cjonstyle/DESIGN.md +453 -0
- package/web/references/class101/DESIGN.md +168 -387
- package/web/references/classum/DESIGN.md +228 -203
- package/web/references/claude/DESIGN.md +242 -479
- package/web/references/clay/DESIGN.md +179 -377
- package/web/references/clickhouse/DESIGN.md +254 -343
- package/web/references/codeit/DESIGN.md +470 -0
- package/web/references/cohere/DESIGN.md +214 -324
- package/web/references/coinone/DESIGN.md +199 -179
- package/web/references/corca/DESIGN.md +414 -0
- package/web/references/coupang/DESIGN.md +205 -475
- package/web/references/cursor/DESIGN.md +240 -381
- package/web/references/dabang/DESIGN.md +248 -213
- package/web/references/dable/DESIGN.md +431 -0
- package/web/references/datarize/DESIGN.md +338 -0
- package/web/references/dealicious/DESIGN.md +402 -0
- package/web/references/drdiary/DESIGN.md +404 -0
- package/web/references/elastic/DESIGN.md +238 -0
- package/web/references/elevenlabs/DESIGN.md +183 -321
- package/web/references/elice/DESIGN.md +445 -0
- package/web/references/eslite/DESIGN.md +257 -0
- package/web/references/evaair/DESIGN.md +338 -0
- package/web/references/expo/DESIGN.md +238 -331
- package/web/references/familymart-tw/DESIGN.md +254 -0
- package/web/references/ferrari/DESIGN.md +160 -377
- package/web/references/figma/DESIGN.md +197 -451
- package/web/references/fitpet/DESIGN.md +445 -0
- package/web/references/flex/DESIGN.md +170 -253
- package/web/references/framer/DESIGN.md +197 -340
- package/web/references/freee/DESIGN.md +211 -533
- package/web/references/friendliai/DESIGN.md +431 -0
- package/web/references/frip/DESIGN.md +440 -0
- package/web/references/furiosaai/DESIGN.md +450 -0
- package/web/references/gangnamunni/DESIGN.md +154 -591
- package/web/references/gaudiolab/DESIGN.md +414 -0
- package/web/references/google/DESIGN.md +290 -398
- package/web/references/goorm/DESIGN.md +470 -0
- package/web/references/greencar/DESIGN.md +420 -0
- package/web/references/hackle/DESIGN.md +472 -0
- package/web/references/hashicorp/DESIGN.md +273 -318
- package/web/references/heydealer/DESIGN.md +429 -0
- package/web/references/humanscape/DESIGN.md +433 -0
- package/web/references/hwahae/DESIGN.md +453 -0
- package/web/references/hyundai/DESIGN.md +158 -368
- package/web/references/hyundaicard/DESIGN.md +171 -121
- package/web/references/ibm/DESIGN.md +227 -378
- package/web/references/idus/DESIGN.md +450 -0
- package/web/references/igaworks/DESIGN.md +437 -0
- package/web/references/inflearn/DESIGN.md +221 -366
- package/web/references/intuit/DESIGN.md +244 -0
- package/web/references/jandi/DESIGN.md +191 -291
- package/web/references/jobplanet/DESIGN.md +415 -0
- package/web/references/kakao/DESIGN.md +287 -475
- package/web/references/kakaobank/DESIGN.md +220 -521
- package/web/references/kakaogames/DESIGN.md +220 -0
- package/web/references/kakaopay/DESIGN.md +207 -526
- package/web/references/karrot/DESIGN.md +227 -251
- package/web/references/kb-kookmin/DESIGN.md +308 -0
- package/web/references/kbank/DESIGN.md +220 -175
- package/web/references/kcd/DESIGN.md +432 -0
- package/web/references/kmong/DESIGN.md +281 -356
- package/web/references/krds/DESIGN.md +245 -19
- package/web/references/kream/DESIGN.md +224 -359
- package/web/references/kurly/DESIGN.md +211 -533
- package/web/references/kyobobook/DESIGN.md +445 -0
- package/web/references/lablup/DESIGN.md +474 -0
- package/web/references/lamborghini/DESIGN.md +198 -360
- package/web/references/lemonbase/DESIGN.md +452 -0
- package/web/references/lguplus/DESIGN.md +259 -0
- package/web/references/likelion/DESIGN.md +283 -0
- package/web/references/line/DESIGN.md +396 -355
- package/web/references/linear.app/DESIGN.md +209 -562
- package/web/references/lotteon/DESIGN.md +386 -0
- package/web/references/lovable/DESIGN.md +255 -349
- package/web/references/makinarocks/DESIGN.md +242 -0
- package/web/references/maum-ai/DESIGN.md +423 -0
- package/web/references/medibloc/DESIGN.md +425 -0
- package/web/references/megabox/DESIGN.md +232 -0
- package/web/references/mercari/DESIGN.md +217 -434
- package/web/references/microsoft/DESIGN.md +234 -388
- package/web/references/mildang/DESIGN.md +411 -0
- package/web/references/millie/DESIGN.md +183 -504
- package/web/references/minimax/DESIGN.md +264 -322
- package/web/references/miricanvas/DESIGN.md +182 -355
- package/web/references/miro/DESIGN.md +234 -232
- package/web/references/mistral.ai/DESIGN.md +231 -314
- package/web/references/mixi/DESIGN.md +234 -0
- package/web/references/moin/DESIGN.md +445 -0
- package/web/references/mongodb/DESIGN.md +219 -316
- package/web/references/moreh/DESIGN.md +437 -0
- package/web/references/musinsa/DESIGN.md +184 -510
- package/web/references/mynavi/DESIGN.md +242 -0
- package/web/references/myrealtrip/DESIGN.md +169 -406
- package/web/references/naver/DESIGN.md +328 -499
- package/web/references/naverwebtoon/DESIGN.md +172 -395
- package/web/references/neosapience/DESIGN.md +441 -0
- package/web/references/nhn/DESIGN.md +169 -346
- package/web/references/nhncloud/DESIGN.md +185 -123
- package/web/references/nota/DESIGN.md +451 -0
- package/web/references/notion/DESIGN.md +271 -475
- package/web/references/nrise/DESIGN.md +417 -0
- package/web/references/ohouse/DESIGN.md +210 -549
- package/web/references/oliveyoung/DESIGN.md +217 -326
- package/web/references/ollama/DESIGN.md +241 -308
- package/web/references/onestore/DESIGN.md +248 -0
- package/web/references/palantir/DESIGN.md +256 -0
- package/web/references/panasonic/DESIGN.md +276 -0
- package/web/references/patternfly/DESIGN.md +259 -0
- package/web/references/payhere/DESIGN.md +438 -0
- package/web/references/pega/DESIGN.md +262 -0
- package/web/references/peoplefund/DESIGN.md +431 -0
- package/web/references/petfriends/DESIGN.md +428 -0
- package/web/references/pinkfong/DESIGN.md +199 -367
- package/web/references/pinterest/DESIGN.md +258 -308
- package/web/references/portone/DESIGN.md +446 -0
- package/web/references/poya/DESIGN.md +286 -0
- package/web/references/pozalabs/DESIGN.md +438 -0
- package/web/references/protopie/DESIGN.md +419 -0
- package/web/references/qraft/DESIGN.md +448 -0
- package/web/references/queenit/DESIGN.md +432 -0
- package/web/references/quotabook/DESIGN.md +449 -0
- package/web/references/rebellions/DESIGN.md +449 -0
- package/web/references/recruit/DESIGN.md +247 -0
- package/web/references/remember/DESIGN.md +202 -396
- package/web/references/resend/DESIGN.md +274 -348
- package/web/references/returnzero/DESIGN.md +460 -0
- package/web/references/sakura-internet/DESIGN.md +269 -0
- package/web/references/samsung/DESIGN.md +157 -359
- package/web/references/sandoll/DESIGN.md +445 -0
- package/web/references/sanity/DESIGN.md +241 -375
- package/web/references/saramin/DESIGN.md +465 -0
- package/web/references/scatterlab/DESIGN.md +412 -0
- package/web/references/selectstar/DESIGN.md +439 -0
- package/web/references/servicenow/DESIGN.md +289 -0
- package/web/references/shiftee/DESIGN.md +468 -0
- package/web/references/shinhanbank/DESIGN.md +161 -341
- package/web/references/shinhancard/DESIGN.md +208 -319
- package/web/references/sionic/DESIGN.md +454 -0
- package/web/references/sktelecom/DESIGN.md +310 -0
- package/web/references/socar/DESIGN.md +125 -32
- package/web/references/softbank/DESIGN.md +231 -0
- package/web/references/solapi/DESIGN.md +483 -0
- package/web/references/sony/DESIGN.md +234 -0
- package/web/references/soop/DESIGN.md +261 -0
- package/web/references/spacex/DESIGN.md +184 -323
- package/web/references/spotify/DESIGN.md +253 -394
- package/web/references/squeezebits/DESIGN.md +441 -0
- package/web/references/stayfolio/DESIGN.md +422 -0
- package/web/references/stripe/DESIGN.md +212 -491
- package/web/references/supabase/DESIGN.md +244 -316
- package/web/references/supertone/DESIGN.md +413 -0
- package/web/references/tabling/DESIGN.md +415 -0
- package/web/references/taishinbank/DESIGN.md +243 -0
- package/web/references/teamlab/DESIGN.md +240 -0
- package/web/references/teamsparta/DESIGN.md +472 -0
- package/web/references/tellingme/DESIGN.md +392 -0
- package/web/references/tesla/DESIGN.md +244 -427
- package/web/references/thsr/DESIGN.md +284 -0
- package/web/references/thumbtack/DESIGN.md +302 -0
- package/web/references/together.ai/DESIGN.md +257 -304
- package/web/references/toss/DESIGN.md +251 -593
- package/web/references/toss-securities/DESIGN.md +255 -178
- package/web/references/tossbank/DESIGN.md +195 -491
- package/web/references/toyota/DESIGN.md +238 -0
- package/web/references/tving/DESIGN.md +197 -245
- package/web/references/typed/DESIGN.md +413 -0
- package/web/references/uber/DESIGN.md +256 -333
- package/web/references/udn/DESIGN.md +250 -0
- package/web/references/upbit/DESIGN.md +145 -256
- package/web/references/upstage/DESIGN.md +211 -204
- package/web/references/uswds/DESIGN.md +287 -0
- package/web/references/vercel/DESIGN.md +236 -440
- package/web/references/vuno/DESIGN.md +413 -0
- package/web/references/wanted/DESIGN.md +215 -487
- package/web/references/weverse/DESIGN.md +437 -0
- package/web/references/wise/DESIGN.md +223 -231
- package/web/references/wisetracker/DESIGN.md +462 -0
- package/web/references/wooribank/DESIGN.md +245 -0
- package/web/references/yanolja/DESIGN.md +250 -419
- package/web/references/yeogiotte/DESIGN.md +235 -418
- package/web/references/zapier/DESIGN.md +256 -377
- package/web/references/zendesk/DESIGN.md +288 -0
- package/web/references/zigzag/DESIGN.md +200 -621
- package/dist/install-skills-7UUDOLG2.js +0 -734
- package/dist/install-skills-7UUDOLG2.js.map +0 -1
|
@@ -4,474 +4,251 @@ name: Naver Webtoon
|
|
|
4
4
|
country: KR
|
|
5
5
|
category: consumer-tech
|
|
6
6
|
homepage: "https://comic.naver.com"
|
|
7
|
-
primary_color: "#
|
|
7
|
+
primary_color: "#00dc64"
|
|
8
8
|
logo:
|
|
9
9
|
type: favicon
|
|
10
10
|
slug: "https://www.google.com/s2/favicons?domain=comic.naver.com&sz=128"
|
|
11
|
-
verified: "2026-
|
|
11
|
+
verified: "2026-07-13"
|
|
12
12
|
omd: "0.1"
|
|
13
|
+
verification_v2:
|
|
14
|
+
schema: 2
|
|
15
|
+
checked: "2026-07-13"
|
|
16
|
+
surfaces:
|
|
17
|
+
- { id: home, kind: product-home, url: "https://comic.naver.com/index", inspected: "2026-07-13" }
|
|
18
|
+
- { id: webtoon-list, kind: product-browse, url: "https://comic.naver.com/webtoon", inspected: "2026-07-13" }
|
|
19
|
+
- { id: best-challenge, kind: product-creator-discovery, url: "https://comic.naver.com/bestChallenge", inspected: "2026-07-13" }
|
|
20
|
+
sources:
|
|
21
|
+
- { id: home-capture, kind: product-surface, url: "https://comic.naver.com/index", captured: "2026-07-13" }
|
|
22
|
+
- { id: webtoon-list-capture, kind: product-surface, url: "https://comic.naver.com/webtoon", captured: "2026-07-13" }
|
|
23
|
+
- { id: best-challenge-capture, kind: product-surface, url: "https://comic.naver.com/bestChallenge", captured: "2026-07-13" }
|
|
24
|
+
- { id: company-about, kind: official-doc, url: "https://about.webtoon.com/", captured: "2026-07-13" }
|
|
25
|
+
- { id: company-brands, kind: official-doc, url: "https://about.webtoon.com/our-brands?company=naverWebtoon", captured: "2026-07-13" }
|
|
26
|
+
- { id: font-design, kind: official-doc, url: "https://github.com/orioncactus/pretendard/blob/main/packages/pretendard/docs/en/README.md", captured: "2026-07-13" }
|
|
27
|
+
- { id: font-license, kind: license, url: "https://github.com/orioncactus/pretendard/blob/main/LICENSE", captured: "2026-07-13" }
|
|
28
|
+
conflicts: []
|
|
29
|
+
claims:
|
|
30
|
+
"tokens.colors.primary": &product { surface_id: home, source_id: home-capture, method: computed-style, captured: "2026-07-13" }
|
|
31
|
+
"tokens.colors.surface": *product
|
|
32
|
+
"tokens.colors.foreground": *product
|
|
33
|
+
"tokens.colors.muted": *product
|
|
34
|
+
"tokens.colors.tag-surface": *product
|
|
35
|
+
"tokens.colors.on-primary": &webtoon { surface_id: webtoon-list, source_id: webtoon-list-capture, method: computed-style, captured: "2026-07-13" }
|
|
36
|
+
"tokens.typography.family.ui": *product
|
|
37
|
+
"tokens.typography.brand-title.size": *product
|
|
38
|
+
"tokens.typography.brand-title.weight": *product
|
|
39
|
+
"tokens.typography.brand-title.use": *product
|
|
40
|
+
"tokens.typography.section-title.size": *product
|
|
41
|
+
"tokens.typography.section-title.weight": *product
|
|
42
|
+
"tokens.typography.section-title.lineHeight": *product
|
|
43
|
+
"tokens.typography.section-title.use": *product
|
|
44
|
+
"tokens.typography.tab.size": *product
|
|
45
|
+
"tokens.typography.tab.weight": *product
|
|
46
|
+
"tokens.typography.tab.lineHeight": *product
|
|
47
|
+
"tokens.typography.tab.use": *product
|
|
48
|
+
"tokens.typography.tag.size": *product
|
|
49
|
+
"tokens.typography.tag.weight": *product
|
|
50
|
+
"tokens.typography.tag.lineHeight": *product
|
|
51
|
+
"tokens.typography.tag.use": *product
|
|
52
|
+
"tokens.rounded.square": *product
|
|
53
|
+
"tokens.rounded.compact": *product
|
|
54
|
+
"tokens.components.content-tab.type": *product
|
|
55
|
+
"tokens.components.content-tab.fg": *product
|
|
56
|
+
"tokens.components.content-tab.font": *product
|
|
57
|
+
"tokens.components.content-tab.states": *product
|
|
58
|
+
"tokens.components.content-tab.use": *product
|
|
59
|
+
"tokens.components.tag-link.type": *product
|
|
60
|
+
"tokens.components.tag-link.bg": *product
|
|
61
|
+
"tokens.components.tag-link.fg": *product
|
|
62
|
+
"tokens.components.tag-link.radius": *product
|
|
63
|
+
"tokens.components.tag-link.padding": *product
|
|
64
|
+
"tokens.components.tag-link.font": *product
|
|
65
|
+
"tokens.components.tag-link.use": *product
|
|
66
|
+
"tokens.components.pagination.type": &challenge { surface_id: best-challenge, source_id: best-challenge-capture, method: computed-style, captured: "2026-07-13" }
|
|
67
|
+
"tokens.components.pagination.fg": *challenge
|
|
68
|
+
"tokens.components.pagination.font": *challenge
|
|
69
|
+
"tokens.components.pagination.states": *challenge
|
|
70
|
+
"tokens.components.pagination.use": *challenge
|
|
13
71
|
tokens:
|
|
14
|
-
source:
|
|
15
|
-
extracted: "2026-
|
|
72
|
+
source: reconciled
|
|
73
|
+
extracted: "2026-07-13"
|
|
74
|
+
note: "Selector-backed values are restricted to the supplied public comic.naver.com product capture. NAVER global-shell chrome and zero-use font declarations are not product-token substitutes."
|
|
16
75
|
colors:
|
|
17
76
|
primary: "#00dc64"
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
surface: "#
|
|
22
|
-
foreground: "#1a1a1a"
|
|
23
|
-
body: "#666666"
|
|
24
|
-
muted: "#999999"
|
|
77
|
+
surface: "#ffffff"
|
|
78
|
+
foreground: "#000000"
|
|
79
|
+
muted: "#666666"
|
|
80
|
+
tag-surface: "#f6f6f6"
|
|
25
81
|
on-primary: "#ffffff"
|
|
26
|
-
hairline: "#eeeeee"
|
|
27
|
-
border-strong: "#dddddd"
|
|
28
|
-
accent-like: "#ff4d6d"
|
|
29
|
-
accent-star: "#ffb300"
|
|
30
|
-
error: "#f5444c"
|
|
31
|
-
viewer-black: "#000000"
|
|
32
82
|
typography:
|
|
33
|
-
family: {
|
|
34
|
-
|
|
35
|
-
section:
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
label: { size: 14, weight: 600, lineHeight: 1.4, use: "Buttons, day tabs" }
|
|
40
|
-
caption: { size: 12, weight: 400, lineHeight: 1.4, use: "View/like counts, timestamps" }
|
|
41
|
-
rank: { size: 22, weight: 700, use: "Chart rank, tabular" }
|
|
42
|
-
spacing: [4, 8, 12, 16, 20, 24, 32]
|
|
43
|
-
rounded: { sm: 4, md: 8, lg: 12, full: 9999 }
|
|
44
|
-
shadow:
|
|
45
|
-
subtle: "0px 2px 8px rgba(0,0,0,0.06)"
|
|
46
|
-
floating: "0px 4px 12px rgba(0,0,0,0.12)"
|
|
47
|
-
toast: "0px 4px 12px rgba(0,0,0,0.16)"
|
|
48
|
-
components_harvested: true
|
|
83
|
+
family: { ui: "Pretendard" }
|
|
84
|
+
brand-title: { size: 24, weight: 700, use: "Product header wordmark area" }
|
|
85
|
+
section-title: { size: 20, weight: 600, lineHeight: 1.05, use: "Product-home section heading" }
|
|
86
|
+
tab: { size: 15, weight: 500, lineHeight: 1.40, use: "Product content tab" }
|
|
87
|
+
tag: { size: 14, weight: 500, lineHeight: 2.14, use: "Product-home tag link" }
|
|
88
|
+
rounded: { square: 0, compact: 4 }
|
|
49
89
|
components:
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
card-thumbnail: { type: card, bg: "transparent", radius: "8px", states: "hover scale 1.03 + title emphasis", use: "Webtoon thumbnail card, art is the card" }
|
|
55
|
-
card-info: { type: card, bg: "#ffffff", radius: "12px", padding: "20px", shadow: "0px 2px 8px rgba(0,0,0,0.06)", use: "Title-detail header" }
|
|
56
|
-
badge-up: { type: badge, bg: "#00dc64", fg: "#ffffff", radius: "4px", padding: "1px 5px", font: "11px / 700", use: "UP / new-episode flag, the green ritual" }
|
|
57
|
-
chip: { type: badge, bg: "#f7f7f7", fg: "#666666", radius: "999px", padding: "6px 14px", font: "13px / 500", active: "bg #00dc64, fg #ffffff", use: "요일별 day tabs, genre filters" }
|
|
58
|
-
badge-rating: { type: badge, bg: "transparent", fg: "#ffb300", font: "12px / 700", use: "별점 average beside a star" }
|
|
59
|
-
tab: { type: tab, fg: "#999999", font: "15px / 600", active: "fg #00dc64, 2px #00dc64 underline", use: "Day-of-week tab" }
|
|
60
|
-
toast: { type: toast, bg: "#1a1a1a", fg: "#ffffff", radius: "8px", padding: "12px 16px", shadow: "0px 4px 12px rgba(0,0,0,0.16)", font: "14px / 500", use: "Transient feedback, 3s auto-dismiss" }
|
|
90
|
+
content-tab: { type: tab, fg: "#00dc64", font: "15px / 500 Pretendard", states: "unselected #666666; selected #00dc64 via captured tab interaction", use: "Product content tabs, selectors home::[data-omd-capture=16] and home::[data-omd-capture=17]" }
|
|
91
|
+
tag-link: { type: badge, bg: "#f6f6f6", fg: "#666666", radius: "4px", padding: "0px 10px", font: "14px / 500 Pretendard", use: "Product-home tag link, selector home::[data-omd-capture=64]" }
|
|
92
|
+
pagination: { type: button, fg: "#00dc64", font: "14px / 500 Pretendard", states: "static disabled previous control observed separately with #000000; no general disabled rule", use: "Best Challenge selected page, selector surface-3::[data-omd-capture=133]" }
|
|
93
|
+
components_harvested: true
|
|
61
94
|
---
|
|
62
95
|
|
|
63
96
|
# Design System Inspiration of Naver Webtoon (네이버웹툰)
|
|
64
97
|
|
|
65
98
|
## 1. Visual Theme & Atmosphere
|
|
66
99
|
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
What defines Webtoon visually is **the grid is the design**. Cover thumbnails — vivid, illustrated, every genre and art style imaginable — are the source of color and energy; the chrome around them is deliberately calm so the art screams and the UI whispers. Ranking numbers, genre chips, day-of-week tabs (요일별), and "UP" badges form a tight, scannable information layer over a white canvas. When you actually read, the viewer flips to a focused, distraction-free vertical scroll where the strip itself fills the screen. Two modes, one identity: a buzzy discovery grid and a quiet reading canvas.
|
|
100
|
+
NAVER WEBTOON is WEBTOON Entertainment's Korean webcomic platform. The company describes it as Korea's largest webcomic platform, launched in 2005 to let both emerging and established creators build an audience and earn from webcomics; its BEST CHALLENGE route is the self-publishing path for up-and-coming creators. In the supplied public capture, that creator-and-reader service is expressed with a compact white product shell, black text, a bright green creator entry, and image/content-led browsing rather than a marketing campaign system.
|
|
70
101
|
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
**Key Characteristics:**
|
|
74
|
-
- Webtoon green `#00DC64` ("WT GREEN") as the brand + primary interactive accent — logo, CTAs, "UP" / new badges
|
|
75
|
-
- Bright white canvas with black/gray text — chrome whispers so cover art screams
|
|
76
|
-
- Thumbnail-grid-first discovery; focused vertical-scroll reading viewer
|
|
77
|
-
- Naver / Pretendard-led Korean type stack, black-on-white with green accents
|
|
78
|
-
- Day-of-week (요일별) tabs and ranking numbers as a core scannable info layer
|
|
79
|
-
- Young, energetic, optimistic tone — "something new just dropped"
|
|
80
|
-
- "UP" badge culture: the green new-episode signal is a brand ritual
|
|
102
|
+
The captured product surfaces share a short, practical visual vocabulary: white `#FFFFFF`, black `#000000`, muted `#666666`, pale tag fills `#F6F6F6`, and green `#00DC64` on a creator entry, selected tabs, selected pagination, and a browse heading. This is a record of the current captured routes—not a claim that every NAVER, WEBTOON Entertainment, mobile, reader, payment, or logged-in surface follows the same contract. NAVER account/service utility chrome appears in the artifact as a separate inherited shell and is not promoted into these product tokens.
|
|
81
103
|
|
|
82
104
|
## 2. Color Palette & Roles
|
|
83
105
|
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
- **
|
|
88
|
-
- **
|
|
89
|
-
- **WT Green Light** (`rgba(0,220,100,0.10)`): Subtle green-tinted highlight backgrounds.
|
|
106
|
+
- **Product green** (`#00DC64`): Observed on the creator-entry button, selected content tabs, selected pagination, and a weekday browse heading.
|
|
107
|
+
- **Surface white** (`#FFFFFF`): Observed header-search background and the text on the captured green weekday heading.
|
|
108
|
+
- **Foreground black** (`#000000`): Observed search text, product headings, and creator-entry text.
|
|
109
|
+
- **Muted gray** (`#666666`): Observed unselected content-tab text and tag-link text.
|
|
110
|
+
- **Tag surface** (`#F6F6F6`): Observed tag-link background on the product home.
|
|
90
111
|
|
|
91
|
-
|
|
92
|
-
- **Pure White** (`#FFFFFF`): Browse canvas, cards, headers — the bright base behind the grid.
|
|
93
|
-
- **Surface Gray** (`#F7F7F7`): Section backgrounds, inactive chip fills, skeleton blocks.
|
|
94
|
-
- **Surface Gray Strong** (`#EEEEEE`): Secondary fills, dividers' surface variant.
|
|
95
|
-
- **Viewer Black** (`#000000`): The reading-viewer background option (dark reading mode) so the strip art is the only light.
|
|
112
|
+
No hover color, error color, dark reader surface, shadow ladder, or universal brand palette is promoted because it was not established by the supplied product capture.
|
|
96
113
|
|
|
97
|
-
|
|
98
|
-
- **Text Primary** (`#1A1A1A`): Titles, author names, primary labels.
|
|
99
|
-
- **Text Strong** (`#333333`): Strong body labels, episode titles.
|
|
100
|
-
- **Text Body** (`#666666`): Body text, synopsis, metadata.
|
|
101
|
-
- **Text Secondary** (`#999999`): Captions, view/like counts, timestamps.
|
|
102
|
-
- **Text Tertiary** (`#BBBBBB`): Placeholder, disabled labels.
|
|
114
|
+
## 3. Typography Rules
|
|
103
115
|
|
|
104
|
-
###
|
|
105
|
-
- **Divider** (`#EEEEEE`): Hairline row/grid separators.
|
|
106
|
-
- **Border Strong** (`#DDDDDD`): Active input outlines, emphasized edges.
|
|
116
|
+
### Font evidence classes
|
|
107
117
|
|
|
108
|
-
|
|
109
|
-
- **
|
|
110
|
-
- **
|
|
111
|
-
- **
|
|
112
|
-
- **
|
|
118
|
+
- **Live product computed use:** `Pretendard` is the computed family on 1,371 captured elements across the three product routes. The collector reports a high-confidence loaded FontFaceSet match, so it is the sole `tokens.typography.family.ui` family.
|
|
119
|
+
- **Declared-only font asset:** `Pretendard Variable` has 92 captured `@font-face` source URLs but zero visible computed uses. It remains a declared asset, not a substituted UI-family token.
|
|
120
|
+
- **Declared-only faces:** `hind`, `NanumBarunGothic`, `NanumSquare`, and `Volte` have zero visible uses in this artifact. They remain declared-only.
|
|
121
|
+
- **Unresolved shell family:** `나눔고딕` occurs in 12 global NAVER utility-shell observations but has no matching loaded FontFace in the artifact. It remains unresolved and is excluded from the product family token.
|
|
122
|
+
- **Upstream asset and licence:** Pretendard's upstream README describes its cross-platform, multilingual family and variable distribution. Its upstream LICENSE is SIL Open Font License 1.1. These sources explain the font asset; the product-use conclusion comes from computed use plus the loaded FontFaceSet match above.
|
|
113
123
|
|
|
114
|
-
|
|
124
|
+
### Observed hierarchy
|
|
115
125
|
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
| Role | Size | Weight | Line Height | Use |
|
|
124
|
-
|------|------|--------|-------------|-----|
|
|
125
|
-
| Display Hero | 28–32px | 700 | 1.3 | Featured banner, event headers |
|
|
126
|
-
| Section Heading | 20–22px | 700 | 1.35 | Row headers (오늘의 신작, 인기 급상승) |
|
|
127
|
-
| Title Card | 15–16px | 600 | 1.4 | Webtoon title under thumbnail |
|
|
128
|
-
| Author / Sub | 13px | 400 | 1.4 | Author name, genre line |
|
|
129
|
-
| Body | 14px | 400 | 1.6 | Synopsis, descriptions (looser LH for reading) |
|
|
130
|
-
| Label / CTA | 14px | 600 | 1.4 | Buttons, day tabs |
|
|
131
|
-
| Caption | 12px | 400 | 1.4 | View/like counts, timestamps |
|
|
132
|
-
| Ranking Number | 18–22px | 700 | tight | Chart rank — tabular |
|
|
133
|
-
|
|
134
|
-
### Conventions
|
|
135
|
-
- **700 for headings + ranks, 600 for titles/CTAs, 400 for body** — a clean three-weight rhythm.
|
|
136
|
-
- **Numbers are content** — ranking positions, episode numbers, view counts, ratings are first-class typography, tabular-aligned.
|
|
137
|
-
- **Looser line-height for reading** — synopsis and viewer captions use ~1.6 LH for long-form comfort.
|
|
138
|
-
- **Sentence-case, no all-caps** — Korean and Latin both; the grid stays friendly, not shouty.
|
|
126
|
+
| Role | Size | Weight | Line height | Captured use |
|
|
127
|
+
|---|---:|---:|---:|---|
|
|
128
|
+
| Header wordmark area | 24px | 700 | normal | `home::h1` |
|
|
129
|
+
| Section title | 20px | 600 | 21px | `ComponentHead__title` on product home |
|
|
130
|
+
| Content tab | 15px | 500 | 21px | selected and unselected `ComponentHead__button_tab` |
|
|
131
|
+
| Tag link | 14px | 500 | 30px | `TagGroup__tag` on product home |
|
|
139
132
|
|
|
140
133
|
## 4. Component Stylings
|
|
141
134
|
|
|
142
|
-
|
|
135
|
+
### Header search
|
|
143
136
|
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
**Primary (WT Green)**
|
|
147
|
-
- Background: `#00DC64`
|
|
148
|
-
- Text: `#FFFFFF`
|
|
149
|
-
- Border: none
|
|
150
|
-
- Radius: 8px
|
|
151
|
-
- Padding: 10px 18px
|
|
152
|
-
- Font: 14px / 600 / Pretendard
|
|
153
|
-
- Hover: background `#00C758`
|
|
154
|
-
- Disabled: background `#EEEEEE`, text `#BBBBBB`
|
|
155
|
-
- Use: Primary CTA — 첫화 보기, 구독하기, 정주행. The green call-to-read.
|
|
156
|
-
|
|
157
|
-
**Outline / Secondary**
|
|
137
|
+
**Default**
|
|
158
138
|
- Background: `#FFFFFF`
|
|
159
|
-
- Text: `#
|
|
160
|
-
-
|
|
161
|
-
-
|
|
162
|
-
-
|
|
163
|
-
-
|
|
164
|
-
- Use: Secondary action (관심 등록, 미리보기)
|
|
165
|
-
|
|
166
|
-
**Subscribe / Toggle CTA**
|
|
167
|
-
- Background (subscribed): `rgba(0,220,100,0.10)`
|
|
168
|
-
- Text (subscribed): `#00C758`
|
|
169
|
-
- Border: none
|
|
170
|
-
- Radius: 8px
|
|
171
|
-
- Padding: 10px 18px
|
|
172
|
-
- Font: 14px / 600 / Pretendard
|
|
173
|
-
- Use: 관심웹툰 subscribe toggle — fills green-tinted once active
|
|
174
|
-
|
|
175
|
-
### Inputs
|
|
176
|
-
|
|
177
|
-
**Search Field**
|
|
178
|
-
- Background: `#F7F7F7`
|
|
179
|
-
- Text: `#333333`
|
|
180
|
-
- Border: none (filled)
|
|
181
|
-
- Radius: 8px
|
|
182
|
-
- Padding: 12px 14px
|
|
183
|
-
- Font: 14px / 400 / Pretendard
|
|
184
|
-
- Placeholder: `#BBBBBB`
|
|
185
|
-
- Focus: 1px border `#00DC64`
|
|
186
|
-
- Use: Title/author search — green focus ring
|
|
187
|
-
|
|
188
|
-
### Cards
|
|
189
|
-
|
|
190
|
-
**Webtoon Thumbnail Card**
|
|
191
|
-
- Background: transparent (cover art fills)
|
|
192
|
-
- Border: none
|
|
193
|
-
- Radius: 8px (cover), `50%` for character/round thumbs
|
|
194
|
-
- Aspect: vertical poster (commonly ~3:4) or square in some rows
|
|
195
|
-
- Hover: subtle scale ~1.03 + title emphasis
|
|
196
|
-
- Use: The atomic unit of every browse row/grid — the art is the card, chrome stays off it
|
|
197
|
-
|
|
198
|
-
**Info Card (title detail header)**
|
|
199
|
-
- Background: `#FFFFFF`
|
|
200
|
-
- Border: none
|
|
201
|
-
- Radius: 12px
|
|
202
|
-
- Padding: 20px
|
|
203
|
-
- Shadow: `0px 2px 8px rgba(0,0,0,0.06)`
|
|
204
|
-
- Use: Title-detail header — cover, title, author, genre, rating, 구독 CTA
|
|
139
|
+
- Text: `#000000`
|
|
140
|
+
- Radius: `0px`
|
|
141
|
+
- Padding: `0px 65px 0px 10px`
|
|
142
|
+
- Font: `14px / 400 Pretendard`
|
|
143
|
+
- Use: Product-home header search input; `home::[data-omd-capture="4"]`.
|
|
205
144
|
|
|
206
|
-
###
|
|
145
|
+
### Creator entry
|
|
207
146
|
|
|
208
|
-
**
|
|
147
|
+
**Default**
|
|
209
148
|
- Background: `#00DC64`
|
|
210
|
-
- Text: `#
|
|
211
|
-
-
|
|
212
|
-
-
|
|
213
|
-
-
|
|
214
|
-
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
149
|
+
- Text: `#000000`
|
|
150
|
+
- Radius: `4px`
|
|
151
|
+
- Padding: `11px 33px`
|
|
152
|
+
- Font: `12px / 400 Pretendard`
|
|
153
|
+
- Use: Product global-navigation creator entry; `home::[data-omd-capture="14"]`.
|
|
154
|
+
|
|
155
|
+
### Content tab
|
|
156
|
+
|
|
157
|
+
**Default**
|
|
219
158
|
- Text: `#666666`
|
|
220
|
-
-
|
|
221
|
-
-
|
|
222
|
-
-
|
|
223
|
-
- Font: 13px / 500 / Pretendard
|
|
224
|
-
- Active: `#00DC64` bg + `#FFFFFF` text
|
|
225
|
-
- Use: 요일별 day tabs, genre filters
|
|
226
|
-
|
|
227
|
-
**Rating Badge**
|
|
228
|
-
- Background: transparent
|
|
229
|
-
- Text: `#FFB300`
|
|
230
|
-
- Font: 12px / 700 / Pretendard
|
|
231
|
-
- Use: 별점 average beside a star
|
|
232
|
-
|
|
233
|
-
### Tabs / Nav
|
|
234
|
-
|
|
235
|
-
**Day-of-Week Tab (요일별)**
|
|
236
|
-
- Active text: `#00DC64`
|
|
237
|
-
- Inactive text: `#999999`
|
|
238
|
-
- Indicator: 2px `#00DC64` underline (active)
|
|
239
|
-
- Font: 15px / 600 / Pretendard
|
|
240
|
-
- Use: 월/화/수/목/금/토/일 + 완결 switcher — the core browse organizer
|
|
241
|
-
|
|
242
|
-
**Bottom Tab (Active)**
|
|
243
|
-
- Active icon/text: `#1A1A1A` (with green accent on the primary tab)
|
|
244
|
-
- Inactive: `#BBBBBB`
|
|
245
|
-
- Border: 1px solid `#EEEEEE` (top only)
|
|
246
|
-
- Font: 11px / 500 / Pretendard
|
|
247
|
-
- Use: 웹툰 / 베스트도전 / MY / etc.
|
|
248
|
-
|
|
249
|
-
### Toasts
|
|
250
|
-
|
|
251
|
-
**Snackbar**
|
|
252
|
-
- Background: `#1A1A1A`
|
|
253
|
-
- Text: `#FFFFFF`
|
|
254
|
-
- Border: none
|
|
255
|
-
- Radius: 8px
|
|
256
|
-
- Padding: 12px 16px
|
|
257
|
-
- Shadow: `0px 4px 12px rgba(0,0,0,0.16)`
|
|
258
|
-
- Font: 14px / 500 / Pretendard
|
|
259
|
-
- Use: "관심웹툰에 추가했어요" transient feedback, 3s auto-dismiss
|
|
159
|
+
- Font: `15px / 500 Pretendard`
|
|
160
|
+
- Use: Unselected product content tab; `home::[data-omd-capture="16"]`.
|
|
161
|
+
- Selected: Text `#00DC64`; observed at `home::[data-omd-capture="17"]` and in the captured tab interaction.
|
|
260
162
|
|
|
261
|
-
|
|
163
|
+
### Tag link
|
|
262
164
|
|
|
263
|
-
**
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
165
|
+
**Default**
|
|
166
|
+
- Background: `#F6F6F6`
|
|
167
|
+
- Text: `#666666`
|
|
168
|
+
- Radius: `4px`
|
|
169
|
+
- Padding: `0px 10px`
|
|
170
|
+
- Font: `14px / 500 Pretendard`
|
|
171
|
+
- Use: Product-home tag link; `home::[data-omd-capture="64"]`.
|
|
267
172
|
|
|
268
|
-
|
|
173
|
+
The same class also appears at 16px/500/37px on the home route. That is an observed route-local size record, not a generalized size scale.
|
|
269
174
|
|
|
270
|
-
###
|
|
271
|
-
- Base unit: 8px
|
|
272
|
-
- Common values: 4, 8, 12, 16, 20, 24, 32
|
|
273
|
-
- Grid gutter: ~12px between thumbnails; ~24px between content rows
|
|
175
|
+
### Pagination
|
|
274
176
|
|
|
275
|
-
|
|
276
|
-
-
|
|
277
|
-
-
|
|
278
|
-
-
|
|
177
|
+
**Selected page**
|
|
178
|
+
- Text: `#00DC64`
|
|
179
|
+
- Font: `14px / 500 Pretendard`
|
|
180
|
+
- Use: Best Challenge selected page; `surface-3::[data-omd-capture="133"]`.
|
|
181
|
+
- Disabled: A disabled previous control is statically observed at `surface-3::[data-omd-capture="132"]` with `#000000`; no reusable disabled treatment is inferred from that single observation.
|
|
279
182
|
|
|
280
|
-
|
|
281
|
-
- **The grid is the design.** Chrome (tabs, ranks, chips) is calm and compact so cover art carries the color and energy.
|
|
282
|
-
- **Two densities.** Discovery is tight and scannable (many titles per screen); the reading viewer is spacious and focused (one strip, nothing else).
|
|
283
|
-
- **Scannable info layer.** Ranking numbers, UP badges, and day tabs form a consistent, low-chrome overlay on the art.
|
|
183
|
+
Only tab selection has interaction provenance in the supplied bundle (`interactionCount: 7`). No hover, pressed, focus, menu, dialog, error, toast, responsive, card, thumbnail, reading-viewer, or checkout variant is asserted.
|
|
284
184
|
|
|
285
|
-
|
|
286
|
-
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
- Circle (50%): character/round thumbnails, avatars
|
|
185
|
+
---
|
|
186
|
+
**Verified:** 2026-07-13
|
|
187
|
+
**Tier 1 sources:** `https://comic.naver.com/index` (product home), `https://comic.naver.com/webtoon` (product browse), `https://comic.naver.com/bestChallenge` (product creator discovery), `https://about.webtoon.com/` and `https://about.webtoon.com/our-brands?company=naverWebtoon` (official company and service context), `https://github.com/orioncactus/pretendard/blob/main/packages/pretendard/docs/en/README.md` (upstream font distribution/design), `https://github.com/orioncactus/pretendard/blob/main/LICENSE` (upstream font licence)
|
|
188
|
+
**Tier 2 sources:** `https://getdesign.md/naverwebtoon` (attempted; built-in web open safe-open failure and no search record), `https://styles.refero.design/?q=naver%20webtoon` (attempted; built-in web open safe-open failure and no search record)
|
|
189
|
+
**Conflicts unresolved:** none
|
|
291
190
|
|
|
292
|
-
|
|
191
|
+
The legacy prose-derived token sheet, hover/pressed/focus treatments, reader and payment states, logo-color assertions, shadow ladder, universal spacing/radius rules, and unobserved component variants were removed because the supplied 2026 capture does not substantiate them.
|
|
293
192
|
|
|
294
|
-
|
|
295
|
-
|-------|-----------|-----|
|
|
296
|
-
| Flat (0) | No shadow | Browse grid, thumbnails (the gutter separates them) |
|
|
297
|
-
| Subtle (1) | `0px 2px 8px rgba(0,0,0,0.06)` | Info cards, detail headers |
|
|
298
|
-
| Floating (2) | `0px 4px 12px rgba(0,0,0,0.12)` | Dropdowns, sticky tab bar on scroll |
|
|
299
|
-
| Toast (3) | `0px 4px 12px rgba(0,0,0,0.16)` | Snackbars |
|
|
193
|
+
## 5. Layout Principles
|
|
300
194
|
|
|
301
|
-
|
|
195
|
+
The capture establishes a 1440×900 view of three public product routes, not a responsive layout system. Observed geometry includes a 35px header search input, a 39px creator entry, 21px content tabs, 30px and 37px tag links, and a 45px green weekday heading. It does not establish breakpoints, a reusable grid, poster aspect ratios, sticky behavior, or reader layout rules.
|
|
196
|
+
|
|
197
|
+
## 6. Depth & Elevation
|
|
198
|
+
|
|
199
|
+
The documented search, creator entry, tabs, tags, weekday heading, and pagination samples all report `box-shadow: none`. No elevation token is promoted.
|
|
302
200
|
|
|
303
201
|
## 7. Do's and Don'ts
|
|
304
202
|
|
|
305
203
|
### Do
|
|
306
|
-
- Use WT Green `#00DC64` for the logo, primary CTA, UP badge, and active selection
|
|
307
|
-
- Keep the browse canvas white and let cover art supply the color
|
|
308
|
-
- Render ranking numbers, episode numbers, and counts as first-class tabular typography
|
|
309
|
-
- Use the UP badge (green, 4px radius) consistently as the new-episode signal
|
|
310
|
-
- Give the reading viewer maximum focus — strip fills the screen, chrome hides
|
|
311
204
|
|
|
312
|
-
|
|
313
|
-
-
|
|
314
|
-
-
|
|
315
|
-
- Don't crowd the reading viewer with chrome — reading is a focused mode
|
|
316
|
-
- Don't use all-caps or marketing-shouty type on the grid
|
|
317
|
-
- Don't tint the browse canvas — white keeps the cover art vivid
|
|
205
|
+
- Reuse only the selector-backed white, black, gray, and green treatments documented above when recreating these specific public-route patterns.
|
|
206
|
+
- Preserve the selected/unselected tab color split only in contexts with the captured tab semantics.
|
|
207
|
+
- Keep `Pretendard` as the product UI family only where a compatible loaded-font path is available.
|
|
318
208
|
|
|
319
|
-
|
|
209
|
+
### Don't
|
|
320
210
|
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
| Mobile (Primary) | <768px | 3–4 thumbnails per row, bottom tab nav, swipeable day tabs |
|
|
325
|
-
| Tablet | 768–1024px | 4–5 per row, condensed top nav |
|
|
326
|
-
| Desktop (Web) | >1024px | 6+ per row, full top nav, max ~1200px content |
|
|
211
|
+
- Don't treat the inherited NAVER utility shell as a NAVER WEBTOON product-token source.
|
|
212
|
+
- Don't substitute `Pretendard Variable`, `NanumSquare`, or another declared font for the verified computed `Pretendard` family.
|
|
213
|
+
- Don't infer card, reader, payment, hover, focus, error, or responsive contracts from this three-route capture.
|
|
327
214
|
|
|
328
|
-
|
|
329
|
-
- Thumbnail is the primary touch target; min ~44px controls
|
|
330
|
-
- Day-of-week tabs swipeable on mobile
|
|
331
|
-
- Reading viewer: vertical scroll, tap-zones for UI toggle, full-bleed strip
|
|
215
|
+
## 8. Responsive Behavior
|
|
332
216
|
|
|
333
|
-
|
|
334
|
-
- Cover thumbnails: `object-fit: cover`, lazy-loaded, 8px radius
|
|
335
|
-
- Reading strip: full reading-width, native aspect, sequential vertical
|
|
336
|
-
- Character/round thumbs: 50% circle
|
|
217
|
+
No responsive viewport comparison was supplied. The reference makes no breakpoint, touch-target, image-ratio, or mobile-reader assertion.
|
|
337
218
|
|
|
338
219
|
## 9. Agent Prompt Guide
|
|
339
220
|
|
|
340
|
-
|
|
341
|
-
- Primary CTA / brand / UP: WT Green `#00DC64` (hover `#00C758`)
|
|
342
|
-
- Canvas: white `#FFFFFF`; surface `#F7F7F7`; viewer black `#000000`
|
|
343
|
-
- Text: primary `#1A1A1A`; body `#666666`; secondary `#999999`
|
|
344
|
-
- Divider `#EEEEEE`; like/heart `#FF4D6D`; rating `#FFB300`
|
|
345
|
-
|
|
346
|
-
### Example Component Prompts
|
|
347
|
-
- "Build a Webtoon primary CTA: bg `#00DC64`, white 14px/600 text, 8px radius, 10px 18px padding. Hover bg `#00C758`. Disabled bg `#EEEEEE` text `#BBBBBB`."
|
|
348
|
-
- "Create a Webtoon browse grid: white `#FFFFFF` bg, responsive grid of vertical cover cards (8px radius, no border, ~12px gutter). Each card: cover image + a green UP badge (`#00DC64`, 4px radius, 11px/700 white, '\''UP'\'') top-left when new + title (15px/600 `#1A1A1A`) + author (13px/400 `#999999`) below."
|
|
349
|
-
- "Design a day-of-week tab row: 월~일 + 완결, active text `#00DC64` with a 2px `#00DC64` underline, inactive `#999999`, 15px/600, swipeable."
|
|
350
|
-
- "Create a title-detail header card: white bg, 12px radius, `0px 2px 8px rgba(0,0,0,0.06)` shadow, 20px padding. Cover thumb left, title 20px/700, author 13px/400 `#999999`, rating `#FFB300` star + number, green 구독 CTA."
|
|
351
|
-
|
|
352
|
-
### Iteration Guide
|
|
353
|
-
1. WT Green `#00DC64` = logo + primary CTA + UP badge + active state
|
|
354
|
-
2. White canvas; cover art carries the color and energy
|
|
355
|
-
3. Pretendard / Korean system stack, black-on-white with green accents
|
|
356
|
-
4. Numbers (rank/episode/count) are tabular first-class typography
|
|
357
|
-
5. Radius: 4px UP badge, 8px buttons/cards, 12px info cards, 999px chips, 50% round thumbs
|
|
358
|
-
6. Two densities: tight discovery grid, focused reading viewer
|
|
359
|
-
|
|
360
|
-
---
|
|
221
|
+
For a captured content-tab pattern, use `15px / 500 Pretendard`, `#666666` unselected text, and `#00DC64` selected text; retain the state only where tab-selection behavior exists. For the captured header search, use a white, square-cornered 35px field with `0px 65px 0px 10px` padding and `14px / 400 Pretendard`. Do not extend these snippets into a generic WEBTOON app system.
|
|
361
222
|
|
|
362
223
|
## 10. Voice & Tone
|
|
363
224
|
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
| Context | Tone |
|
|
367
|
-
|---|---|
|
|
368
|
-
| CTAs | Short Korean verb (`첫화 보기`, `정주행`, `구독하기`, `미리보기`). |
|
|
369
|
-
| New-content nudges | Upbeat, second person (`기다리던 새 회차가 올라왔어요`). |
|
|
370
|
-
| Success toasts | Past-tense single sentence, soft ending (`관심웹툰에 추가했어요`). No emoji on system chrome. |
|
|
371
|
-
| Error messages | Blameless, specific, one action (`잠시 후 다시 시도해 주세요`). Never `오류가 발생했습니다`. |
|
|
372
|
-
| Empty states | Warm + one action (`아직 관심웹툰이 없어요. 마음에 드는 작품을 추가해 보세요`). |
|
|
373
|
-
| Recommendation rows | Energetic, taste-led (`이런 작품 어때요?`, `요즘 뜨는 작품`). |
|
|
374
|
-
| Legal / payment (쿠키/대여) | Formal `합니다` register — the single exception. |
|
|
375
|
-
|
|
376
|
-
**Forbidden phrases.** `오류가 발생했습니다` (generic error), exclamation-as-pressure stacking, marketing superlatives piled on chrome, English-first strings on Korean surfaces, emoji on system-generated toasts (emoji belongs to user comments, not UI chrome).
|
|
377
|
-
|
|
378
|
-
**Voice samples.**
|
|
379
|
-
- `첫화 보기` — common read-CTA pattern. <!-- illustrative: follows Naver Webtoon's standard read CTA; comic.naver.com blocks automated verification -->
|
|
380
|
-
- `새 회차가 올라왔어요` — illustrative new-episode nudge. <!-- illustrative: follows the UP/new-episode ritual; not verified verbatim -->
|
|
381
|
-
- `관심웹툰에 추가했어요` — illustrative subscribe-success toast. <!-- illustrative: not verified as live copy -->
|
|
382
|
-
- `요즘 뜨는 작품` — illustrative trending-row header. <!-- illustrative: not verified verbatim -->
|
|
225
|
+
The supplied evidence contains Korean product labels but no official voice guide or verified product-copy inventory. No reusable tone rule, do/don't table, or sample copy is asserted.
|
|
383
226
|
|
|
384
227
|
## 11. Brand Narrative
|
|
385
228
|
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
The design follows the mission directly: a bright, friendly, low-friction grid that makes *discovering and following* series effortless, and a focused viewer that makes *reading* them comfortable. The WT GREEN `#00DC64` is the emotional core — fresh, young, optimistic — the color of the "UP" badge that says a new episode of the series you love just dropped. That little green flag is a genuine brand ritual: a daily dopamine signal that keeps a generation coming back.
|
|
389
|
-
|
|
390
|
-
What Naver Webtoon refuses: the dense, text-heavy seriousness of legacy comic portals, and the dark, cinematic moodiness of video-OTT browse (Webtoon's discovery canvas is bright and buzzy, not a dim lobby). It's a friendly newsstand where the covers do the selling and the green means "new."
|
|
229
|
+
WEBTOON Entertainment describes NAVER WEBTOON as Korea's largest webcomic platform. Its official brands page says it launched in 2005 and enables new and established creators to build an audience and make money from webcomics; it distinguishes BEST CHALLENGE as the self-publishing path for emerging creators. The official company site frames the wider organization as a story-oriented entertainment service and a platform where creators and users discover, create, and share stories. These are service and company facts, not proof of a visual or interaction system beyond the captured routes.
|
|
391
230
|
|
|
392
231
|
## 12. Principles
|
|
393
232
|
|
|
394
|
-
1. **
|
|
395
|
-
2. **
|
|
396
|
-
3. **
|
|
397
|
-
4. **Numbers are content.** Ranks, episode numbers, and counts are first-class. *UI implication:* render them as tabular, high-emphasis typography, not afterthoughts.
|
|
398
|
-
5. **Friendly, never shouty.** The brand is young and warm, not aggressive marketing. *UI implication:* sentence-case, soft `해요체`, no all-caps or exclamation pressure on the grid.
|
|
399
|
-
6. **Daily ritual.** The 요일별 schedule and the UP badge make Webtoon a habit. *UI implication:* surface "what's new for you today" prominently; the green flag is the reward loop.
|
|
233
|
+
1. **Creator participation.** Official material says the service gives new and established creators ways to build an audience and make money. *UI implication:* the captured global product navigation includes a green creator entry; no broader creator-flow pattern is inferred.
|
|
234
|
+
2. **Discovery, creation, and sharing.** WEBTOON Entertainment describes its platform around those three participant activities. *UI implication:* no unmeasured navigation, recommendation, or sharing pattern is prescribed here.
|
|
235
|
+
3. **Emerging-creator publishing.** The official brands page identifies BEST CHALLENGE as the self-publishing path for up-and-coming creators. *UI implication:* the captured Best Challenge route is retained as a distinct product surface rather than generalized to reader browsing.
|
|
400
236
|
|
|
401
237
|
## 13. Personas
|
|
402
238
|
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
**다은 (Da-eun), 19, Seoul.** University freshman, reads 8 series across the week, each on its release day. Lives for the green UP badge — checks the app the moment a new episode is due. Reads on the subway in the focused vertical viewer; comments and shares with friends.
|
|
406
|
-
|
|
407
|
-
**준호 (Jun-ho), 27, Daejeon.** Office worker and casual reader. Binges completed (완결) series on weekends, spends 쿠키 to unlock ahead. Discovers via the trending and recommendation rows, judges by cover art and rating number first.
|
|
408
|
-
|
|
409
|
-
**소민 (So-min), 23, Busan.** Aspiring creator. Posts to 베스트도전 hoping to go pro, reads obsessively to study what works. Treats the platform as both library and career ladder — the open creator pipeline is why she's here.
|
|
239
|
+
This reference does not invent demographic personas. The official context identifies three stakeholder groups: readers/users who discover stories, new and established webcomic creators who build audiences and monetize work, and emerging self-publishers using BEST CHALLENGE. No motivations, demographics, or task flows beyond those official descriptions are asserted.
|
|
410
240
|
|
|
411
241
|
## 14. States
|
|
412
242
|
|
|
413
|
-
| State |
|
|
243
|
+
| State | Captured treatment |
|
|
414
244
|
|---|---|
|
|
415
|
-
|
|
|
416
|
-
|
|
|
417
|
-
|
|
|
418
|
-
|
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
| **Success (subscribed)** | Snackbar `#1A1A1A` white text (`관심웹툰에 추가했어요`), 3s; subscribe CTA fills green-tinted. |
|
|
422
|
-
| **Success (cookie purchased)** | Confirmation surface — green checkmark, balance, single `확인`. |
|
|
423
|
-
| **Skeleton** | `#F7F7F7` blocks at exact thumbnail dimensions, 8px radius, ~1.2s shimmer to `#EEEEEE`. |
|
|
424
|
-
| **Disabled (CTA)** | Green button → bg `#EEEEEE`, text `#BBBBBB`. Geometry unchanged. |
|
|
245
|
+
| Content tab, unselected | `#666666`, 15px/500, `home::[data-omd-capture="16"]` |
|
|
246
|
+
| Content tab, selected | `#00DC64`, 15px/500, `home::[data-omd-capture="17"]`; tab interaction provenance exists |
|
|
247
|
+
| Pagination, selected page | `#00DC64`, 14px/500, `surface-3::[data-omd-capture="133"]` |
|
|
248
|
+
| Pagination, disabled previous | Statically disabled with `#000000`, 14px/500, `surface-3::[data-omd-capture="132"]`; not a generalized disabled rule |
|
|
249
|
+
|
|
250
|
+
No loading, empty, success, error, toast, skeleton, focus, hover, or pressed state was captured for promotion.
|
|
425
251
|
|
|
426
252
|
## 15. Motion & Easing
|
|
427
253
|
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
**Durations:**
|
|
431
|
-
|
|
432
|
-
| Token | Value | Use |
|
|
433
|
-
|---|---|---|
|
|
434
|
-
| `motion-instant` | 0ms | Toggle flips, UP badge appear |
|
|
435
|
-
| `motion-fast` | 150ms | Hover lift, chip select, button press |
|
|
436
|
-
| `motion-standard` | 250ms | Thumbnail hover scale, tab switch, sheet open |
|
|
437
|
-
| `motion-slow` | 400ms | Banner crossfade, page-to-detail transition |
|
|
438
|
-
|
|
439
|
-
**Easings:**
|
|
440
|
-
|
|
441
|
-
| Token | Curve | Use |
|
|
442
|
-
|---|---|---|
|
|
443
|
-
| `ease-standard` | `cubic-bezier(0.4, 0, 0.2, 1)` | Default — most motion |
|
|
444
|
-
| `ease-enter` | `cubic-bezier(0.0, 0.0, 0.2, 1)` | Modals, sheets, toasts appearing |
|
|
445
|
-
| `ease-exit` | `cubic-bezier(0.4, 0.0, 1, 1)` | Dismissals |
|
|
446
|
-
| `ease-pop` | `cubic-bezier(0.34, 1.4, 0.64, 1)` | Reserved — UP/new-badge appearance only |
|
|
447
|
-
|
|
448
|
-
**Signature motions.**
|
|
449
|
-
1. **Thumbnail hover.** Cover scales `1.0 → 1.03` over `motion-standard / ease-standard` with a subtle title emphasis. No shadow pulse — the scale is the lift.
|
|
450
|
-
2. **UP badge pop.** When a new episode lands, the green UP badge appears with a brief 1.1 scale-pop (`ease-pop`) — the one licensed bit of bounce, because "new episode" deserves a tiny celebration.
|
|
451
|
-
3. **Reading scroll.** The viewer is pure native vertical scroll — no parallax, no transition gimmicks; chrome fades out on scroll-down, back in on tap. Reading must never be interrupted by motion.
|
|
452
|
-
4. **Reduce motion.** Under `prefers-reduced-motion: reduce`, hover scales and the UP pop collapse to instant opacity changes; shimmer skeletons become static `#F7F7F7`. No exceptions.
|
|
453
|
-
|
|
454
|
-
<!--
|
|
455
|
-
OmD v0.1 Sources — Philosophy Layer (sections 10–15)
|
|
456
|
-
|
|
457
|
-
Tier 1 (UI tokens, §1–9): comic.naver.com WebFetch BLOCKED (bot-protected) on
|
|
458
|
-
2026-05-27 — no live computed-style inspection was possible. WT GREEN `#00DC64`
|
|
459
|
-
(RGB 0,220,100) confirmed via brand search (logos-world.net / 1000logos.net
|
|
460
|
-
Webtoon brand-color records + WEBTOON Canvas logo guidelines lineage). All §4
|
|
461
|
-
component values and product grays/blacks are CONVENTIONAL (Naver web norms +
|
|
462
|
-
documented brand green), not live-inspected tokens — flagged in the §4 footer.
|
|
463
|
-
|
|
464
|
-
Tier 2 (founding/narrative): Naver Webtoon launched 2004 inside the Naver
|
|
465
|
-
portal; pioneered vertical-scroll mobile webtoons and the 요일별 release model
|
|
466
|
-
and amateur-creator pipeline (베스트도전/도전만화); the company became WEBTOON /
|
|
467
|
-
Webtoon Entertainment with global + US-listing reach. General industry
|
|
468
|
-
knowledge for the format history.
|
|
469
|
-
|
|
470
|
-
Voice samples: all four (`첫화 보기`, `새 회차가 올라왔어요`, `관심웹툰에
|
|
471
|
-
추가했어요`, `요즘 뜨는 작품`) are ILLUSTRATIVE patterns following Naver
|
|
472
|
-
Webtoon's `해요체` register and UP/new-episode discovery ritual — NOT verified
|
|
473
|
-
verbatim, since the site blocked automated inspection.
|
|
474
|
-
|
|
475
|
-
Personas (§13) are fictional archetypes. Any resemblance to specific users is
|
|
476
|
-
unintended.
|
|
477
|
-
-->
|
|
254
|
+
No duration, easing, animation, or reduced-motion behavior was captured. Tab selection is the only observed interaction kind; it establishes state provenance, not a motion token.
|