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
@@ -8,56 +8,140 @@ primary_color: "#e60023"
8
8
  logo:
9
9
  type: simpleicons
10
10
  slug: pinterest
11
- verified: "2026-05-15"
11
+ verified: "2026-07-13"
12
12
  omd: "0.1"
13
13
  ds:
14
14
  name: Gestalt
15
15
  url: "https://gestalt.pinterest.systems"
16
16
  type: system
17
- description: Pinterest's open-source React component library with tokens and foundations.
17
+ description: Pinterest's public design system for product teams.
18
+ verification_v2:
19
+ schema: 2
20
+ checked: "2026-07-13"
21
+ surfaces:
22
+ - { id: home, kind: consumer-product, url: "https://kr.pinterest.com/", inspected: "2026-07-13" }
23
+ - { id: surface-2, kind: consumer-auth, url: "https://kr.pinterest.com/", inspected: "2026-07-13" }
24
+ - { id: surface-3, kind: business-marketing, url: "https://business.pinterest.com/ko/", inspected: "2026-07-13" }
25
+ sources:
26
+ - { id: consumer-capture, kind: product-surface, url: "https://kr.pinterest.com/", captured: "2026-07-13" }
27
+ - { id: business-capture, kind: product-surface, url: "https://business.pinterest.com/ko/", captured: "2026-07-13" }
28
+ - { id: gestalt-context, kind: official-doc, url: "https://gestalt.pinterest.systems/", captured: "2026-07-13" }
29
+ - { id: brand-guidelines, kind: brand-asset, url: "https://business.pinterest.com/en-in/brand-guidelines/", captured: "2026-07-13" }
30
+ - { id: consumer-font-assets, kind: brand-asset, url: "https://s.pinimg.com/font/Pin-Sans-Regular.ttf", captured: "2026-07-13" }
31
+ - { id: business-font-assets, kind: brand-asset, url: "https://s.pinimg.com/font/Pinterest-Sans-Pro-Regular.otf", captured: "2026-07-13" }
32
+ conflicts: []
33
+ claims:
34
+ "tokens.colors.primary": &consumer { surface_id: home, source_id: consumer-capture, method: computed-style, captured: "2026-07-13" }
35
+ "tokens.colors.consumer-ink": *consumer
36
+ "tokens.colors.muted": *consumer
37
+ "tokens.colors.secondary-surface": *consumer
38
+ "tokens.colors.control-border": *consumer
39
+ "tokens.colors.canvas": *consumer
40
+ "tokens.colors.business-ink": &business { surface_id: surface-3, source_id: business-capture, method: computed-style, captured: "2026-07-13" }
41
+ "tokens.colors.business-action": *business
42
+ "tokens.colors.on-action": *business
43
+ "tokens.typography.family.ui": *consumer
44
+ "tokens.typography.family.business-marketing": *business
45
+ "tokens.typography.consumer-ui.size": *consumer
46
+ "tokens.typography.consumer-ui.weight": *consumer
47
+ "tokens.typography.consumer-ui.use": *consumer
48
+ "tokens.typography.consumer-form.size": *consumer
49
+ "tokens.typography.consumer-form.weight": *consumer
50
+ "tokens.typography.consumer-form.lineHeight": *consumer
51
+ "tokens.typography.consumer-form.use": *consumer
52
+ "tokens.typography.business-body.size": *business
53
+ "tokens.typography.business-body.weight": *business
54
+ "tokens.typography.business-body.use": *business
55
+ "tokens.typography.business-tab.size": *business
56
+ "tokens.typography.business-tab.weight": *business
57
+ "tokens.typography.business-tab.use": *business
58
+ "tokens.spacing.xs": *consumer
59
+ "tokens.spacing.sm": *consumer
60
+ "tokens.spacing.md": *consumer
61
+ "tokens.spacing.lg": *business
62
+ "tokens.rounded.consumer-control": *consumer
63
+ "tokens.rounded.business-tab": *business
64
+ "tokens.rounded.business-action": *business
65
+ "tokens.shadow.none": *consumer
66
+ "tokens.components.consumer-primary-action.type": *consumer
67
+ "tokens.components.consumer-primary-action.bg": *consumer
68
+ "tokens.components.consumer-primary-action.fg": *consumer
69
+ "tokens.components.consumer-primary-action.border": *consumer
70
+ "tokens.components.consumer-primary-action.radius": *consumer
71
+ "tokens.components.consumer-primary-action.padding": *consumer
72
+ "tokens.components.consumer-primary-action.font": *consumer
73
+ "tokens.components.consumer-primary-action.states": *consumer
74
+ "tokens.components.consumer-primary-action.use": *consumer
75
+ "tokens.components.consumer-secondary-action.type": *consumer
76
+ "tokens.components.consumer-secondary-action.bg": *consumer
77
+ "tokens.components.consumer-secondary-action.fg": *consumer
78
+ "tokens.components.consumer-secondary-action.border": *consumer
79
+ "tokens.components.consumer-secondary-action.radius": *consumer
80
+ "tokens.components.consumer-secondary-action.padding": *consumer
81
+ "tokens.components.consumer-secondary-action.font": *consumer
82
+ "tokens.components.consumer-secondary-action.states": *consumer
83
+ "tokens.components.consumer-secondary-action.use": *consumer
84
+ "tokens.components.consumer-form-input.type": *consumer
85
+ "tokens.components.consumer-form-input.fg": *consumer
86
+ "tokens.components.consumer-form-input.border": *consumer
87
+ "tokens.components.consumer-form-input.radius": *consumer
88
+ "tokens.components.consumer-form-input.padding": *consumer
89
+ "tokens.components.consumer-form-input.font": *consumer
90
+ "tokens.components.consumer-form-input.states": *consumer
91
+ "tokens.components.consumer-form-input.use": *consumer
92
+ "tokens.components.business-action.type": *business
93
+ "tokens.components.business-action.bg": *business
94
+ "tokens.components.business-action.fg": *business
95
+ "tokens.components.business-action.radius": *business
96
+ "tokens.components.business-action.padding": *business
97
+ "tokens.components.business-action.font": *business
98
+ "tokens.components.business-action.states": *business
99
+ "tokens.components.business-action.use": *business
100
+ "tokens.components.business-outline-action.type": *business
101
+ "tokens.components.business-outline-action.bg": *business
102
+ "tokens.components.business-outline-action.fg": *business
103
+ "tokens.components.business-outline-action.radius": *business
104
+ "tokens.components.business-outline-action.padding": *business
105
+ "tokens.components.business-outline-action.font": *business
106
+ "tokens.components.business-outline-action.states": *business
107
+ "tokens.components.business-outline-action.use": *business
108
+ "tokens.components.business-tab.type": *business
109
+ "tokens.components.business-tab.fg": *business
110
+ "tokens.components.business-tab.radius": *business
111
+ "tokens.components.business-tab.padding": *business
112
+ "tokens.components.business-tab.font": *business
113
+ "tokens.components.business-tab.states": *business
114
+ "tokens.components.business-tab.use": *business
18
115
  tokens:
