oh-my-design-cli 1.8.6 → 1.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (275) hide show
  1. package/.claude/hooks/lib/preferences-parser.cjs +1 -0
  2. package/.claude/hooks/lib/preferences-writer.cjs +1 -0
  3. package/.claude/hooks/post-edit-watch.cjs +1 -0
  4. package/.claude/hooks/session-end-foldin.cjs +1 -0
  5. package/.claude/hooks/session-state-loader.cjs +1 -0
  6. package/.claude/hooks/skill-activation.cjs +1 -0
  7. package/.claude/settings.json +10 -1
  8. package/.github/assets/logo-bg.png +0 -0
  9. package/AGENTS.md +20 -1
  10. package/CHANGELOG.md +482 -0
  11. package/MIGRATION.md +103 -0
  12. package/README.ja.md +56 -19
  13. package/README.ko.md +47 -30
  14. package/README.md +48 -30
  15. package/README.zh-TW.md +59 -22
  16. package/agents/AGENT.md +8 -7
  17. package/agents/omd-codex-image.md +1 -1
  18. package/agents/omd-critic.md +6 -7
  19. package/agents/omd-designer-review.md +1 -1
  20. package/agents/omd-final-qa.md +1 -1
  21. package/agents/omd-humanizer.md +38 -0
  22. package/agents/omd-kr-writer.md +3 -4
  23. package/agents/omd-locale-adapter.md +12 -16
  24. package/agents/omd-master.md +24 -19
  25. package/agents/omd-microcopy.md +1 -1
  26. package/agents/omd-orchestrator.md +7 -8
  27. package/agents/omd-slop-auditor.md +31 -0
  28. package/agents/omd-ux-researcher.md +1 -1
  29. package/data/reference-fingerprints.json +2761 -85
  30. package/dist/bin/oh-my-design.js +16 -8
  31. package/dist/bin/oh-my-design.js.map +1 -1
  32. package/dist/chunk-UJIHCEYF.js +99 -0
  33. package/dist/chunk-UJIHCEYF.js.map +1 -0
  34. package/dist/doctor-LDWSFM3I.js +763 -0
  35. package/dist/doctor-LDWSFM3I.js.map +1 -0
  36. package/dist/install-skills-ZZFNJ2II.js +1120 -0
  37. package/dist/install-skills-ZZFNJ2II.js.map +1 -0
  38. package/docs/CLI_QUICKSTART.md +157 -0
  39. package/package.json +25 -4
  40. package/scripts/postinstall.cjs +5 -4
  41. package/skills/claude-design/SKILL.md +38 -14
  42. package/skills/claude-design/references/claude-design-flow.md +11 -11
  43. package/skills/claude-design/references/codebase-analysis.md +5 -4
  44. package/skills/omd-final-qa/SKILL.md +1 -1
  45. package/skills/omd-harness/SKILL.md +51 -50
  46. package/skills/omd-humanize/SKILL.md +116 -0
  47. package/skills/omd-humanize/agents/openai.yaml +4 -0
  48. package/skills/omd-humanize/references/locale-playbooks.md +102 -0
  49. package/skills/omd-humanize/references/sources.md +11 -0
  50. package/skills/omd-init/SKILL.md +18 -12
  51. package/skills/omd-locale-adapter/SKILL.md +58 -91
  52. package/skills/omd-orchestrator/SKILL.md +11 -5
  53. package/skills/omd-reference-capture/SKILL.md +80 -26
  54. package/skills/omd-reference-capture/scripts/PLAYWRIGHT-LICENSE.txt +202 -0
  55. package/skills/omd-reference-capture/scripts/PLAYWRIGHT-NOTICE.txt +5 -0
  56. package/skills/omd-reference-capture/scripts/THIRD_PARTY_NOTICES.md +3 -0
  57. package/skills/omd-reference-capture/scripts/capture-reference-evidence.mjs +159906 -0
  58. package/skills/omd-slop-audit/SKILL.md +110 -0
  59. package/skills/omd-slop-audit/agents/openai.yaml +4 -0
  60. package/skills/omd-slop-audit/references/pattern-catalog.md +96 -0
  61. package/skills/omd-slop-audit/references/sources.md +24 -0
  62. package/web/references/104/DESIGN.md +354 -0
  63. package/web/references/11st/DESIGN.md +197 -316
  64. package/web/references/29cm/DESIGN.md +297 -393
  65. package/web/references/42dot/DESIGN.md +390 -0
  66. package/web/references/8percent/DESIGN.md +438 -0
  67. package/web/references/ably/DESIGN.md +267 -572
  68. package/web/references/acer/DESIGN.md +329 -0
  69. package/web/references/airbnb/DESIGN.md +219 -557
  70. package/web/references/airbridge/DESIGN.md +451 -0
  71. package/web/references/alipay/DESIGN.md +179 -420
  72. package/web/references/apple/DESIGN.md +224 -498
  73. package/web/references/asleep/DESIGN.md +402 -0
  74. package/web/references/au/DESIGN.md +334 -0
  75. package/web/references/autopedia/DESIGN.md +382 -0
  76. package/web/references/aws-cloudscape/DESIGN.md +241 -0
  77. package/web/references/baemin/DESIGN.md +332 -491
  78. package/web/references/banksalad/DESIGN.md +269 -180
  79. package/web/references/barogo/DESIGN.md +416 -0
  80. package/web/references/beusable/DESIGN.md +464 -0
  81. package/web/references/bigin/DESIGN.md +454 -0
  82. package/web/references/bilibili/DESIGN.md +206 -374
  83. package/web/references/bmw/DESIGN.md +162 -276
  84. package/web/references/brandi/DESIGN.md +184 -325
  85. package/web/references/buzzvil/DESIGN.md +457 -0
  86. package/web/references/cafe24/DESIGN.md +472 -0
  87. package/web/references/catchtable/DESIGN.md +219 -264
  88. package/web/references/cgv/DESIGN.md +317 -0
  89. package/web/references/channeltalk/DESIGN.md +210 -336
  90. package/web/references/china-airlines/DESIGN.md +291 -0
  91. package/web/references/cjonstyle/DESIGN.md +453 -0
  92. package/web/references/class101/DESIGN.md +168 -387
  93. package/web/references/classum/DESIGN.md +228 -203
  94. package/web/references/claude/DESIGN.md +242 -479
  95. package/web/references/clay/DESIGN.md +179 -377
  96. package/web/references/clickhouse/DESIGN.md +254 -343
  97. package/web/references/codeit/DESIGN.md +470 -0
  98. package/web/references/cohere/DESIGN.md +214 -324
  99. package/web/references/coinone/DESIGN.md +199 -179
  100. package/web/references/corca/DESIGN.md +414 -0
  101. package/web/references/coupang/DESIGN.md +205 -475
  102. package/web/references/cursor/DESIGN.md +240 -381
  103. package/web/references/dabang/DESIGN.md +248 -213
  104. package/web/references/dable/DESIGN.md +431 -0
  105. package/web/references/datarize/DESIGN.md +338 -0
  106. package/web/references/dealicious/DESIGN.md +402 -0
  107. package/web/references/drdiary/DESIGN.md +404 -0
  108. package/web/references/elastic/DESIGN.md +238 -0
  109. package/web/references/elevenlabs/DESIGN.md +183 -321
  110. package/web/references/elice/DESIGN.md +445 -0
  111. package/web/references/eslite/DESIGN.md +257 -0
  112. package/web/references/evaair/DESIGN.md +338 -0
  113. package/web/references/expo/DESIGN.md +238 -331
  114. package/web/references/familymart-tw/DESIGN.md +254 -0
  115. package/web/references/ferrari/DESIGN.md +160 -377
  116. package/web/references/figma/DESIGN.md +197 -451
  117. package/web/references/fitpet/DESIGN.md +445 -0
  118. package/web/references/flex/DESIGN.md +170 -253
  119. package/web/references/framer/DESIGN.md +197 -340
  120. package/web/references/freee/DESIGN.md +211 -533
  121. package/web/references/friendliai/DESIGN.md +431 -0
  122. package/web/references/frip/DESIGN.md +440 -0
  123. package/web/references/furiosaai/DESIGN.md +450 -0
  124. package/web/references/gangnamunni/DESIGN.md +154 -591
  125. package/web/references/gaudiolab/DESIGN.md +414 -0
  126. package/web/references/google/DESIGN.md +290 -398
  127. package/web/references/goorm/DESIGN.md +470 -0
  128. package/web/references/greencar/DESIGN.md +420 -0
  129. package/web/references/hackle/DESIGN.md +472 -0
  130. package/web/references/hashicorp/DESIGN.md +273 -318
  131. package/web/references/heydealer/DESIGN.md +429 -0
  132. package/web/references/humanscape/DESIGN.md +433 -0
  133. package/web/references/hwahae/DESIGN.md +453 -0
  134. package/web/references/hyundai/DESIGN.md +158 -368
  135. package/web/references/hyundaicard/DESIGN.md +171 -121
  136. package/web/references/ibm/DESIGN.md +227 -378
  137. package/web/references/idus/DESIGN.md +450 -0
  138. package/web/references/igaworks/DESIGN.md +437 -0
  139. package/web/references/inflearn/DESIGN.md +221 -366
  140. package/web/references/intuit/DESIGN.md +244 -0
  141. package/web/references/jandi/DESIGN.md +191 -291
  142. package/web/references/jobplanet/DESIGN.md +415 -0
  143. package/web/references/kakao/DESIGN.md +287 -475
  144. package/web/references/kakaobank/DESIGN.md +220 -521
  145. package/web/references/kakaogames/DESIGN.md +220 -0
  146. package/web/references/kakaopay/DESIGN.md +207 -526
  147. package/web/references/karrot/DESIGN.md +227 -251
  148. package/web/references/kb-kookmin/DESIGN.md +308 -0
  149. package/web/references/kbank/DESIGN.md +220 -175
  150. package/web/references/kcd/DESIGN.md +432 -0
  151. package/web/references/kmong/DESIGN.md +281 -356
  152. package/web/references/krds/DESIGN.md +245 -19
  153. package/web/references/kream/DESIGN.md +224 -359
  154. package/web/references/kurly/DESIGN.md +211 -533
  155. package/web/references/kyobobook/DESIGN.md +445 -0
  156. package/web/references/lablup/DESIGN.md +474 -0
  157. package/web/references/lamborghini/DESIGN.md +198 -360
  158. package/web/references/lemonbase/DESIGN.md +452 -0
  159. package/web/references/lguplus/DESIGN.md +259 -0
  160. package/web/references/likelion/DESIGN.md +283 -0
  161. package/web/references/line/DESIGN.md +396 -355
  162. package/web/references/linear.app/DESIGN.md +209 -562
  163. package/web/references/lotteon/DESIGN.md +386 -0
  164. package/web/references/lovable/DESIGN.md +255 -349
  165. package/web/references/makinarocks/DESIGN.md +242 -0
  166. package/web/references/maum-ai/DESIGN.md +423 -0
  167. package/web/references/medibloc/DESIGN.md +425 -0
  168. package/web/references/megabox/DESIGN.md +232 -0
  169. package/web/references/mercari/DESIGN.md +217 -434
  170. package/web/references/microsoft/DESIGN.md +234 -388
  171. package/web/references/mildang/DESIGN.md +411 -0
  172. package/web/references/millie/DESIGN.md +183 -504
  173. package/web/references/minimax/DESIGN.md +264 -322
  174. package/web/references/miricanvas/DESIGN.md +182 -355
  175. package/web/references/miro/DESIGN.md +234 -232
  176. package/web/references/mistral.ai/DESIGN.md +231 -314
  177. package/web/references/mixi/DESIGN.md +234 -0
  178. package/web/references/moin/DESIGN.md +445 -0
  179. package/web/references/mongodb/DESIGN.md +219 -316
  180. package/web/references/moreh/DESIGN.md +437 -0
  181. package/web/references/musinsa/DESIGN.md +184 -510
  182. package/web/references/mynavi/DESIGN.md +242 -0
  183. package/web/references/myrealtrip/DESIGN.md +169 -406
  184. package/web/references/naver/DESIGN.md +328 -499
  185. package/web/references/naverwebtoon/DESIGN.md +172 -395
  186. package/web/references/neosapience/DESIGN.md +441 -0
  187. package/web/references/nhn/DESIGN.md +169 -346
  188. package/web/references/nhncloud/DESIGN.md +185 -123
  189. package/web/references/nota/DESIGN.md +451 -0
  190. package/web/references/notion/DESIGN.md +271 -475
  191. package/web/references/nrise/DESIGN.md +417 -0
  192. package/web/references/ohouse/DESIGN.md +210 -549
  193. package/web/references/oliveyoung/DESIGN.md +217 -326
  194. package/web/references/ollama/DESIGN.md +241 -308
  195. package/web/references/onestore/DESIGN.md +248 -0
  196. package/web/references/palantir/DESIGN.md +256 -0
  197. package/web/references/panasonic/DESIGN.md +276 -0
  198. package/web/references/patternfly/DESIGN.md +259 -0
  199. package/web/references/payhere/DESIGN.md +438 -0
  200. package/web/references/pega/DESIGN.md +262 -0
  201. package/web/references/peoplefund/DESIGN.md +431 -0
  202. package/web/references/petfriends/DESIGN.md +428 -0
  203. package/web/references/pinkfong/DESIGN.md +199 -367
  204. package/web/references/pinterest/DESIGN.md +258 -308
  205. package/web/references/portone/DESIGN.md +446 -0
  206. package/web/references/poya/DESIGN.md +286 -0
  207. package/web/references/pozalabs/DESIGN.md +438 -0
  208. package/web/references/protopie/DESIGN.md +419 -0
  209. package/web/references/qraft/DESIGN.md +448 -0
  210. package/web/references/queenit/DESIGN.md +432 -0
  211. package/web/references/quotabook/DESIGN.md +449 -0
  212. package/web/references/rebellions/DESIGN.md +449 -0
  213. package/web/references/recruit/DESIGN.md +247 -0
  214. package/web/references/remember/DESIGN.md +202 -396
  215. package/web/references/resend/DESIGN.md +274 -348
  216. package/web/references/returnzero/DESIGN.md +460 -0
  217. package/web/references/sakura-internet/DESIGN.md +269 -0
  218. package/web/references/samsung/DESIGN.md +157 -359
  219. package/web/references/sandoll/DESIGN.md +445 -0
  220. package/web/references/sanity/DESIGN.md +241 -375
  221. package/web/references/saramin/DESIGN.md +465 -0
  222. package/web/references/scatterlab/DESIGN.md +412 -0
  223. package/web/references/selectstar/DESIGN.md +439 -0
  224. package/web/references/servicenow/DESIGN.md +289 -0
  225. package/web/references/shiftee/DESIGN.md +468 -0
  226. package/web/references/shinhanbank/DESIGN.md +161 -341
  227. package/web/references/shinhancard/DESIGN.md +208 -319
  228. package/web/references/sionic/DESIGN.md +454 -0
  229. package/web/references/sktelecom/DESIGN.md +310 -0
  230. package/web/references/socar/DESIGN.md +125 -32
  231. package/web/references/softbank/DESIGN.md +231 -0
  232. package/web/references/solapi/DESIGN.md +483 -0
  233. package/web/references/sony/DESIGN.md +234 -0
  234. package/web/references/soop/DESIGN.md +261 -0
  235. package/web/references/spacex/DESIGN.md +184 -323
  236. package/web/references/spotify/DESIGN.md +253 -394
  237. package/web/references/squeezebits/DESIGN.md +441 -0
  238. package/web/references/stayfolio/DESIGN.md +422 -0
  239. package/web/references/stripe/DESIGN.md +212 -491
  240. package/web/references/supabase/DESIGN.md +244 -316
  241. package/web/references/supertone/DESIGN.md +413 -0
  242. package/web/references/tabling/DESIGN.md +415 -0
  243. package/web/references/taishinbank/DESIGN.md +243 -0
  244. package/web/references/teamlab/DESIGN.md +240 -0
  245. package/web/references/teamsparta/DESIGN.md +472 -0
  246. package/web/references/tellingme/DESIGN.md +392 -0
  247. package/web/references/tesla/DESIGN.md +244 -427
  248. package/web/references/thsr/DESIGN.md +284 -0
  249. package/web/references/thumbtack/DESIGN.md +302 -0
  250. package/web/references/together.ai/DESIGN.md +257 -304
  251. package/web/references/toss/DESIGN.md +251 -593
  252. package/web/references/toss-securities/DESIGN.md +255 -178
  253. package/web/references/tossbank/DESIGN.md +195 -491
  254. package/web/references/toyota/DESIGN.md +238 -0
  255. package/web/references/tving/DESIGN.md +197 -245
  256. package/web/references/typed/DESIGN.md +413 -0
  257. package/web/references/uber/DESIGN.md +256 -333
  258. package/web/references/udn/DESIGN.md +250 -0
  259. package/web/references/upbit/DESIGN.md +145 -256
  260. package/web/references/upstage/DESIGN.md +211 -204
  261. package/web/references/uswds/DESIGN.md +287 -0
  262. package/web/references/vercel/DESIGN.md +236 -440
  263. package/web/references/vuno/DESIGN.md +413 -0
  264. package/web/references/wanted/DESIGN.md +215 -487
  265. package/web/references/weverse/DESIGN.md +437 -0
  266. package/web/references/wise/DESIGN.md +223 -231
  267. package/web/references/wisetracker/DESIGN.md +462 -0
  268. package/web/references/wooribank/DESIGN.md +245 -0
  269. package/web/references/yanolja/DESIGN.md +250 -419
  270. package/web/references/yeogiotte/DESIGN.md +235 -418
  271. package/web/references/zapier/DESIGN.md +256 -377
  272. package/web/references/zendesk/DESIGN.md +288 -0
  273. package/web/references/zigzag/DESIGN.md +200 -621
  274. package/dist/install-skills-7UUDOLG2.js +0 -734
  275. package/dist/install-skills-7UUDOLG2.js.map +0 -1
