oh-my-design-cli 1.8.6 โ†’ 1.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (275) hide show
  1. package/.claude/hooks/lib/preferences-parser.cjs +1 -0
  2. package/.claude/hooks/lib/preferences-writer.cjs +1 -0
  3. package/.claude/hooks/post-edit-watch.cjs +1 -0
  4. package/.claude/hooks/session-end-foldin.cjs +1 -0
  5. package/.claude/hooks/session-state-loader.cjs +1 -0
  6. package/.claude/hooks/skill-activation.cjs +1 -0
  7. package/.claude/settings.json +10 -1
  8. package/.github/assets/logo-bg.png +0 -0
  9. package/AGENTS.md +20 -1
  10. package/CHANGELOG.md +482 -0
  11. package/MIGRATION.md +103 -0
  12. package/README.ja.md +56 -19
  13. package/README.ko.md +47 -30
  14. package/README.md +48 -30
  15. package/README.zh-TW.md +59 -22
  16. package/agents/AGENT.md +8 -7
  17. package/agents/omd-codex-image.md +1 -1
  18. package/agents/omd-critic.md +6 -7
  19. package/agents/omd-designer-review.md +1 -1
  20. package/agents/omd-final-qa.md +1 -1
  21. package/agents/omd-humanizer.md +38 -0
  22. package/agents/omd-kr-writer.md +3 -4
  23. package/agents/omd-locale-adapter.md +12 -16
  24. package/agents/omd-master.md +24 -19
  25. package/agents/omd-microcopy.md +1 -1
  26. package/agents/omd-orchestrator.md +7 -8
  27. package/agents/omd-slop-auditor.md +31 -0
  28. package/agents/omd-ux-researcher.md +1 -1
  29. package/data/reference-fingerprints.json +2761 -85
  30. package/dist/bin/oh-my-design.js +16 -8
  31. package/dist/bin/oh-my-design.js.map +1 -1
  32. package/dist/chunk-UJIHCEYF.js +99 -0
  33. package/dist/chunk-UJIHCEYF.js.map +1 -0
  34. package/dist/doctor-LDWSFM3I.js +763 -0
  35. package/dist/doctor-LDWSFM3I.js.map +1 -0
  36. package/dist/install-skills-ZZFNJ2II.js +1120 -0
  37. package/dist/install-skills-ZZFNJ2II.js.map +1 -0
  38. package/docs/CLI_QUICKSTART.md +157 -0
  39. package/package.json +25 -4
  40. package/scripts/postinstall.cjs +5 -4
  41. package/skills/claude-design/SKILL.md +38 -14
  42. package/skills/claude-design/references/claude-design-flow.md +11 -11
  43. package/skills/claude-design/references/codebase-analysis.md +5 -4
  44. package/skills/omd-final-qa/SKILL.md +1 -1
  45. package/skills/omd-harness/SKILL.md +51 -50
  46. package/skills/omd-humanize/SKILL.md +116 -0
  47. package/skills/omd-humanize/agents/openai.yaml +4 -0
  48. package/skills/omd-humanize/references/locale-playbooks.md +102 -0
  49. package/skills/omd-humanize/references/sources.md +11 -0
  50. package/skills/omd-init/SKILL.md +18 -12
  51. package/skills/omd-locale-adapter/SKILL.md +58 -91
  52. package/skills/omd-orchestrator/SKILL.md +11 -5
  53. package/skills/omd-reference-capture/SKILL.md +80 -26
  54. package/skills/omd-reference-capture/scripts/PLAYWRIGHT-LICENSE.txt +202 -0
  55. package/skills/omd-reference-capture/scripts/PLAYWRIGHT-NOTICE.txt +5 -0
  56. package/skills/omd-reference-capture/scripts/THIRD_PARTY_NOTICES.md +3 -0
  57. package/skills/omd-reference-capture/scripts/capture-reference-evidence.mjs +159906 -0
  58. package/skills/omd-slop-audit/SKILL.md +110 -0
  59. package/skills/omd-slop-audit/agents/openai.yaml +4 -0
  60. package/skills/omd-slop-audit/references/pattern-catalog.md +96 -0
  61. package/skills/omd-slop-audit/references/sources.md +24 -0
  62. package/web/references/104/DESIGN.md +354 -0
  63. package/web/references/11st/DESIGN.md +197 -316
  64. package/web/references/29cm/DESIGN.md +297 -393
  65. package/web/references/42dot/DESIGN.md +390 -0
  66. package/web/references/8percent/DESIGN.md +438 -0
  67. package/web/references/ably/DESIGN.md +267 -572
  68. package/web/references/acer/DESIGN.md +329 -0
  69. package/web/references/airbnb/DESIGN.md +219 -557
  70. package/web/references/airbridge/DESIGN.md +451 -0
  71. package/web/references/alipay/DESIGN.md +179 -420
  72. package/web/references/apple/DESIGN.md +224 -498
  73. package/web/references/asleep/DESIGN.md +402 -0
  74. package/web/references/au/DESIGN.md +334 -0
  75. package/web/references/autopedia/DESIGN.md +382 -0
  76. package/web/references/aws-cloudscape/DESIGN.md +241 -0
  77. package/web/references/baemin/DESIGN.md +332 -491
  78. package/web/references/banksalad/DESIGN.md +269 -180
  79. package/web/references/barogo/DESIGN.md +416 -0
  80. package/web/references/beusable/DESIGN.md +464 -0
  81. package/web/references/bigin/DESIGN.md +454 -0
  82. package/web/references/bilibili/DESIGN.md +206 -374
  83. package/web/references/bmw/DESIGN.md +162 -276
  84. package/web/references/brandi/DESIGN.md +184 -325
  85. package/web/references/buzzvil/DESIGN.md +457 -0
  86. package/web/references/cafe24/DESIGN.md +472 -0
  87. package/web/references/catchtable/DESIGN.md +219 -264
  88. package/web/references/cgv/DESIGN.md +317 -0
  89. package/web/references/channeltalk/DESIGN.md +210 -336
  90. package/web/references/china-airlines/DESIGN.md +291 -0
  91. package/web/references/cjonstyle/DESIGN.md +453 -0
  92. package/web/references/class101/DESIGN.md +168 -387
  93. package/web/references/classum/DESIGN.md +228 -203
  94. package/web/references/claude/DESIGN.md +242 -479
  95. package/web/references/clay/DESIGN.md +179 -377
  96. package/web/references/clickhouse/DESIGN.md +254 -343
  97. package/web/references/codeit/DESIGN.md +470 -0
  98. package/web/references/cohere/DESIGN.md +214 -324
  99. package/web/references/coinone/DESIGN.md +199 -179
  100. package/web/references/corca/DESIGN.md +414 -0
  101. package/web/references/coupang/DESIGN.md +205 -475
  102. package/web/references/cursor/DESIGN.md +240 -381
  103. package/web/references/dabang/DESIGN.md +248 -213
  104. package/web/references/dable/DESIGN.md +431 -0
  105. package/web/references/datarize/DESIGN.md +338 -0
  106. package/web/references/dealicious/DESIGN.md +402 -0
  107. package/web/references/drdiary/DESIGN.md +404 -0
  108. package/web/references/elastic/DESIGN.md +238 -0
  109. package/web/references/elevenlabs/DESIGN.md +183 -321
  110. package/web/references/elice/DESIGN.md +445 -0
  111. package/web/references/eslite/DESIGN.md +257 -0
  112. package/web/references/evaair/DESIGN.md +338 -0
  113. package/web/references/expo/DESIGN.md +238 -331
  114. package/web/references/familymart-tw/DESIGN.md +254 -0
  115. package/web/references/ferrari/DESIGN.md +160 -377
  116. package/web/references/figma/DESIGN.md +197 -451
  117. package/web/references/fitpet/DESIGN.md +445 -0
  118. package/web/references/flex/DESIGN.md +170 -253
  119. package/web/references/framer/DESIGN.md +197 -340
  120. package/web/references/freee/DESIGN.md +211 -533
  121. package/web/references/friendliai/DESIGN.md +431 -0
  122. package/web/references/frip/DESIGN.md +440 -0
  123. package/web/references/furiosaai/DESIGN.md +450 -0
  124. package/web/references/gangnamunni/DESIGN.md +154 -591
  125. package/web/references/gaudiolab/DESIGN.md +414 -0
  126. package/web/references/google/DESIGN.md +290 -398
  127. package/web/references/goorm/DESIGN.md +470 -0
  128. package/web/references/greencar/DESIGN.md +420 -0
  129. package/web/references/hackle/DESIGN.md +472 -0
  130. package/web/references/hashicorp/DESIGN.md +273 -318
  131. package/web/references/heydealer/DESIGN.md +429 -0
  132. package/web/references/humanscape/DESIGN.md +433 -0
  133. package/web/references/hwahae/DESIGN.md +453 -0
  134. package/web/references/hyundai/DESIGN.md +158 -368
  135. package/web/references/hyundaicard/DESIGN.md +171 -121
  136. package/web/references/ibm/DESIGN.md +227 -378
  137. package/web/references/idus/DESIGN.md +450 -0
  138. package/web/references/igaworks/DESIGN.md +437 -0
  139. package/web/references/inflearn/DESIGN.md +221 -366
  140. package/web/references/intuit/DESIGN.md +244 -0
  141. package/web/references/jandi/DESIGN.md +191 -291
  142. package/web/references/jobplanet/DESIGN.md +415 -0
  143. package/web/references/kakao/DESIGN.md +287 -475
  144. package/web/references/kakaobank/DESIGN.md +220 -521
  145. package/web/references/kakaogames/DESIGN.md +220 -0
  146. package/web/references/kakaopay/DESIGN.md +207 -526
  147. package/web/references/karrot/DESIGN.md +227 -251
  148. package/web/references/kb-kookmin/DESIGN.md +308 -0
  149. package/web/references/kbank/DESIGN.md +220 -175
  150. package/web/references/kcd/DESIGN.md +432 -0
  151. package/web/references/kmong/DESIGN.md +281 -356
  152. package/web/references/krds/DESIGN.md +245 -19
  153. package/web/references/kream/DESIGN.md +224 -359
  154. package/web/references/kurly/DESIGN.md +211 -533
  155. package/web/references/kyobobook/DESIGN.md +445 -0
  156. package/web/references/lablup/DESIGN.md +474 -0
  157. package/web/references/lamborghini/DESIGN.md +198 -360
  158. package/web/references/lemonbase/DESIGN.md +452 -0
  159. package/web/references/lguplus/DESIGN.md +259 -0
  160. package/web/references/likelion/DESIGN.md +283 -0
  161. package/web/references/line/DESIGN.md +396 -355
  162. package/web/references/linear.app/DESIGN.md +209 -562
  163. package/web/references/lotteon/DESIGN.md +386 -0
  164. package/web/references/lovable/DESIGN.md +255 -349
  165. package/web/references/makinarocks/DESIGN.md +242 -0
  166. package/web/references/maum-ai/DESIGN.md +423 -0
  167. package/web/references/medibloc/DESIGN.md +425 -0
  168. package/web/references/megabox/DESIGN.md +232 -0
  169. package/web/references/mercari/DESIGN.md +217 -434
  170. package/web/references/microsoft/DESIGN.md +234 -388
  171. package/web/references/mildang/DESIGN.md +411 -0
  172. package/web/references/millie/DESIGN.md +183 -504
  173. package/web/references/minimax/DESIGN.md +264 -322
  174. package/web/references/miricanvas/DESIGN.md +182 -355
  175. package/web/references/miro/DESIGN.md +234 -232
  176. package/web/references/mistral.ai/DESIGN.md +231 -314
  177. package/web/references/mixi/DESIGN.md +234 -0
  178. package/web/references/moin/DESIGN.md +445 -0
  179. package/web/references/mongodb/DESIGN.md +219 -316
  180. package/web/references/moreh/DESIGN.md +437 -0
  181. package/web/references/musinsa/DESIGN.md +184 -510
  182. package/web/references/mynavi/DESIGN.md +242 -0
  183. package/web/references/myrealtrip/DESIGN.md +169 -406
  184. package/web/references/naver/DESIGN.md +328 -499
  185. package/web/references/naverwebtoon/DESIGN.md +172 -395
  186. package/web/references/neosapience/DESIGN.md +441 -0
  187. package/web/references/nhn/DESIGN.md +169 -346
  188. package/web/references/nhncloud/DESIGN.md +185 -123
  189. package/web/references/nota/DESIGN.md +451 -0
  190. package/web/references/notion/DESIGN.md +271 -475
  191. package/web/references/nrise/DESIGN.md +417 -0
  192. package/web/references/ohouse/DESIGN.md +210 -549
  193. package/web/references/oliveyoung/DESIGN.md +217 -326
  194. package/web/references/ollama/DESIGN.md +241 -308
  195. package/web/references/onestore/DESIGN.md +248 -0
  196. package/web/references/palantir/DESIGN.md +256 -0
  197. package/web/references/panasonic/DESIGN.md +276 -0
  198. package/web/references/patternfly/DESIGN.md +259 -0
  199. package/web/references/payhere/DESIGN.md +438 -0
  200. package/web/references/pega/DESIGN.md +262 -0
  201. package/web/references/peoplefund/DESIGN.md +431 -0
  202. package/web/references/petfriends/DESIGN.md +428 -0
  203. package/web/references/pinkfong/DESIGN.md +199 -367
  204. package/web/references/pinterest/DESIGN.md +258 -308
  205. package/web/references/portone/DESIGN.md +446 -0
  206. package/web/references/poya/DESIGN.md +286 -0
  207. package/web/references/pozalabs/DESIGN.md +438 -0
  208. package/web/references/protopie/DESIGN.md +419 -0
  209. package/web/references/qraft/DESIGN.md +448 -0
  210. package/web/references/queenit/DESIGN.md +432 -0
  211. package/web/references/quotabook/DESIGN.md +449 -0
  212. package/web/references/rebellions/DESIGN.md +449 -0
  213. package/web/references/recruit/DESIGN.md +247 -0
  214. package/web/references/remember/DESIGN.md +202 -396
  215. package/web/references/resend/DESIGN.md +274 -348
  216. package/web/references/returnzero/DESIGN.md +460 -0
  217. package/web/references/sakura-internet/DESIGN.md +269 -0
  218. package/web/references/samsung/DESIGN.md +157 -359
  219. package/web/references/sandoll/DESIGN.md +445 -0
  220. package/web/references/sanity/DESIGN.md +241 -375
  221. package/web/references/saramin/DESIGN.md +465 -0
  222. package/web/references/scatterlab/DESIGN.md +412 -0
  223. package/web/references/selectstar/DESIGN.md +439 -0
  224. package/web/references/servicenow/DESIGN.md +289 -0
  225. package/web/references/shiftee/DESIGN.md +468 -0
  226. package/web/references/shinhanbank/DESIGN.md +161 -341
  227. package/web/references/shinhancard/DESIGN.md +208 -319
  228. package/web/references/sionic/DESIGN.md +454 -0
  229. package/web/references/sktelecom/DESIGN.md +310 -0
  230. package/web/references/socar/DESIGN.md +125 -32
  231. package/web/references/softbank/DESIGN.md +231 -0
  232. package/web/references/solapi/DESIGN.md +483 -0
  233. package/web/references/sony/DESIGN.md +234 -0
  234. package/web/references/soop/DESIGN.md +261 -0
  235. package/web/references/spacex/DESIGN.md +184 -323
  236. package/web/references/spotify/DESIGN.md +253 -394
  237. package/web/references/squeezebits/DESIGN.md +441 -0
  238. package/web/references/stayfolio/DESIGN.md +422 -0
  239. package/web/references/stripe/DESIGN.md +212 -491
  240. package/web/references/supabase/DESIGN.md +244 -316
  241. package/web/references/supertone/DESIGN.md +413 -0
  242. package/web/references/tabling/DESIGN.md +415 -0
  243. package/web/references/taishinbank/DESIGN.md +243 -0
  244. package/web/references/teamlab/DESIGN.md +240 -0
  245. package/web/references/teamsparta/DESIGN.md +472 -0
  246. package/web/references/tellingme/DESIGN.md +392 -0
  247. package/web/references/tesla/DESIGN.md +244 -427
  248. package/web/references/thsr/DESIGN.md +284 -0
  249. package/web/references/thumbtack/DESIGN.md +302 -0
  250. package/web/references/together.ai/DESIGN.md +257 -304
  251. package/web/references/toss/DESIGN.md +251 -593
  252. package/web/references/toss-securities/DESIGN.md +255 -178
  253. package/web/references/tossbank/DESIGN.md +195 -491
  254. package/web/references/toyota/DESIGN.md +238 -0
  255. package/web/references/tving/DESIGN.md +197 -245
  256. package/web/references/typed/DESIGN.md +413 -0
  257. package/web/references/uber/DESIGN.md +256 -333
  258. package/web/references/udn/DESIGN.md +250 -0
  259. package/web/references/upbit/DESIGN.md +145 -256
  260. package/web/references/upstage/DESIGN.md +211 -204
  261. package/web/references/uswds/DESIGN.md +287 -0
  262. package/web/references/vercel/DESIGN.md +236 -440
  263. package/web/references/vuno/DESIGN.md +413 -0
  264. package/web/references/wanted/DESIGN.md +215 -487
  265. package/web/references/weverse/DESIGN.md +437 -0
  266. package/web/references/wise/DESIGN.md +223 -231
  267. package/web/references/wisetracker/DESIGN.md +462 -0
  268. package/web/references/wooribank/DESIGN.md +245 -0
  269. package/web/references/yanolja/DESIGN.md +250 -419
  270. package/web/references/yeogiotte/DESIGN.md +235 -418
  271. package/web/references/zapier/DESIGN.md +256 -377
  272. package/web/references/zendesk/DESIGN.md +288 -0
  273. package/web/references/zigzag/DESIGN.md +200 -621
  274. package/dist/install-skills-7UUDOLG2.js +0 -734
  275. package/dist/install-skills-7UUDOLG2.js.map +0 -1
