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
@@ -0,0 +1,286 @@
1
+ ---
2
+ id: poya
3
+ name: 寶雅
4
+ country: TW
5
+ category: ecommerce
6
+ homepage: "https://www.poya.com.tw/"
7
+ primary_color: "#dd006f"
8
+ logo:
9
+ type: favicon
10
+ slug: "https://www.google.com/s2/favicons?domain=poya.com.tw&sz=128"
11
+ verified: "2026-07-13"
12
+ omd: "0.1"
13
+ verification_v2:
14
+ schema: 2
15
+ checked: "2026-07-13"
16
+ surfaces:
17
+ - { id: home, kind: product-home, url: "https://www.poya.com.tw/", inspected: "2026-07-13" }
18
+ - { id: brand-story, kind: brand-story, url: "https://www.poya.com.tw/about/60/", inspected: "2026-07-13" }
19
+ - { id: timeline, kind: company-timeline, url: "https://www.poya.com.tw/about/61/", inspected: "2026-07-13" }
20
+ sources:
21
+ - { id: home-live, kind: product-surface, url: "https://www.poya.com.tw/", captured: "2026-07-13" }
22
+ - { id: brand-story-live, kind: product-surface, url: "https://www.poya.com.tw/about/60/", captured: "2026-07-13" }
23
+ - { id: timeline-live, kind: product-surface, url: "https://www.poya.com.tw/about/61/", captured: "2026-07-13" }
24
+ - { id: company-profile, kind: official-doc, url: "https://www.poya.com.tw/en/investor/43/4564523/", captured: "2026-07-13" }
25
+ - { id: noto-license, kind: license, url: "https://github.com/googlefonts/noto-cjk/blob/main/Sans/LICENSE", captured: "2026-07-13" }
26
+ conflicts: []
27
+ claims:
28
+ "tokens.colors.primary": { surface_id: home, source_id: home-live, method: supplied-live-extract, captured: "2026-07-13" }
29
+ "tokens.colors.primary-soft": { surface_id: home, source_id: home-live, method: supplied-live-extract, captured: "2026-07-13" }
30
+ "tokens.colors.foreground": { surface_id: home, source_id: home-live, method: supplied-live-extract, captured: "2026-07-13" }
31
+ "tokens.colors.foreground-soft": { surface_id: home, source_id: home-live, method: supplied-live-extract, captured: "2026-07-13" }
32
+ "tokens.colors.canvas": { surface_id: home, source_id: home-live, method: supplied-live-extract, captured: "2026-07-13" }
33
+ "tokens.colors.hairline": { surface_id: home, source_id: home-live, method: supplied-live-extract, captured: "2026-07-13" }
34
+ "tokens.colors.on-primary": { surface_id: home, source_id: home-live, method: supplied-live-extract, captured: "2026-07-13" }
35
+ "tokens.typography.family.ui": { surface_id: home, source_id: home-live, method: supplied-live-extract, captured: "2026-07-13" }
36
+ "tokens.typography.family.cjk": { surface_id: brand-story, source_id: brand-story-live, method: supplied-live-extract, captured: "2026-07-13" }
37
+ "tokens.typography.action.size": { surface_id: home, source_id: home-live, method: supplied-live-extract, captured: "2026-07-13" }
38
+ "tokens.typography.action.weight": { surface_id: home, source_id: home-live, method: supplied-live-extract, captured: "2026-07-13" }
39
+ "tokens.typography.action.lineHeight": { surface_id: home, source_id: home-live, method: supplied-live-extract, captured: "2026-07-13" }
40
+ "tokens.typography.action.use": { surface_id: home, source_id: home-live, method: supplied-live-extract, captured: "2026-07-13" }
41
+ "tokens.typography.body.size": { surface_id: brand-story, source_id: brand-story-live, method: supplied-live-extract, captured: "2026-07-13" }
42
+ "tokens.typography.body.weight": { surface_id: brand-story, source_id: brand-story-live, method: supplied-live-extract, captured: "2026-07-13" }
43
+ "tokens.typography.body.lineHeight": { surface_id: brand-story, source_id: brand-story-live, method: supplied-live-extract, captured: "2026-07-13" }
44
+ "tokens.typography.body.use": { surface_id: brand-story, source_id: brand-story-live, method: supplied-live-extract, captured: "2026-07-13" }
45
+ "tokens.typography.heading.size": { surface_id: brand-story, source_id: brand-story-live, method: supplied-live-extract, captured: "2026-07-13" }
46
+ "tokens.typography.heading.weight": { surface_id: brand-story, source_id: brand-story-live, method: supplied-live-extract, captured: "2026-07-13" }
47
+ "tokens.typography.heading.lineHeight": { surface_id: brand-story, source_id: brand-story-live, method: supplied-live-extract, captured: "2026-07-13" }
48
+ "tokens.typography.heading.use": { surface_id: brand-story, source_id: brand-story-live, method: supplied-live-extract, captured: "2026-07-13" }
49
+ "tokens.spacing.xs": { surface_id: home, source_id: home-live, method: supplied-live-extract, captured: "2026-07-13" }
50
+ "tokens.spacing.sm": { surface_id: home, source_id: home-live, method: supplied-live-extract, captured: "2026-07-13" }
51
+ "tokens.spacing.md": { surface_id: home, source_id: home-live, method: supplied-live-extract, captured: "2026-07-13" }
52
+ "tokens.spacing.lg": { surface_id: home, source_id: home-live, method: supplied-live-extract, captured: "2026-07-13" }
53
+ "tokens.spacing.xl": { surface_id: home, source_id: home-live, method: supplied-live-extract, captured: "2026-07-13" }
54
+ "tokens.spacing.xxl": { surface_id: home, source_id: home-live, method: supplied-live-extract, captured: "2026-07-13" }
55
+ "tokens.rounded.pill": { surface_id: home, source_id: home-live, method: supplied-live-extract, captured: "2026-07-13" }
56
+ "tokens.components.primary-pill-action.type": { surface_id: home, source_id: home-live, method: supplied-live-extract, captured: "2026-07-13" }
57
+ "tokens.components.primary-pill-action.bg": { surface_id: home, source_id: home-live, method: supplied-live-extract, captured: "2026-07-13" }
58
+ "tokens.components.primary-pill-action.fg": { surface_id: home, source_id: home-live, method: supplied-live-extract, captured: "2026-07-13" }
59
+ "tokens.components.primary-pill-action.border": { surface_id: home, source_id: home-live, method: supplied-live-extract, captured: "2026-07-13" }
60
+ "tokens.components.primary-pill-action.radius": { surface_id: home, source_id: home-live, method: supplied-live-extract, captured: "2026-07-13" }
61
+ "tokens.components.primary-pill-action.padding": { surface_id: home, source_id: home-live, method: supplied-live-extract, captured: "2026-07-13" }
62
+ "tokens.components.primary-pill-action.height": { surface_id: home, source_id: home-live, method: supplied-live-extract, captured: "2026-07-13" }
63
+ "tokens.components.primary-pill-action.font": { surface_id: home, source_id: home-live, method: supplied-live-extract, captured: "2026-07-13" }
64
+ "tokens.components.primary-pill-action.states": { surface_id: home, source_id: home-live, method: supplied-live-extract, captured: "2026-07-13" }
65
+ "tokens.components.primary-pill-action.use": { surface_id: home, source_id: home-live, method: supplied-live-extract, captured: "2026-07-13" }
66
+ "tokens.components.search-field.type": { surface_id: home, source_id: home-live, method: supplied-live-extract, captured: "2026-07-13" }
67
+ "tokens.components.search-field.bg": { surface_id: home, source_id: home-live, method: supplied-live-extract, captured: "2026-07-13" }
68
+ "tokens.components.search-field.fg": { surface_id: home, source_id: home-live, method: supplied-live-extract, captured: "2026-07-13" }
69
+ "tokens.components.search-field.border": { surface_id: home, source_id: home-live, method: supplied-live-extract, captured: "2026-07-13" }
70
+ "tokens.components.search-field.radius": { surface_id: home, source_id: home-live, method: supplied-live-extract, captured: "2026-07-13" }
71
+ "tokens.components.search-field.padding": { surface_id: home, source_id: home-live, method: supplied-live-extract, captured: "2026-07-13" }
72
+ "tokens.components.search-field.height": { surface_id: home, source_id: home-live, method: supplied-live-extract, captured: "2026-07-13" }
73
+ "tokens.components.search-field.font": { surface_id: home, source_id: home-live, method: supplied-live-extract, captured: "2026-07-13" }
74
+ "tokens.components.search-field.states": { surface_id: home, source_id: home-live, method: supplied-live-extract, captured: "2026-07-13" }
75
+ "tokens.components.search-field.use": { surface_id: home, source_id: home-live, method: supplied-live-extract, captured: "2026-07-13" }
76
+ tokens:
77
+ source: live-extract
78
+ extracted: "2026-07-13"
79
+ note: "Tokens are restricted to supplied selector-backed public POYA surfaces. Corporate narrative, first-party history, and declared-only icon fonts remain separate evidence domains."
80
+ colors:
81
+ primary: "#dd006f"
82
+ primary-soft: "#fff1f5"
83
+ foreground: "#231815"
84
+ foreground-soft: "#5e4d48"
85
+ canvas: "#ffffff"
86
+ hairline: "#cfcfcf"
87
+ on-primary: "#ffffff"
88
+ typography:
89
+ family:
90
+ ui: "PT Serif"
91
+ cjk: "Noto Sans TC"
92
+ action: { size: 16, weight: 400, lineHeight: 24, use: "Observed 45px pink pill action on all three supplied public surfaces" }
93
+ body: { size: 16, weight: 400, lineHeight: 24, use: "Observed Traditional-Chinese story/timeline body samples; family is surface-specific" }
94
+ heading: { size: 18, weight: 400, lineHeight: 27, use: "Observed public content heading/text samples; not a complete display scale" }
95
+ spacing: { xs: 5, sm: 8, md: 10, lg: 15, xl: 20, xxl: 25 }
96
+ rounded: { pill: 99 }
97
+ components:
98
+ primary-pill-action: { type: button, bg: "#dd006f", fg: "#ffffff", border: "1px solid #dd006f", radius: "99px", padding: "8px 20px", height: "45px", font: "16px / 400 / 24px PT Serif", states: "Default geometry observed on three public surfaces; interactionCount is 0, so hover, focus, pressed, disabled, and error values are absent.", use: "Selector-backed .btn action on the public home, brand-story, and timeline routes" }
99
+ search-field: { type: input, bg: "#fff1f5", fg: "#5e4d48", border: "0px #5e4d48", radius: "99px", padding: "0px 40px 0px 25px", height: "45px", font: "16px / 400 / 24px PT Serif", states: "Default geometry observed on three public surfaces; interactionCount is 0, so hover, focus, pressed, disabled, and error values are absent.", use: "Selector-backed .searchInput field in the shared public header" }
100
+ components_harvested: true
101
+ ---
102
+
103
+ # Design System Inspiration of 寶雅
104
+
105
+ ## 1. Visual Theme & Atmosphere
106
+
107
+ POYA 寶雅 is a Taiwanese specialty retailer for personal beauty and daily-living goods. Its first store opened in Tainan in 1985; the brand later adopted the 寶雅 trademark in 1998 and has grown from a store network into a retail, membership, payment, and online-shopping ecosystem. The public surfaces in this record make that practical retail role feel more considered than purely transactional: a vivid pink pill action punctuates a mostly white interface, while warm brown-black text and a pale blush search field soften dense navigation and campaign information. The result is a bright, accessible retail presentation that uses one conspicuous action color rather than a broad decorative palette.
108
+
109
+ POYA describes its core spirit as beauty, trendiness, and enrichment, and says it is improving store formats and accelerating digitalization. Its timeline records the 2023 consolidation of POYA BUY and POYA PAY into one app, followed by self-checkout with four-language interfaces in 2025. That evolution explains the public site’s role as a shared, information-heavy front door across stores, membership, and online services. It does not turn corporate history or campaign styling into UI-token evidence: the machine-readable values below remain limited to the supplied three public computed-style surfaces.
110
+
111
+ **Key characteristics:**
112
+
113
+ - Pink `#dd006f` is the repeated filled action and border treatment on the supplied public routes.
114
+ - Warm dark brown `#231815`, rather than neutral black alone, is the most frequent high-emphasis text/border value.
115
+ - A blush `#fff1f5` search field and softened brown `#5e4d48` give utility chrome a gentler retail character.
116
+ - The captured primary action and search field share a 45px height and 99px pill geometry.
117
+ - The packet contains no interaction events; its default component geometry remains useful evidence, while state transitions remain absent.
118
+
119
+ ## 2. Color Palette & Roles
120
+
121
+ ### Selector-backed public-surface colors
122
+
123
+ - **POYA Pink** (`#dd006f`): observed as the filled/background and 1px border value of the public `.btn` action on home, brand-story, and timeline surfaces.
124
+ - **Warm Foreground** (`#231815`): repeated public navigation, text, and border value across all three supplied surfaces.
125
+ - **Soft Foreground** (`#5e4d48`): observed search-field text/border value; its scope is the pale utility field rather than general content text.
126
+ - **Blush Search Surface** (`#fff1f5`): observed only on the shared public search input.
127
+ - **Canvas / On Pink** (`#ffffff`): repeated canvas/background and the action label color over POYA Pink.
128
+ - **Hairline** (`#cfcfcf`): observed 1px circular carousel-arrow border on the home surface; do not generalize it into a global divider system.
129
+
130
+ ### Evidence-domain boundary
131
+
132
+ The `primary_color` and token palette are public-surface measurements only. POYA’s corporate profile, store formats, self-checkout rollout, app history, own-brand marketing, and campaign imagery provide context but do not add colors to this token set.
133
+
134
+ ## 3. Typography Rules
135
+
136
+ ### Evidence classes
137
+
138
+ | Evidence class | Family and boundary |
139
+ |---|---|
140
+ | Official product-use | No first-party typography guideline or product announcement located in this pass establishes a POYA-owned UI type family. |
141
+ | Live computed surface-use | `PT Serif` is loaded and used 750 times in the supplied packet; `Noto Sans TC` is loaded and used 81 times. Both are live public-web family facts, not a claim of proprietary ownership. |
142
+ | Official distributed brand asset | No first-party POYA font package or typography asset was located. |
143
+ | Declared-only | `FontAwesome`, `footable`, `lg`, `slick`, and `swiper-icons` are declared in the supplied CSS evidence with zero visible usage. They remain non-text/icon implementation evidence and are not tokens. |
144
+ | License evidence | Noto’s official repository publishes its Sans license under SIL Open Font License 1.1. That license establishes the font asset’s terms, not a POYA distribution claim. |
145
+
146
+ ### Captured hierarchy
147
+
148
+ | Role | Family boundary | Size | Weight | Line height | Evidence boundary |
149
+ |---|---|---:|---:|---:|---|
150
+ | Pink public action | PT Serif first in computed stack | 16px | 400 | 24px | repeated `.btn` sample on all three supplied routes |
151
+ | Story/timeline body | Noto Sans TC first in computed stack | 16px | 400 | 24px | public long-form list/body samples |
152
+ | Public content sample | PT Serif first in computed stack | 18px | 400 | 27px | observed heading/text samples only; not a complete display scale |
153
+
154
+ Do not replace either loaded family with a system fallback and still call it a POYA typeface. The supplied evidence supports the named loaded public-web fonts above; it does not establish their use in the app, store signage, or every POYA digital surface.
155
+
156
+ ## 4. Component Stylings
157
+
158
+ ### Public actions
159
+
160
+ **Primary Pill Action**
161
+ - Background: `#dd006f`
162
+ - Text: `#ffffff`
163
+ - Border: 1px solid `#dd006f`
164
+ - Radius: 99px
165
+ - Padding: 8px 20px
166
+ - Height: 45px
167
+ - Font: 16px / 400 / 24px / PT Serif
168
+ - State: Default geometry is observed on home, brand-story, and timeline; no hover, focus, pressed, disabled, or error value was captured.
169
+ - Use: Public `.btn` action; selector `home::[data-omd-capture="9"]`.
170
+
171
+ ### Public header utility
172
+
173
+ **Search Field**
174
+ - Background: `#fff1f5`
175
+ - Text: `#5e4d48`
176
+ - Border: 0px `#5e4d48`
177
+ - Radius: 99px
178
+ - Padding: 0px 40px 0px 25px
179
+ - Height: 45px
180
+ - Font: 16px / 400 / 24px / PT Serif
181
+ - State: Default geometry is observed on home, brand-story, and timeline; no hover, focus, pressed, disabled, or error value was captured.
182
+ - Use: Shared public-header `.searchInput`; selector `home::[data-omd-capture="7"]`.
183
+
184
+ ### Scope boundary
185
+
186
+ The evidence packet has `interactionCount: 0` and `observedStates: 0`. No menu expansion, carousel transition, dialog, toast, tab state, form validation, error, disabled, or authenticated shopping state is added here. The two measured default components remain canonical because their selector/surface provenance is present and their geometry is static evidence.
187
+
188
+ ---
189
+ **Verified:** 2026-07-13
190
+ **Tier 1 sources:** https://www.poya.com.tw/ ; https://www.poya.com.tw/about/60/ ; https://www.poya.com.tw/about/61/ ; https://www.poya.com.tw/en/investor/43/4564523/
191
+ **Tier 2 sources:** https://getdesign.md/poya (attempted; no accessible POYA record returned) ; https://styles.refero.design/?q=poya (attempted; no accessible POYA result returned)
192
+ **Conflicts unresolved:** none
193
+
194
+ ## 5. Layout Principles
195
+
196
+ The supplied surfaces support a compact public-header pattern: a 45px search field and 45px action share one horizontal utility row, while the default action uses 8px vertical and 20px horizontal padding. Repeated captured spacing values cluster at 5px, 8px, 10px, 15px, 20px, and 25px. Those values describe observed local gaps/padding, not a complete responsive grid, store-navigation layout, or app checkout architecture.
197
+
198
+ ## 6. Depth & Elevation
199
+
200
+ The two promoted components are flat: both have `box-shadow: none`. The packet also records a white circular home carousel arrow with a 1px `#cfcfcf` border, but this is an unpromoted, route-local control and is not enough to publish a universal card or elevation token. Do not invent drop shadows, modal elevation, or a soft-card system from the retail imagery.
201
+
202
+ ## 7. Do's and Don'ts
203
+
204
+ ### Do
205
+
206
+ - Use `#dd006f` for the specific public pill-action context documented above, with white text and 99px rounding.
207
+ - Keep the pale `#fff1f5` search field distinct from the white page canvas and pair it with `#5e4d48` utility text.
208
+ - Preserve the difference between warm `#231815` content emphasis and plain black values that also occur in the capture.
209
+ - Use PT Serif and Noto Sans TC only within their supplied public-web evidence boundaries.
210
+
211
+ ### Don't
212
+
213
+ - Don't treat a campaign color, own-brand graphic, store interior, or investor-page styling as a public-site token without selector-backed evidence.
214
+ - Don't fabricate hover, focus, pressed, disabled, error, menu, dialog, toast, or checkout behavior from this zero-interaction packet.
215
+ - Don't replace a loaded named family with a fallback and label the result as POYA typography.
216
+ - Don't generalize a 99px search/action shape into every input, card, or list item.
217
+
218
+ ## 8. Implementation Notes
219
+
220
+ Start from the measured public header rather than from a generic beauty-retail kit: white canvas, warm dark text, one pink pill action, and a separate blush search surface. Use 45px as the documented component height for the two selector-backed controls. The supplied packet is not an accessibility audit; contrast, keyboard behavior, input labels, localization, and error treatment need product-specific verification before implementation.
221
+
222
+ ## 9. Source & Verification Notes
223
+
224
+ This reference is a public-web record captured on 2026-07-13. The canonical token graph contains only supplied computed-style evidence from the POYA home, brand-story, and timeline routes. First-party history and corporate material are used for context only. The raw measurements, font status, Tier 2 attempt log, confidence notes, and conflict matrix are retained in `.verification.md` and `_research.md`.
225
+
226
+ ## 10. Voice & Tone
227
+
228
+ POYA’s public language is inviting, practical, and lifestyle-aware. It pairs the company’s stated emphasis on beauty, trendiness, and enrichment with direct shopping/service prompts rather than technical product language.
229
+
230
+ | Do | Don't |
231
+ |---|---|
232
+ | Invite discovery in concise, everyday language. | Inflate routine retail actions into luxury or clinical claims. |
233
+ | Connect beauty and daily living without treating them as separate audiences. | Assume a single gender, age, or lifestyle. |
234
+ | Make service changes concrete: app, payment, store, and pickup. | Claim convenience or rewards that a given flow has not verified. |
235
+
236
+ Voice samples from POYA-owned public copy:
237
+
238
+ - “發現精彩日常” — POYA Original line on the current public home.
239
+ - “Beauty, Trendy, and Enrichment” — corporate-profile core spirits.
240
+ - “A more preferred Poya by the customers” — corporate-profile service aspiration.
241
+
242
+ ## 11. Brand Narrative
243
+
244
+ POYA began with a first store in Tainan in 1985. Its timeline records the first branch in Kaohsiung in 1997, adoption of the 寶雅 trademark in 1998, and public listing in 2002. The brand-story page describes the business as a specialty store for personal beauty and daily merchandise, spanning beauty care, apparel accessories, home goods, food and drink, and branded counters.
245
+
246
+ The current public company profile frames the next chapter around better store formats, digitalization, customer loyalty, and a more convenient, comfortable shopping space. The company timeline makes that evolution concrete: POYA PAY launched in 2021, POYA BUY and POYA PAY were integrated in 2023, and multilingual self-checkout began in stores in 2025. These first-party facts justify a service-oriented retail narrative; they do not establish any unobserved app UI or service-state design.
247
+
248
+ ## 12. Principles
249
+
250
+ 1. **Beauty belongs in daily life.** POYA combines beauty and daily merchandise rather than placing them in separate brand worlds.
251
+ *UI implication:* let useful retail navigation remain legible while pink is reserved for a defined action moment.
252
+ 2. **Trend-aware, not trend-dependent.** The company names trendiness as a core spirit alongside service and selection.
253
+ *UI implication:* favor clear, durable utility chrome over decorative effects that obscure labels or form fields.
254
+ 3. **Convenience crosses channels.** The documented app/payment integration and multilingual self-checkout show a move toward connected customer service.
255
+ *UI implication:* keep channel handoffs explicit; do not assume a public page proves account, payment, or checkout behavior.
256
+ 4. **A broad assortment needs calm organization.** POYA describes more than 60,000 selected products across many everyday categories.
257
+ *UI implication:* use hierarchy and predictable search/navigation before adding category-specific visual treatments.
258
+
259
+ ## 13. Personas
260
+
261
+ The following are evidence-bounded stakeholder archetypes, not claims about demographic research.
262
+
263
+ - **Beauty and care shopper:** looks across personal beauty, health, and care goods; needs discoverable categories and clear service information.
264
+ - **Daily-living replenisher:** comes for practical household or personal items and benefits from direct search, stock, and store pathways.
265
+ - **Cross-channel member:** moves among store, app, payment, and online-shopping touchpoints; needs accurate, explicit handoff language rather than implied account-state behavior.
266
+
267
+ ## 14. States
268
+
269
+ | Category | Guidance | Evidence boundary |
270
+ |---|---|---|
271
+ | Empty search | Explain that no matching public result is shown and retain the search term. | No POYA empty result was supplied. |
272
+ | Empty collection | State that the collection currently has no public items. | No POYA collection-empty state was supplied. |
273
+ | Loading page | Keep the header geometry stable while public content loads. | Illustrative implementation guidance; no POYA loader was captured. |
274
+ | Loading search | Preserve the 45px field geometry; do not fabricate a branded spinner. | Field geometry is observed; loading treatment is not. |
275
+ | Error network | Give a plain retry action and preserve entered text when safe. | No POYA error copy/state was supplied. |
276
+ | Error unavailable service | Say which service is unavailable without implying account or payment status. | No POYA service-error state was supplied. |
277
+ | Error validation | Pair the message with an input label and actionable correction. | No POYA validation state was supplied. |
278
+ | Success search | Announce updated results in an accessible status region. | No POYA success state was supplied. |
279
+ | Success member action | Confirm only an action that the underlying product flow can verify. | No POYA member-success state was supplied. |
280
+ | Skeleton header | Reserve the measured search and action footprints without simulating interaction states. | Geometry is observed; skeleton styling is not. |
281
+ | Skeleton content | Use neutral placeholders rather than campaign colors. | Illustrative implementation guidance. |
282
+ | Disabled action | Keep the reason visible; do not derive a disabled color from the pink default. | No disabled evidence was captured. |
283
+
284
+ ## 15. Motion & Easing
285
+
286
+ No POYA motion values, duration scale, or easing curve were captured. For an implementation that needs motion, use its host product’s approved accessibility policy and reduce or remove nonessential movement for reduced-motion preferences. Do not label a generic easing curve, carousel transition, or focus animation as a POYA design-system fact from this record.