@@ -4,437 +4,363 @@ name: Resend
4
4
  country: US
5
5
  category: productivity
6
6
  homepage: "https://resend.com"
7
- primary_color: "#000000"
7
+ primary_color: "#00a3ff"
8
8
  logo:
9
9
  type: simpleicons
10
10
  slug: resend
11
- verified: "2026-05-15"
11
+ verified: "2026-07-13"
12
12
  omd: "0.1"
13
13
  ds:
14
14
  name: Resend Brand
15
15
  url: "https://resend.com/brand"
16
16
  type: brand
17
- description: Resend's brand guidelines with wordmark, icons, and naming rules.
17
+ description: Resend's official brand assets and guidelines.
18
18
  og_image: "https://cdn.resend.com/cover-brand.png"
19
+ verification_v2:
20
+ schema: 2
21
+ checked: "2026-07-13"
22
+ surfaces:
23
+ - { id: home, kind: marketing, url: "https://resend.com/", inspected: "2026-07-13" }
24
+ - { id: surface-2, kind: marketing, url: "https://resend.com/features/audiences", inspected: "2026-07-13" }
25
+ - { id: surface-3, kind: marketing, url: "https://resend.com/features/automations", inspected: "2026-07-13" }
26
+ sources:
27
+ - { id: resend-home-live, kind: product-surface, url: "https://resend.com/", captured: "2026-07-13" }
28
+ - { id: resend-audiences-live, kind: product-surface, url: "https://resend.com/features/audiences", captured: "2026-07-13" }
29
+ - { id: resend-automations-live, kind: product-surface, url: "https://resend.com/features/automations", captured: "2026-07-13" }
30
+ - { id: resend-brand-guidelines, kind: official-doc, url: "https://resend.com/handbook/design/what-are-our-brand-guidelines", captured: "2026-07-13" }
31
+ - { id: resend-rebrand, kind: official-doc, url: "https://resend.com/blog/rebranding-resend", captured: "2026-07-13" }
32
+ - { id: resend-about, kind: official-doc, url: "https://resend.com/about", captured: "2026-07-13" }
33
+ - { id: resend-history, kind: official-doc, url: "https://resend.com/handbook/company/how-we-got-here", captured: "2026-07-13" }
34
+ - { id: resend-mission, kind: official-doc, url: "https://resend.com/handbook/company/why-we-exist", captured: "2026-07-13" }
35
+ - { id: inter-asset, kind: brand-asset, url: "https://resend.com/_next/static/media/inter_variable.p.0r27kd5h06n72.woff2?dpl=dpl_6QdhL9DCTN9ExbvTURDkdxpxJgKR", captured: "2026-07-13" }
36
+ - { id: abc-favorit-asset, kind: brand-asset, url: "https://resend.com/_next/static/media/abc_favorit_book.p.0or15w12zowqm.woff2?dpl=dpl_6QdhL9DCTN9ExbvTURDkdxpxJgKR", captured: "2026-07-13" }
37
+ - { id: domaine-asset, kind: brand-asset, url: "https://resend.com/_next/static/media/domaine_regular.p.0e_gg6~4pmz90.woff2?dpl=dpl_6QdhL9DCTN9ExbvTURDkdxpxJgKR", captured: "2026-07-13" }
38
+ - { id: favorit-license, kind: license, url: "https://abcdinamo.com/buy/favorit", captured: "2026-07-13" }
39
+ conflicts: []
40
+ claims:
41
+ "tokens.colors.primary": &marketing { surface_id: home, source_id: resend-home-live, method: computed-style, captured: "2026-07-13" }
42
+ "tokens.colors.canvas": *marketing
43
+ "tokens.colors.foreground": *marketing
44
+ "tokens.colors.muted": *marketing
45
+ "tokens.colors.on-primary": *marketing
46
+ "tokens.typography.family.ui": *marketing
47
+ "tokens.typography.family.display": *marketing
48
+ "tokens.typography.family.editorial": *marketing
49
+ "tokens.typography.display-hero.size": *marketing
50
+ "tokens.typography.display-hero.weight": *marketing
51
+ "tokens.typography.display-hero.lineHeight": *marketing
52
+ "tokens.typography.display-hero.tracking": *marketing
53
+ "tokens.typography.display-hero.use": *marketing
54
+ "tokens.typography.section-heading.size": *marketing
55
+ "tokens.typography.section-heading.weight": *marketing
56
+ "tokens.typography.section-heading.lineHeight": *marketing
57
+ "tokens.typography.section-heading.tracking": *marketing
58
+ "tokens.typography.section-heading.use": *marketing
59
+ "tokens.typography.body.size": *marketing
60
+ "tokens.typography.body.weight": *marketing
61
+ "tokens.typography.body.lineHeight": *marketing
62
+ "tokens.typography.body.use": *marketing
63
+ "tokens.typography.control.size": *marketing
64
+ "tokens.typography.control.weight": *marketing
65
+ "tokens.typography.control.lineHeight": *marketing
66
+ "tokens.typography.control.use": *marketing
67
+ "tokens.spacing.unit": *marketing
68
+ "tokens.spacing.control-x": *marketing
69
+ "tokens.spacing.control-y": *marketing
70
+ "tokens.spacing.menu-x": { surface_id: surface-2, source_id: resend-audiences-live, method: interaction-capture, captured: "2026-07-13" }
71
+ "tokens.spacing.menu-y": { surface_id: surface-2, source_id: resend-audiences-live, method: interaction-capture, captured: "2026-07-13" }
72
+ "tokens.rounded.control": *marketing
73
+ "tokens.rounded.menu": *marketing
74
+ "tokens.rounded.panel": *marketing
75
+ "tokens.rounded.full": *marketing
76
+ "tokens.components.primary-cta.type": *marketing
77
+ "tokens.components.primary-cta.bg": *marketing
78
+ "tokens.components.primary-cta.fg": *marketing
79
+ "tokens.components.primary-cta.radius": *marketing
80
+ "tokens.components.primary-cta.padding": *marketing
81
+ "tokens.components.primary-cta.font": *marketing
82
+ "tokens.components.primary-cta.states": *marketing
83
+ "tokens.components.primary-cta.use": *marketing
84
+ "tokens.components.outline-pill.type": *marketing
85
+ "tokens.components.outline-pill.fg": *marketing
86
+ "tokens.components.outline-pill.border": *marketing
87
+ "tokens.components.outline-pill.radius": *marketing
88
+ "tokens.components.outline-pill.padding": *marketing
89
+ "tokens.components.outline-pill.font": *marketing
90
+ "tokens.components.outline-pill.states": *marketing
91
+ "tokens.components.outline-pill.use": *marketing
92
+ "tokens.components.header-control.type": *marketing
93
+ "tokens.components.header-control.fg": *marketing
94
+ "tokens.components.header-control.padding": *marketing
95
+ "tokens.components.header-control.font": *marketing
96
+ "tokens.components.header-control.states": *marketing
97
+ "tokens.components.header-control.use": *marketing
98
+ "tokens.components.selected-tab-panel.type": *marketing
99
+ "tokens.components.selected-tab-panel.bg": *marketing
100
+ "tokens.components.selected-tab-panel.fg": *marketing
101
+ "tokens.components.selected-tab-panel.radius": *marketing
102
+ "tokens.components.selected-tab-panel.states": *marketing
103
+ "tokens.components.selected-tab-panel.use": *marketing
104
+ "tokens.components.menu-option.type": { surface_id: surface-2, source_id: resend-audiences-live, method: interaction-capture, captured: "2026-07-13" }
105
+ "tokens.components.menu-option.fg": { surface_id: surface-2, source_id: resend-audiences-live, method: interaction-capture, captured: "2026-07-13" }
106
+ "tokens.components.menu-option.radius": { surface_id: surface-2, source_id: resend-audiences-live, method: interaction-capture, captured: "2026-07-13" }
107
+ "tokens.components.menu-option.padding": { surface_id: surface-2, source_id: resend-audiences-live, method: interaction-capture, captured: "2026-07-13" }
108
+ "tokens.components.menu-option.states": { surface_id: surface-2, source_id: resend-audiences-live, method: interaction-capture, captured: "2026-07-13" }
109
+ "tokens.components.menu-option.use": { surface_id: surface-2, source_id: resend-audiences-live, method: interaction-capture, captured: "2026-07-13" }
110
+ "tokens.components.disabled-action.type": { surface_id: surface-3, source_id: resend-automations-live, method: computed-style, captured: "2026-07-13" }
111
+ "tokens.components.disabled-action.fg": { surface_id: surface-3, source_id: resend-automations-live, method: computed-style, captured: "2026-07-13" }
112
+ "tokens.components.disabled-action.radius": { surface_id: surface-3, source_id: resend-automations-live, method: computed-style, captured: "2026-07-13" }
113
+ "tokens.components.disabled-action.padding": { surface_id: surface-3, source_id: resend-automations-live, method: computed-style, captured: "2026-07-13" }
114
+ "tokens.components.disabled-action.states": { surface_id: surface-3, source_id: resend-automations-live, method: computed-style, captured: "2026-07-13" }
115
+ "tokens.components.disabled-action.use": { surface_id: surface-3, source_id: resend-automations-live, method: computed-style, captured: "2026-07-13" }
19
116
  tokens:
20
- source: prose-derived
21
- extracted: "2026-06-09"
117
+ source: reconciled
118
+ extracted: "2026-07-13"
119
+ components_harvested: true
22
120
  colors:
23
- primary: "#ffffff"
24
- brand: "#000000"
121
+ primary: "#00a3ff"
25
122
  canvas: "#000000"
26
123
  foreground: "#f0f0f0"
27
124
  muted: "#a1a4a5"
28
- on-primary: "#000000"
29
- accent-orange: "#ff801f"
30
- accent-green: "#11ff99"
31
- accent-blue: "#3b9eff"
32
- accent-yellow: "#ffc53d"
33
- error: "#ff2047"
125
+ on-primary: "#ffffff"
34
126
  typography:
35
- family: { sans: "inter", mono: "commitMono" }
36
- display-hero: { size: 96, weight: 400, lineHeight: 1.00, tracking: -0.96, use: "Domaine Display serif hero headlines" }
37
- section: { size: 56, weight: 400, lineHeight: 1.20, tracking: -2.8, use: "ABC Favorit section headings" }
38
- subheading: { size: 20, weight: 400, lineHeight: 1.30, use: "ABC Favorit sub-headings" }
39
- feature-title: { size: 24, weight: 500, lineHeight: 1.50, use: "Inter section sub-headings" }
40
- body-lg: { size: 18, weight: 400, lineHeight: 1.50, use: "Introductions" }
41
- body: { size: 16, weight: 400, lineHeight: 1.50, use: "Standard body text" }
42
- nav-link: { size: 14, weight: 500, lineHeight: 1.43, tracking: 0.35, use: "ABC Favorit nav links, positive tracking" }
43
- button: { size: 14, weight: 600, lineHeight: 1.43, use: "Buttons, CTAs" }
44
- caption: { size: 14, weight: 400, lineHeight: 1.60, use: "Descriptions" }
45
- small: { size: 12, weight: 500, lineHeight: 1.33, use: "Tags, meta, fine print" }
46
- code: { size: 16, weight: 400, lineHeight: 1.50, use: "Commit Mono code blocks" }
47
- spacing: [1, 2, 4, 5, 6, 7, 8, 10, 12, 16, 20, 24, 30, 32, 40]
48
- rounded: { sm: 4, md: 8, lg: 16, full: 9999 }
49
- shadow:
50
- ring: "rgba(176,199,217,0.145) 0px 0px 0px 1px"
51
- subtle: "rgba(0,0,0,0.1) 0px 1px 3px, rgba(0,0,0,0.1) 0px 1px 2px -1px"
52
- focus: "rgb(0,0,0) 0px 0px 0px 8px"
53
- components_harvested: true
127
+ family: { ui: "Inter", display: "ABC Favorit", editorial: "Domaine Display" }
128
+ display-hero: { size: 96, weight: 400, lineHeight: 1, tracking: -0.96, use: "Marketing h1" }
129
+ section-heading: { size: 56, weight: 400, lineHeight: 1.2, tracking: -2.8, use: "Marketing h2" }
130
+ body: { size: 16, weight: 400, lineHeight: 1.5, use: "Marketing body and lists" }
131
+ control: { size: 14, weight: 400, lineHeight: 1.43, use: "Observed Inter controls" }
132
+ spacing: { unit: 4, control-x: 12, control-y: 5, menu-x: 24, menu-y: 8 }
133
+ rounded: { control: 4, menu: 12, panel: 16, full: 9999 }
54
134
  components:
55
- button-primary: { type: button, bg: "#ffffff", fg: "#000000", radius: "9999px", padding: "5px 12px", font: "14px / 600", use: "High-contrast CTA, Get started" }
56
- button-ghost: { type: button, bg: "transparent", fg: "#f0f0f0", radius: "9999px", padding: "5px 12px", border: "1px solid rgba(214,235,253,0.19)", hover: "bg rgba(255,255,255,0.28)", use: "Primary CTA on dark, transparent pill with frost border" }
57
- button-secondary: { type: button, bg: "transparent", fg: "#f0f0f0", radius: "4px", hover: "subtle background tint", use: "Secondary actions, tab items" }
58
- card: { type: card, bg: "transparent", border: "1px solid rgba(214,235,253,0.19)", radius: "16px", shadow: "rgba(176,199,217,0.145) 0px 0px 0px 1px", use: "Feature cards, frost-border panels" }
59
- input: { type: input, fg: "#f0f0f0", radius: "4px", focus: "shadow-based ring", use: "Form fields, dark theme inherit" }
60
- tab: { type: tab, radius: "8px", active: "subtle background differentiation", use: "Horizontal tab navigation" }
61
- badge-accent: { type: badge, fg: "#ffa057", radius: "9999px", font: "12px / 500", use: "Multi-color accent badge, accent bg at low opacity" }
62
- code-panel: { type: card, bg: "transparent", border: "1px solid rgba(214,235,253,0.19)", radius: "24px", font: "16px / 400", use: "Commit Mono code preview panel" }
135
+ primary-cta: { type: button, bg: "#00a3ff", fg: "#ffffff", radius: "4px", padding: "12px 20px", font: "14px / 600 / Helvetica (system-computed)", states: "default capture only", use: "Home marketing primary CTA" }
136
+ outline-pill: { type: button, fg: "#f0f0f0", border: "1px solid rgba(214,235,253,0.19)", radius: "9999px", padding: "5px 12px", font: "14px / 400 / Inter", states: "default capture only", use: "Home marketing outline control" }
137
+ header-control: { type: button, fg: "#a1a4a5", padding: "4px 12px", font: "14px / 500 / Inter", states: "default capture only", use: "Home header navigation control" }
138
+ selected-tab-panel: { type: tab, bg: "rgba(214,235,253,0.19)", fg: "#f0f0f0", radius: "16px", states: "selected tab capture", use: "Home selected tab panel" }
139
+ menu-option: { type: listItem, fg: "rgba(233,240,253,0.525)", radius: "12px", padding: "8px 24px", states: "menu-open selected capture", use: "Audiences feature-page menu option" }
140
+ disabled-action: { type: button, fg: "#4a4a4a", radius: "12px", padding: "12px", states: "disabled capture", use: "Automations feature-page disabled action" }
63
141
  ---
64
142
 
65
- # Design System Inspiration of Resend
143
+ # Resend Design Reference
66
144
 
67
145
  ## 1. Visual Theme & Atmosphere
68
146
 
69
- Resend's website is a dark, cinematic canvas that treats email infrastructure like a luxury product. The entire page is draped in pure black (`#000000`) with text that glows in near-white (`#f0f0f0`), creating a theater-like experience where content performs on a void stage. This isn't the typical developer-tool darkness it's the controlled darkness of a photography gallery, where every element is lit with intention and nothing competes for attention.
147
+ Resend is a communication platform for developers, built from the React Email open-source project and launched as an email-sending platform in 2023. Its official story frames the work around making human communication easier while helping developers build better products. The current public marketing expression is dark-first and editorial: black canvas, pale text, a crisp `#00a3ff` action, and a deliberately mixed type system that gives headlines more ceremony than controls. The 2025 rebrand introduced a new identity and expanded the original black-and-white palette with gradients and gray tones inspired by physical materials. This reference is intentionally narrower than a product-system claim: its tokens and components come only from three captured public marketing pages, not an authenticated Resend dashboard, API response, email output, or documentation chrome.
70
148
 
71
- The typography system is the star of the show. Three carefully chosen typefaces create a hierarchy that feels both editorial and technical: Domaine Display (a Klim Type Foundry serif) appears at massive 96px for hero headlines with barely-there line-height (1.00) and negative tracking (-0.96px), creating display text that feels like a magazine cover. ABC Favorit (by Dinamo) handles section headings with an even more aggressive letter-spacing (-2.8px at 56px), giving a compressed, engineered quality to mid-tier text. Inter takes over for body and UI, providing the clean readability that lets the display fonts shine. Commit Mono rounds out the family for code blocks.
149
+ - **Dark-first public marketing:** `#000000`, pale text, and cool translucent hairlines organize the captured pages.
150
+ - **Editorial hierarchy:** Domaine creates the hero moment, ABC Favorit carries section-level display copy, and Inter is the loaded product/UI family.
151
+ - **Precise, not generic:** the blue CTA is a sharp 4px control; the separate outline action is full-pill. Neither shape is generalized into an unobserved global button rule.
72
152
 
73
- What makes Resend distinctive is its icy, blue-tinted border system. Instead of neutral gray borders, Resend uses `rgba(214, 235, 253, 0.19)` — a frosty, slightly blue-tinted line at 19% opacity that gives every container and divider a cold, crystalline quality against the black background. Combined with pill-shaped buttons (9999px radius), multi-color accent system (orange, green, blue, yellow, red — each with its own CSS variable scale), and OpenType stylistic sets (`"ss01"`, `"ss03"`, `"ss04"`, `"ss11"`), the result is a design system that feels premium, precise, and quietly confident.
153
+ ## 2. Color Palette & Roles
74
154
 
75
- **Key Characteristics:**
76
- - Pure black background with near-white (`#f0f0f0`) text — theatrical, gallery-like darkness
77
- - Three-font hierarchy: Domaine Display (serif hero), ABC Favorit (geometric sections), Inter (body/UI)
78
- - Icy blue-tinted borders: `rgba(214, 235, 253, 0.19)` — every border has a cold, crystalline shimmer
79
- - Multi-color accent system: orange, green, blue, yellow, red — each with numbered CSS variable scales
80
- - Pill-shaped buttons and tags (9999px radius) with transparent backgrounds
81
- - OpenType stylistic sets (`"ss01"`, `"ss03"`, `"ss04"`, `"ss11"`) on display fonts
82
- - Commit Mono for code — monospace as a design element, not an afterthought
83
- - Whisper-level shadows using blue-tinted ring: `rgba(176, 199, 217, 0.145) 0px 0px 0px 1px`
155
+ ### Observed marketing roles
84
156
 
85
- ## 2. Color Palette & Roles
157
+ - **Primary action** (`#00a3ff`): home primary CTA at `home::[data-omd-capture="56"]`.
158
+ - **Canvas** (`#000000`): opened home menu and the dark public-page base.
159
+ - **Foreground** (`#f0f0f0`): outline-pill text, selected tab-panel text, and menu text.
160
+ - **Muted navigation** (`#a1a4a5`): home header control text.
161
+ - **On-primary** (`#ffffff`): home primary CTA text.
162
+ - **Cool hairline** (`rgba(214,235,253,0.19)`): outline-pill and opened-menu border; selected tab-panel fill.
86
163
 