19
- source: prose-derived
20
- extracted: "2026-06-09"
116
+ source: reconciled
117
+ extracted: "2026-07-13"
118
+ note: "Consumer product/auth and Pinterest Business marketing are separate source domains; no route-local value is generalized across them."
21
119
  colors:
22
120
  primary: "#e60023"
23
- green: "#103c25"
24
- green-hover: "#0b2819"
25
- heading: "#211922"
26
- ink: "#000000"
121
+ consumer-ink: "#211922"
27
122
  muted: "#62625b"
28
- disabled-text: "#91918c"
29
- focus: "#435ee5"
30
- link: "#2b48d4"
31
- pressed-blue: "#617bff"
32
- perf-purple: "#6845ab"
33
- rec-purple: "#7e238b"
34
- facebook: "#0866ff"
35
- sand: "#e5e5e0"
36
- warm-light: "#e0e0d9"
37
- border-disabled: "#c8c8c1"
38
- hover-gray: "#bcbcb3"
39
- dark-surface: "#33332e"
40
- error: "#9e0a0a"
41
- on-primary: "#ffffff"
123
+ secondary-surface: "#e5e5e0"
124
+ control-border: "#91918c"
125
+ canvas: "#ffffff"
126
+ business-ink: "#111111"
127
+ business-action: "#111111"
128
+ on-action: "#ffffff"
42
129
  typography:
43
- family: { sans: "Pin Sans" }
44
- display-hero: { size: 70, weight: 600, use: "Maximum-impact hero" }
45
- section-heading: { size: 28, weight: 700, tracking: -1.2, use: "Section titles, negative tracking" }
46
- body: { size: 16, weight: 400, lineHeight: 1.40, use: "Standard reading" }
47
- caption-bold: { size: 14, weight: 700, use: "Strong metadata" }
48
- caption: { size: 12, weight: 400, lineHeight: 1.50, use: "Small text, tags" }
49
- button: { size: 12, weight: 400, use: "Button labels" }
50
- spacing: { xs: 4, sm: 8, md: 12, base: 16, lg: 24, xl: 32, xxl: 48, section: 64 }
51
- rounded: { sm: 8, md: 16, lg: 20, full: 9999 }
52
- shadow:
53
- none: "none"
130
+ family: { ui: "Pin Sans", business-marketing: "PinterestSansPro" }
131
+ consumer-ui: { size: 12, weight: 400, use: "Repeated consumer product/auth control sample" }
132
+ consumer-form: { size: 16, weight: 400, lineHeight: 1.50, use: "Consumer auth form input" }
133
+ business-body: { size: 16, weight: 400, use: "Business-marketing actions and body samples" }
134
+ business-tab: { size: 15, weight: 700, use: "Business-marketing tab" }
135
+ spacing: { xs: 4, sm: 8, md: 12, lg: 20 }
136
+ rounded: { consumer-control: 16, business-tab: 12, business-action: 30 }
137
+ shadow: { none: "none" }
54
138
  components:
55
- button-primary: { type: button, bg: "#e60023", fg: "#000000", radius: 16, padding: "6px 14px", use: "Primary CTA black text on red" }
56
- button-secondary: { type: button, bg: "#e5e5e0", fg: "#000000", radius: 16, padding: "6px 14px", use: "Secondary action, warm sand gray" }
57
- button-circular: { type: button, bg: "#e0e0d9", fg: "#211922", radius: 9999, use: "Pin actions, navigation controls" }
58
- button-ghost: { type: button, fg: "#000000", radius: 16, use: "Tertiary action, transparent" }
59
- input: { type: input, bg: "#ffffff", fg: "#211922", radius: 16, padding: "11px 15px", use: "Email input, 1px #91918c border" }
60
- card: { type: card, bg: "#ffffff", radius: 16, use: "Photography-first pin card, no shadow" }
139
+ consumer-primary-action: { type: button, bg: "#e60023", fg: "#000000", border: "2px solid transparent", radius: "16px", padding: "6px 14px", font: "12px / 400 Pin Sans", states: "Default baseline captured; no changed interaction style promoted.", use: "Consumer header action; home::[data-omd-capture=7]" }
140
+ consumer-secondary-action: { type: button, bg: "#e5e5e0", fg: "#000000", border: "2px solid transparent", radius: "16px", padding: "6px 14px", font: "12px / 400 Pin Sans", states: "Default baseline captured; no changed interaction style promoted.", use: "Consumer header secondary action; home::[data-omd-capture=8]" }
141
+ consumer-form-input: { type: input, fg: "#000000", border: "1px solid #91918c", radius: "16px", padding: "11px 15px", font: "16px / 400 Pin Sans", states: "Default baseline captured; no changed focus or error style promoted.", use: "Consumer auth input; home::[data-omd-capture=19]" }
142
+ business-action: { type: button, bg: "#111111", fg: "#ffffff", radius: "30px", padding: "0px 20px", font: "16px / 400 PinterestSansPro", states: "Default baseline captured; no changed interaction style promoted.", use: "Business-marketing action; surface-3::[data-omd-capture=9]" }
143
+ business-outline-action: { type: button, bg: "#ffffff", fg: "#111111", radius: "30px", padding: "0px 20px", font: "16px / 400 PinterestSansPro", states: "Default baseline captured; no changed interaction style promoted.", use: "Business-marketing outline action; surface-3::[data-omd-capture=10]" }
144
+ business-tab: { type: tab, fg: "#111111", radius: "12px", padding: "14px 16px", font: "15px / 700 PinterestSansPro", states: "selected observed: #ffffff text; interaction capture records tab-selected", use: "Business-marketing tab; surface-3::[data-omd-capture=16]" }
61
145
  components_harvested: true
62
146
  ---
63
147
 
@@ -65,302 +149,168 @@ tokens:
65
149
 
66
150
  ## 1. Visual Theme & Atmosphere
67
151
 
