oh-my-design-cli 1.8.7 → 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 (247) 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 +1995 -38
  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/alipay/DESIGN.md +179 -420
  71. package/web/references/apple/DESIGN.md +224 -498
  72. package/web/references/asleep/DESIGN.md +402 -0
  73. package/web/references/au/DESIGN.md +334 -0
  74. package/web/references/autopedia/DESIGN.md +382 -0
  75. package/web/references/aws-cloudscape/DESIGN.md +241 -0
  76. package/web/references/baemin/DESIGN.md +332 -491
  77. package/web/references/banksalad/DESIGN.md +269 -180
  78. package/web/references/barogo/DESIGN.md +416 -0
  79. package/web/references/beusable/DESIGN.md +464 -0
  80. package/web/references/bilibili/DESIGN.md +206 -374
  81. package/web/references/bmw/DESIGN.md +162 -276
  82. package/web/references/brandi/DESIGN.md +184 -325
  83. package/web/references/catchtable/DESIGN.md +219 -264
  84. package/web/references/cgv/DESIGN.md +317 -0
  85. package/web/references/channeltalk/DESIGN.md +210 -336
  86. package/web/references/china-airlines/DESIGN.md +291 -0
  87. package/web/references/cjonstyle/DESIGN.md +453 -0
  88. package/web/references/class101/DESIGN.md +168 -387
  89. package/web/references/classum/DESIGN.md +228 -203
  90. package/web/references/claude/DESIGN.md +242 -479
  91. package/web/references/clay/DESIGN.md +179 -377
  92. package/web/references/clickhouse/DESIGN.md +254 -343
  93. package/web/references/cohere/DESIGN.md +214 -324
  94. package/web/references/coinone/DESIGN.md +199 -179
  95. package/web/references/corca/DESIGN.md +414 -0
  96. package/web/references/coupang/DESIGN.md +205 -475
  97. package/web/references/cursor/DESIGN.md +240 -381
  98. package/web/references/dabang/DESIGN.md +248 -213
  99. package/web/references/dable/DESIGN.md +431 -0
  100. package/web/references/datarize/DESIGN.md +217 -330
  101. package/web/references/dealicious/DESIGN.md +402 -0
  102. package/web/references/drdiary/DESIGN.md +404 -0
  103. package/web/references/elastic/DESIGN.md +238 -0
  104. package/web/references/elevenlabs/DESIGN.md +183 -321
  105. package/web/references/eslite/DESIGN.md +257 -0
  106. package/web/references/evaair/DESIGN.md +338 -0
  107. package/web/references/expo/DESIGN.md +238 -331
  108. package/web/references/familymart-tw/DESIGN.md +254 -0
  109. package/web/references/ferrari/DESIGN.md +160 -377
  110. package/web/references/figma/DESIGN.md +197 -451
  111. package/web/references/fitpet/DESIGN.md +445 -0
  112. package/web/references/flex/DESIGN.md +170 -253
  113. package/web/references/framer/DESIGN.md +197 -340
  114. package/web/references/freee/DESIGN.md +211 -533
  115. package/web/references/friendliai/DESIGN.md +431 -0
  116. package/web/references/frip/DESIGN.md +440 -0
  117. package/web/references/gangnamunni/DESIGN.md +154 -591
  118. package/web/references/gaudiolab/DESIGN.md +414 -0
  119. package/web/references/google/DESIGN.md +290 -398
  120. package/web/references/hashicorp/DESIGN.md +273 -318
  121. package/web/references/heydealer/DESIGN.md +429 -0
  122. package/web/references/humanscape/DESIGN.md +433 -0
  123. package/web/references/hyundai/DESIGN.md +158 -368
  124. package/web/references/hyundaicard/DESIGN.md +171 -121
  125. package/web/references/ibm/DESIGN.md +227 -378
  126. package/web/references/idus/DESIGN.md +450 -0
  127. package/web/references/igaworks/DESIGN.md +437 -0
  128. package/web/references/inflearn/DESIGN.md +221 -366
  129. package/web/references/intuit/DESIGN.md +244 -0
  130. package/web/references/jandi/DESIGN.md +191 -291
  131. package/web/references/jobplanet/DESIGN.md +415 -0
  132. package/web/references/kakao/DESIGN.md +287 -475
  133. package/web/references/kakaobank/DESIGN.md +220 -521
  134. package/web/references/kakaogames/DESIGN.md +220 -0
  135. package/web/references/kakaopay/DESIGN.md +207 -526
  136. package/web/references/karrot/DESIGN.md +227 -251
  137. package/web/references/kb-kookmin/DESIGN.md +308 -0
  138. package/web/references/kbank/DESIGN.md +220 -175
  139. package/web/references/kmong/DESIGN.md +281 -356
  140. package/web/references/krds/DESIGN.md +245 -19
  141. package/web/references/kream/DESIGN.md +224 -359
  142. package/web/references/kurly/DESIGN.md +211 -533
  143. package/web/references/lamborghini/DESIGN.md +198 -360
  144. package/web/references/lguplus/DESIGN.md +259 -0
  145. package/web/references/likelion/DESIGN.md +283 -0
  146. package/web/references/line/DESIGN.md +396 -355
  147. package/web/references/linear.app/DESIGN.md +209 -562
  148. package/web/references/lotteon/DESIGN.md +386 -0
  149. package/web/references/lovable/DESIGN.md +255 -349
  150. package/web/references/makinarocks/DESIGN.md +149 -349
  151. package/web/references/maum-ai/DESIGN.md +423 -0
  152. package/web/references/medibloc/DESIGN.md +425 -0
  153. package/web/references/megabox/DESIGN.md +232 -0
  154. package/web/references/mercari/DESIGN.md +217 -434
  155. package/web/references/microsoft/DESIGN.md +234 -388
  156. package/web/references/mildang/DESIGN.md +411 -0
  157. package/web/references/millie/DESIGN.md +183 -504
  158. package/web/references/minimax/DESIGN.md +264 -322
  159. package/web/references/miricanvas/DESIGN.md +182 -355
  160. package/web/references/miro/DESIGN.md +234 -232
  161. package/web/references/mistral.ai/DESIGN.md +231 -314
  162. package/web/references/mixi/DESIGN.md +234 -0
  163. package/web/references/moin/DESIGN.md +445 -0
  164. package/web/references/mongodb/DESIGN.md +219 -316
  165. package/web/references/musinsa/DESIGN.md +184 -510
  166. package/web/references/mynavi/DESIGN.md +242 -0
  167. package/web/references/myrealtrip/DESIGN.md +169 -406
  168. package/web/references/naver/DESIGN.md +328 -499
  169. package/web/references/naverwebtoon/DESIGN.md +172 -395
  170. package/web/references/nhn/DESIGN.md +169 -346
  171. package/web/references/nhncloud/DESIGN.md +185 -123
  172. package/web/references/notion/DESIGN.md +271 -475
  173. package/web/references/nrise/DESIGN.md +417 -0
  174. package/web/references/ohouse/DESIGN.md +210 -549
  175. package/web/references/oliveyoung/DESIGN.md +217 -326
  176. package/web/references/ollama/DESIGN.md +241 -308
  177. package/web/references/onestore/DESIGN.md +248 -0
  178. package/web/references/palantir/DESIGN.md +256 -0
  179. package/web/references/panasonic/DESIGN.md +276 -0
  180. package/web/references/patternfly/DESIGN.md +259 -0
  181. package/web/references/payhere/DESIGN.md +438 -0
  182. package/web/references/pega/DESIGN.md +262 -0
  183. package/web/references/peoplefund/DESIGN.md +431 -0
  184. package/web/references/petfriends/DESIGN.md +428 -0
  185. package/web/references/pinkfong/DESIGN.md +199 -367
  186. package/web/references/pinterest/DESIGN.md +258 -308
  187. package/web/references/poya/DESIGN.md +286 -0
  188. package/web/references/pozalabs/DESIGN.md +438 -0
  189. package/web/references/protopie/DESIGN.md +419 -0
  190. package/web/references/qraft/DESIGN.md +448 -0
  191. package/web/references/quotabook/DESIGN.md +449 -0
  192. package/web/references/recruit/DESIGN.md +247 -0
  193. package/web/references/remember/DESIGN.md +202 -396
  194. package/web/references/resend/DESIGN.md +274 -348
  195. package/web/references/sakura-internet/DESIGN.md +269 -0
  196. package/web/references/samsung/DESIGN.md +157 -359
  197. package/web/references/sandoll/DESIGN.md +445 -0
  198. package/web/references/sanity/DESIGN.md +241 -375
  199. package/web/references/scatterlab/DESIGN.md +412 -0
  200. package/web/references/selectstar/DESIGN.md +439 -0
  201. package/web/references/servicenow/DESIGN.md +289 -0
  202. package/web/references/shinhanbank/DESIGN.md +161 -341
  203. package/web/references/shinhancard/DESIGN.md +208 -319
  204. package/web/references/sionic/DESIGN.md +454 -0
  205. package/web/references/sktelecom/DESIGN.md +310 -0
  206. package/web/references/socar/DESIGN.md +125 -32
  207. package/web/references/softbank/DESIGN.md +231 -0
  208. package/web/references/sony/DESIGN.md +234 -0
  209. package/web/references/soop/DESIGN.md +261 -0
  210. package/web/references/spacex/DESIGN.md +184 -323
  211. package/web/references/spotify/DESIGN.md +253 -394
  212. package/web/references/squeezebits/DESIGN.md +441 -0
  213. package/web/references/stayfolio/DESIGN.md +422 -0
  214. package/web/references/stripe/DESIGN.md +212 -491
  215. package/web/references/supabase/DESIGN.md +244 -316
  216. package/web/references/tabling/DESIGN.md +415 -0
  217. package/web/references/taishinbank/DESIGN.md +243 -0
  218. package/web/references/teamlab/DESIGN.md +240 -0
  219. package/web/references/teamsparta/DESIGN.md +472 -0
  220. package/web/references/tellingme/DESIGN.md +392 -0
  221. package/web/references/tesla/DESIGN.md +244 -427
  222. package/web/references/thsr/DESIGN.md +284 -0
  223. package/web/references/thumbtack/DESIGN.md +302 -0
  224. package/web/references/together.ai/DESIGN.md +257 -304
  225. package/web/references/toss/DESIGN.md +251 -593
  226. package/web/references/toss-securities/DESIGN.md +255 -178
  227. package/web/references/tossbank/DESIGN.md +195 -491
  228. package/web/references/toyota/DESIGN.md +238 -0
  229. package/web/references/tving/DESIGN.md +197 -245
  230. package/web/references/typed/DESIGN.md +413 -0
  231. package/web/references/uber/DESIGN.md +256 -333
  232. package/web/references/udn/DESIGN.md +250 -0
  233. package/web/references/upbit/DESIGN.md +145 -256
  234. package/web/references/upstage/DESIGN.md +211 -204
  235. package/web/references/uswds/DESIGN.md +287 -0
  236. package/web/references/vercel/DESIGN.md +236 -440
  237. package/web/references/wanted/DESIGN.md +215 -487
  238. package/web/references/wise/DESIGN.md +223 -231
  239. package/web/references/wisetracker/DESIGN.md +462 -0
  240. package/web/references/wooribank/DESIGN.md +245 -0
  241. package/web/references/yanolja/DESIGN.md +250 -419
  242. package/web/references/yeogiotte/DESIGN.md +235 -418
  243. package/web/references/zapier/DESIGN.md +256 -377
  244. package/web/references/zendesk/DESIGN.md +288 -0
  245. package/web/references/zigzag/DESIGN.md +200 -621
  246. package/dist/install-skills-7UUDOLG2.js +0 -734
  247. package/dist/install-skills-7UUDOLG2.js.map +0 -1