87
- ### Primary
88
- - **Void Black** (`#000000`): Page background, the defining canvas color (95% opacity via `--color-black-12`)
89
- - **Near White** (`#f0f0f0`): Primary text, button text, high-contrast elements
90
- - **Pure White** (`#ffffff`): `--color-white`, maximum emphasis text, link highlights
91
-
92
- ### Accent Scale — Orange
93
- - **Orange 4** (`#ff5900`): `--color-orange-4`, at 22% opacity — subtle warm glow
94
- - **Orange 10** (`#ff801f`): `--color-orange-10`, primary orange accent — warm, energetic
95
- - **Orange 11** (`#ffa057`): `--color-orange-11`, lighter orange for secondary use
96
-
97
- ### Accent Scale — Green
98
- - **Green 3** (`#22ff99`): `--color-green-3`, at 12% opacity — faint emerald wash
99
- - **Green 4** (`#11ff99`): `--color-green-4`, at 18% opacity — success indicator glow
100
-
101
- ### Accent Scale — Blue
102
- - **Blue 4** (`#0075ff`): `--color-blue-4`, at 34% opacity — medium blue accent
103
- - **Blue 5** (`#0081fd`): `--color-blue-5`, at 42% opacity — stronger blue
104
- - **Blue 10** (`#3b9eff`): `--color-blue-10`, bright blue — links, interactive elements
105
-
106
- ### Accent Scale — Other
107
- - **Yellow 9** (`#ffc53d`): `--color-yellow-9`, warm gold for warnings or highlights
108
- - **Red 5** (`#ff2047`): `--color-red-5`, at 34% opacity — error states, destructive actions
109
-
110
- ### Neutral Scale
111
- - **Silver** (`#a1a4a5`): Secondary text, muted links, descriptions
112
- - **Dark Gray** (`#464a4d`): Tertiary text, de-emphasized content
113
- - **Mid Gray** (`#5c5c5c`): Hover states, subtle emphasis
114
- - **Medium Gray** (`#494949`): Quaternary text
115
- - **Light Gray** (`#f8f8f8`): Light mode surface (if applicable)
116
- - **Border Gray** (`#eaeaea`): Light context borders
117
- - **Edge Gray** (`#ececec`): Subtle borders on light surfaces
118
- - **Mist Gray** (`#dedfdf`): Light dividers
119
- - **Soft Gray** (`#e5e6e6`): Alternate light border
120
-
121
- ### Surface & Overlay
122
- - **Frost Primary** (`#fcfdff`): Primary color token (slight blue tint, 94% opacity)
123
- - **White Hover** (`rgba(255, 255, 255, 0.28)`): Button hover state on dark
124
- - **White 60%** (`oklab(0.999994 ... / 0.577)`): Semi-transparent white for muted text
125
- - **White 64%** (`oklab(0.999994 ... / 0.642)`): Slightly brighter semi-transparent white
126
-
127
- ### Borders & Shadows
128
- - **Frost Border** (`rgba(214, 235, 253, 0.19)`): The signature — icy blue-tinted borders at 19% opacity
129
- - **Frost Border Alt** (`rgba(217, 237, 254, 0.145)`): Slightly lighter variant for list items
130
- - **Ring Shadow** (`rgba(176, 199, 217, 0.145) 0px 0px 0px 1px`): Blue-tinted shadow-as-border
131
- - **Focus Ring** (`rgb(0, 0, 0) 0px 0px 0px 8px`): Heavy black focus ring
132
- - **Subtle Shadow** (`rgba(0, 0, 0, 0.1) 0px 1px 3px, rgba(0, 0, 0, 0.1) 0px 1px 2px -1px`): Minimal card elevation
164
+ The collector also records local translucent whites and blues. They stay component-scoped; no success, warning, error, dashboard, or email-client semantic palette is inferred.
133
165
 
134
166
  ## 3. Typography Rules
135
167
 
136
- ### Font Families
137
- - **Display Serif**: `domaine` (Domaine Display by Klim Type Foundry) — hero headlines
138
- - **Display Sans**: `aBCFavorit` (ABC Favorit by Dinamo), fallbacks: `ui-sans-serif, system-ui` section headings
139
- - **Body / UI**: `inter`, fallbacks: `ui-sans-serif, system-ui` body text, buttons, navigation
140
- - **Monospace**: `commitMono`, fallbacks: `ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas`
141
- - **Secondary**: `Helvetica` fallback for specific UI contexts
142
- - **System**: `-apple-system, system-ui, Segoe UI, Roboto` embedded content
143
-
144
- ### Hierarchy
145
-
146
- | Role | Font | Size | Weight | Line Height | Letter Spacing | Notes |
147
- |------|------|------|--------|-------------|----------------|-------|
148
- | Display Hero | domaine | 96px (6.00rem) | 400 | 1.00 (tight) | -0.96px | `"ss01", "ss04", "ss11"` |
149
- | Display Hero Mobile | domaine | 76.8px (4.80rem) | 400 | 1.00 (tight) | -0.768px | Scaled for mobile |
150
- | Section Heading | aBCFavorit | 56px (3.50rem) | 400 | 1.20 (tight) | -2.8px | `"ss01", "ss04", "ss11"` |
151
- | Sub-heading | aBCFavorit | 20px (1.25rem) | 400 | 1.30 (tight) | normal | `"ss01", "ss04", "ss11"` |
152
- | Sub-heading Compact | aBCFavorit | 16px (1.00rem) | 400 | 1.50 | -0.8px | `"ss01", "ss04", "ss11"` |
153
- | Feature Title | inter | 24px (1.50rem) | 500 | 1.50 | normal | Section sub-headings |
154
- | Body Large | inter | 18px (1.13rem) | 400 | 1.50 | normal | Introductions |
155
- | Body | inter | 16px (1.00rem) | 400 | 1.50 | normal | Standard body text |
156
- | Body Semibold | inter | 16px (1.00rem) | 600 | 1.50 | normal | Emphasis, active states |
157
- | Nav Link | aBCFavorit | 14px (0.88rem) | 500 | 1.43 | 0.35px | `"ss01", "ss03", "ss04"` — positive tracking |
158
- | Button / Link | inter | 14px (0.88rem) | 500–600 | 1.43 | normal | Buttons, nav, CTAs |
159
- | Caption | inter | 14px (0.88rem) | 400 | 1.60 (relaxed) | normal | Descriptions |
160
- | Helvetica Caption | Helvetica | 14px (0.88rem) | 400–600 | 1.00–1.71 | normal | UI elements |
161
- | Small | inter | 12px (0.75rem) | 400–500 | 1.33 | normal | Tags, meta, fine print |
162
- | Small Uppercase | inter | 12px (0.75rem) | 500 | 1.33 | normal | `text-transform: uppercase` |
163
- | Small Capitalize | inter | 12px (0.75rem) | 500 | 1.33 | normal | `text-transform: capitalize` |
164
- | Code Body | commitMono | 16px (1.00rem) | 400 | 1.50 | normal | Code blocks |
165
- | Code Small | commitMono | 14px (0.88rem) | 400 | 1.43 | normal | Inline code |
166
- | Code Tiny | commitMono | 12px (0.75rem) | 400 | 1.33 | normal | Small code labels |
167
- | Heading (Helvetica) | Helvetica | 24px (1.50rem) | 400 | 1.40 | normal | Alternate heading context |
168
-
169
- ### Principles
170
- - **Three-font editorial hierarchy**: Domaine Display (serif, hero), ABC Favorit (geometric sans, sections), Inter (readable body). Each font has a strict role — they never cross lanes.
171
- - **Aggressive negative tracking on display**: Domaine at -0.96px, ABC Favorit at -2.8px. The display type feels compressed, urgent, and designed — like a magazine masthead.
172
- - **Positive tracking on nav**: ABC Favorit nav links use +0.35px letter-spacing — the only positive tracking in the system. This creates airy, spaced-out navigation text that contrasts with the compressed headings.
173
- - **OpenType as identity**: The `"ss01"`, `"ss03"`, `"ss04"`, `"ss11"` stylistic sets are enabled on all ABC Favorit and Domaine text, activating alternate glyphs that give Resend's typography its unique character.
174
- - **Commit Mono as design element**: The monospace font isn't hidden in code blocks — it's used prominently for code examples and technical content, treated as a first-class visual element.
168
+ ### Evidence classes
169
+
170
+ - **Official product-use plus live computed use — Inter:** Resend identifies Inter by Rasmus Andersson as its product typeface. It is loaded with high confidence, has 599 visible captured uses, and is corroborated by a Resend-hosted WOFF2 source. It is the UI-family token.
171
+ - **Official display-use plus live computed use — ABC Favorit:** Resend names ABC Favorit by Dinamo as display type. It is loaded with high confidence, has 40 visible heading uses, and is corroborated by loaded Book and Medium Resend-hosted WOFF2 sources. Dinamo’s commercial EULA is a licence boundary, not permission to reuse Resend’s served files.
172
+ - **Official editorial-use plus live computed use — Domaine Display:** Resend names Domaine Display by Klim Type Foundry as editorial type. It is loaded with high confidence, has four visible heading uses, and is corroborated by three Resend-hosted WOFF2 sources. The 2025 rebrand explains its headline role.
173
+ - **System-computed, not a token — Helvetica:** the `#00a3ff` CTA computes to Helvetica but the collector records no matching loaded face/source. The component records that measured value without promoting Helvetica to Resend UI typography.
174
+ - **Declared-only, not a token — Commit Mono:** two `@font-face` sources exist, but zero visible captured uses were recorded. It is neither an active UI family nor a code-panel token.
175
+ - **System-computed embedded field:** `-apple-system` appears twice in an embedded editable field; it is not a Resend typography token.
176
+
177
+ ### Observed hierarchy
178
+
179
+ | Role | Family | Size | Weight | Line height | Tracking | Surface boundary |
180
+ |---|---|---:|---:|---:|---:|---|
181
+ | Marketing hero | Domaine Display | 96px | 400 | 1.00 | -0.96px | public marketing only |
182
+ | Marketing hero, compact | Domaine Display | 76.8px | 400 | 1.00 | -0.768px | public marketing only |
183
+ | Section heading | ABC Favorit | 56px | 400 | 1.20 | -2.8px | public marketing only |
184
+ | Supporting heading | ABC Favorit | 20px | 400 | 1.00 | normal | public marketing only |
185
+ | Body/list | Inter | 16px | 400 | 1.50 | normal | public marketing only |
186
+ | Control | Inter | 14px | 400–500 | 1.43 | normal | public marketing only |
175
187
 