68
- Pinterest's website is a warm, inspiration-driven canvas that treats visual discovery like a lifestyle magazine. The design operates on a soft, slightly warm white background with Pinterest Red (`#e60023`) as the singular, bold brand accent. Unlike the cool blues of most tech platforms, Pinterest's neutral scale has a distinctly warm undertone grays lean toward olive/sand (`#91918c`, `#62625b`, `#e5e5e0`) rather than cool steel, creating a cozy, craft-like atmosphere that invites browsing.
69
-
70
- The typography uses Pin Sans a custom proprietary font with a broad fallback stack including Japanese fonts, reflecting Pinterest's global reach. At display scale (70px, weight 600), Pin Sans creates large, inviting headlines. At smaller sizes, the system is compact: buttons at 12px, captions at 12–14px. The CSS variable naming system (`--comp-*`, `--sema-*`, `--base-*`) reveals a sophisticated three-tier design token architecture: component-level, semantic-level, and base-level tokens.
71
-
72
- What distinguishes Pinterest is its generous border-radius system (12px–40px, plus 50% for circles) and warm-tinted button backgrounds. The secondary button (`#e5e5e0`) has a distinctly warm, sand-like tone rather than cold gray. The primary red button uses 16px radius — rounded but not pill-shaped. Combined with warm badge backgrounds (`hsla(60,20%,98%,.5)` — a subtle yellow-warm wash) and photography-dominant layouts, the result is a design that feels handcrafted and personal, not corporate and sterile.
73
-
74
- **Key Characteristics:**
75
- - Warm white canvas with olive/sand-toned neutrals cozy, not clinical
76
- - Pinterest Red (`#e60023`) as singular bold accent never subtle, always confident
77
- - Pin Sans custom font with global fallback stack (including CJK)
78
- - Three-tier token architecture: `--comp-*` / `--sema-*` / `--base-*`
79
- - Warm secondary surfaces: sand gray (`#e5e5e0`), warm badge (`hsla(60,20%,98%,.5)`)
80
- - Generous border-radius: 16px standard, up to 40px for large containers
81
- - Photography-first content — pins/images are the primary visual element
82
- - Dark near-purple text (`#211922`)warm, with a hint of plum
83
-
84
- ## 2. Color Palette & Roles
85
-
86
- ### Primary Brand
87
- - **Pinterest Red** (`#e60023`): Primary CTA, brand accent bold, confident red
88
- - **Green 700** (`#103c25`): `--base-color-green-700`, success/nature accent
89
- - **Green 700 Hover** (`#0b2819`): `--base-color-hover-green-700`, pressed green
90
-
91
- ### Text
92
- - **Plum Black** (`#211922`): Primary text warm near-black with plum undertone
93
- - **Black** (`#000000`): Secondary text, button text
94
- - **Olive Gray** (`#62625b`): Secondary descriptions, muted text
95
- - **Warm Silver** (`#91918c`): `--comp-button-color-text-transparent-disabled`, disabled text, input borders
96
- - **White** (`#ffffff`): Text on dark/colored surfaces
97
-
98
- ### Interactive
99
- - **Focus Blue** (`#435ee5`): `--comp-button-color-border-focus-outer-transparent`, focus rings
100
- - **Performance Purple** (`#6845ab`): `--sema-color-hover-icon-performance-plus`, performance features
101
- - **Recommendation Purple** (`#7e238b`): `--sema-color-hover-text-recommendation`, AI recommendation
102
- - **Link Blue** (`#2b48d4`): Link text color
103
- - **Facebook Blue** (`#0866ff`): `--facebook-background-color`, social login
104
- - **Pressed Blue** (`#617bff`): `--base-color-pressed-blue-200`, pressed state
105
-
106
- ### Surface & Border
107
- - **Sand Gray** (`#e5e5e0`): Secondary button background — warm, craft-like
108
- - **Warm Light** (`#e0e0d9`): Circular button backgrounds, badges
109
- - **Warm Wash** (`hsla(60, 20%, 98%, 0.5)`): `--comp-badge-color-background-wash-light`, subtle warm badge bg
110
- - **Fog** (`#f6f6f3`): Light surface (at 50% opacity)
111
- - **Border Disabled** (`#c8c8c1`): `--sema-color-border-disabled`, disabled borders
112
- - **Hover Gray** (`#bcbcb3`): `--base-color-hover-grayscale-150`, hover border
113
- - **Dark Surface** (`#33332e`): Dark section backgrounds
114
-
115
- ### Semantic
116
- - **Error Red** (`#9e0a0a`): Checkbox/form error states
117
-
118
- ## 3. Typography Rules
119
-
120
- ### Font Family
121
- - **Primary**: `Pin Sans`, fallbacks: `-apple-system, system-ui, Segoe UI, Roboto, Oxygen-Sans, Apple Color Emoji, Segoe UI Emoji, Segoe UI Symbol, Ubuntu, Cantarell, Fira Sans, Droid Sans, Helvetica Neue, Helvetica, ヒラギノ角ゴ Pro W3, メイリオ, Meiryo, MS Pゴシック, Arial`
122
-
123
- ### Hierarchy
124
-
125
- | Role | Font | Size | Weight | Line Height | Letter Spacing | Notes |
126
- |------|------|------|--------|-------------|----------------|-------|
127
- | Display Hero | Pin Sans | 70px (4.38rem) | 600 | normal | normal | Maximum impact |
128
- | Section Heading | Pin Sans | 28px (1.75rem) | 700 | normal | -1.2px | Negative tracking |
129
- | Body | Pin Sans | 16px (1.00rem) | 400 | 1.40 | normal | Standard reading |
130
- | Caption Bold | Pin Sans | 14px (0.88rem) | 700 | normal | normal | Strong metadata |
131
- | Caption | Pin Sans | 12px (0.75rem) | 400–500 | 1.50 | normal | Small text, tags |
132
- | Button | Pin Sans | 12px (0.75rem) | 400 | normal | normal | Button labels |
133
-
134
- ### Principles
135
- - **Compact type scale**: The range is 12px–70px with a dramatic jump — most functional text is 12–16px, creating a dense, app-like information hierarchy.
136
- - **Warm weight distribution**: 600–700 for headings, 400–500 for body. No ultra-light weights — the type always feels substantial.
137
- - **Negative tracking on headings**: -1.2px on 28px headings creates cozy, intimate section titles.
138
- - **Single font family**: Pin Sans handles everything — no secondary display or monospace font detected.
139
-
140
- ## 4. Component Stylings
141
-
142
- ### Buttons
143
-
144
- **Primary Red**
145
- - Background: `#e60023` (Pinterest Red)
146
- - Text: `#000000` (black — unusual choice for contrast on red)
147
- - Padding: 6px 14px
148
- - Radius: 16px (generously rounded, not pill)
149
- - Border: `2px solid rgba(255, 255, 255, 0)` (transparent)
150
- - Focus: semantic border + outline via CSS variables
151
-
152
- **Secondary Sand**
153
- - Background: `#e5e5e0` (warm sand gray)
152
+ Pinterest is a visual discovery platform for searching, saving, and shopping ideas. Its public Gestalt design-system introduction frames the product as helping people create a life they love; the public business explanation describes Pins as the image, video, and link-bearing units that connect browsing to action. The supplied consumer capture expresses that role with an image-led, low-chrome surface: a warm plum ink, quiet olive-gray supporting text, a single red action, and compact rounded account controls. Official brand guidance similarly fixes the recognizable mark as a white script P in a red circle.
153
+
154
+ The observed public ecosystem is deliberately not one uniform UI. The signed-out consumer/auth route uses loaded `Pin Sans`, warm `#211922` ink, `#E60023` consumer action, and `#E5E5E0` secondary surface. Pinterest Business is a separate marketing surface with loaded `PinterestSansPro`, `#111111` actions, larger 30px pills, and a selected-tab treatment. These route-local facts are documented side by side without treating business lead-generation chrome as consumer-product UI.
155
+
156
+ ## 2. Layout & Grid
157
+
158
+ - The supplied consumer capture is a public signed-out/product-auth route at 1440×900; it contains a 48px search control and 48px account actions.
159
+ - Pinterest Business is a public marketing route at 1440×900; its 60px action examples and 47px tabs are retained only for that surface.
160
+ - Pinterest’s official business guidance describes Pins as visual content and recommends vertical 2:3 advertising canvases, but the supplied capture does not establish a reusable consumer masonry-column count, card ratio, breakpoint, or responsive grid contract.
161
+
162
+ ## 3. Color & Typography
163
+
164
+ ### Color tokens
165
+
166
+ - `#E60023` — consumer primary action background on `home` and `surface-2`.
167
+ - `#211922` — consumer ink on the signed-out/product-auth surfaces.
168
+ - `#62625B` consumer muted-text sample.
169
+ - `#E5E5E0` — consumer secondary-action background.
170
+ - `#91918C` — consumer auth-input border.
171
+ - `#FFFFFF` observed consumer canvas/action text and business outline surface.
172
+ - `#111111` — Pinterest Business marketing ink and filled-action background; it is not promoted as a consumer-product substitute.
173
+
174
+ ### Typography evidence classes
175
+
176
+ - **Live consumer computed use:** `Pin Sans` is loaded/high confidence with 118 visible uses across body, heading, input, button, text, and toggle roles. The collector matches computed family use to eight Pinterest-hosted `s.pinimg.com/font/Pin-Sans-*` files. It is the consumer UI family token.
177
+ - **Live business-marketing computed use:** `PinterestSansPro` is loaded/high confidence with 199 visible uses across body, buttons, headings, list items, tabs, and text. The collector matches it to four Pinterest-hosted `Pinterest-Sans-Pro-*` files. It remains a business-marketing family token rather than a consumer-family replacement.
178
+ - **Declared-only assets:** `HaasGrotDisp`, `HaasGrotText`, `PinterestSans`, `PinterestSansLC`, `PinterestSansTPJ`, and `PinterestUI` have captured `@font-face` sources but zero visible use. They remain declared-only; no specimen or UI token is inferred.
179
+ - **Unresolved embedded face:** one Google Sign-In control reports `Google Sans` with no matching loaded FontFace or Pinterest source. It is third-party chrome and is not a Pinterest token.
180
+ - **Licence boundary:** the official search found Pinterest-hosted font files but no first-party public licence granting downstream reuse of Pin Sans or PinterestSansPro. The family names and observed metadata are recorded; the files are not reusable project assets.
181
+
182
+ ## 4. Components
183
+
184
+ ### Consumer primary action
185
+
186
+ **Default**
187
+ - Background: `#E60023`
154
188
  - Text: `#000000`