@@ -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: "#9bce26"
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-05-15"
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: prose-derived
16
- extracted: "2026-06-09"
61
+ source: reconciled
62
+ extracted: "2026-07-13"
63
+ components_harvested: true
17
64
  colors:
18
- black: "#000000"
19
- ink: "#131518"
20
- muted: "#888888"
21
- neutral-dark: "#2f3030"
22
- neutral-alt: "#454c53"
23
- neutral-alt-2: "#50585f"
24
- chip-text: "#757d86"
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: { sans: "Montserrat", mono: "Montserrat" }
37
- h1: { size: 28, weight: 700, use: "Legacy main page title" }
38
- title: { size: 16, weight: 700, use: "Card titles, emphasis" }
39
- body: { size: 14, weight: 400, lineHeight: 1.4, use: "Standard reading text" }
40
- caption: { size: 13, weight: 400, use: "Brand, meta" }
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
- button-primary: { type: button, bg: "#000000", fg: "#ffffff", radius: 4, padding: "12px 18px", font: "13.33px/700", use: "Filled black CTA (์žฅ๋ฐ”๊ตฌ๋‹ˆ ๋‹ด๊ธฐ)" }
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 presents as a **dense, scan-first H&B catalog**: a near-monochrome grayscale chrome (white surface, body ink `#666`, primary ink `#131518`) carries 90%+ of the surface, then snaps awake at the product card with a **five-color flag taxonomy** โ€” `#F65C60` sale, `#F374B7` ์˜ค๋Š˜๋“œ๋ฆผ same-day, `#9BCE26` coupon, `#6FCFF7` gift, plus the `#F05A5E` best-badge ring. Korean retail visual culture (Coupang, Wadiz, 11๋ฒˆ๊ฐ€) leans on weight and tag-color over heroes; Olive Young sits at the disciplined end of that lineage โ€” grid-tight, photo-led, with `#fff` ground for product respect and chromatic noise reserved for status payload. Architecturally the site is **dual-stack** โ€” legacy JSP `Montserrat โ†’ NotoSansCJKkr โ†’ AppleSDGothicNeo โ†’ ๋‹์›€` chrome on `/store/main/*`, `/best`, `/search`, while the new Next.js subtree (visible on `/store/goods/getGoodsDetail.do` even in its ProductNotFound shell โ€” `ProductNotFound_btn__`, `GnbForDesktop_category-toggle-button__`, `OYCompanyInfo_*` CSS Modules, runtime `--background:#0a0a0a / --foreground:#ededed / --font-noto-sans-kr / --font-roboto`) signals a multi-year token refresh in flight on product-detail first. Mood word: *brisk pharmacy aisle* โ€” bright, taxonomic, no rhetorical lift, the work happens at the thumbnail.
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
- ## 4. Components
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
- ### Button โ€” Primary (filled black CTA, legacy chrome)
92
+ ## 2. Color Palette & Roles
107
93
 