176
188
  ## 4. Component Stylings
177
189
 
178
- ### Buttons
190
+ ### Buttons and controls
191
+
192
+ **Primary CTA — home marketing**
193
+ - Background: `#00a3ff`
194
+ - Text: `#ffffff`
195
+ - Radius: 4px
196
+ - Padding: 12px 20px
197
+ - Font: 14px / 600 / Helvetica (system-computed)
198
+ - States: default capture only
199
+ - Use: Home marketing primary CTA at `home::[data-omd-capture="56"]`.
179
200
 
180
- **Primary Transparent Pill**
181
- - Background: transparent
201
+ **Outline pill — home marketing**
182
202
  - Text: `#f0f0f0`
183
- - Padding: 5px 12px
184
- - Radius: 9999px (full pill)
185
- - Border: `1px solid rgba(214, 235, 253, 0.19)` (frost border)
186
- - Hover: background `rgba(255, 255, 255, 0.28)` (white glass)
187
- - Use: Primary CTA on dark backgrounds
188
-
189
- **White Solid Pill**
190
- - Background: `#ffffff`
191
- - Text: `#000000`
192
- - Padding: 5px 12px
203
+ - Border: 1px solid `rgba(214,235,253,0.19)`
193
204
  - Radius: 9999px
194
- - Use: High-contrast CTA ("Get started")
195
-
196
- **Ghost Button**
197
- - Background: transparent
205
+ - Padding: 5px 12px
206
+ - Font: 14px / 400 / Inter
207
+ - States: default capture only
208
+ - Use: Home outline control at `home::[data-omd-capture="41"]`.
209
+
210
+ **Header navigation control — home marketing**
211
+ - Text: `#a1a4a5`
212
+ - Padding: 4px 12px
213
+ - Font: 14px / 500 / Inter
214
+ - States: default capture only
215
+ - Use: Header control at `home::[data-omd-capture="1"]`.
216
+
217
+ **Disabled automation action — feature marketing**
218
+ - Text: `#4a4a4a`
219
+ - Radius: 12px
220
+ - Padding: 12px
221
+ - Font: 14px / 400 / Inter
222
+ - States: disabled capture
223
+ - Use: Automations page action at `surface-3::[data-omd-capture="24"]`.
224
+
225
+ ### Tabs and menus
226
+
227
+ **Selected tab panel — home marketing**
228
+ - Background: `rgba(214,235,253,0.19)`
198
229
  - Text: `#f0f0f0`
199
- - Radius: 4px
200
- - No border
201
- - Hover: subtle background tint
202
- - Use: Secondary actions, tab items
203
-
204
- ### Cards & Containers
205
- - Background: transparent or very subtle dark tint
206
- - Border: `1px solid rgba(214, 235, 253, 0.19)` (frost border)
207
- - Radius: 16px (standard cards), 24px (large sections/panels)
208
- - Shadow: `rgba(176, 199, 217, 0.145) 0px 0px 0px 1px` (ring shadow)
209
- - Dark product screenshots and code demos as card content
210
- - No traditional box-shadow elevation
211
-
212
- ### Inputs & Forms
213
- - Text: `#f0f0f0` on dark, `#000000` on light
214
- - Radius: 4px
215
- - Focus: shadow-based ring
216
- - Minimal styling — inherits dark theme
217
-
218
- ### Navigation
219
- - Sticky dark header with frost border bottom: `1px solid rgba(214, 235, 253, 0.19)`
220
- - "Resend" wordmark left-aligned
221
- - ABC Favorit 14px weight 500 with +0.35px tracking for nav links
222
- - Pill CTAs right-aligned
223
- - Mobile: hamburger collapse
224
-
225
- ### Image Treatment
226
- - Product screenshots and code demos dominate content sections
227
- - Dark-themed screenshots on dark background — seamless integration
228
- - Rounded corners: 12px–16px on images
229
- - Full-width sections with subtle gradient overlays
230
-
231
- ### Distinctive Components
232
-
233
- **Tab Navigation**
234
- - Horizontal tabs with subtle selection indicator
235
- - Tab items: 8px radius
236
- - Active state with subtle background differentiation
237
-
238
- **Code Preview Panels**
239
- - Dark code blocks using Commit Mono
240
- - Frost borders (`rgba(214, 235, 253, 0.19)`)
241
- - Syntax-highlighted with multi-color accent tokens (orange, blue, green, yellow)
242
-
243
- **Multi-color Accent Badges**
244
- - Each product feature has its own accent color from the CSS variable scale
245
- - Badges use the accent color at low opacity (12–42%) for background, full opacity for text
230
+ - Radius: 16px
231
+ - States: selected tab capture
232
+ - Use: Home selected panel at `home::[data-omd-capture="65"]`.
233
+
234
+ **Selected menu option — audiences feature marketing**
235
+ - Background: `rgba(221,234,248,0.008)`
236
+ - Text: `rgba(233,240,253,0.525)`
237
+ - Radius: 12px
238
+ - Padding: 8px 24px
239
+ - Font: 14px / 400 / Inter
240
+ - States: menu-open selected capture
241
+ - Use: Audiences option at `surface-2::[data-omd-interaction-capture="menu-0-2"]`.
242
+
243
+ **Opened menu listbox — home marketing**
244
+ - Background: `#000000`
245
+ - Text: `#f0f0f0`
246
+ - Border: 1px solid `rgba(214,235,253,0.19)`
247
+ - Radius: 8px
248
+ - Padding: 8px
249
+ - Use: Home opened listbox at `home::[data-omd-interaction-capture="menu-0-0"]`.
250
+
251
+ Only the selector-level public marketing variants above are canonical. No generic card, input, code panel, hover, focus, toast, dialog, or authenticated-product state is asserted without supplied observation.
246
252
 
247
253
  ## 5. Layout Principles
248
254
 
249
- ### Spacing System
250
- - Base unit: 8px
251
- - Scale: 1px, 2px, 4px, 5px, 6px, 7px, 8px, 10px, 12px, 16px, 20px, 24px, 30px, 32px, 40px
252
-
253
- ### Grid & Container
254
- - Centered content with generous max-width
255
- - Full-width black sections with contained inner content
256
- - Single-column hero, expanding to feature grids below
257
- - Code preview panels as full-width or contained showcases
258
-
259
- ### Whitespace Philosophy
260
- - **Cinematic black space**: The black background IS the whitespace. Generous vertical spacing (80px–120px+) between sections creates a scroll-through-darkness experience where each section emerges like a scene.
261
- - **Tight content, vast surrounds**: Text blocks and cards are compact internally, but float in vast dark space — creating isolated "islands" of content.
262
- - **Typography-led rhythm**: The massive display fonts (96px) create their own vertical rhythm — each headline is a visual event that anchors the surrounding space.
263
-
264
- ### Border Radius Scale
265
- - Sharp (4px): Buttons (ghost), inputs, small interactive elements
266
- - Subtle (6px): Menu panels, navigation items
267
- - Standard (8px): Tabs, content blocks
268
- - Comfortable (10px): Accent elements
269
- - Card (12px): Clipboard buttons, medium containers
270
- - Large (16px): Feature cards, images, main buttons
271
- - Section (24px): Large panels, section containers
272
- - Pill (9999px): Primary CTAs, tags, badges
255
+ ### Spacing system
273
256
 
274
- ## 6. Depth & Elevation
257
+ Observed public-page spacing clusters around 4px, 8px, 12px, 16px, 24px, and 32px. The component evidence specifically confirms 12px/20px primary-action padding, 5px/12px outline-pill padding, and 8px/24px menu-option padding; larger layout spacing is not promoted into a page-grid contract.
275
258
 