155
- - Padding: 6px 14px
156
- - Radius: 16px
157
- - Focus: same semantic border system
158
-
159
- **Circular Action**
160
- - Background: `#e0e0d9` (warm light)
161
- - Text: `#211922` (plum black)
162
- - Radius: 50% (circle)
163
- - Use: Pin actions, navigation controls
164
-
165
- **Ghost / Transparent**
166
- - Background: transparent
189
+ - Border: `2px solid transparent`
190
+ - Radius: `16px`
191
+ - Padding: `6px 14px`
192
+ - Font: `12px / 400 Pin Sans`
193
+ - Use: Consumer header action; `home::[data-omd-capture="7"]`, also repeated on `surface-2`.
194
+
195
+ ### Consumer secondary action
196
+
197
+ **Default**
198
+ - Background: `#E5E5E0`
199
+ - Text: `#000000`
200
+ - Border: `2px solid transparent`
201
+ - Radius: `16px`
202
+ - Padding: `6px 14px`
203
+ - Font: `12px / 400 Pin Sans`
204
+ - Use: Consumer header secondary action; `home::[data-omd-capture="8"]`, also repeated on `surface-2`.
205
+
206
+ ### Consumer auth input
207
+
208
+ **Default**
167
209
  - Text: `#000000`
168
- - No border
169
- - Use: Tertiary actions
170
-
171
- ### Cards & Containers
172
- - Photography-first pin cards with generous radius (12px–20px)
173
- - No traditional box-shadow on most cards
174
- - White or warm fog backgrounds
175
- - 8px white thick border on some image containers
176
-
177
- ### Inputs
178
- - Email input: white background, `1px solid #91918c` border, 16px radius, 11px 15px padding
179
- - Focus: semantic border + outline system via CSS variables
180
-
181
- ### Navigation
182
- - Clean header on white or warm background
183
- - Pinterest logo + search bar centered
184
- - Pin Sans 16px for nav links
185
- - Pinterest Red accents for active states
186
-
187
- ### Image Treatment
188
- - Pin-style masonry grid (signature Pinterest layout)
189
- - Rounded corners: 12px–20px on images
190
- - Photography as primary content — every pin is an image
191
- - Thick white borders (8px) on featured image containers
192
-
193
- ## 5. Layout Principles
194
-
195
- ### Spacing System
196
- - Base unit: 8px
197
- - Scale: 4px, 6px, 7px, 8px, 10px, 11px, 12px, 16px, 18px, 20px, 22px, 24px, 32px, 80px, 100px
198
- - Large jumps: 32px → 80px → 100px for section spacing
199
-
200
- ### Grid & Container
201
- - Masonry grid for pin content (signature layout)
202
- - Centered content sections with generous max-width
203
- - Full-width dark footer
204
- - Search bar as primary navigation element
205
-
206
- ### Whitespace Philosophy
207
- - **Inspiration density**: The masonry grid packs pins tightly — the content density IS the value proposition. Whitespace exists between sections, not within the grid.
208
- - **Breathing above, density below**: Hero/feature sections get generous padding; the pin grid is compact and immersive.
209
-
210
- ### Border Radius Scale
211
- - Standard (12px): Small cards, links
212
- - Button (16px): Buttons, inputs, medium cards
213
- - Comfortable (20px): Feature cards
214
- - Large (28px): Large containers
215
- - Section (32px): Tab elements, large panels
216
- - Hero (40px): Hero containers, large feature blocks
217
- - Circle (50%): Action buttons, tab indicators
218
-
219
- ## 6. Depth & Elevation
220
-
221
- | Level | Treatment | Use |
222
- |-------|-----------|-----|
223
- | Flat (Level 0) | No shadow | Default — pins rely on content, not shadow |
224
- | Subtle (Level 1) | Minimal shadow (from tokens) | Elevated overlays, dropdowns |
225
- | Focus (Accessibility) | `--sema-color-border-focus-outer-default` ring | Focus states |
226
-
227
- **Shadow Philosophy**: Pinterest uses minimal shadows. The masonry grid relies on content (photography) to create visual interest rather than elevation effects. Depth comes from the warmth of surface colors and the generous rounding of containers.
228
-
229
- ## 7. Do's and Don'ts
210
+ - Border: `1px solid #91918C`
211
+ - Radius: `16px`
212
+ - Padding: `11px 15px`
213
+ - Font: `16px / 400 Pin Sans`
214
+ - Use: Consumer auth input; `home::[data-omd-capture="19"]`, also repeated on `surface-2`.
215
+
216
+ ### Business marketing action
217
+
218
+ **Default**
219
+ - Background: `#111111`
220
+ - Text: `#FFFFFF`
221
+ - Radius: `30px`
222
+ - Padding: `0px 20px`
223
+ - Font: `16px / 400 PinterestSansPro`
224
+ - Use: Pinterest Business marketing action; `surface-3::[data-omd-capture="9"]`.
225
+
226
+ ### Business marketing outline action
227
+
228
+ **Default**
229
+ - Background: `#FFFFFF`
230
+ - Text: `#111111`
231
+ - Radius: `30px`
232
+ - Padding: `0px 20px`
233
+ - Font: `16px / 400 PinterestSansPro`
234
+ - Use: Pinterest Business marketing outline action; `surface-3::[data-omd-capture="10"]`.
235
+
236
+ ### Business marketing tab
237
+
238
+ **Default**
239
+ - Text: `#111111`
240
+ - Radius: `12px`
241
+ - Padding: `14px 16px`
242
+ - Font: `15px / 700 PinterestSansPro`
243
+ - Selected: White text observed at `surface-3::[data-omd-capture="15"]`; tab selection is recorded by two `interactions[]` entries.
244
+ - Use: Pinterest Business marketing tab; unselected representative `surface-3::[data-omd-capture="16"]`.
245
+
246
+ No hover, focus, pressed, disabled, menu, dialog, validation, or responsive component variant is claimed beyond that tab-selection interaction provenance.
247
+
248
+ ---
249
+
250
+ **Verified:** 2026-07-13
251
+ **Tier 1 sources:** `https://kr.pinterest.com/` (consumer product/auth capture), `https://business.pinterest.com/ko/` (business marketing capture), `https://gestalt.pinterest.systems/` (official product design-system context), `https://business.pinterest.com/en-in/brand-guidelines/` (official brand guidance), and Pinterest-hosted loaded font sources under `https://s.pinimg.com/font/`
252
+ **Tier 2 sources:** `https://getdesign.md/pinterest` (one broad editorial record; no source-backed token/component data used); `https://styles.refero.design/?q=Pinterest` (attempted through built-in web open; safe-open error, no usable record)
253
+ **Conflicts unresolved:** none
254
+
255
+ Legacy global component, font, responsive, motion, and product-state claims were removed because the supplied 2026-07-13 capture establishes only the selector- and surface-scoped observations above.
256
+
257
+ ## 5. Elevation
258
+
259
+ The retained consumer controls have `box-shadow: none`. Business marketing action samples include a 2px `#111111` outline-like shadow, but the one route-local observation does not establish a shared elevation scale.
260
+
261
+ ## 6. Spacing & Shape
262
+
263
+ Observed spacing values retained as a conservative source-bound set are `4 / 8 / 12 / 20px`. Consumer account and form controls use 16px radii; the business marketing tab is 12px and its large actions are 30px. These are observations of separate domains, not a universal radius prescription.
264
+
265
+ ## 7. Iconography & Imagery
266
+
267
+ Pinterest’s official business guidance describes Pins as visual content that can include images or videos and recommends that creative put visuals first. The supplied captures do not establish a reusable icon set, stroke width, media-card ratio, or image treatment, so those details are omitted.
230
268
 
