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
|
@@ -5,403 +5,294 @@ display_name_kr: Olive Young (์ฌ๋ฆฌ๋ธ์)
|
|
|
5
5
|
country: KR
|
|
6
6
|
category: ecommerce
|
|
7
7
|
homepage: "https://www.oliveyoung.co.kr"
|
|
8
|
-
primary_color: "#
|
|
8
|
+
primary_color: "#82dc28"
|
|
9
9
|
logo:
|
|
10
10
|
type: favicon
|
|
11
11
|
slug: "https://www.google.com/s2/favicons?domain=oliveyoung.co.kr&sz=256"
|
|
12
|
-
verified: "2026-
|
|
12
|
+
verified: "2026-07-13"
|
|
13
13
|
omd: "0.1"
|
|
14
|
+
verification_v2:
|
|
15
|
+
schema: 2
|
|
16
|
+
checked: "2026-07-13"
|
|
17
|
+
surfaces:
|
|
18
|
+
- { id: storefront-home, kind: storefront, url: "https://www.oliveyoung.co.kr/store/main/main.do?oy=0", inspected: "2026-07-13" }
|
|
19
|
+
- { id: corporate-home, kind: corporate, url: "https://corp.oliveyoung.com/ko", inspected: "2026-07-13" }
|
|
20
|
+
sources:
|
|
21
|
+
- { id: storefront-live, kind: product-surface, url: "https://www.oliveyoung.co.kr/store/main/main.do?oy=0", captured: "2026-07-13" }
|
|
22
|
+
- { id: corporate-live, kind: product-surface, url: "https://corp.oliveyoung.com/ko", captured: "2026-07-13" }
|
|
23
|
+
- { id: brand-resources, kind: brand-asset, url: "https://corp.oliveyoung.com/en/company/brand", captured: "2026-07-13" }
|
|
24
|
+
- { id: history-context, kind: official-doc, url: "https://corp.oliveyoung.com/en/company/history", captured: "2026-07-13" }
|
|
25
|
+
- { id: mission-context, kind: official-doc, url: "https://corp.oliveyoung.com/en/company/main", captured: "2026-07-13" }
|
|
26
|
+
- { id: vision-context, kind: official-doc, url: "https://corp.oliveyoung.com/en/company/vision", captured: "2026-07-13" }
|
|
27
|
+
conflicts: []
|
|
28
|
+
claims:
|
|
29
|
+
"tokens.colors.storefront-canvas": &storefront { surface_id: storefront-home, source_id: storefront-live, method: computed-style, captured: "2026-07-13" }
|
|
30
|
+
"tokens.colors.storefront-ink": *storefront
|
|
31
|
+
"tokens.colors.storefront-body": *storefront
|
|
32
|
+
"tokens.colors.storefront-muted": *storefront
|
|
33
|
+
"tokens.colors.storefront-line": *storefront
|
|
34
|
+
"tokens.colors.storefront-current": *storefront
|
|
35
|
+
"tokens.colors.corporate-brand-green": &corporate { surface_id: corporate-home, source_id: corporate-live, method: computed-style, captured: "2026-07-13" }
|
|
36
|
+
"tokens.typography.family.storefront": *storefront
|
|
37
|
+
"tokens.typography.family.corporate": *corporate
|
|
38
|
+
"tokens.typography.storefront-body.size": *storefront
|
|
39
|
+
"tokens.typography.storefront-body.weight": *storefront
|
|
40
|
+
"tokens.typography.storefront-body.lineHeight": *storefront
|
|
41
|
+
"tokens.typography.storefront-body.tracking": *storefront
|
|
42
|
+
"tokens.typography.storefront-body.use": *storefront
|
|
43
|
+
"tokens.typography.corporate-display.size": *corporate
|
|
44
|
+
"tokens.typography.corporate-display.weight": *corporate
|
|
45
|
+
"tokens.typography.corporate-display.lineHeight": *corporate
|
|
46
|
+
"tokens.typography.corporate-display.tracking": *corporate
|
|
47
|
+
"tokens.typography.corporate-display.use": *corporate
|
|
48
|
+
"tokens.spacing.search-x": *storefront
|
|
49
|
+
"tokens.spacing.search-end": *storefront
|
|
50
|
+
"tokens.rounded.outline-control": *storefront
|
|
51
|
+
"tokens.rounded.search-field": *storefront
|
|
52
|
+
"tokens.rounded.pagination-current": *storefront
|
|
53
|
+
"tokens.components.pagination-current.type": *storefront
|
|
54
|
+
"tokens.components.pagination-current.bg": *storefront
|
|
55
|
+
"tokens.components.pagination-current.fg": *storefront
|
|
56
|
+
"tokens.components.pagination-current.radius": *storefront
|
|
57
|
+
"tokens.components.pagination-current.font": *storefront
|
|
58
|
+
"tokens.components.pagination-current.active": *storefront
|
|
59
|
+
"tokens.components.pagination-current.use": *storefront
|
|
14
60
|
tokens:
|
|
15
|
-
source:
|
|
16
|
-
extracted: "2026-
|
|
61
|
+
source: reconciled
|
|
62
|
+
extracted: "2026-07-13"
|
|
63
|
+
components_harvested: true
|
|
17
64
|
colors:
|
|
18
|
-
|
|
19
|
-
ink: "#131518"
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
canvas: "#ffffff"
|
|
26
|
-
paper: "#f6f7f9"
|
|
27
|
-
line: "#e5e7ea"
|
|
28
|
-
line-thin: "#ebebeb"
|
|
29
|
-
sale: "#f65c60"
|
|
30
|
-
best: "#f05a5e"
|
|
31
|
-
same-day: "#f374b7"
|
|
32
|
-
coupon: "#9bce26"
|
|
33
|
-
gift: "#6fcff7"
|
|
34
|
-
promo-salmon: "#f27370"
|
|
65
|
+
storefront-canvas: "#ffffff"
|
|
66
|
+
storefront-ink: "#131518"
|
|
67
|
+
storefront-body: "#666666"
|
|
68
|
+
storefront-muted: "#888888"
|
|
69
|
+
storefront-line: "#ebebeb"
|
|
70
|
+
storefront-current: "#2f3030"
|
|
71
|
+
corporate-brand-green: "#82dc28"
|
|
35
72
|
typography:
|
|
36
|
-
family: {
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
small: { size: 12, weight: 400, use: "Flags, fine print" }
|
|
42
|
-
spacing: { sm: 8, base: 16, lg: 18 }
|
|
43
|
-
rounded: { sm: 4, md: 9, lg: 20, full: 9999 }
|
|
44
|
-
shadow:
|
|
45
|
-
none: "none"
|
|
73
|
+
family: { storefront: "Montserrat", corporate: "CJONLYONENew" }
|
|
74
|
+
storefront-body: { size: 14, weight: 400, lineHeight: 20, tracking: -0.56, use: "Storefront home body and navigation text" }
|
|
75
|
+
corporate-display: { size: 25.2, weight: 700, lineHeight: 35.28, tracking: 0, use: "Corporate home display copy" }
|
|
76
|
+
spacing: { search-x: 14, search-end: 10 }
|
|
77
|
+
rounded: { outline-control: 4, search-field: 5, pagination-current: 12 }
|
|
46
78
|
components:
|
|
47
|
-
|
|
48
|
-
button-outline: { type: button, bg: "#ffffff", fg: "#454c53", radius: 4, padding: "10px 16px", font: "14px/500", use: "Secondary action (์ ์ ๋๋ณด๊ธฐ)" }
|
|
49
|
-
pagination-active: { type: button, bg: "#2f3030", fg: "#ffffff", radius: 9999, font: "14px/700", use: "Current page indicator" }
|
|
50
|
-
category-pill: { type: tab, bg: "#ffffff", fg: "#757d86", radius: 20, padding: "8px 14px", font: "14px/400", use: "Category shortcut", active: "#000000 bg, #ffffff text" }
|
|
51
|
-
filter-chip: { type: tab, bg: "#ffffff", fg: "#757d86", radius: 18, padding: "8px 14px", font: "14px/400", use: "Search facet filter" }
|
|
52
|
-
flag-sale: { type: badge, bg: "#f65c60", fg: "#ffffff", radius: 9, padding: "3px 6px", font: "12px/400", use: "์ธ์ผ in-thumbnail pill" }
|
|
53
|
-
flag-same-day: { type: badge, bg: "#f374b7", fg: "#ffffff", radius: 9, font: "12px/400", use: "์ค๋๋๋ฆผ pill" }
|
|
54
|
-
flag-coupon: { type: badge, bg: "#9bce26", fg: "#ffffff", radius: 9, font: "12px/400", use: "์ฟ ํฐ pill" }
|
|
55
|
-
flag-gift: { type: badge, bg: "#6fcff7", fg: "#ffffff", radius: 9, font: "12px/400", use: "์ฆ์ pill" }
|
|
56
|
-
best-badge: { type: badge, bg: "#ffffff", fg: "#f05a5e", radius: 24, padding: "8px 18px", font: "14px/700", use: "๋ฒ ์คํธ sash on hero rails" }
|
|
57
|
-
search-input: { type: input, bg: "#ffffff", fg: "#131518", radius: 0, font: "13.33px/400", use: "Global GNB product search" }
|
|
58
|
-
product-card: { type: card, bg: "#ffffff", fg: "#131518", radius: 0, use: "Search/list product tile" }
|
|
59
|
-
components_harvested: true
|
|
79
|
+
pagination-current: { type: tab, bg: "#2f3030", fg: "#ffffff", radius: 12, font: "14px/700/Montserrat", active: "Current carousel pagination item; selected markup observed", use: "24px current item in storefront home carousel pagination" }
|
|
60
80
|
---
|
|
61
81
|
|
|
82
|
+
# Olive Young โ Design Reference
|
|
83
|
+
|
|
62
84
|
## 1. Visual Theme & Atmosphere
|
|
63
85
|
|
|
64
|
-
Olive Young
|
|
65
|
-
|
|
66
|
-
## 2. Color
|
|
67
|
-
|
|
68
|
-
| Token | Value | Role |
|
|
69
|
-
|---|---|---|
|
|
70
|
-
| `ink/primary` | `rgb(19, 21, 24)` โ `#131518` | GNB items, nav, headings on white |
|
|
71
|
-
| `ink/default` | `rgb(51, 51, 51)` โ `#333` | Card titles, mid-weight copy |
|
|
72
|
-
| `ink/body` | `rgb(102, 102, 102)` โ `#666` | Body default (also `body` element color) |
|
|
73
|
-
| `ink/muted` | `rgb(136, 136, 136)` โ `#888` | Meta lines, inactive pagination |
|
|
74
|
-
| `ink/disabled` | `rgb(170, 170, 170)` โ `#AAA` | Disabled |
|
|
75
|
-
| `ink/neutral-dark` | `rgb(47, 48, 48)` โ `#2F3030` | Active pagination fill |
|
|
76
|
-
| `ink/neutral-alt` | `rgb(69, 76, 83)` โ `#454C53` | "์ ์ ๋๋ณด๊ธฐ" outline button text |
|
|
77
|
-
| `ink/neutral-alt-2` | `rgb(80, 88, 95)` โ `#50585F` | Footer links / company-info button |
|
|
78
|
-
| `ink/neutral-alt-3` | `rgb(117, 125, 134)` โ `#757D86` | Chip text |
|
|
79
|
-
| `surface/white` | `#FFFFFF` | Ground (โ all chrome) |
|
|
80
|
-
| `surface/paper` | `rgb(246, 247, 249)` โ `#F6F7F9` | Filter strip / quiet panels |
|
|
81
|
-
| `line/default` | `rgb(229, 231, 234)` โ `#E5E7EA` | Chip + card border |
|
|
82
|
-
| `line/thin` | `rgb(235, 235, 235)` โ `#EBEBEB` | 1px tile separator (heart-button border) |
|
|
83
|
-
| `flag/sale` | `rgb(246, 92, 96)` โ `#F65C60` | "์ธ์ผ" pill |
|
|
84
|
-
| `flag/best` | `rgb(240, 90, 94)` โ `#F05A5E` | "๋ฒ ์คํธ" badge ring + text |
|
|
85
|
-
| `flag/same-day` | `rgb(243, 116, 183)` โ `#F374B7` | "์ค๋๋๋ฆผ" |
|
|
86
|
-
| `flag/coupon` | `rgb(155, 206, 38)` โ `#9BCE26` | "์ฟ ํฐ" (closest live token to brand olive) |
|
|
87
|
-
| `flag/gift` | `rgb(111, 207, 247)` โ `#6FCFF7` | "์ฆ์ " |
|
|
88
|
-
| `accent/promo-salmon` | `rgb(242, 115, 112)` โ `#F27370` | Promotional shelf accent on /best |
|
|
89
|
-
| `nextjs/dark-bg` | `#0a0a0a` | Next.js subtree fallback background var |
|
|
90
|
-
| `nextjs/dark-fg` | `#ededed` | Next.js subtree fallback foreground var |
|
|
91
|
-
|
|
92
|
-
**Discipline rule** (observed): Olive Young **does not put hue on its chrome**. Buttons, nav, footer, search input, headings all sit on `#000โ#888` neutrals; the five flag hues exist **only inside the thumbnail rectangle** as status payload. Olive Green (the corporate logotype color) is **absent from the storefront chrome** โ the closest live token is the lime-leaning coupon flag `#9BCE26`.
|
|
93
|
-
|
|
94
|
-
## 3. Typography
|
|
95
|
-
|
|
96
|
-
- **Stack (legacy JSP chrome):** `Montserrat, -apple-system, NotoSansCJKkr, AppleSDGothicNeo, Roboto, dotum, ๋์, sans-serif`
|
|
97
|
-
- **Stack (Next.js subtree):** `-apple-system, system-ui, AppleSDGothicNeo, "Noto Sans", Roboto, Montserrat, sans-serif`
|
|
98
|
-
- **Body:** 14px / 400 / `#666` / lh ~1.4
|
|
99
|
-
- **Size scale observed:** 12, 13, 13.33, 14, 15, 16, 20, 26, 28 px (no formal modular scale; the `13.333px` shows up in buttons converted from `0.833em`)
|
|
100
|
-
- **Weight scale:** 200 (rare ornamental), 400, 500 (Next.js subtree), 700 (default emphasis)
|
|
101
|
-
- **H1:** 28px / 700 (legacy main) โ used sparingly; most surfaces are H-less
|
|
102
|
-
- **Korean rendering:** intentional 4-stop fallback chain ending at `dotum / ๋์` preserves rendering for legacy WinXP/MacOS Korean readers (uncommon discipline in 2026 KR e-commerce โ legacy retention not pruned)
|
|
86
|
+
Olive Young is the CJ retail platform that grew from Koreaโs first Beauty & Health store into an omnichannel beauty-and-wellness business. Its official history describes a move away from the traditional health-supplement drugstore model toward beauty, trend discovery, locally tailored assortments, stores, and digital services; its current mission is to help customers live healthier and more beautiful everyday lives. The supplied 2026 capture shows that this story is expressed very differently by two owned surfaces. The shopping storefront is an information-dense, white and charcoal retail interface dominated by `#666666` body copy, a loaded Montserrat web family, square product controls, and a compact 24px current-page marker. The corporate site is a separate brand-and-company presentation with loaded CJONLYONENew and the observed `#82dc28` brand green. These are not one interchangeable UI system: corporate identity context must not be used to fill gaps in the storefront, and the storefront capture does not establish an authenticated app, checkout, mobile, or documentation system.
|
|
103
87
|
|
|
104
|
-
|
|
88
|
+
- **Storefront evidence:** a white canvas, low-radius controls, black-to-gray text hierarchy, and carousel/product-grid mechanics on the public home page.
|
|
89
|
+
- **Corporate evidence:** the green aligns with the official brand-resources description of Olive Green, while corporate typography resolves to CJONLYONENew.
|
|
90
|
+
- **Current brand evolution:** Olive Youngโs official 2025 newsroom announcement says its renewed wordmark was designed for clearer visibility across online and offline global expansion; that is identity context, not a storefront component token.
|
|
105
91
|
|
|
106
|
-
|
|
92
|
+
## 2. Color Palette & Roles
|
|
107
93
|
|
|
108
|
-
|
|
109
|
-
- Background: `#000000`
|
|
110
|
-
- Text: `#FFFFFF`
|
|
111
|
-
- Border: 0
|
|
112
|
-
- Radius: `4px`
|
|
113
|
-
- Padding: ~`12px 18px` (hโ40)
|
|
114
|
-
- Font: 13.33px / 700 / MontserratโNotoSansCJKkr
|
|
115
|
-
- Use: "์ฅ๋ฐ๊ตฌ๋ ๋ด๊ธฐ" / primary commit on legacy surfaces
|
|
94
|
+
### Observed storefront roles
|
|
116
95
|
|
|
117
|
-
|
|
96
|
+
- **Storefront canvas** (`#ffffff`): repeated page, button, and product-control surface on `storefront-home`.
|
|
97
|
+
- **Storefront ink** (`#131518`): observed search-field text on `home::[data-omd-capture="8"]`; it is not a universal corporate text token.
|
|
98
|
+
- **Storefront body** (`#666666`): dominant body and navigation color on the public home capture.
|
|
99
|
+
- **Storefront muted** (`#888888`): inactive carousel pagination-button text.
|
|
100
|
+
- **Storefront line** (`#ebebeb`): 1px border on the repeated `btn_zzim jeem` wishlist control.
|
|
101
|
+
- **Storefront current** (`#2f3030`): current 24px carousel-pagination item.
|
|
118
102
|
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
-
|
|
122
|
-
|
|
123
|
-
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
103
|
+
### Observed corporate-brand role
|
|
104
|
+
|
|
105
|
+
- **Corporate brand green** (`#82dc28`): observed on the corporate home capture and also named Olive Green in Olive Youngโs official Brand Resources. Its official counterpart is Coral Orange `#ff7878`, but Coral Orange was not a computed token in the supplied surfaces and is intentionally not added to `tokens.colors`.
|
|
106
|
+
|
|
107
|
+
The source bundle also contains isolated browser/vendor-like blues, reds, and other local values. Without a repeated role or a first-party product token specification, they are not promoted to a semantic palette.
|
|
108
|
+
|
|
109
|
+
## 3. Typography Rules
|
|
110
|
+
|
|
111
|
+
### Evidence classes
|
|
127
112
|
|
|
128
|
-
|
|
113
|
+
- **Live storefront use โ Montserrat.** `Montserrat` is loaded with high confidence, has 528 visible uses across storefront body, list, menu, tab, button, and heading roles, and is corroborated by six Olive Young-hosted WOFF/WOFF2 sources. The observed home stack begins `Montserrat, -apple-system, NotoSansCJKkr, AppleSDGothicNeo, Roboto, โฆ`; only the loaded Montserrat family is represented as the storefront family token.
|
|
114
|
+
- **Live corporate use โ CJONLYONENew.** `CJONLYONENew` is loaded with high confidence on the corporate home (176 visible uses) and is backed by six `corp.oliveyoung.com` WOFF2 assets. The captured corporate stack lists it first, before Pretendard and Korean system fallbacks. It is a corporate-surface family token, not evidence of storefront use.
|
|
115
|
+
- **Loaded but not promoted.** `NotoSansCJKkr` has only three recorded visible uses on the storefront and stays a loaded fallback observation rather than a general primary family token. `Arial` is system-resolved in the one captured search input and is not an Olive Young font asset.
|
|
116
|
+
- **Declared-only assets.** CJONLYONENewJP, CJONLYONENewOrigin, Dovemayo-Medium, Nanum Myeongjo, Noto Sans KR, OY Greta Sans, Pretendard, and PretendardJP have declared `@font-face` sources but zero recorded visible use in this bundle. They remain declared-only; no specimen or token substitutes them.
|
|
117
|
+
- **Licence boundary.** First-party pages and the supplied bundle establish delivery of the corporate and storefront webfont files, but this update found no first-party standalone licence granting downstream reuse of CJONLYONENew or Montserrat assets. Asset delivery is not a redistribution licence.
|
|
129
118
|
|
|
130
|
-
|
|
119
|
+
### Measured styles
|
|
120
|
+
|
|
121
|
+
| Scope | Family | Size | Weight | Line height | Tracking | Evidence boundary |
|
|
122
|
+
|---|---|---:|---:|---:|---:|---|
|
|
123
|
+
| Storefront body/navigation | Montserrat | 14px | 400 | 20px | -0.56px | repeated `home` text/list/menu/tab samples |
|
|
124
|
+
| Storefront carousel pagination | Montserrat | 14px | 700 | 24px | normal | `home::[data-omd-capture="174"]` and `"175"` |
|
|
125
|
+
| Corporate display copy | CJONLYONENew | 25.2px | 700 | 35.28px | normal | repeated `surface-2` body samples |
|
|
126
|
+
|
|
127
|
+
## 4. Components
|
|
128
|
+
|
|
129
|
+
All components below retain their captured surface and selector provenance. The supplied bundle reports `interactionCount: 0`; it does not establish hover, focus, pressed, disabled, dialog, menu, toast, cart, or checkout variants. The selected/current carousel relationship is static markup observed in the capture, not an interaction transition contract.
|
|
130
|
+
|
|
131
|
+
### Storefront carousel pagination
|
|
132
|
+
|
|
133
|
+
**Current item as captured**
|
|
131
134
|
- Background: `#2F3030`
|
|
132
135
|
- Text: `#FFFFFF`
|
|
133
136
|
- Border: 0
|
|
134
|
-
- Radius: `
|
|
135
|
-
-
|
|
136
|
-
-
|
|
137
|
-
- Use:
|
|
137
|
+
- Radius: `12px`
|
|
138
|
+
- Font: `14px / 700 / Montserrat`
|
|
139
|
+
- Active: current 24px carousel item; evidence `home::[data-omd-capture="174"]`, with selected carousel markup at `home::#slick-slide10`
|
|
140
|
+
- Use: public storefront-home carousel pagination
|
|
138
141
|
|
|
139
|
-
**
|
|
142
|
+
**Other item as captured**
|
|
140
143
|
- Background: transparent
|
|
141
144
|
- Text: `#888888`
|
|
142
145
|
- Border: 0
|
|
143
|
-
- Radius:
|
|
144
|
-
- Font: 14px / 700
|
|
145
|
-
- Use:
|
|
146
|
+
- Radius: `0px`
|
|
147
|
+
- Font: `14px / 700 / Montserrat`
|
|
148
|
+
- Use: sibling 24px carousel-pagination button; evidence `home::[data-omd-capture="175"]`
|
|
146
149
|
|
|
147
|
-
###
|
|
150
|
+
### Storefront wishlist control
|
|
148
151
|
|
|
149
|
-
**
|
|
150
|
-
- Background: `#000000`
|
|
151
|
-
- Text: `#FFFFFF`
|
|
152
|
-
- Border: 0
|
|
153
|
-
- Radius: `20px`
|
|
154
|
-
- Padding: ~`8px 14px` (hโ34)
|
|
155
|
-
- Font: 14px / 400
|
|
156
|
-
- Use: Selected category shortcut
|
|
157
|
-
|
|
158
|
-
**Default**
|
|
152
|
+
**Default visual shell**
|
|
159
153
|
- Background: `#FFFFFF`
|
|
160
|
-
-
|
|
161
|
-
-
|
|
162
|
-
-
|
|
163
|
-
-
|
|
164
|
-
- Use: Unselected category shortcut
|
|
154
|
+
- Border: `1px solid #EBEBEB`
|
|
155
|
+
- Radius: `0px`
|
|
156
|
+
- Size: `40px ร 40px`
|
|
157
|
+
- Use: repeated product-grid `btn_zzim jeem` control on storefront-home; evidence `home::[data-omd-capture="85"]` (29 occurrences)
|
|
165
158
|
|
|
166
|
-
|
|
159
|
+
The controlโs visible glyph is not text (`font-size: 0px` in the representative sample); its active/selected icon treatment was not captured and is intentionally omitted.
|
|
167
160
|
|
|
168
|
-
|
|
169
|
-
- Background: `#FFFFFF`
|
|
170
|
-
- Text: `#757D86`
|
|
171
|
-
- Border: `1px solid #E5E7EA`
|
|
172
|
-
- Radius: `18px`
|
|
173
|
-
- Padding: ~`8px 14px` (h=36)
|
|
174
|
-
- Font: 14px / 400
|
|
175
|
-
- Use: ์ ํํน์ง / ๊ฐ๊ฒฉ๋ / ์์ facet filters
|
|
161
|
+
### Storefront search field
|
|
176
162
|
|
|
177
|
-
|
|
163
|
+
**Default visual shell**
|
|
164
|
+
- Text: `#131518`
|
|
165
|
+
- Radius: `5px`
|
|
166
|
+
- Padding: `0px 10px 0px 14px`
|
|
167
|
+
- Font: `14px / 400 / Arial` (system-resolved)
|
|
168
|
+
- Use: `header_search_input` on storefront-home; evidence `home::[data-omd-capture="8"]`
|
|
178
169
|
|
|
179
|
-
|
|
180
|
-
- Background: `#F65C60`
|
|
181
|
-
- Text: `#FFFFFF`
|
|
182
|
-
- Border: 0
|
|
183
|
-
- Radius: `9px`
|
|
184
|
-
- Padding: ~`3px 6px` (h=18)
|
|
185
|
-
- Font: 12px / 400
|
|
186
|
-
- Use: Active price discount
|
|
170
|
+
No focused, typed, error, disabled, or autocomplete state was supplied.
|
|
187
171
|
|
|
188
|
-
|
|
189
|
-
- Background: `#F374B7`
|
|
190
|
-
- Text: `#FFFFFF`
|
|
191
|
-
- Border: 0
|
|
192
|
-
- Radius: `9px`
|
|
193
|
-
- Font: 12px / 400
|
|
194
|
-
- Use: Same-day quick-commerce eligibility
|
|
172
|
+
### Storefront outline control
|
|
195
173
|
|
|
196
|
-
**
|
|
197
|
-
-
|
|
198
|
-
-
|
|
199
|
-
-
|
|
200
|
-
-
|
|
201
|
-
- Font: 12px / 400
|
|
202
|
-
- Use: Coupon-eligible SKU
|
|
174
|
+
**Default visual shell**
|
|
175
|
+
- Border: `1px solid #DDDDDD`
|
|
176
|
+
- Radius: `4px`
|
|
177
|
+
- Font: `13.3333px / 700 / Montserrat`
|
|
178
|
+
- Use: `home::[data-omd-capture="66"]`, class `btn`, 335px ร 40px
|
|
203
179
|
|
|
204
|
-
|
|
205
|
-
- Background: `#6FCFF7`
|
|
206
|
-
- Text: `#FFFFFF`
|
|
207
|
-
- Border: 0
|
|
208
|
-
- Radius: `9px`
|
|
209
|
-
- Font: 12px / 400
|
|
210
|
-
- Use: Gift-with-purchase
|
|
180
|
+
The sampleโs transparent background and white computed foreground cannot identify its composited visual context, so no foreground or reusable button-color token is asserted.
|
|
211
181
|
|
|
212
|
-
###
|
|
182
|
+
### Corporate skip link
|
|
213
183
|
|
|
214
|
-
**Default**
|
|
215
|
-
- Background: `#
|
|
216
|
-
- Text: `#
|
|
217
|
-
-
|
|
218
|
-
-
|
|
219
|
-
-
|
|
220
|
-
- Font: 14px / 700
|
|
221
|
-
- Use: Best-seller call-out on hero rails
|
|
184
|
+
**Default visual shell**
|
|
185
|
+
- Background: `#0000FF`
|
|
186
|
+
- Text: `#FFFFFF`
|
|
187
|
+
- Radius: `6px`
|
|
188
|
+
- Font: `13.5px / 400 / CJONLYONENew`
|
|
189
|
+
- Use: off-canvas `btn_skip` accessibility link on corporate-home; evidence `surface-2::[data-omd-capture="0"]`
|
|
222
190
|
|
|
223
|
-
|
|
191
|
+
This is corporate accessibility chrome, not storefront evidence or a general Olive Young primary-action token.
|
|
224
192
|
|
|
225
|
-
|
|
226
|
-
-
|
|
227
|
-
|
|
228
|
-
-
|
|
229
|
-
|
|
230
|
-
- Size: 40ร40
|
|
231
|
-
- Use: ์ฐํ๊ธฐ toggle
|
|
193
|
+
---
|
|
194
|
+
**Verified:** 2026-07-13
|
|
195
|
+
**Tier 1 sources:** `https://www.oliveyoung.co.kr/store/main/main.do?oy=0` (public storefront), `https://corp.oliveyoung.com/ko` (public corporate surface), `https://corp.oliveyoung.com/en/company/brand` (official brand resources), `https://corp.oliveyoung.com/en/company/history` (official history), `https://corp.oliveyoung.com/en/company/main` (official mission), `https://corp.oliveyoung.com/en/company/vision` (official vision)
|
|
196
|
+
**Tier 2 sources:** `https://getdesign.md/oliveyoung` (attempted through built-in web open; internal error, no usable record), `https://styles.refero.design/?q=oliveyoung` (attempted through built-in web open; internal error, no usable record)
|
|
197
|
+
**Conflicts unresolved:** none
|
|
232
198
|
|
|
233
|
-
|
|
199
|
+
The previous legacy snapshotโs unrecaptured flag palette, inferred product states, product-detail migration account, cart/checkout claims, motion timings, and uncorroborated component variants were removed rather than carried forward.
|
|
234
200
|
|
|
235
|
-
|
|
236
|
-
- Background: `#FFFFFF`
|
|
237
|
-
- Text: `#131518`
|
|
238
|
-
- Border: bottom-only / inherited
|
|
239
|
-
- Radius: 0
|
|
240
|
-
- Height: 38
|
|
241
|
-
- Font: 13.33px (legacy) / 16px (Next.js)
|
|
242
|
-
- Use: Global product search
|
|
201
|
+
## 5. Layout & Spacing
|
|
243
202
|
|
|
244
|
-
|
|
203
|
+
- The supplied storefront capture is 1440ร900 and records a 294px ร 38px global search field with `0px 10px 0px 14px` padding.
|
|
204
|
+
- Captured carousel pagination is 24px ร 24px. The repeated wishlist control is 40px ร 40px.
|
|
205
|
+
- The collectorโs spacing frequencies include 2, 5, 10, 12, 18, 22, 23, 24, 30, 35, 40, 45, 51, 60, and 80px. This is a capture-frequency record, not a published spacing scale.
|
|
206
|
+
- No authenticated product layout, search-results layout, purchase funnel, responsive breakpoint, or mobile reflow is established by the two supplied desktop surfaces.
|
|
245
207
|
|
|
246
|
-
|
|
247
|
-
- Background: `#FFFFFF`
|
|
248
|
-
- Thumbnail aspect: 1:1 square (standard for KR H&B grid)
|
|
249
|
-
- Title: 14px / 400 / `#333`
|
|
250
|
-
- Brand: 12px / 400 / `#888`
|
|
251
|
-
- Price (active): 14โ16px / 700 / `#131518`
|
|
252
|
-
- Strike price: 12px / 400 / `#AAA` line-through
|
|
253
|
-
- Flag area: 9px-radius pills inside thumb corner
|
|
254
|
-
- Border: 0 (separated by `#EBEBEB` grid gap)
|
|
255
|
-
- Use: Search result / category list / best list
|
|
208
|
+
## 6. Depth & Elevation
|
|
256
209
|
|
|
210
|
+
The storefront carousel pagination, wishlist controls, search field, and outline control report `box-shadow: none`. The corporate `btn_top` is a distinct corporate-surface exception with `0px 10px 15px rgba(0, 0, 0, 0.1)`; it is not promoted to a shared elevation token.
|
|
257
211
|
|
|
258
|
-
##
|
|
212
|
+
## 7. Do's and Don'ts
|
|
259
213
|
|
|
260
214
|
### Do
|
|
261
|
-
|
|
262
|
-
-
|
|
263
|
-
-
|
|
264
|
-
-
|
|
265
|
-
- Keep
|
|
266
|
-
-
|
|
215
|
+
|
|
216
|
+
- Keep storefront implementation claims bounded to the observed home surface and its measured black-to-gray hierarchy.
|
|
217
|
+
- Treat `#82dc28` as corporate brand evidence unless a storefront surface independently establishes that role.
|
|
218
|
+
- Preserve the source-domain boundary between Montserrat storefront use and CJONLYONENew corporate use.
|
|
219
|
+
- Keep current carousel pagination compact: the captured current item is `#2f3030` with white text and a 12px radius.
|
|
220
|
+
- Label declared-only families as unavailable rather than rendering another family under their names.
|
|
267
221
|
|
|
268
222
|
### Don't
|
|
269
|
-
- Put any flag color or hue on a primary CTA or chrome surface โ the filled CTA stays `#000000` background with `#FFFFFF` text
|
|
270
|
-
- Introduce a sixth status color for a "new" or extra badge โ reuse one of the existing five flag roles or skip the chrome
|
|
271
|
-
- Add hover lift, shadow gain, or drop shadows to tiles, chips, or pills โ depth in this system stays line-only and state is static-encoded
|
|
272
|
-
- Spread Olive Green or the coupon lime `#9BCE26` across chrome or large backgrounds โ corporate olive is absent from the storefront and the lime lives only in the coupon flag
|
|
273
|
-
- Prune the Korean fallback chain down to system-ui only, dropping the deliberate `๋์` legacy-OS support floor
|
|
274
|
-
- Reproduce verbatim Olive Young marketing taglines or write hard-sell copy like "์ง๊ธ ์ ์ฌ๋ฉด ์ํด์์" โ copy works as neutral labels and offers
|
|
275
223
|
|
|
276
|
-
|
|
224
|
+
- Do not turn the corporate skip link, top button, or Swiper chrome into storefront component tokens.
|
|
225
|
+
- Do not infer cart, checkout, form-error, hover, focus, or motion behavior from this static, zero-interaction bundle.
|
|
226
|
+
- Do not promote OY Greta Sans, Pretendard, Noto Sans KR, or other zero-use declarations to the UI family.
|
|
227
|
+
- Do not use official logo colors as a storefront color system without a matching storefront observation.
|
|
277
228
|
|
|
278
|
-
|
|
279
|
-
**Tier 1 sources:** CDP `:9222` getComputedStyle on (a) `https://www.oliveyoung.co.kr/store/main/main.do` 65 distinct samples ยท (b) `/store/main/getBestList.do` 33 samples ยท (c) `/store/search/getSearchMain.do?query=์ ํฌ๋ฆผ` 55 samples ยท (d) `/store/goods/getGoodsDetail.do?goodsNo=A000000167660` 26 samples on Next.js shell. Total **179 distinct DOM samples** across 4 surfaces. Artifacts: `assets/_reference/tokens.json`, `structure.json`, `fonts.json`, `.live-inspect-proof.json` (11 raw_samples โ over the โฅ5 floor).
|
|
280
|
-
**Tier 1 official DS:** โ negative โ `design.oliveyoung.co.kr` no DNS, `oliveyoung.design` no DNS, `corp.oliveyoung.com/*` 404, `cjoliveyoung.co.kr` ECONNREFUSED, no public Figma library, no `github.com/oliveyoung*` design-system repo. Documented authoritative negative. **Discovery**: production code reveals a **dual-stack migration in flight** (legacy JSP chrome + Next.js product-detail subtree with `--background/--foreground/--font-noto-sans-kr/--font-roboto` runtime vars + `*_btn__hash` CSS-Modules) โ the canonical token system lives inside the Next.js bundle, not on a public docs surface.
|
|
281
|
-
**Tier 2 sources:** โ getdesign.md/oliveyoung โ fetch blocked by Claude auto-mode classifier (domain not user-allowlisted), unable to verify presence/absence this pass; โ styles.refero.design `?q=oliveyoung` โ no result cards.
|
|
282
|
-
**Conflicts unresolved:** none material โ `accent/promo-salmon #F27370` vs `flag/best #F05A5E` differ by 2 RGB steps; treated as **two distinct tokens** since they appear on different surface roles (promo shelf vs taxonomic badge). Flagged for UPDATE pass: product-detail (real SKU), cart, my-page, mobile (`m.oliveyoung.co.kr`) โ not captured this session.
|
|
229
|
+
## 8. Accessibility & Evidence Limits
|
|
283
230
|
|
|
284
|
-
|
|
231
|
+
- The corporate surface includes an off-canvas skip link, but the capture does not document keyboard traversal, focus-visible styling, or screen-reader behavior.
|
|
232
|
+
- The storefront current carousel marker is 24px square and the captured wishlist shell is 40px square. This reference records dimensions only; it is not a touch-target or contrast conformance audit.
|
|
233
|
+
- `#666666` body text, `#888888` muted pagination text, and white text on `#2f3030` are observed combinations. Each target implementation still needs its own contrast and state testing.
|
|
234
|
+
- No design-system documentation, authenticated application, or mobile surface was supplied. Those domains remain unresolved rather than being filled from corporate marketing or legacy notes.
|
|
285
235
|
|
|
286
|
-
|
|
287
|
-
- **GNB:** 90px header inner + 119px design-area (banner row), fixed top
|
|
288
|
-
- **Search input:** 38px height
|
|
289
|
-
- **Card grid (search/best):** 4-up desktop, square thumbnails, ~16px gutter
|
|
290
|
-
- **Filter strip (search):** 36px chips, paper bg `#F6F7F9`, top of result column
|
|
291
|
-
- **Pagination:** 24ร24 circular active dot, centered below grid
|
|
236
|
+
## 9. Agent Prompt Guide
|
|
292
237
|
|
|
293
|
-
|
|
238
|
+
Use this reference for a factual, dense Korean beauty-retail storefront moment: white ground, dark-gray reading hierarchy, square product-grid controls, Montserrat where the licensed/available target actually supplies it, and a compact dark current-page marker. For corporate storytelling, keep CJONLYONENew and Olive Green in the separate corporate lane. Do not present a system fallback, declared-only face, logo color, or unobserved cart interaction as an Olive Young storefront fact.
|
|
294
239
|
|
|
295
|
-
|
|
296
|
-
- **Filled use:** Only in flag pills (no in-pill icon; pill itself is the icon).
|
|
297
|
-
- **Heart:** Outline default โ filled `#F05A5E` on active (inferred from `btn_zzim jeem` class semantics).
|
|
240
|
+
## 10. Voice & Tone
|
|
298
241
|
|
|
299
|
-
|
|
242
|
+
Olive Youngโs official company language is optimistic, practical, and discovery-oriented: its mission centers a healthier and more beautiful everyday life, while the vision names Healthy Beauty and New Discoveries Everyday. The public storefront capture supports short functional labels and dense retail scanning, but it does not establish a complete product microcopy system.
|
|
300
243
|
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
244
|
+
| Do | Don't |
|
|
245
|
+
|---|---|
|
|
246
|
+
| Connect a beauty or wellness action to a concrete everyday outcome. | Make unverifiable efficacy, delivery, or price promises. |
|
|
247
|
+
| Describe discovery as a useful choice or service. | Replace a product fact with a vague lifestyle superlative. |
|
|
248
|
+
| Keep commerce labels short and legible in a dense catalog. | Treat the corporate slogan as a verbatim checkout or error-copy pattern. |
|
|
305
249
|
|
|
306
|
-
|
|
250
|
+
**Official wording samples**
|
|
251
|
+
- *โHealthy Beautyโ* โ official brand essence.
|
|
252
|
+
- *โNew Discoveries Everydayโ* โ official core value.
|
|
253
|
+
- *โALL LIVE BETTERโ* โ official brand slogan.
|
|
307
254
|
|
|
308
|
-
|
|
309
|
-
- **Chip text `#757D86` on white** = ~4.5:1 โ at the AA floor; chips with mixed-case Korean (๋ vs ใ
) are legible but borderline
|
|
310
|
-
- **Flag contrasts (white text on flag color):**
|
|
311
|
-
- Sale `#F65C60` โ 3.2:1 โ **fails AA for normal text**; passes for 14px bold or larger via Korean Bold-text exception; documented trade-off
|
|
312
|
-
- Coupon `#9BCE26` + white โ 1.8:1 โ **fails AA**; legibility relies on the 12px size + bold-by-CJK rendering
|
|
313
|
-
- Gift `#6FCFF7` + white โ 1.6:1 โ **fails AA**
|
|
314
|
-
- **Touch targets:** Pagination 24ร24 below WCAG 2.5.5 (44ร44) โ speed-over-floor decision typical of KR catalog UIs
|
|
315
|
-
- **Korean fallback chain ends at ๋์** โ explicit legacy-OS support, rare in 2026
|
|
255
|
+
## 11. Brand Narrative
|
|
316
256
|
|
|
317
|
-
|
|
257
|
+
Olive Youngโs official history places its beginning in 1999 as Koreaโs first Beauty & Health store and describes a category shift from conventional supplement-led drugstores toward beauty, trend-led products, and locally tailored store designs and assortments. The company now presents itself as a lifestyle platform where customers encounter trends, not merely as a cosmetics shelf. Its official history records an independent official online store in 2017, same-day delivery in 2018, a 2019 BI renewal, and a 2025 logo renewal oriented toward global and omnichannel visibility. These are brand and business facts; they do not prove an unobserved application design system.
|
|
318
258
|
|
|
319
|
-
|
|
320
|
-
- **Korean style:** Casual-polite ("~ํด์/์ธ์"), declarative, comma-light, status-first ("์ธ์ผ", "์ค๋๋๋ฆผ", "์ฟ ํฐ", "์ฆ์ "). Imperative-light โ even CTAs read as factual ("์ฅ๋ฐ๊ตฌ๋ ๋ด๊ธฐ" not "์ง๊ธ ์ฌ์ธ์").
|
|
321
|
-
- **Pattern:** Verb + ํ๊ธฐ noun ("์ฐํ๊ธฐ", "๋ด๊ธฐ", "๋๋ณด๊ธฐ", "1:1๋ฌธ์ํ๊ธฐ") is the dominant CTA shape โ observed on 6+ buttons across captures.
|
|
322
|
-
- **Do / Don't (fresh OmD illustrative โ not Olive Young verbatim):**
|
|
259
|
+
## 12. Principles
|
|
323
260
|
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
| "์ค๋ ๋ฐ๋ ์ํ๋ง ๋ณด๊ธฐ" | "์ค๋ ์ ๋ฐ์ผ๋ฉด ํํํด์" |
|
|
261
|
+
1. **Healthy beauty joins beauty and wellbeing.** The official brand essence is Healthy Beauty. *UI implication:* frame choices as practical care or discovery, not as unsupported transformation claims.
|
|
262
|
+
2. **Discovery belongs in everyday life.** The official core value names New Discoveries Everyday. *UI implication:* make catalog information scannable enough to compare products and services without forcing a narrative detour.
|
|
263
|
+
3. **Omnichannel is a business context, not a copied UI pattern.** Olive Youngโs history records online, store, pickup, returns, and same-day service milestones. *UI implication:* preserve service context where it is observed; do not invent cart or fulfilment controls from the corporate story alone.
|
|
264
|
+
4. **Global clarity is a current identity objective.** The 2025 official logo-renewal announcement cites visibility and English readability across online and offline environments. *UI implication:* distinguish identity assets from product-interface tokens and keep type/asset licensing explicit.
|
|
329
265
|
|
|
330
|
-
|
|
331
|
-
1. "์ค๋ ๋์ฐฉ ๊ฐ๋ฅํ ์ํ๋ง ๋ชจ์์ด์." โ same-day filter affordance
|
|
332
|
-
2. "ํ์์ด๋ฉด โฉ2,000 ๋ ์ ๋ ดํด์." โ soft commercial nudge, declarative not imperative
|
|
333
|
-
3. "์ด ์์์ ๋ค์ ์ฃผ์ ๋ค์ ๋ค์ด์ฌ ๊ฒ ๊ฐ์์." โ OOS state, soft restock signal
|
|
266
|
+
## 13. Personas
|
|
334
267
|
|
|
335
|
-
|
|
268
|
+
The official sources describe customers generally rather than publishing research-backed personas. The following are non-fictional stakeholder groups derived from the documented service model, not demographic profiles or behavioral claims.
|
|
336
269
|
|
|
337
|
-
|
|
270
|
+
- **Beauty & Health customers:** people the official mission says Olive Young aims to inspire and empower toward healthier, more beautiful everyday lives.
|
|
271
|
+
- **Local-store and online shoppers:** customers served through the documented store, official-online-store, pickup, return, and same-day-delivery milestones.
|
|
272
|
+
- **Brand and business partners:** stakeholders named in the companyโs mission and sustainability materials through partnership and mutual-growth commitments.
|
|
338
273
|
|
|
339
|
-
|
|
274
|
+
## 14. States & Motion
|
|
340
275
|
|
|
341
|
-
|
|
276
|
+
- **Observed current carousel item:** `#2f3030`, white text, 12px radius, 24px square.
|
|
277
|
+
- **Observed other carousel item:** transparent, `#888888` text, 0px radius, 24px square.
|
|
278
|
+
- **Observed selected carousel markup:** `home::#slick-slide10` carries `aria-selected="true"`; the capture does not record a transition or interaction event.
|
|
279
|
+
- **Unobserved:** loading, empty, error, success, form validation, disabled, hover, focus, pressed, cart feedback, menu, dialog, toast, and mobile states.
|
|
280
|
+
- **Motion:** the bundle contains Slick and Swiper class names, but no captured duration, easing, or interaction sequence. No motion token is asserted.
|
|
342
281
|
|
|
343
|
-
|
|
344
|
-
2. **One flag = one fact.** Sale / ์ค๋๋๋ฆผ / ์ฟ ํฐ / ์ฆ์ / ๋ฒ ์คํธ each map 1:1 to a service feature, not a marketing mood. *UI implication: don't introduce a sixth color for a "new" badge; pick one of the existing flag roles or skip the chrome.*
|
|
345
|
-
3. **Weight signals over hue.** Active pagination flips from transparent/`#888` to `#2F3030`/`#FFF` and goes from radius-0 to 50% circle โ state encoded by 2 axes (fill + radius) not by hue. *UI implication: prefer ink-darkening + shape-change for state; reserve color for status payload.*
|
|
346
|
-
4. **Korean rendering down to ๋์.** The fallback chain explicitly retains a Windows-XP/older-macOS Korean glyph โ a deliberate accessibility floor for older readers. *UI implication: never prune the Korean fallback chain to system-ui only.*
|
|
347
|
-
5. **Migrate in subtrees, not big-bang.** Product-detail Next.js + legacy JSP main coexist; the catalog shopper sees a consistent chrome despite two stacks underneath. *UI implication: design-system migrations should target one feature surface at a time and share visual tokens at the chrome level.*
|
|
282
|
+
## 15. References & Boundaries
|
|
348
283
|
|
|
349
|
-
|
|
284
|
+
### Tier 1 live evidence
|
|
350
285
|
|
|
351
|
-
|
|
286
|
+
- `https://www.oliveyoung.co.kr/store/main/main.do?oy=0` โ public storefront: 532 captured elements, Montserrat loaded/high with 528 uses, and the measured search, wishlist, outline-control, and carousel-pagination samples.
|
|
287
|
+
- `https://corp.oliveyoung.com/ko` โ public corporate surface: 176 captured elements, CJONLYONENew loaded/high with 176 uses, corporate skip-link and top-button samples, and declared-only corporate font assets.
|
|
352
288
|
|
|
353
|
-
|
|
354
|
-
- **Ji-won (38, parent, Suwon):** weekend desktop session, builds a 8โ12 SKU cart of repeat-buy basics, sorts by coupon eligibility, treats `#9BCE26` coupon flag as primary signal-to-noise filter.
|
|
355
|
-
- **Min-jae (24, K-beauty enthusiast, Busan):** product-detail page is the destination โ wants ingredient list, review filter by skin type, real-color swatch photos. The Next.js detail-page rebuild is for this persona.
|
|
356
|
-
- **Su-jin (52, gift-buyer, Daejeon):** lower digital comfort, relies on category pills and "๋ฒ ์คํธ" badge โ the radius-24px pill is a literal stamp of "popular enough to trust." Korean fallback to `๋์` is for this reader.
|
|
289
|
+
### First-party context, brand, and font boundaries
|
|
357
290
|
|
|
358
|
-
|
|
291
|
+
- `https://corp.oliveyoung.com/en/company/brand` โ official brand name story, logo colors, 13ยฐ symbol meaning, and downloadable logo asset; it does not publish a storefront token specification.
|
|
292
|
+
- `https://corp.oliveyoung.com/en/company/history` โ official company/history and omnichannel milestones; it does not supply component values.
|
|
293
|
+
- `https://corp.oliveyoung.com/en/company/main` and `/vision` โ official mission, Healthy Beauty, New Discoveries Everyday, and ALL LIVE BETTER language; they do not establish transactional UI copy or states.
|
|
294
|
+
- Olive Young-hosted WOFF/WOFF2 delivery URLs in the supplied collector corroborate the loaded families. No first-party standalone downstream-reuse licence was located in this update, so a target project must not assume permission to copy those font assets.
|
|
359
295
|
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
| Loading | No skeleton observed on legacy chrome; Next.js subtree presumed (not captured this pass โ flagged) |
|
|
364
|
-
| Error โ 404 | `ProductNotFound_btn-area__Q_xDU` two-button shell, neutral chrome, no error red |
|
|
365
|
-
| Error โ form | Not captured this pass; flagged for UPDATE |
|
|
366
|
-
| Success โ added to cart | Toast pattern presumed; not captured |
|
|
367
|
-
| Skeleton | Likely tile-shaped on Next.js detail; not captured |
|
|
368
|
-
| Disabled (button) | Inferred โ opacity-driven on legacy (no dedicated token) |
|
|
369
|
-
| Hover (chip / pill) | Static โ no shadow gain, no lift; depth stays line-only |
|
|
370
|
-
| Active (pagination) | Fill flip `transparent โ #2F3030` + radius `0 โ 50%` + text flip `#888 โ #FFF` |
|
|
371
|
-
| Active (category pill) | Fill flip `#FFF โ #000` + text flip `#757D86 โ #FFF`, radius unchanged at 20px |
|
|
372
|
-
|
|
373
|
-
## 14. Motion & Easing
|
|
374
|
-
|
|
375
|
-
- **Carousel:** slick (legacy hero) โ default 300ms slide, ease-in-out
|
|
376
|
-
- **Carousel:** Swiper (Next.js subtree) โ `--swiper-theme-color: #007aff` exposed (visual override likely)
|
|
377
|
-
- **Hover:** **none observed** on tiles, chips, or pills โ depth and state are static-encoded
|
|
378
|
-
- **Floor:** No site-wide motion tokens captured. **Flagged** as follow-up โ capture from a real product-detail SKU + cart-add transition.
|
|
379
|
-
|
|
380
|
-
## 15. References & Footer
|
|
381
|
-
|
|
382
|
-
**Live capture (Tier 1):**
|
|
383
|
-
- `https://www.oliveyoung.co.kr/store/main/main.do` (65 samples, legacy JSP)
|
|
384
|
-
- `https://www.oliveyoung.co.kr/store/main/getBestList.do` (33 samples, legacy JSP, promo-salmon `#F27370`)
|
|
385
|
-
- `https://www.oliveyoung.co.kr/store/search/getSearchMain.do?query=์ ํฌ๋ฆผ` (55 samples, full 5-color flag taxonomy captured here)
|
|
386
|
-
- `https://www.oliveyoung.co.kr/store/goods/getGoodsDetail.do?goodsNo=A000000167660` (26 samples, Next.js subtree shell + runtime CSS vars)
|
|
387
|
-
- Harness: Chrome DevTools Protocol `:9222` via `websocket-client` (`suppress_origin=True`)
|
|
388
|
-
- Artifacts: `assets/_reference/tokens.json` ยท `structure.json` ยท `fonts.json` ยท `.live-inspect-proof.json` (11 raw_samples)
|
|
389
|
-
|
|
390
|
-
**Tier 1 official DS:** โ negative (authoritative). No `design.oliveyoung.co.kr` / `oliveyoung.design` DNS; `corp.oliveyoung.com/*` 404; `cjoliveyoung.co.kr` ECONNREFUSED; no public Figma library or GitHub design-system repo at `github.com/oliveyoung*`. The canonical token system lives **inside the Next.js bundle on product-detail** (CSS Modules `*_btn__` + runtime `--font-noto-sans-kr / --background / --foreground` vars) โ accessible only by live inspect.
|
|
391
|
-
|
|
392
|
-
**Tier 2 sources:** โ getdesign.md/oliveyoung blocked by Claude auto-mode (domain not allowlisted) โ unable to verify this pass; โ styles.refero.design `?q=oliveyoung` no result cards.
|
|
393
|
-
|
|
394
|
-
**IP guardrails:**
|
|
395
|
-
- Brand mark and product photography referenced for token harvest only โ no asset stored beyond JSON observation records
|
|
396
|
-
- No verbatim Olive Young marketing taglines reproduced (none observed in captures)
|
|
397
|
-
- ยง9 voice samples are OmD-original illustrative โ modelled on observed shape (declarative + ํ๊ธฐ-verb + casual-polite), not substance
|
|
398
|
-
- ยง12 personas are illustrative (no user research); flagged in section header
|
|
399
|
-
|
|
400
|
-
**Conflicts unresolved:** none material. Promo-salmon `#F27370` vs flag-best `#F05A5E` treated as distinct (role-separated). Token-name choices in ยง2 are OmD coinage โ Olive Young does not publish a canonical name table.
|
|
401
|
-
|
|
402
|
-
**Follow-up UPDATE pass recommended:**
|
|
403
|
-
- Real product-detail SKU (Next.js token harvest โ `--*` vars + Module class catalog)
|
|
404
|
-
- Cart / my-page / checkout (state matrix completion)
|
|
405
|
-
- Mobile site `m.oliveyoung.co.kr` (touch-target audit)
|
|
406
|
-
- Motion token harvest (durations, easings)
|
|
407
|
-
- Re-attempt Tier 2 (getdesign.md with user-allowlisted fetch)
|
|
296
|
+
### Tier 2 cross-check boundary
|
|
297
|
+
|
|
298
|
+
Both required catalog checks were attempted through built-in web open on 2026-07-13. `getdesign.md/oliveyoung` and Referoโs Olive Young query each returned an internal error, so neither contributed a token, component, font, or conflict resolution.
|