276
- | Level | Treatment | Use |
277
- |-------|-----------|-----|
278
- | Flat (Level 0) | No shadow, transparent background | Default — most elements on dark void |
279
- | Ring (Level 1) | `rgba(176, 199, 217, 0.145) 0px 0px 0px 1px` | Shadow-as-border for cards, containers |
280
- | Frost Border (Level 1b) | `1px solid rgba(214, 235, 253, 0.19)` | Explicit borders — buttons, dividers, tabs |
281
- | Subtle (Level 2) | `rgba(0, 0, 0, 0.1) 0px 1px 3px, rgba(0, 0, 0, 0.1) 0px 1px 2px -1px` | Light card elevation |
282
- | Focus (Level 3) | `rgb(0, 0, 0) 0px 0px 0px 8px` | Heavy black focus ring — accessibility |
259
+ ### Shape system
283
260
 
284
- **Shadow Philosophy**: Resend barely uses shadows at all. On a pure black background, traditional shadows are invisible you can't cast a shadow into the void. Instead, Resend creates depth through its signature frost borders (`rgba(214, 235, 253, 0.19)`) — thin, icy blue-tinted lines that catch light against the darkness. This creates a "glass panel floating in space" aesthetic where borders are the primary depth mechanism.
261
+ The observed control range is intentionally mixed: sharp 4px primary CTA, 8px opened-menu container, 12px feature options/actions, 16px selected panel, and a full-pill outline action. Apply a shape only where its component provenance matches.
262
+
263
+ ## 6. Depth & Elevation
285
264
 
286
- ### Decorative Depth
287
- - Subtle warm gradient glows behind hero content (orange/amber tints)
288
- - Product screenshots create visual depth through their own internal UI
289
- - No gradient backgrounds — depth comes from border luminance and content contrast
265
+ The captured public pages use cool translucent lines and restrained translucent fills to separate controls from the black canvas. The supplied evidence does not justify a general card-shadow or global elevation scale; the opened menu and outlined pill retain their observed hairline only.
290
266
 
291
267
  ## 7. Do's and Don'ts
292
268
 
293
269
  ### Do
294
- - Use pure black (`#000000`) as the page background — the void is the canvas
295
- - Apply frost borders (`rgba(214, 235, 253, 0.19)`) for all structural lines — they're the blue-tinted signature
296
- - Use Domaine Display ONLY for hero headings (96px), ABC Favorit for section headings, Inter for everything else
297
- - Enable OpenType `"ss01"`, `"ss04"`, `"ss11"` on Domaine and ABC Favorit text
298
- - Apply pill radius (9999px) to primary CTAs and tags
299
- - Use the multi-color accent scale (orange/green/blue/yellow/red) with opacity variants for context-specific highlighting
300
- - Keep shadows at ring level (`0px 0px 0px 1px`) — on black, traditional shadows don't work
301
- - Use +0.35px letter-spacing on ABC Favorit nav links — the only positive tracking
270
+
271
+ - Use the verified dark canvas and pale foreground for public Resend-style marketing surfaces.
272
+ - Keep the sharp blue primary CTA distinct from the separate full-pill outline control.
273
+ - Use Inter for UI work, ABC Favorit for loaded display headings, and Domaine Display for loaded editorial heroes when the relevant font is actually available.
274
+ - Keep selected/menu-open/disabled styling scoped to the observed component and public surface.
302
275
 
303
276
  ### Don't
304
- - Don't lighten the background above `#000000` — the pure black void is non-negotiable
305
- - Don't use neutral gray borders — all borders must have the frost blue tint
306
- - Don't apply Domaine Display to body text — it's a display-only serif
307
- - Don't mix accent colors in the same component — each feature gets one accent color
308
- - Don't use box-shadow for elevation on the dark background — use frost borders instead
309
- - Don't skip the OpenType stylistic sets — they define the typographic character
310
- - Don't use negative letter-spacing on nav links — ABC Favorit nav uses positive +0.35px
311
- - Don't make buttons opaque on dark — transparency with frost border is the pattern
312
277
 
313
- ## 8. Responsive Behavior
278
+ - Do not substitute a system font and present it as ABC Favorit, Domaine Display, or Commit Mono.
279
+ - Do not treat declared-only Commit Mono as a verified code-panel font.
280
+ - Do not extend public marketing components into dashboard, API, generated-email, or documentation rules.
281
+ - Do not invent hover, focus, form-error, toast, dialog, or loading variants from the supplied captures.
314
282
 
315
- ### Breakpoints
316
- | Name | Width | Key Changes |
317
- |------|-------|-------------|
318
- | Mobile Small | <480px | Single column, tight padding, 76.8px hero |
319
- | Mobile | 480–600px | Standard mobile, stacked layout |
320
- | Desktop | >600px | Full layout, 96px hero, expanded sections |
283
+ ## 8. Responsive Behavior
321
284
 
322
- *Note: Resend uses a minimal breakpoint system only 480px and 600px detected. The design is desktop-first with a clean mobile collapse.*
285
+ The collector snapshot is 1440×900. It verifies the compact 76.8px Domaine hero and full 96px hero values on public marketing, but does not supply breakpoint selectors, mobile navigation behavior, or responsive component-state evidence. Preserve the observed type values only; leave unobserved mobile behavior unresolved.
323
286
 
324
- ### Touch Targets
325
- - Pill buttons: adequate padding (5px 12px minimum)
326
- - Tab items: 8px radius with comfortable hit areas
327
- - Navigation links spaced with 0.35px tracking for visual separation
287
+ ## 9. Agent Prompt Guide
328
288
 
329
- ### Collapsing Strategy
330
- - Hero: Domaine 96px → 76.8px on mobile
331
- - Navigation: horizontal → hamburger
332
- - Feature sections: side-by-side → stacked
333
- - Code panels: maintain width, horizontal scroll if needed
334
- - Spacing compresses proportionally
289
+ ### Quick reference
335
290
 
336
- ### Image Behavior
337
- - Product screenshots maintain aspect ratio
338
- - Dark screenshots blend seamlessly with dark background at all sizes
339
- - Rounded corners (12px–16px) maintained across breakpoints
291
+ - Canvas: `#000000`
292
+ - Foreground: `#f0f0f0`
293
+ - Primary action: `#00a3ff` / `#ffffff` / 4px / 12px 20px
294
+ - Hairline: `rgba(214,235,253,0.19)`
295
+ - Outline control: full pill / 5px 12px / Inter 14px
340
296
 
341
- ## 9. Agent Prompt Guide
297
+ ### Example component prompts
342
298
 
343
- ### Quick Color Reference
344
- - Background: Void Black (`#000000`)
345
- - Primary text: Near White (`#f0f0f0`)
346
- - Secondary text: Silver (`#a1a4a5`)
347
- - Border: Frost Border (`rgba(214, 235, 253, 0.19)`)
348
- - Orange accent: `#ff801f`
349
- - Green accent: `#11ff99` (at 18% opacity)
350
- - Blue accent: `#3b9eff`
351
- - Focus ring: `rgb(0, 0, 0) 0px 0px 0px 8px`
352
-
353
- ### Example Component Prompts
354
- - "Create a hero section on pure black (#000000) background. Headline at 96px Domaine Display weight 400, line-height 1.00, letter-spacing -0.96px, near-white (#f0f0f0) text, OpenType 'ss01 ss04 ss11'. Subtitle at 20px ABC Favorit weight 400, line-height 1.30. Two pill buttons: white solid (#ffffff, 9999px radius) and transparent with frost border (rgba(214,235,253,0.19))."
355
- - "Design a navigation bar: dark background with frost border bottom (1px solid rgba(214,235,253,0.19)). Nav links at 14px ABC Favorit weight 500, letter-spacing +0.35px, OpenType 'ss01 ss03 ss04'. White pill CTA right-aligned."
356
- - "Build a feature card: transparent background, frost border (rgba(214,235,253,0.19)), 16px radius. Title at 56px ABC Favorit weight 400, letter-spacing -2.8px. Body at 16px Inter weight 400, #a1a4a5 text."
357
- - "Create a code block using Commit Mono 16px on dark background. Frost border container (24px radius). Syntax colors: orange (#ff801f), blue (#3b9eff), green (#11ff99), yellow (#ffc53d)."
358
- - "Design an accent badge: background #ff5900 at 22% opacity, text #ffa057, 9999px radius, 12px Inter weight 500."
359
-
360
- ### Iteration Guide
361
- 1. Start with pure black — everything floats in the void
362
- 2. Frost borders (`rgba(214, 235, 253, 0.19)`) are the universal structural element — not gray, not neutral
363
- 3. Three fonts, three roles: Domaine (hero), ABC Favorit (sections), Inter (body) — never cross
364
- 4. OpenType stylistic sets are mandatory on display fonts — they define the character
365
- 5. Multi-color accents at low opacity (12–42%) for backgrounds, full opacity for text
366
- 6. Pill shape (9999px) for CTAs and badges, standard radius (4px–16px) for containers
367
- 7. No shadows — use frost borders for depth against the void
299
+ - “Create a public marketing primary CTA with `#00a3ff` background, white text, 4px radius, and 12px 20px padding. Do not turn it into a pill.”
300
+ - “Create a home-style outline control with pale text, a cool translucent hairline, full-pill radius, 5px 12px padding, and loaded Inter if available.”
301
+ - “Create an audiences-style selected menu option only for an open-menu state: 12px radius, 8px 24px padding, and the observed translucent pale treatment.”
368
302
 
369
303
  ## 10. Voice & Tone
370
304
 
371
- Resend's voice is **dev-focused-elegant and API-first.** "Email for developers" concise, capability-driven. Dark void canvas + frost-border depth signal "premium developer tool."
305
+ Resends official mission is to make human communication easier and help developers build better products. Its public language is concise, direct, and builder-oriented rather than inflated.
372
306
 