231
269
  ### Do
232
- - Use warm neutrals (`#e5e5e0`, `#e0e0d9`, `#91918c`) — the warm olive/sand tone is the identity
233
- - Apply Pinterest Red (`#e60023`) only for primary CTAs it's bold and singular
234
- - Use Pin Sans exclusively one font for everything
235
- - Apply generous border-radius: 16px for buttons/inputs, 20px+ for cards
236
- - Keep the masonry grid dense — content density is the value
237
- - Use warm badge backgrounds (`hsla(60,20%,98%,.5)`) for subtle warm washes
238
- - Use `#211922` (plum black) for primary text — it's warmer than pure black
270
+
271
+ - Keep the Pinterest badge in its red circle and pair external uses with an account context or call to action, as the official brand guidelines require.
272
+ - Keep consumer and business-marketing component examples source-scoped.
273
+ - Let visual content carry the discovery story rather than inventing unobserved decorative chrome.
239
274
 
240
275
  ### Don't
241
- - Don't use cool gray neutrals — always warm/olive-toned
242
- - Don't use pure black (`#000000`) as primary text use plum black (`#211922`)
243
- - Don't use pill-shaped buttons 16px radius is rounded but not pill
244
- - Don't add heavy shadows Pinterest is flat by design, depth from content
245
- - Don't use small border-radius (<12px) on cards — the generous rounding is core
246
- - Don't introduce additional brand colors — red + warm neutrals is the complete palette
247
- - Don't use thin font weights — Pin Sans at 400 minimum
276
+
277
+ - Do not recolor, outline, or add effects to the Pinterest badge.
278
+ - Do not represent a Pinterest Business action as an observed consumer-product CTA.
279
+ - Do not substitute a system or third-party font for a named Pinterest family.
248
280
 
249
281
  ## 8. Responsive Behavior
250
282
 