@@ -0,0 +1,428 @@
1
+ ---
2
+ id: petfriends
3
+ name: Pet Friends
4
+ display_name_kr: 펫프렌즈
5
+ country: KR
6
+ category: ecommerce
7
+ homepage: "https://www.pet-friends.co.kr/"
8
+ primary_color: "#ff4081"
9
+ logo:
10
+ type: favicon
11
+ slug: "https://www.google.com/s2/favicons?domain=pet-friends.co.kr&sz=128"
12
+ verified: "2026-07-02"
13
+ added: "2026-07-02"
14
+ omd: "0.1"
15
+ tokens:
16
+ source: live-extract
17
+ extracted: "2026-07-02"
18
+ note: "primary = live vivid pink #ff4081 (Material Pink A400) used as emphasis type + solid action fills; deeper magenta #ea306f for sale copy; signal red #f33f46 for discount %. Charcoal ink #2d3035 for text. Near-flat/shadowless system — separation via tint + #e9ebec hairlines."
19
+ colors:
20
+ primary: "#ff4081"
21
+ primary-deep: "#ea306f"
22
+ discount: "#f33f46"
23
+ surface-pink: "#fff1f5"
24
+ pink-soft: "#ffaac7"
25
+ ink: "#2d3035"
26
+ ink-pure: "#000000"
27
+ muted: "#9ca1aa"
28
+ surface: "#f8f8f8"
29
+ surface-alt: "#fafafa"
30
+ hairline: "#e9ebec"
31
+ overlay: "#1c1e21"
32
+ accent-blue: "#6078e4"
33
+ canvas: "#ffffff"
34
+ on-primary: "#ffffff"
35
+ typography:
36
+ family: { brand: "Lific", fallback: "Noto Sans KR" }
37
+ section-title: { size: 18, weight: 700, lineHeight: 1.30, tracking: -0.2, use: "Section headings (H2), Lific Bold" }
38
+ emphasis: { size: 18, weight: 900, tracking: -0.2, use: "Emphasized phrase inside a heading, pink #ff4081" }
39
+ discount: { size: 16, weight: 700, lineHeight: 1.38, tracking: -0.32, use: "Discount percentage, signal red #f33f46" }
40
+ label: { size: 14, weight: 700, tracking: -0.2, use: "Bold UI labels (delivery address, tabs)" }
41
+ body: { size: 14, weight: 400, use: "Standard reading text, Noto Sans KR fallback" }
42
+ product-title: { size: 13, weight: 400, lineHeight: 1.38, tracking: -0.2, use: "Product names in cards" }
43
+ spacing: { xs: 4, sm: 8, md: 12, base: 15, lg: 16, gutter: 44 }
44
+ rounded: { sm: 6, md: 8, lg: 16, pill: 36, full: 9999 }
45
+ shadow:
46
+ none: "none"
47
+ components:
48
+ chip-category: { type: button, bg: "#fff1f5", fg: "#000000", radius: "36px", padding: "4px 8px 4px 12px", height: "32px", use: "Header category / delivery-address selector chip" }
49
+ pill-keyword: { type: badge, bg: "#ffaac7", fg: "#ffffff", radius: "19px", padding: "3px 15px", height: "30px", use: "Trending search-keyword pill (rendered at 0.5 alpha over hero)" }
50
+ input-search: { type: input, bg: "#ffffff", fg: "#2d3035", border: "1px solid #e9ebec", radius: "6px", padding: "15px 44px 15px 16px", height: "52px", font: "20px / 500 Lific", use: "Main product search field, placeholder 어떤 상품을 찾으시나요?" }
51
+ card-product: { type: card, bg: "#f8f8f8", radius: "16px", use: "Product image card surface in grids / carousels" }
52
+ button-primary: { type: button, bg: "#ff4081", fg: "#ffffff", font: "16px / 700 Lific", use: "Primary brand action — solid pink fill (add-to-cart / buy)" }
53
+ badge-overlay: { type: badge, bg: "#1c1e21", fg: "#ffffff", radius: "20px", padding: "5px 8px", use: "Carousel index / image counter (rendered at 0.6 alpha)" }
54
+ avatar-round: { type: avatar, radius: "9999px", use: "Circular avatar / icon frame (border-radius 50%)" }
55
+ components_harvested: true
56
+ ---
57
+
58
+ # Design System Inspiration of Pet Friends
59
+
60
+ ## 1. Visual Theme & Atmosphere
61
+
62
+ Pet Friends (펫프렌즈) is Korea's self-described "반려동물 1등 쇼핑몰" (No.1 pet shopping mall), and its interface reads like a friendly, high-energy commerce app built for anxious-but-loving pet parents (집사님). The canvas is pure white (`#ffffff`) broken up by soft grey product surfaces (`#f8f8f8`) and warm pink tints (`#fff1f5`), so the page feels bright and merchandising-forward rather than clinical. Text sits in a soft charcoal (`#2d3035`) — never a harsh pure black for reading copy — which keeps the dense product grids legible without feeling heavy. The signature move is color as emotion: a single vivid pink (`#ff4081`, Material's Pink A400) carries the brand's affection and doubles as the "do this" action color.
63
+
64
+ The typographic personality is warm and declarative. Section headlines run in the brand's custom **Lific** typeface at 18px / weight 700 with tight `-0.2px` tracking, and the persuasive word in each headline jumps to **weight 900 in pink** (`#ff4081`) — e.g. "재구매율 **89%**", "최저가 **도전 사료 모음!**", "집사님을 위한 **오늘 특가!**". Body and product-name text drop to Lific / **Noto Sans KR** at 13–14px weight 400, optimized for dense hangul product listings. This heavy-pink-emphasis-over-quiet-grey-body split is the core tension of the system: shout the deal, whisper the detail.
65
+
66
+ What distinguishes Pet Friends from generic marketplaces is its commitment to friendly geometry and near-flat depth. Interactive chrome leans hard into the pill and the rounded rectangle: category chips at 36px radius on a pink tint (`#fff1f5`), soft-pink search-keyword pills (`#ffaac7`) at ~19px radius, product cards at a comfortable 16px, and circular avatars. Live inspection returned `box-shadow: none` on chips, inputs, and headings — separation comes from tinted surfaces, thin `#e9ebec` hairlines, and a near-black image overlay (`#1c1e21`), not from elevation. Price urgency gets its own dedicated signal red (`#f33f46`) for discount percentages and a deeper magenta (`#ea306f`) for sale copy, keeping the primary pink from being diluted by commerce noise. A periwinkle accent-blue (`#6078e4`) and alternate light surface (`#fafafa`) show up on promotional landing bands.
67
+
68
+ **Key Characteristics:**
69
+ - Custom **Lific** typeface with **Noto Sans KR** fallback — one warm family across display and body
70
+ - Single vivid pink (`#ff4081`) as both emotional brand color and primary action fill
71
+ - Heading emphasis in weight 900 pink; quiet 13–14px weight-400 grey body (`#2d3035`)
72
+ - Friendly geometry — 36px chips, ~19px keyword pills, 16px cards, circular avatars
73
+ - Near-flat / shadowless: tint surfaces (`#f8f8f8`, `#fff1f5`) + `#e9ebec` hairlines do the separating
74
+ - Dedicated commerce signals: signal red (`#f33f46`) for discount %, deeper magenta (`#ea306f`) for sale copy
75
+ - Near-black overlay (`#1c1e21`) for image counters instead of drop shadows
76
+ - Muted grey ladder (`#9ca1aa`) for secondary/metadata text
77
+
78
+ ## 2. Color Palette & Roles
79
+
80
+ ### Primary
81
+ - **Pet Friends Pink** (`#ff4081`): The brand's signature vivid pink (Material Pink A400). Used for weight-900 emphasis words in headlines, solid primary-action button/badge fills, and brand accents. The system's single "do this" color.
82
+ - **Deep Magenta** (`#ea306f`): A deeper pink-magenta for sale copy and secondary emphasis text where the primary pink would be too light.
83
+
84
+ ### Text
85
+ - **Ink Charcoal** (`#2d3035`): Primary text, headings, product names, labels. A soft near-black used instead of pure black for reading comfort in dense grids.
86
+ - **Pure Black** (`#000000`): Maximum-contrast text used on some hero headings and chip labels.
87
+ - **Muted Grey** (`#9ca1aa`): Tertiary text, captions, metadata, disabled labels.
88
+
89
+ ### Commerce Signals
90
+ - **Signal Red** (`#f33f46`): The discount-percentage color — used almost exclusively on the bold "17%", "50%", "36%" markdown that drives conversion.
91
+
92
+ ### Surface & Neutral
93
+ - **Pure White** (`#ffffff`): Page background, card surfaces, and text on pink/dark fills.
94
+ - **Product Grey** (`#f8f8f8`): The light-grey image surface behind product photography in cards and carousels.
95
+ - **Alt Surface** (`#fafafa`): A slightly warmer alternate light surface for promotional landing bands.
96
+ - **Surface Pink** (`#fff1f5`): A pale pink tint used as the background of header category / delivery chips.
97
+ - **Soft Pink** (`#ffaac7`): The soft pink of the trending search-keyword pills (rendered at 0.5 alpha over the hero imagery).
98
+ - **Hairline** (`#e9ebec`): Thin borders, input outlines, and dividers — the primary separation device given the shadow-free system.
99
+ - **Overlay Ink** (`#1c1e21`): A near-black used (at ~0.6 alpha) for image overlays and carousel index counters.
100
+
101
+ ### Accent
102
+ - **Accent Blue** (`#6078e4`): A periwinkle blue used sparingly on promotional / event landing bands as a secondary accent to the pink.
103
+ - **On-Primary White** (`#ffffff`): Text and iconography on pink, magenta, and dark overlay fills.
104
+
105
+ ## 3. Typography Rules
106
+
107
+ ### Font Family
108
+ - **Brand**: `Lific` — Pet Friends' custom typeface, used across headings, UI, and body.
109
+ - **Fallback**: `Noto Sans KR` — the hangul fallback that carries dense product-listing and body copy.
110
+
111
+ ### Hierarchy
112
+
113
+ | Role | Font | Size | Weight | Line Height | Letter Spacing | Notes |
114
+ |------|------|------|--------|-------------|----------------|-------|
115
+ | Section Heading | Lific | 18px (1.13rem) | 700 | ~1.30 | -0.2px | H2 section titles ("맘마값 부담 DOWN…") |
116
+ | Emphasis | Lific | 18px (1.13rem) | 900 | normal | -0.2px | Emphasized phrase in a heading, pink `#ff4081` |
117
+ | Discount | Lific | 16px (1.00rem) | 700 | 1.38 (22px) | -0.32px | Discount percentage, signal red `#f33f46` |
118
+ | Label | Lific | 14px (0.88rem) | 700 | ~1.48 | -0.2px | Bold UI labels (배송지 입력, tabs) |
119
+ | Body | Noto Sans KR | 14px (0.88rem) | 400 | normal | normal | Standard reading text |
120
+ | Product Title | Lific | 13px (0.81rem) | 400 | 1.38 (18px) | -0.2px | Product names in cards |
121
+
122
+ ### Principles
123
+ - **Bold pink emphasis, quiet grey body**: Headlines carry a weight-900 pink phrase for the persuasive beat; product names and body drop to weight 400 charcoal. The weight-and-color jump is the primary hierarchy signal.
124
+ - **Tight negative tracking on headings**: -0.2px on titles, -0.32px on discount figures. Body stays at normal tracking.
125
+ - **Hangul-first sizing**: Product titles sit at a deliberate 13px, body at 14px — dense enough for merchandising grids, legible for hangul.
126
+ - **One warm family**: Lific covers display and UI; Noto Sans KR is the reading/fallback voice. There is no second display typeface competing for attention.
127
+
128
+ ## 4. Component Stylings
129
+
130
+ ### Buttons
131
+
132
+ **Primary Action (Pink)**
133
+ - Background: `#ff4081`
134
+ - Text: `#ffffff`
135
+ - Font: 16px Lific weight 700
136
+ - Use: Primary brand action — the solid vivid-pink fill used for add-to-cart / buy and headline CTAs
137
+
138
+ **Category / Delivery Chip**
139
+ - Background: `#fff1f5`
140
+ - Text: `#000000`
141
+ - Radius: 36px
142
+ - Padding: 4px 8px 4px 12px
143
+ - Height: 32px
144
+ - Use: Header chips for category ("강아지") and delivery-address ("배송지 입력") selection
145
+
146
+ ### Inputs
147
+
148
+ **Search Field**
149
+ - Background: `#ffffff`
150
+ - Text: `#2d3035`
151
+ - Border: 1px solid `#e9ebec`
152
+ - Radius: 6px
153
+ - Padding: 15px 44px 15px 16px
154
+ - Height: 52px
155
+ - Font: 20px Lific weight 500
156
+ - Use: Main product search — placeholder "어떤 상품을 찾으시나요?"
157
+
158
+ ### Cards
159
+
160
+ **Product Card**
161
+ - Background: `#f8f8f8`
162
+ - Radius: 16px
163
+ - Use: Light-grey image surface behind product photography in grids and carousels
164
+
165
+ ### Badges
166
+
167
+ **Search-Keyword Pill**
168
+ - Background: `#ffaac7`
169
+ - Text: `#ffffff`
170
+ - Radius: 19px
171
+ - Padding: 3px 15px
172
+ - Height: 30px
173
+ - Use: Trending search-keyword pills on the hero (rendered at 0.5 alpha)
174
+
175
+ **Image Counter Overlay**
176
+ - Background: `#1c1e21`
177
+ - Text: `#ffffff`
178
+ - Radius: 20px
179
+ - Padding: 5px 8px
180
+ - Use: Carousel index / image counter ("2/14"), rendered at ~0.6 alpha over media
181
+
182
+ ### Avatars
183
+
184
+ **Circular Frame**
185
+ - Radius: 9999px (border-radius 50%)
186
+ - Use: Circular avatar / icon frame in list and community surfaces
187
+
188
+ ---
189
+
190
+ **Verified:** 2026-07-02 (omd:add-reference CREATE — Tier 1 live inspect, 3 surfaces)
191
+ **Tier 1 sources:** https://www.pet-friends.co.kr/ , https://m.pet-friends.co.kr/main/product/list/16982
192
+ **Tier 2 sources:** getdesign.md/petfriends (0 files) ; styles.refero.design/?q=petfriends (no genuine Pet Friends entry — returns generic default styles)
193
+ **Conflicts unresolved:** none
194
+
195
+ ## 5. Layout Principles
196
+
197
+ ### Spacing System
198
+ - Base units (measured): 4px, 8px, 12px, 15px, 16px, 44px
199
+ - Notable: chip padding lands at an asymmetric `4px 8px 4px 12px` (room for a trailing chevron icon); the search field reserves a 44px right gutter for its search/clear icon
200
+
201
+ ### Grid & Container
202
+ - Mobile-first, single-column app shell (the desktop `www` host redirects to the `m.` mobile commerce surface)
203
+ - Sticky header: category + delivery chips over a full-width search field
204
+ - Trending-keyword pill row directly beneath search
205
+ - Product merchandising in horizontally scrolling carousels and 2-up grids, each product on a `#f8f8f8` card at 16px radius
206
+ - Section headlines ("최저가 도전 사료 모음!") anchor each merchandising band
207
+
208
+ ### Whitespace Philosophy
209
+ - **Merchandising density with breathing room**: product grids are information-rich, but each card gets a clean grey surface and generous rounding so the page never feels cramped.
210
+ - **Flat segmentation**: sections separate by background tint (`#f8f8f8` grey, `#fff1f5` pink, `#fafafa` alt) and `#e9ebec` hairlines, not shadow.
211
+ - **Pill rhythm**: repeated rounded chips and pills create a consistent, friendly horizontal cadence.
212
+
213
+ ### Border Radius Scale
214
+ - Small (6px): search input
215
+ - Medium (8px): icon buttons, small controls
216
+ - Large (16px): product cards, content containers — the workhorse
217
+ - Pill (36px): category / delivery chips
218
+ - Full (9999px / 50%): keyword pills, avatars, circular frames
219
+
220
+ ## 6. Depth & Elevation
221
+
222
+ | Level | Treatment | Use |
223
+ |-------|-----------|-----|
224
+ | Flat (Level 0) | No shadow | Page background, chips, inputs, headings |
225
+ | Tint (Level 1) | `#f8f8f8` / `#fff1f5` / `#fafafa` background shift | Card & section separation without elevation |
226
+ | Hairline (Level 2) | `1px solid #e9ebec` border | Input outlines, dividers |
227
+ | Overlay (Level 3) | `#1c1e21` at ~0.6 alpha | Image-on-media counters and scrims |
228
+
229
+ **Shadow Philosophy**: Pet Friends is a near-shadowless, flat system. Live inspection returned `box-shadow: none` across the header chips, search input, and headings. Depth and grouping come from flat tinted surfaces (`#f8f8f8`, `#fff1f5`), thin `#e9ebec` hairlines, and — where content sits on photography — a near-black `#1c1e21` overlay rather than a cast shadow. This keeps the commerce UI feeling fast, bright, and mobile-native. When emphasis is needed the system reaches for color (pink `#ff4081`, red `#f33f46`), never elevation.
230
+
231
+ ## 7. Do's and Don'ts
232
+
233
+ ### Do
234
+ - Use the custom Lific typeface (with Noto Sans KR fallback) across headings and body
235
+ - Reserve the vivid pink (`#ff4081`) for emphasis words and the primary action — keep it the single "do this" color
236
+ - Put the persuasive word of a headline in weight 900 pink; keep the rest quiet grey
237
+ - Use signal red (`#f33f46`) only for discount percentages, and deeper magenta (`#ea306f`) for sale copy
238
+ - Use soft charcoal (`#2d3035`) for reading text instead of pure black
239
+ - Separate sections with flat tints (`#f8f8f8`, `#fff1f5`) and `#e9ebec` hairlines, not shadows
240
+ - Use friendly geometry — 36px chips, 16px product cards, circular avatars
241
+ - Apply the `#1c1e21` overlay for counters/scrims on top of product imagery
242
+
243
+ ### Don't
244
+ - Spread the pink across many elements — it dilutes the single-action signal
245
+ - Use drop shadows for elevation — Pet Friends is a flat, shadow-free system
246
+ - Use signal red (`#f33f46`) for anything other than price/discount urgency
247
+ - Set headline emphasis in a light weight — the persuasive word is always weight 900
248
+ - Use pure black (`#000000`) for long-form body text — reserve charcoal `#2d3035`
249
+ - Introduce a competing display typeface — Lific owns the voice
250
+ - Use sharp square corners on chips, cards, or pills — everything is rounded
251
+ - Let the periwinkle accent-blue (`#6078e4`) compete with pink as a primary action
252
+
253
+ ## 8. Responsive Behavior
254
+
255
+ ### Breakpoints
256
+ | Name | Width | Key Changes |
257
+ |------|-------|-------------|
258
+ | Mobile | <640px | Primary target — single column app shell, chips + search header, carousels |
259
+ | Tablet | 640-1024px | Wider grids, 2–3-up product cards |
260
+ | Desktop | >1024px | `www` host redirects to the `m.` mobile commerce experience; layout stays app-width and centered |
261
+
262
+ ### Touch Targets
263
+ - Category / delivery chips at 32px height with asymmetric padding — comfortably tappable
264
+ - Search field at 52px height, full-width
265
+ - Keyword pills at 30px height, 3px 15px padding
266
+
267
+ ### Collapsing Strategy
268
+ - Header: category + delivery chips stay pinned above the search field
269
+ - Product carousels scroll horizontally on narrow viewports
270
+ - Merchandising bands stack vertically, each keeping its tinted background
271
+ - Product cards maintain 16px radius across breakpoints
272
+
273
+ ### Image Behavior
274
+ - Product photography sits on `#f8f8f8` card surfaces at all sizes, no shadow
275
+ - Media carousels carry the `#1c1e21` overlay counter regardless of viewport
276
+ - Cards maintain consistent 16px radius
277
+
278
+ ## 9. Agent Prompt Guide
279
+
280
+ ### Quick Color Reference
281
+ - Primary action / emphasis: Pet Friends Pink (`#ff4081`)
282
+ - Sale copy: Deep Magenta (`#ea306f`)
283
+ - Discount %: Signal Red (`#f33f46`)
284
+ - Background: Pure White (`#ffffff`)
285
+ - Product surface: Product Grey (`#f8f8f8`)
286
+ - Chip tint: Surface Pink (`#fff1f5`)
287
+ - Keyword pill: Soft Pink (`#ffaac7`)
288
+ - Text / headings: Ink Charcoal (`#2d3035`)
289
+ - Muted text: Muted Grey (`#9ca1aa`)
290
+ - Hairline: `#e9ebec`
291
+ - Overlay: `#1c1e21`
292
+ - Accent: Periwinkle (`#6078e4`)
293
+
294
+ ### Example Component Prompts
295
+ - "Create a mobile commerce header on white. A row of pill chips: `#fff1f5` background, `#000000` text, 36px radius, 4px 8px 4px 12px padding, 32px height (category + '배송지 입력'). Below it a 52px search field: white background, 1px solid `#e9ebec` border, 6px radius, 20px Lific text, placeholder '어떤 상품을 찾으시나요?'."
296
+ - "Design a section headline in Lific 18px weight 700, letter-spacing -0.2px, `#2d3035`, with the key phrase in weight 900 pink `#ff4081` — e.g. 최저가 **도전 사료 모음!**."
297
+ - "Build a product card: `#f8f8f8` background, 16px radius, no shadow. Product title 13px Lific weight 400, `#2d3035`. Discount percentage 16px weight 700 in signal red `#f33f46`."
298
+ - "Create a trending-keyword pill row: soft pink `#ffaac7` background, white text, 19px radius, 3px 15px padding, 30px height."
299
+
300
+ ### Iteration Guide
301
+ 1. Lific (Noto Sans KR fallback) everywhere; no second display face
302
+ 2. Pink (`#ff4081`) is the single action / emphasis color — don't spread it
303
+ 3. Headline emphasis word = weight 900 pink; body = weight 400 charcoal
304
+ 4. No shadows — separate with `#f8f8f8` / `#fff1f5` tint and `#e9ebec` hairlines
305
+ 5. Discount % is always signal red `#f33f46`; sale copy is deep magenta `#ea306f`
306
+ 6. Friendly geometry — 36px chips, 16px cards, circular avatars
307
+ 7. Overlay counters on media use `#1c1e21` at low alpha, never a cast shadow
308
+
309
+ ---
310
+
311
+ ## 10. Voice & Tone
312
+
313
+ Pet Friends' voice is **warm, playful, and reassuring** — it speaks to owners as fellow "집사" (butlers/servants of their pets) raising "내새꾸" (my babies), turning the transactional act of buying pet food into a caring, community-flavored ritual. The register is upbeat and benefit-first, unafraid of a pun: the search placeholder reads "어떤 상품을 찾고 있개?" — swapping 개 (dog) into "찾고 있어?" for a smile. Copy leads with the deal and the emotional payoff, then backs it with hard numbers (재구매율 89%, 최저가).
314
+
315
+ | Context | Tone |
316
+ |---|---|
317
+ | Section headlines | Upbeat, benefit-first, one emphasized phrase in pink. "집사님을 위한 오늘 특가!" |
318
+ | Product titles | Plain, descriptive, brand + spec. Quiet grey, no hype. |
319
+ | Discount / price | Numeric and confident. Big red "%", "최저가 도전". |
320
+ | Search / empty prompts | Playful, pet-punny. "어떤 상품을 찾고 있개?" |
321
+ | Trust / community copy | Warm, proof-backed. "써봐야 아니까! 심쿵 체험단", "재구매율 89%". |
322
+
323
+ **Voice samples (verbatim from live surfaces):**
324
+ - "반려동물 1등 쇼핑몰, 펫프렌즈" — page title / positioning. *(verified live 2026-07-02)*
325
+ - "내새꾸 친구들에게 재구매율 89%를 보이는 영양/기능" — merchandising headline (proof-backed care). *(verified live 2026-07-02)*
326
+ - "육아비는 펫프랑 나눠요\n집사님을 위한 오늘 특가!" — section headline (community + deal). *(verified live 2026-07-02)*
327
+ - "어떤 상품을 찾고 있개?" — search placeholder (pet pun). *(verified live 2026-07-02)*
328
+
329
+ **Forbidden register**: cold marketplace/logistics jargon, guilt-based pet-parent pressure, undefined promotional fine print, hype that isn't backed by a concrete number.
330
+
331
+ ## 11. Brand Narrative
332
+
333
+ Pet Friends (펫프렌즈) launched in **2015** and grew into Korea's leading pet-commerce platform, positioning itself plainly on every surface as the "반려동물 1등 쇼핑몰" (No.1 pet shopping mall). Its founding premise addressed a specific Korean pain point: pet owners buying food and supplies across fragmented offline shops and generic marketplaces, with little curation and slow delivery. Pet Friends reframed the category around fast (same-day / dawn) delivery of pet essentials, data-driven product curation, and a community of owners who trust each other's reviews.
334
+
335
+ The product's identity is built around the emotional relationship between owner and pet — the recurring "집사님" (butler) and "내새꾸" (my baby) language treats customers as devoted caregivers rather than shoppers. Merchandising leans on social proof ("재구매율 89%", "심쿵 체험단" trial squads) and price confidence ("최저가 도전"), reflecting a business that competes on trust, speed, and value at once.
336
+
337
+ What Pet Friends refuses, visible in its design: the cold, shadow-heavy chrome of a generic logistics marketplace, and the guilt-driven marketing sometimes used in the pet category. What it embraces: a bright, near-flat mobile-first interface; a single affectionate pink; playful, punny copy; and a relentless, number-backed focus on the deal — all in service of making caring for a pet feel joyful and effortless.
338
+
339
+ ## 12. Principles
340
+
341
+ 1. **Pink means love and action.** The vivid pink (`#ff4081`) is both the brand's warmth and its call-to-action. *UI implication:* reserve pink for emphasis words and the primary action so affection and "do this" read as the same gesture.
342
+ 2. **Owner as devoted caregiver.** Customers are 집사 raising 내새꾸, not buyers. *UI implication:* copy and empty states speak with warmth and play (the 개 pun), never cold transaction language.
343
+ 3. **Prove the promise.** Trust is earned with numbers — 재구매율 89%, 최저가, 체험단. *UI implication:* pair every persuasive headline with a concrete figure in red or bold.
344
+ 4. **Flat and fast.** A mobile-native commerce app should feel bright and quick. *UI implication:* no shadows; separate with tint and `#e9ebec` hairlines; keep cards clean and rounded.
345
+ 5. **Friendly geometry.** Rounded chips, pills, and cards make a data-dense store feel approachable. *UI implication:* use 36px chips, 16px cards, and circular frames; avoid sharp corners.
346
+
347
+ ## 13. Personas
348
+
349
+ *Personas below are fictional archetypes informed by publicly observable Pet Friends user segments (Korean dog and cat owners buying food and supplies online), not individual people.*
350
+
351
+ **김서연, 32, 서울.** A first-time puppy owner who orders food, treats, and pads weekly. Values same-day delivery and the "심쿵 체험단" trials that let her test products before committing. Chose Pet Friends because the app feels warm and the reviews feel honest, not like a faceless marketplace.
352
+
353
+ **이준호, 41, 경기.** A two-cat household manager who buys in bulk and chases "최저가 도전" deals. Scans the red discount percentages first, then the product title. Appreciates that the price signal is unmistakable without hunting through fine print.
354
+
355
+ **박민지, 27, 부산.** A dog owner active in the community and 체험단 program. Loves the playful copy ("찾고 있개?") and the sense that Pet Friends is run by fellow 집사. Trusts the "재구매율 89%" style proof more than star ratings.
356
+
357
+ ## 14. States
358
+
359
+ | State | Treatment |
360
+ |---|---|
361
+ | **Empty (search, no results)** | White canvas. Charcoal (`#2d3035`) line explaining no matching products, with a pink (`#ff4081`) suggestion to browse categories. Playful, never a dead end. |
362
+ | **Empty (cart)** | Charcoal single line plus a pink CTA back to shopping. Warm, low-pressure tone. |
363
+ | **Loading (product grid)** | Skeleton cards on `#f8f8f8` at final 16px-radius dimensions. Flat pulse, no shadow shimmer — consistent with the shadowless system. |
364
+ | **Loading (search)** | Inline spinner in the 52px field; previous results stay visible where possible. |
365
+ | **Error (fetch failed)** | Inline message in charcoal with a plain-language explanation and a retry. No bare "오류가 발생했습니다". |
366
+ | **Error (form validation)** | Field-level message below the input in a warm tone; describes what's valid, not just "필수". |
367
+ | **Success (added to cart)** | Brief confirmation in the pink brand tone; quick path to cart. No guilt, no clutter. |
368
+ | **Skeleton** | `#f8f8f8` blocks at final dimensions, 16px radius, flat pulse. |
369
+ | **Disabled** | Muted grey (`#9ca1aa`) text on reduced-opacity surface; pink actions fade rather than turn grey to preserve brand read. |
370
+
371
+ ## 15. Motion & Easing
372
+
373
+ **Durations**:
374
+
375
+ | Token | Value | Use |
376
+ |---|---|---|
377
+ | `motion-fast` | 120ms | Chip / pill press, hover, focus |
378
+ | `motion-standard` | 220ms | Card & sheet reveal, carousel slide, dropdown |
379
+ | `motion-slow` | 320ms | Page-level transitions, promotional reveals |
380
+
381
+ **Easings**:
382
+
383
+ | Token | Curve | Use |
384
+ |---|---|---|
385
+ | `ease-enter` | `cubic-bezier(0.2, 0.6, 0.25, 1)` | Arriving — sheets, cards, carousels |
386
+ | `ease-exit` | `cubic-bezier(0.4, 0.0, 1, 1)` | Dismissals |
387
+ | `ease-standard` | `cubic-bezier(0.25, 0.1, 0.25, 1)` | Two-way transitions |
388
+
389
+ **Motion rules**: Motion is friendly but quick — consistent with the bright, fast commerce feel. Pill chips respond to press with a subtle scale/opacity shift; product carousels slide at `motion-standard / ease-enter`; add-to-cart confirmations pop briefly in the pink tone. No heavy bounce that would slow browsing. Under `prefers-reduced-motion: reduce`, all transitions collapse to instant and the store remains fully functional.
390
+
391
+ <!--
392
+ OmD v0.1 Sources — Philosophy Layer (sections 10–15)
393
+
394
+ Tier 1 live inspect (2026-07-02) via playwright getComputedStyle on Pet Friends
395
+ mobile commerce surfaces (www.pet-friends.co.kr redirects to m.pet-friends.co.kr):
396
+ - Homepage (m.pet-friends.co.kr/main/tab/2): body font "Lific, Noto Sans KR";
397
+ section H2 18px/700/-0.2px color rgb(45,48,53) #2d3035 with <b> emphasis 18px/900
398
+ in rgb(255,64,129) #ff4081; product H3 13px/400/lh18px; discount <strong> 16px/700
399
+ color rgb(243,63,70) #f33f46; category chip bg rgb(255,241,245) #fff1f5 radius 36px;
400
+ keyword pill bg rgba(255,170,199,0.5) (#ffaac7) radius 18.5px; search input radius 6px
401
+ border-color rgb(233,235,236) #e9ebec text rgb(45,48,53); product card bg rgb(248,248,248)
402
+ #f8f8f8 radius 16px; overlay counter bg rgba(28,30,33,0.6) #1c1e21 radius 20px.
403
+ - Search surface (m.pet-friends.co.kr/search/result): same chip/pill/input system;
404
+ placeholders "어떤 상품을 찾으시나요?" and "어떤 상품을 찾고 있개?".
405
+ - Product-list surface (m.pet-friends.co.kr/main/product/list/16982): bg-frequency scan
406
+ showed rgb(255,64,129) #ff4081 ×20 (solid pink action fills), rgb(45,48,53) ×20,
407
+ rgb(96,120,228) #6078e4 ×20 (promo accent), rgb(250,250,250) #fafafa ×20; circular
408
+ avatar bg rgb(249,249,249) radius 50%.
409
+
410
+ Token-level claims (§1–9) are sourced from this live inspection; raw samples logged in
411
+ web/references/petfriends/.verification.md.
412
+
413
+ Voice samples (§10) are verbatim from live surfaces (page title, merchandising headlines,
414
+ search placeholder).
415
+
416
+ Brand narrative (§11): Pet Friends (펫프렌즈) is a Korean pet e-commerce platform that
417
+ launched in 2015 and positions itself as the "반려동물 1등 쇼핑몰" (verified live on the
418
+ homepage/title). Broader founding/company details beyond the on-site positioning are
419
+ general public knowledge and were not independently re-verified from a first-party Pet
420
+ Friends statement in this turn.
421
+
422
+ Personas (§13) are fictional archetypes informed by publicly observable Pet Friends user
423
+ segments (Korean dog/cat owners). Names are illustrative; they do not refer to real people.
424
+
425
+ Interpretive claims (e.g., "pink means love and action", "flat and fast as a rejection of
426
+ cold marketplace chrome") are editorial readings connecting the observed design to the
427
+ brand's positioning, not directly sourced Pet Friends statements.
428
+ -->