373
- | Context | Tone |
307
+ | Context | Direction |
374
308
  |---|---|
375
- | CTA | Verb. "Get started", "Try it now", "Sign up" |
376
- | Marketing | API-first. Code snippets dominant in marketing |
377
- | Documentation | Code-first, framework-specific examples |
378
- | Error | Specific. "Invalid API key. Generate new one in Settings." |
309
+ | Product framing | Explain a concrete communication or developer outcome. |
310
+ | CTA | Use a short, clear action. |
311
+ | Technical support | Prefer specific next steps over abstract reassurance. |
379
312
 
380
313
  **Voice samples**
381
- - Tagline: *"Email for developers"* <!-- verified: resend.com homepage 2026-05 -->
382
- - Recurring promo: *"Announcing Resend Forward"* <!-- verified: resend.com homepage 2026-05 -->
383
314
 
384
- **Forbidden phrases.** "Revolutionary email API". Aggressive SendGrid-comparison framing.
315
+ - “Email for developers” <!-- verified: Resend public home, supplied 2026-07-13 collector -->
316
+ - “To help humans communicate” <!-- verified: resend.com/handbook/company/why-we-exist, 2026-07-13 -->
317
+ - “To help developers build better products” <!-- verified: resend.com/handbook/company/why-we-exist, 2026-07-13 -->
385
318
 
386
319
  ## 11. Brand Narrative
387
320
 
388
- Resend was incorporated **January 2023** (open-source `react.email` predecessor launched 2022) by **Bu Kinoshita** and **Zeno Rocha** ([Resend — How we got here](https://resend.com/handbook/company/how-we-got-here), [Y Combinator Resend](https://www.ycombinator.com/companies/resend)). The pair launched **react.email** in 2022 because they were frustrated by how difficult it was to build modern email templates that worked across all email clients that OSS distribution lever became the founder-edge for the commercial Resend product. They **immediately quit their jobs and moved to San Francisco** to join **Y Combinator's Winter 2023 (W23)** batch — **Launch HN: Resend (YC W23)** thread is publicly archived ([Hacker News — Launch HN: Resend](https://news.ycombinator.com/item?id=36309120)). After YC: **$3M seed round** ([Y Combinator/TechCrunch — Resend $3M](https://www.linkedin.com/posts/y-combinator_developer-focused-email-platform-resend-raises-activity-7087087056081866753-GaNB)). Modern email API positioned for developers — React Email components + clean DX. Strong YC + community adoption among indie SaaS builders. The brand voice tracks this positioning: minimal chrome, dark canvas, premium-developer aesthetic.
321
+ Resend began with an open-source project in 2022, when its founders were frustrated by the difficulty of making modern email templates work across email clients. The company launched an email-sending platform in 2023 and joined Y Combinators winter batch. Its official timeline identifies React Email, incorporation in January 2023, and later developer tooling as connected milestones rather than separate brands.
322
+
323
+ The public identity evolved in July 2025 with a new logo, visual identity, wallpapers, expanded color treatment, and a typography system that gives Domaine editorial headline work, ABC Favorit subheading/display work, and Inter product/body work. That narrative supports the marketing atmosphere here; it does not expand the scope of the captured component tokens.
389
324
 
390
325
  ## 12. Principles
391
326
 
392
- 1. **Code is the marketing.** *UI implication:* hero shows real API code, never marketing illustration.
393
- 2. **No shadows, frost borders.** *UI implication:* depth via translucent borders against dark void.
394
- 3. **Pill (9999px) for CTAs and badges.** *UI implication:* primary actions pill-shaped.
395
- 4. **Standard radius (4-16px) for containers.** *UI implication:* mixed radius is intentional.
396
- 5. **React Email is the OSS hook.** *UI implication:* surfaces lead with React Email examples.
327
+ 1. **Reduce friction.** Resend’s official brand guidelines call the brand simple. *UI implication:* use clear action labels and avoid decorative control complexity.
328
+ 2. **Be modern without noise.** The official guidelines describe a look ahead of the present. *UI implication:* use the dark-first palette and measured translucent details rather than generic neon decoration.
329
+ 3. **Earn trust through memorability.** The official guidelines pair memorability with trust. *UI implication:* keep the blue action and cool hairline language consistent where their source component applies.
330
+ 4. **Make for builders.** Resend’s mission centers developers and makers. *UI implication:* keep instructions and technical decisions concrete and actionable.
397
331
 
398
332
  ## 13. Personas
399
333
 
400
- *Personas are fictional archetypes informed by Resend user segments (indie SaaS founders, transactional email engineers, dev-tooling buyers), not individual people.*
334
+ *These are stakeholder archetypes derived from Resend’s official mission and public product framing, not individual people or user research findings.*
401
335
 
402
- **Sofia Russo, 30, Milan.** Indie SaaS founder shipping authentication emails. React Email + Resend for clean DX.
336
+ **Developer building a product.** Needs a direct way to send reliable communications and values precise, implementation-ready guidance.
403
337
 
404
- **Marcus Chen, 38, San Francisco.** Senior engineer migrating from SendGrid. Cares about deliverability + simple API.
338
+ **Product maker coordinating communication.** Needs emails and messaging to feel coherent with the product, without becoming an email-infrastructure specialist.
405
339
 
406
- **Priya Krishnan, 27, Bengaluru.** YC startup building B2B SaaS. Resend as the only email service their team uses.
340
+ **Technical team evaluating a platform.** Needs transparent constraints, clear next actions, and source-backed claims rather than ornamental marketing language.
407
341
 
408
342
  ## 14. States
409
343
 
410
- | State | Treatment |
411
- |---|---|
412
- | **Empty (no domains)** | "Add your first domain" CTA + DNS setup |
413
- | **Empty (no API keys)** | "Generate first API key" CTA |
414
- | **Loading (sending)** | Per-email status visible |
415
- | **Loading (DNS verifying)** | Persistent badge with check button |
416
- | **Error (DNS not verified)** | Specific record + value to add |
417
- | **Error (rate limit)** | Tier limit + upgrade |
418
- | **Success (sent)** | Implicit; appears in dashboard |
419
- | **Success (domain verified)** | Subtle confirmation |
420
- | **Skeleton (email log)** | Frost-border placeholders |
421
- | **Disabled (no plan)** | Upgrade link |
422
- | **Loading (long batch)** | Persistent progress |
423
-
424
- ## 15. Motion & Easing
344
+ Only the supplied public-page states are asserted.
425
345
 
426
- | Token | Value | Use |
346
+ | State | Treatment | Scope |
427
347
  |---|---|---|
428
- | `motion-instant` | 0ms | Selection |
429
- | `motion-fast` | 150ms | Hover |
430
- | `motion-standard` | 250ms | Modal, panel |
348
+ | Default primary CTA | Blue `#00a3ff`, white text, 4px radius | Home marketing |
349
+ | Default outline control | Pale text, cool hairline, full pill | Home marketing |
350
+ | Selected tab panel | Cool translucent fill, pale text, 16px radius | Home marketing |
351
+ | Menu open | Black listbox with cool hairline | Home marketing |
352
+ | Selected menu option | Translucent pale treatment, 12px radius | Audiences marketing |
353
+ | Disabled action | `#4a4a4a` text, 12px radius, 12px padding | Automations marketing |
354
+
355
+ Empty, loading, error, success, skeleton, form validation, toast, dialog, and authenticated-product states were not supplied and are intentionally omitted.
356
+
357
+ ## 15. Motion & Easing
431
358
 
432
- Standard cubic-bezier; no bounce premium register. `prefers-reduced-motion: reduce` removes hover transitions.
359
+ The supplied collector preserves selected, menu-open, and disabled outcomes but not a reliable duration/easing contract. Do not infer a global motion scale from CSS class names or adjacent legacy material. Use reduced motion by default when implementing a new surface, and keep any animation specification outside this reference until a source-backed observation is available.
433
360
 
434
361
  ---
435
362
 
436
- **Verified:** 2026-05-08 (omd:migrate run 50 — Apple-tier)
437
- **Tier 1 sources:** resend.com home + /pricing (live DOM via playwright — **Primary `#00a3ff` Resend Blue 4px** / 41px / 12×20 / 14px·**600** + Tab pill `rgba(24,25,28,0.88)` Charcoal-translucent 16px (pricing tab active) + Announcement banner 9999px translucent blue (top promo) + Outline ghost 16px + Mid-Gray `#a1a4a5` nav text).
438
- **Tier 2 sources:** styles.refero.design / getdesign.md no record.
439
- **Tier 2 (Philosophy/founders):** Resend handbook (How we got here), Y Combinator (Resend W23), Hacker News (Launch HN W23), LinkedIn (YC TechCrunch $3M post), No Cap Blog (Rocha), Mintlify customer story.
440
- **Style ref:** `stripe`. **Conflicts unresolved:** none. **Earlier mistake reverted (significant):** prior footer captured 16px tab/ghost variants only — canonical Primary is `#00a3ff` **Resend Blue 4px** (the brand-defining color, missed entirely). §4 material correction.
363
+ **Verified:** 2026-07-13
364
+ **Tier 1 sources:** supplied collector for https://resend.com/, https://resend.com/features/audiences, and https://resend.com/features/automations; official Resend brand guidelines, rebrand article, About, history, and mission pages.
365
+ **Tier 2 sources:** getdesign Resend analysis opened; Refero query attempted but unavailable through built-in web open.
366
+ **Conflicts unresolved:** none