108
- **Default**
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
- ### Button โ€” Outline neutral
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
- **Default**
120
- - Background: `#FFFFFF`
121
- - Text: `#454C53`
122
- - Border: `1px solid #E5E7EA`
123
- - Radius: `4px`
124
- - Padding: ~`10px 16px` (hโ‰ˆ40)
125
- - Font: 14px / 500
126
- - Use: "์‹ ์ƒ ๋”๋ณด๊ธฐ" / secondary actions
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
- ### Button โ€” Pagination
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
- **Active**
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: `50%` (circular)
135
- - Size: 24ร—24
136
- - Font: 14px / 700
137
- - Use: Current page indicator
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
- **Default**
142
+ **Other item as captured**
140
143
  - Background: transparent
141
144
  - Text: `#888888`
142
145
  - Border: 0
143
- - Radius: 0
144
- - Font: 14px / 700
145
- - Use: Other-page link
146
+ - Radius: `0px`
147
+ - Font: `14px / 700 / Montserrat`
148
+ - Use: sibling 24px carousel-pagination button; evidence `home::[data-omd-capture="175"]`
146
149
 
147
- ### Pill โ€” Category (top-of-main shortcut)
150
+ ### Storefront wishlist control
148
151
 
149
- **Active**
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
- - Text: `#757D86`
161
- - Border: `1px solid #E5E7EA` (inferred โ€” same chip family)
162
- - Radius: `20px`
163
- - Font: 14px / 400
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
- ### Chip โ€” Filter (search results)
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
- **Default**
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
- ### Flag โ€” Status pill (in-thumbnail status payload)
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
- **Sale**
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
- **Same-day (์˜ค๋Š˜๋“œ๋ฆผ)**
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
- **Coupon**
197
- - Background: `#9BCE26`
198
- - Text: `#FFFFFF`
199
- - Border: 0
200
- - Radius: `9px`
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
- **Gift**
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
- ### Badge โ€” Best (large pill, sash-style)
182
+ ### Corporate skip link
213
183
 