251
- ### Breakpoints
252
- | Name | Width | Key Changes |
253
- |------|-------|-------------|
254
- | Mobile | <576px | Single column, compact layout |
255
- | Mobile Large | 576–768px | 2-column pin grid |
256
- | Tablet | 768–890px | Expanded grid |
257
- | Desktop Small | 890–1312px | Standard masonry grid |
258
- | Desktop | 1312–1440px | Full layout |
259
- | Large Desktop | 1440–1680px | Expanded grid columns |
260
- | Ultra-wide | >1680px | Maximum grid density |
261
-
262
- ### Collapsing Strategy
263
- - Pin grid: 5+ columns → 3 → 2 → 1
264
- - Navigation: search bar + icons → simplified mobile nav
265
- - Feature sections: side-by-side → stacked
266
- - Hero: 70px → scales down proportionally
267
- - Footer: dark multi-column → stacked
283
+ The raw bundle is desktop-only (1440×900). Pinterest’s official business creative guidance recommends a vertical 2:3 canvas for mobile advertising, but it does not prove a consumer-product breakpoint or responsive component behavior. No breakpoint table is inferred.
268
284
 
269
285
  ## 9. Agent Prompt Guide
270
286
 
271
- ### Quick Color Reference
272
- - Brand: Pinterest Red (`#e60023`)
273
- - Background: White (`#ffffff`)
274
- - Text: Plum Black (`#211922`)
275
- - Secondary text: Olive Gray (`#62625b`)
276
- - Button surface: Sand Gray (`#e5e5e0`)
277
- - Border: Warm Silver (`#91918c`)
278
- - Focus: Focus Blue (`#435ee5`)
279
-
280
- ### Example Component Prompts
281
- - "Create a hero: white background. Headline at 70px Pin Sans weight 600, plum black (#211922). Red CTA button (#e60023, 16px radius, 6px 14px padding). Secondary sand button (#e5e5e0, 16px radius)."
282
- - "Design a pin card: white background, 16px radius, no shadow. Photography fills top, 16px Pin Sans weight 400 description below in #62625b."
283
- - "Build a circular action button: #e0e0d9 background, 50% radius, #211922 icon."
284
- - "Create an input field: white background, 1px solid #91918c, 16px radius, 11px 15px padding. Focus: blue outline via semantic tokens."
285
- - "Design the dark footer: #33332e background. Pinterest script logo in white. 12px Pin Sans links in #91918c."
286
-
287
- ### Iteration Guide
288
- 1. Warm neutrals everywhere — olive/sand grays, never cool steel
289
- 2. Pinterest Red for CTAs only — bold and singular
290
- 3. 16px radius on buttons/inputs, 20px+ on cards — generous but not pill
291
- 4. Pin Sans is the only font — compact at 12px for UI, 70px for display
292
- 5. Photography carries the design — the UI stays warm and minimal
293
- 6. Plum black (#211922) for text — warmer than pure black
287
+ Use the requested source domain explicitly. For a consumer signed-out/auth example, use `Pin Sans`, plum `#211922` ink, `#E60023` primary action, and `#E5E5E0` secondary action with the selector-backed 16px control radius. For a Pinterest Business marketing example, use `PinterestSansPro`, charcoal `#111111`, and the observed 30px action radius. Do not blend the two into a claimed single system.
294
288
 
295
289
  ## 10. Voice & Tone
296
290
 
297
- Pinterest's voice is **inspirational-warm and visual-first.** Marketing copy avoids tech jargon speaks to creative life moments (weddings, recipes, home decor, fashion). UI chrome stays minimal because the photography carries the brand. Plum black `#211922` for text slightly warmer than pure black, matching the warm-photography aesthetic.
298
-
299
- | Context | Tone |
300
- |---|---|
301
- | CTA | Inspirational verb. "Get started", "Save", "Pin it" |
302
- | Marketing | Lifestyle moments. "Get inspired" recurring |
303
- | Documentation | Sparse — Pinterest is consumer-product, devs use API docs |
304
- | Error | Quiet. "Couldn't load — try again" |
305
-
306
- **Voice samples**
307
- - Marketing pattern: *"Get inspired"* / *"Find ideas you'll love"* <!-- illustrative: tagline patterns -->
308
-
309
- **Forbidden phrases.** "Revolutionary discovery". Aggressive ad-platform framing in consumer surfaces.
291
+ Pinterests first-party product and business materials consistently frame the service around inspiration becoming action: people search, save, shop, and create a life they love. The approved external-language examples in the brand guidelines include “Follow on Pinterest”, “Find more ideas on Pinterest”, and “Get inspired on Pinterest”; they prohibit “Trending on Pinterest”, “Trending Pins”, and using “Pin” as a verb. This is official communications guidance, not a reconstructed in-product copy library.
310
292
 
311
293
  ## 11. Brand Narrative
312
294
 
313
- Pinterest was founded **2010** in Palo Alto by **Ben Silbermann (CEO, born July 14 1982 in Des Moines, Iowa)**, **Paul Sciarra**, and **Evan Sharp** ([Pinterest — Wikipedia](https://en.wikipedia.org/wiki/Pinterest), [Evan Sharp Wikipedia](https://en.wikipedia.org/wiki/Evan_Sharp)). Pinterest emerged from an earlier Silbermann + Sciarra app called **Tote** (a virtual paper-catalog replacement); Silbermann pivoted into a visual board-collection product. **Development began December 2009**; **closed-beta prototype launched March 2010**. **Paul Sciarra left April 2012**. Visual discovery platform — users save ("pin") images to themed boards. **NYSE IPO April 18 2019** under ticker **PINS**. **June 2022 leadership transition**: Silbermann became **Executive Chairman** and **Bill Ready** (former President of Commerce + Payments at **Google**, ex-COO at **PayPal**) became CEO. The brand has stayed remarkably consistent across the leadership change: warm cream canvas, plum-black text, image-grid as primary chrome, red-pill CTA.
295
+ Pinterest describes itself as a visual discovery platform where people search, save, and shop ideas. Its public Gestalt introduction connects the product system to experiences that inspire people to create a life they love, while its business explanation connects visual browsing to saving, clicking, and buying. Current official campaign coverage continues that position: inspiration is presented as a step toward life away from the screen rather than an end in itself.
296
+
297
+ The red-badge mark provides the most explicit first-party brand expression in the sources checked here. Public brand guidance defines it as a white script P in a red circle and limits black or white versions to constrained-colour contexts. This narrative evidence explains the documented mark and product purpose; it does not authorize additional UI tokens.
314
298
 
315
299
  ## 12. Principles
316
300
 
317
- 1. **Photography is the design.** *UI implication:* chrome stays minimal so pins read.
318
- 2. **Plum black `#211922` over pure black.** *UI implication:* warmer text inherits warmth from photography.
319
- 3. **Red `#e60023` pill is THE CTA.** *UI implication:* primary actions always red pill.
320
- 4. **Masonry grid is the layout.** *UI implication:* preserve variable-height tile grid.
321
- 5. **No corporate polish.** *UI implication:* keep the warm-handmade-collection aesthetic.
301
+ 1. **Visual discovery should lead to action.** *UI implication:* retain image/video-first content context where it is actually supplied; do not replace it with generic dashboard chrome.
302
+ 2. **Inspiration is the product promise.** *UI implication:* make consumer action language practical and supportive, using the first-party guidance rather than invented hype.
303
+ 3. **The badge retains its circle and colour treatment.** *UI implication:* do not recolour, outline, or add effects to the Pinterest mark.
304
+ 4. **Source domains stay distinct.** *UI implication:* business-marketing typography and 30px actions are not defaults for consumer product/auth controls.
322
305
 
323
306
  ## 13. Personas
324
307
 
325
- *Personas are fictional archetypes informed by Pinterest user segments (creative planners, home/recipe enthusiasts, ecommerce sellers), not individual people.*
326
-
327
- **Sofia Park, 31, Seoul.** Wedding planner. Boards organized by season + venue. Treats Pinterest as professional moodboard.
328
-
329
- **Marcus Chen, 38, San Francisco.** Home renovation enthusiast. Multi-board project planning.
330
-
331
- **Yuki Tanaka, 27, Tokyo.** Indie ecommerce seller using Pinterest Ads for product discovery.
308
+ Official sources checked for this update describe broad audiences such as people discovering ideas, shoppers, creators, and businesses, but do not provide verified user-persona definitions suitable for this reference. `[FILL IN: user research or customer-segment source supplied by Pinterest]`
332
309
 
333
310
  ## 14. States
334
311
 
335
- | State | Treatment |
336
- |---|---|
337
- | **Empty (no pins)** | "Save pins to see them here" + recommended pin grid |
338
- | **Empty (search)** | "No results for `<query>`. Try different keywords." |
339
- | **Loading (feed)** | Masonry skeleton with cream-warm rectangles |
340
- | **Loading (image)** | Dominant-color placeholder before image loads |
341
- | **Error (image)** | Plum-black "Couldn't load" with retry icon |
342
- | **Error (board)** | Inline "Refresh" link |
343
- | **Success (saved)** | Red `#e60023` heart fills + toast "Saved to <board>" |
344
- | **Success (followed)** | Subtle confirmation, no celebration |
345
- | **Skeleton (board)** | Image-aspect-ratio placeholders |
346
- | **Disabled (private)** | "This board is private" message |
347
- | **Loading (image upload)** | Per-image progress bar |
312
+ The supplied evidence records two business-marketing tab interactions and selected/unselected text treatments. It does not establish consumer loading, empty, error, success, toast, disabled, modal, or validation state contracts. Those unobserved states are intentionally omitted rather than synthesized.
348
313
 
349
314
  ## 15. Motion & Easing
350
315
 
351
- | Token | Value | Use |
352
- |---|---|---|
353
- | `motion-instant` | 0ms | Pin save |
354
- | `motion-fast` | 200ms | Hover scale on tiles |
355
- | `motion-standard` | 300ms | Modal expand |
356
- | `motion-spring` | variable | Pin save heart fill |
357
-
358
- **Pin save** has signature spring scale + heart fill. `prefers-reduced-motion: reduce` removes spring (instant fill).
359
-
360
- ---
361
-
362
- **Verified:** 2026-05-08 (omd:migrate run 45 — Apple-tier)
363
- **Tier 1 sources:** kr.pinterest.com home + business.pinterest.com/ko (live DOM via playwright — **Two-system dual-canvas split**: consumer Pinterest Red `#e60023` 16px Login + Cream `#e5e5e0` Secondary + Plum-Black `#211922` ghost nav (12px·400 / 48px); business Charcoal `#111111` dual-radius (20px compact 36px / 30px hero 60px) / 16px·400 — separate B2B track).
364
- **Tier 2 sources:** styles.refero.design / getdesign.md — no record.
365
- **Tier 2 (Philosophy/founders/IPO):** Wikipedia (Pinterest + Evan Sharp), Founders Era, Inc 30 Under 30, EBSCO, Buildd, Companies History.
366
- **Style ref:** `notion`. **Conflicts unresolved:** none. **Earlier addition:** Pinterest Red `#e60023` + Cream `#e5e5e0` + Pinterest Business Charcoal dual-radius system missed by prior pass (which had only ghost nav + Plum text).
316
+ No motion duration, easing curve, transition, or reduced-motion rule is supported by the supplied raw capture or the official sources checked for this update. No motion token is claimed.