214
- **Default**
215
- - Background: `#FFFFFF`
216
- - Text: `#F05A5E`
217
- - Border: `2px solid #F05A5E`
218
- - Radius: `24px` (pill)
219
- - Padding: ~`8px 18px` (h=48)
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
- ### Heart โ€” Wishlist button
191
+ This is corporate accessibility chrome, not storefront evidence or a general Olive Young primary-action token.
224
192
 
225
- **Idle (off)**
226
- - Background: `#FFFFFF`
227
- - Icon color: (icon-asset, color via SVG fill)
228
- - Border: `1px solid #EBEBEB`
229
- - Radius: 0 (square hit-box)
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
- ### Input โ€” Search (GNB)
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
- **Default**
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
- ### Card โ€” Product tile (search/list)
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
- **Default**
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
- ## 16. Do's and Don'ts
212
+ ## 7. Do's and Don'ts
259
213
 
260
214
  ### Do
261
- - Keep all chrome โ€” nav, header, footer, buttons, search input, headings โ€” on the `#131518`โ€“`#888` grayscale neutrals and reserve every hue for status payload
262
- - Confine the five flag hues (`#F65C60` sale, `#F374B7` ์˜ค๋Š˜๋“œ๋ฆผ, `#9BCE26` coupon, `#6FCFF7` gift, `#F05A5E` best) to inside the thumbnail rectangle as 9px-radius status pills
263
- - Map each flag color 1:1 to a single service fact (sale / same-day / coupon / gift / best) rather than to a marketing mood
264
- - Encode interactive state with ink-darkening plus shape change โ€” e.g. flip active pagination from transparent/`#888` radius-0 to `#2F3030`/`#FFF` 50% circle โ€” not with hue
265
- - Keep the Korean fallback chain ending at `dotum / ๋‹์›€` to preserve rendering for older Windows/macOS Korean readers
266
- - Write CTAs as factual `ํ•˜๊ธฐ`-verb labels like "์žฅ๋ฐ”๊ตฌ๋‹ˆ ๋‹ด๊ธฐ" and "์ฐœํ•˜๊ธฐ" in casual-polite declarative tone, not imperative urgency copy
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
- **Verified:** 2026-05-15
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
- ## 5. Layout & Grid
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
- - **Page width:** 1280px fixed container (legacy chrome); Next.js subtree fluid
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
- ## 6. Iconography
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
- - **Style:** Outlined line icons at 16โ€“24px, monochrome ink (no two-tone). Stroke ~1.5px. Korean retail convention (cart/heart/coupon/gift glyphs) inherited rather than custom.
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
- ## 7. Motion & Easing
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
- - **Carousel transitions:** `slick` carousel (legacy) on hero rails โ€” default 300ms slide
302
- - **Hover states:** Catalog tiles use static hover (no lift / no shadow gain โ€” depth is line-only in the system; corroborates the 0-shadow observation)
303
- - **Next.js subtree:** `--swiper-theme-color: #007aff` exposed (default Swiper iOS blue; visual non-load because chrome overrides)
304
- - **Floor:** No site-wide CSS custom-property motion tokens โ€” durations live inside vendor carousels (slick, Swiper). Flagged as a follow-up: motion token harvest from product-detail page after a real SKU loads.
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
- ## 8. Accessibility & Density
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
- - **Body 14px / #666 on white** = ~5.7:1 contrast โ€” passes WCAG AA for body text, fails AAA for small text
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
- ## 9. Voice & Tone
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
- - **Voice adjectives (3):** *Direct ยท Functional ยท Promotional* โ€” no rhetorical lift; copy works as labels and offers.
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
- | Do | Don't |
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
- **Voice samples (3 fresh illustrative reconstructions โ€” not Olive Young copy):**
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
- **IP guardrail:** No verbatim Olive Young marketing copy reproduced. Voice samples above are OmD-original constructions modelled on the observed *shape* (casual-polite + declarative + ํ•˜๊ธฐ-verb), not the substance.
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
- ## 10. Brand Narrative
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
- CJ Olive Young is the H&B (Health & Beauty) retail arm of **CJ Group**, founded 1999 and operating as Korea's #1 omnichannel H&B chain โ€” ~1,300 stores nationwide plus the `oliveyoung.co.kr` web/app and `global.oliveyoung.com` cross-border surface. Its visual posture matches its category position: not a beauty *aspirational brand* (no editorial hero shots, no rhetorical typography), but the **default aisle** โ€” a high-velocity catalog where SKU density, in-stock status, same-day eligibility, and coupon math do the persuasive work. The recent migration of product-detail to Next.js (visible in production as of 2026-05-15) and the runtime CSS-vars (`--background / --foreground / --font-noto-sans-kr`) signal an in-flight design-system rebuild โ€” likely consolidating the legacy JSP `Montserratโ†’๋‹์›€` stack and the new React subtree onto shared semantic tokens. *Narrative facts above are public-record; founder voice and design-team attribution `[FILL IN]` โ€” no verbatim attribution available in EN-language sources.*
274
+ ## 14. States & Motion
340
275
 
341
- ## 11. Principles
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
- 1. **Chrome stays gray; flags do the work.** Olive Young commits to neutral grayscale across nav/header/footer/buttons and reserves all five hues for in-thumbnail status. *UI implication: when porting, never put a flag color on a primary CTA or chrome surface โ€” it breaks the system's status-vs-action separation.*
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
- ## 12. Personas
284
+ ### Tier 1 live evidence
350
285
 
351
- *Illustrative archetypes โ€” not Olive Young user research; OmD-original for design framing.*
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
- - **Han-na (29, office worker, Seoul):** browses on phone during commute, scans flags before titles, expects ์˜ค๋Š˜๋“œ๋ฆผ by 14:00 cutoff, abandons if cart total doesn't show coupon math inline. Comfort with Korean copy, low patience for English-loanword decoration.
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
- ## 13. States
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
- | State | Pattern |
361
- |---|---|
362
- | Empty (search 0-result) | Centered "์ด์ „ ํŽ˜์ด์ง€ / ํ™ˆ์œผ๋กœ ๊ฐ€๊ธฐ" pair โ€” outline white-bg + filled-black; observed on `getGoodsDetail.do` ProductNotFound shell (Next.js) |
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.