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,316 +4,318 @@ name: Miro
4
4
  country: US
5
5
  category: design-tools
6
6
  homepage: "https://miro.com"
7
- primary_color: "#ffd02f"
7
+ primary_color: "#fde050"
8
8
  logo:
9
9
  type: simpleicons
10
10
  slug: miro
11
- verified: "2026-05-15"
11
+ verified: "2026-07-13"
12
12
  omd: "0.1"
13
13
  ds:
14
14
  name: Mirotone
15
- url: "https://mirotone.xyz"
15
+ url: "https://www.mirotone.xyz"
16
16
  type: system
17
- description: Miro's CSS component library for apps built on the Miro platform.
17
+ description: Miro's base CSS component library for applications on the Miro platform.
18
18
  og_image: "https://www.mirotone.xyz/cover.png"
19
+ verification_v2:
20
+ schema: 2
21
+ checked: "2026-07-13"
22
+ surfaces:
23
+ - { id: home, kind: public-marketing, url: "https://miro.com/ko/", inspected: "2026-07-13" }
24
+ - { id: pricing-desktop, kind: public-pricing, url: "https://miro.com/ko/pricing/", inspected: "2026-07-13" }
25
+ - { id: pricing-repeat, kind: public-pricing-repeat, url: "https://miro.com/ko/pricing/", inspected: "2026-07-13" }
26
+ sources:
27
+ - { id: home-live, kind: product-surface, url: "https://miro.com/ko/", captured: "2026-07-13" }
28
+ - { id: pricing-live, kind: product-surface, url: "https://miro.com/ko/pricing/", captured: "2026-07-13" }
29
+ - { id: miro-about, kind: official-doc, url: "https://miro.com/about/", captured: "2026-07-13" }
30
+ - { id: miro-aura, kind: brand-asset, url: "https://miro.com/aura/", captured: "2026-07-13" }
31
+ - { id: miro-identity, kind: brand-asset, url: "https://miro.com/blog/miro-vis/", captured: "2026-07-13" }
32
+ - { id: mirotone-docs, kind: official-doc, url: "https://developers.miro.com/docs/design-guidelines", captured: "2026-07-13" }
33
+ - { id: roobert-foundry, kind: brand-asset, url: "https://displaay.net/typeface/roobert", captured: "2026-07-13" }
34
+ - { id: roobert-license, kind: license, url: "https://displaay.net/help/licenses", captured: "2026-07-13" }
35
+ conflicts: []
36
+ claims:
37
+ "tokens.colors.brand-yellow": &home_live { surface_id: home, source_id: home-live, method: computed-style, captured: "2026-07-13" }
38
+ "tokens.colors.action-blue": &pricing_live { surface_id: pricing-desktop, source_id: pricing-live, method: computed-style, captured: "2026-07-13" }
39
+ "tokens.colors.action-blue-border": *pricing_live
40
+ "tokens.colors.ink": *home_live
41
+ "tokens.colors.canvas": *pricing_live
42
+ "tokens.colors.border-input": *home_live
43
+ "tokens.colors.border-control": *pricing_live
44
+ "tokens.colors.border-subtle": *pricing_live
45
+ "tokens.colors.muted": *pricing_live
46
+ "tokens.typography.family.ui": &font_live { surface_id: home, source_id: home-live, method: computed-style-fontfaceset-and-source-url, captured: "2026-07-13" }
47
+ "tokens.typography.family.display": *font_live
48
+ "tokens.typography.display-hero.size": *font_live
49
+ "tokens.typography.display-hero.weight": *font_live
50
+ "tokens.typography.display-hero.lineHeight": *font_live
51
+ "tokens.typography.display-hero.tracking": *font_live
52
+ "tokens.typography.display-hero.use": *font_live
53
+ "tokens.typography.display-section.size": *font_live
54
+ "tokens.typography.display-section.weight": *font_live
55
+ "tokens.typography.display-section.lineHeight": *font_live
56
+ "tokens.typography.display-section.tracking": *font_live
57
+ "tokens.typography.display-section.use": *font_live
58
+ "tokens.typography.body.size": *pricing_live
59
+ "tokens.typography.body.weight": *pricing_live
60
+ "tokens.typography.body.lineHeight": *pricing_live
61
+ "tokens.typography.body.use": *pricing_live
62
+ "tokens.typography.action.size": *pricing_live
63
+ "tokens.typography.action.weight": *pricing_live
64
+ "tokens.typography.action.lineHeight": *pricing_live
65
+ "tokens.typography.action.use": *pricing_live
66
+ "tokens.spacing.xs": *home_live
67
+ "tokens.spacing.sm": *home_live
68
+ "tokens.spacing.md": *home_live
69
+ "tokens.spacing.lg": *home_live
70
+ "tokens.spacing.xl": *home_live
71
+ "tokens.spacing.xxl": *home_live
72
+ "tokens.rounded.control": *pricing_live
73
+ "tokens.rounded.segmented": *pricing_live
74
+ "tokens.components.pricing-period-toggle.type": &toggle { surface_id: pricing-desktop, source_id: pricing-live, method: computed-style-and-observed-state, captured: "2026-07-13" }
75
+ "tokens.components.pricing-period-toggle.radius": *toggle
76
+ "tokens.components.pricing-period-toggle.height": *toggle
77
+ "tokens.components.pricing-period-toggle.padding": *toggle
78
+ "tokens.components.pricing-period-toggle.states": *toggle
79
+ "tokens.components.pricing-period-toggle.use": *toggle
19
80
  tokens:
20
- source: prose-derived
21
- extracted: "2026-06-09"
81
+ source: reconciled
82
+ extracted: "2026-07-13"
83
+ note: "Machine tokens are limited to supplied public marketing/pricing capture. Mirotone, Aura, and documentation establish context only; they do not supply unobserved live variants."
84
+ components_harvested: true
22
85
  colors:
23
- brand-yellow: "#ffd02f"
86
+ brand-yellow: "#fde050"
87
+ action-blue: "#3859ff"
88
+ action-blue-border: "#7a90fe"
24
89
  ink: "#1c1c1e"
25
90
  canvas: "#ffffff"
26
- blue: "#5b76fe"
27
- blue-pressed: "#2a41b6"
28
- coral: "#ffc6c6"
29
- teal: "#c3faf5"
30
- teal-dark: "#187574"
31
- orange: "#ffe6cd"
32
- rose: "#ffd8f4"
33
- pink: "#fde0f0"
34
- red: "#fbd4d4"
35
- success: "#00b473"
36
- slate: "#555a6a"
37
- placeholder: "#a5a8b5"
38
- border: "#c7cad5"
39
91
  border-input: "#e9eaef"
92
+ border-control: "#c7cad5"
93
+ border-subtle: "#e0e2e8"
94
+ muted: "#555a6a"
40
95
  typography:
41
- family: { sans: "Roobert PRO", mono: "Roobert PRO" }
42
- display-hero: { size: 56, weight: 400, lineHeight: 1.15, tracking: -1.68, use: "Hero, Roobert PRO Medium" }
43
- section: { size: 48, weight: 400, lineHeight: 1.15, tracking: -1.44, use: "Section heading, Roobert PRO Medium" }
44
- card-title: { size: 24, weight: 400, lineHeight: 1.15, tracking: -0.72, use: "Card title, Roobert PRO Medium" }
45
- subheading: { size: 22, weight: 400, lineHeight: 1.35, tracking: -0.44, use: "Sub-heading, Noto Sans" }
46
- feature: { size: 18, weight: 600, lineHeight: 1.35, use: "Feature, Roobert PRO Medium" }
47
- body: { size: 18, weight: 400, lineHeight: 1.45, use: "Body, Noto Sans" }
48
- body-std: { size: 16, weight: 400, lineHeight: 1.50, tracking: -0.16, use: "Standard body, Noto Sans" }
49
- button: { size: 17.5, weight: 700, lineHeight: 1.29, tracking: 0.175, use: "Button, Roobert PRO Medium" }
50
- caption: { size: 14, weight: 400, lineHeight: 1.71, use: "Caption, Roobert PRO Medium" }
51
- micro: { size: 10.5, weight: 400, lineHeight: 0.90, use: "Uppercase micro label, Roobert PRO" }
52
- spacing: { xs: 4, sm: 8, md: 12, base: 16, lg: 24, xl: 32, xxl: 48, section: 64 }
53
- rounded: { sm: 8, md: 12, lg: 24, full: 9999 }
54
- shadow:
55
- ring: "rgb(224,226,232) 0px 0px 0px 1px"
96
+ family: { ui: "Noto Sans", display: "Roobert PRO Medium" }
97
+ display-hero: { size: 56, weight: 500, lineHeight: 56, tracking: -1.68, use: "Observed public home display headline" }
98
+ display-section: { size: 48, weight: 400, lineHeight: 55.2, tracking: -1.44, use: "Observed public home section heading" }
99
+ body: { size: 14, weight: 400, lineHeight: 20, use: "Observed public pricing control and list text" }
100
+ action: { size: 16, weight: 600, lineHeight: 24, use: "Observed public pricing action" }
101
+ spacing: { xs: 4, sm: 8, md: 12, lg: 16, xl: 24, xxl: 32 }
102
+ rounded: { control: 8, segmented: 40 }
56
103
  components:
57
- button-primary: { type: button, bg: "#5b76fe", fg: "#ffffff", radius: 8, padding: "7px 12px", font: "17.5px/700", use: "Primary CTA, blue" }
58
- button-outline: { type: button, bg: "transparent", fg: "#1c1c1e", radius: 8, padding: "7px 12px", font: "17.5px/700", use: "Secondary outlined button" }
59
- button-circle: { type: button, bg: "#ffffff", radius: 9999, padding: "12px", use: "Circular icon button, ring shadow" }
60
- input: { type: input, bg: "#ffffff", fg: "#1c1c1e", radius: 8, padding: "16px", font: "16px/400", use: "Standard input" }
61
- card: { type: card, bg: "#ffffff", radius: 12, padding: "16px", use: "Default card with ring-shadow border" }
62
- card-pastel: { type: card, bg: "#ffc6c6", fg: "#1c1c1e", radius: 12, padding: "24px", use: "Feature card with pastel surface" }
63
- badge: { type: badge, bg: "#5b76fe", fg: "#ffffff", radius: 8, padding: "4px 8px", font: "12px/400", use: "Default badge" }
64
- badge-success: { type: badge, bg: "#00b473", fg: "#ffffff", radius: 8, padding: "4px 8px", use: "Success badge" }
65
- components_harvested: true
104
+ pricing-period-toggle: { type: toggle, radius: 40, height: 34, padding: "6px 16px", states: "checked, unchecked", use: "Public pricing billing-period selector" }
66
105
  ---
67
106
 
68
107
  # Design System Inspiration of Miro
69
108
 
70
109
  ## 1. Visual Theme & Atmosphere
71
110
 
72
- Miro's website is a clean, collaborative-tool-forward platform that communicates "visual thinking" through generous whitespace, pastel accent colors, and a confident geometric font. The design uses a predominantly white canvas with near-black text (`#1c1c1e`) and a distinctive pastel color palette coral, rose, teal, orange, yellow, moss each representing different collaboration contexts.
73
-
74
- The typography uses Roobert PRO Medium as the primary display font with OpenType character variants (`"blwf", "cv03", "cv04", "cv09", "cv11"`) and negative letter-spacing (-1.68px at 56px). Noto Sans handles body text with its own stylistic set (`"liga" 0, "ss01", "ss04", "ss05"`). The design is built with Framer, giving it smooth animations and modern component patterns.
111
+ Miro is a collaborative canvas for teams that want to move from an early idea to a shared outcome. Its first version, RealtimeBoard, began in 2011 as a way for Andrey Khusid’s design agency to communicate with clients at a distance; Miro now describes the service as a place for teams and AI to develop strategy, design products and services, and manage the innovation lifecycle. The public presentation connects that expansive canvas metaphor to a deliberately vivid visual language: an optimistic yellow brand signal, restrained white and near-black functional surfaces, and blue conversion actions in the captured pricing flow. Miro’s 2023 identity work says yellow should be the protagonist rather than paint every surface, while the current Aura material expands the palette for colorful board work and pairs it with a broad-language body face.
75
112
 
76
- **Key Characteristics:**
77
- - White canvas with near-black (`#1c1c1e`) text
78
- - Roobert PRO Medium with multiple OpenType character variants
79
- - Pastel accent palette: coral, rose, teal, orange, yellow, moss (light + dark pairs)
80
- - Blue 450 (`#5b76fe`) as primary interactive color
81
- - Success green (`#00b473`) for positive states
82
- - Generous border-radius: 8px–50px range
83
- - Framer-built with smooth motion patterns
84
- - Ring shadow border: `rgb(224,226,232) 0px 0px 0px 1px`
113
+ - **Yellow as a signal:** the official identity story calls yellow iconic and sparing; the supplied public capture observes `#fde050` on a 40px promo action.
114
+ - **Canvas before chrome:** white surfaces and near-black `#1c1c1e` text dominate the captured public controls, leaving color to mark a moment rather than fill the whole page.
115
+ - **Workroom energy:** Miro’s own language foregrounds collaborative, canvas-first work; brand imagery can be expressive, while functional pricing controls remain compact and measured.
85
116
 
86
117
  ## 2. Color Palette & Roles
87
118
 
88
- ### Primary
89
- - **Near Black** (`#1c1c1e`): Primary text
90
- - **White** (`#ffffff`): `--tw-color-white`, primary surface
91
- - **Blue 450** (`#5b76fe`): `--tw-color-blue-450`, primary interactive
92
- - **Actionable Pressed** (`#2a41b6`): `--tw-color-actionable-pressed`
93
-
94
- ### Pastel Accents (Light/Dark pairs)
95
- - **Coral**: Light `#ffc6c6` / Dark `#600000`
96
- - **Rose**: Light `#ffd8f4` / Dark (implied)
97
- - **Teal**: Light `#c3faf5` / Dark `#187574`
98
- - **Orange**: Light `#ffe6cd`
99
- - **Yellow**: Dark `#746019`
100
- - **Moss**: Dark `#187574`
101
- - **Pink** (`#fde0f0`): Soft pink surface
102
- - **Red** (`#fbd4d4`): Light red surface
103
- - **Dark Red** (`#e3c5c5`): Muted red
104
-
105
- ### Semantic
106
- - **Success** (`#00b473`): `--tw-color-success-accent`
107
-
108
- ### Neutral
109
- - **Slate** (`#555a6a`): Secondary text
110
- - **Input Placeholder** (`#a5a8b5`): `--tw-color-input-placeholder`
111
- - **Border** (`#c7cad5`): Button borders
112
- - **Ring** (`rgb(224,226,232)`): Shadow-as-border
119
+ ### Observed public-surface roles
120
+
121
+ - **Miro Yellow / promo accent** (`#fde050`): live 40px marketing/promo action on home and pricing; Miro’s brand story establishes yellow as the central identity color, but no general primary-action role is inferred.
122
+ - **Action Blue** (`#3859ff`): repeated public-pricing CTA fill with white text.
123
+ - **Action Blue border** (`#7a90fe`): observed 1px border/inset edge on the blue pricing CTA.
124
+ - **Ink** (`#1c1c1e`): repeated public text and control color.
125
+ - **Canvas** (`#ffffff`): observed public surface and selected pricing-period fill.
126
+ - **Input border** (`#e9eaef`): observed on the single public-home email field.
127
+ - **Control border** (`#c7cad5`): observed outlined public pricing action border.
128
+ - **Subtle border** (`#e0e2e8`): observed pricing badge/control border.
129
+ - **Muted text** (`#555a6a`): observed unchecked pricing-period label.
130
+
131
+ Miro’s Aura material names a broader accent palette—Coral, Cyan, Lilac, Lime, Sunshine, Orange, Pink, Moss, and Teal—but the supplied capture does not establish their exact current public-web values or semantic component roles. They remain narrative context, not machine tokens.
113
132
 
114
133
  ## 3. Typography Rules
115
134
 
116
- ### Font Families
117
- - **Display**: `Roobert PRO Medium`, fallback: Placeholder — `"blwf", "cv03", "cv04", "cv09", "cv11"`
118
- - **Display Variants**: `Roobert PRO SemiBold`, `Roobert PRO SemiBold Italic`, `Roobert PRO`
119
- - **Body**: `Noto Sans` — `"liga" 0, "ss01", "ss04", "ss05"`
120
-
121
- ### Hierarchy
122
-
123
- | Role | Font | Size | Weight | Line Height | Letter Spacing |
124
- |------|------|------|--------|-------------|----------------|
125
- | Display Hero | Roobert PRO Medium | 56px | 400 | 1.15 | -1.68px |
126
- | Section Heading | Roobert PRO Medium | 48px | 400 | 1.15 | -1.44px |
127
- | Card Title | Roobert PRO Medium | 24px | 400 | 1.15 | -0.72px |
128
- | Sub-heading | Noto Sans | 22px | 400 | 1.35 | -0.44px |
129
- | Feature | Roobert PRO Medium | 18px | 600 | 1.35 | normal |
130
- | Body | Noto Sans | 18px | 400 | 1.45 | normal |
131
- | Body Standard | Noto Sans | 16px | 400–600 | 1.50 | -0.16px |
132
- | Button | Roobert PRO Medium | 17.5px | 700 | 1.29 | 0.175px |
133
- | Caption | Roobert PRO Medium | 14px | 400 | 1.71 | normal |
134
- | Small | Roobert PRO Medium | 12px | 400 | 1.15 | -0.36px |
135
- | Micro Uppercase | Roobert PRO | 10.5px | 400 | 0.90 | uppercase |
135
+ ### Evidence classes
136
136
 
137
- ## 4. Component Stylings
137
+ - **Official product-use:** Miro Aura calls Noto Sans its new body-text font, citing broad language and writing-system support for multilingual hybrid teams.
138
+ - **Live computed public-surface use:** `Noto Sans` is loaded/high confidence with 882 visible uses and 24 font-source URLs in the supplied bundle. `Roobert PRO Medium` is loaded/high confidence with 46 visible uses; the bundle also records the loaded `roobertPROLocal` face with three Miro-hosted WOFF2 source URLs. These FontFaceSet-backed families are the only typography families promoted to tokens.
139
+ - **Official distributed font asset and licence boundary:** Displaay identifies Roobert as a geometric sans with weight, slant, and mono axes. Displaay’s licence describes paid usage, including web self-hosting via `@font-face`; it is the foundry’s licence, not evidence that Miro grants third parties permission to redistribute its hosted files.
140
+ - **Declared-only:** Fragment Mono, Inter Placeholder, M PLUS 1, Nanum Pen Script, Vazirmatn, and placeholder/fallback faces are declared with zero visible use in this capture. They are not substitutes or UI tokens.
141
+ - **System/unresolved:** `sans-serif` is a system stack. Computed `Roobert PRO` has visible uses but no matching loaded-font record, so it is not separately tokenized.
138
142
 
139
- ### Buttons
143
+ ### Measured public hierarchy
140
144
 
141
- **Blue Primary**
142
- - Background: `#5b76fe` (`--tw-color-blue-450`)
143
- - Text: `#ffffff`
144
- - Radius: 8px
145
- - Padding: 7px 12px
146
- - Font: 17.5px / 700 / Roobert PRO Medium
147
- - Hover: `#2a41b6` (`--tw-color-actionable-pressed`)
148
- - Use: Primary CTA — implied from interactive blue
145
+ | Role | Family | Size | Weight | Line height | Tracking | Provenance |
146
+ |---|---|---:|---:|---:|---:|---|
147
+ | Public display hero | Roobert PRO Medium | 56px | 500 | 56px | -1.68px | `home::h1` |
148
+ | Public section heading | Roobert PRO Medium | 48px | 400 | 55.2px | -1.44px | `home::h2` |
149
+ | Public pricing action | Noto Sans | 16px | 600 | 24px | normal | `surface-2::[data-omd-capture="136"]` |
150
+ | Pricing control/list text | Noto Sans | 14px | 400 | 20px | normal | `surface-2::[data-omd-capture="89"]` |
149
151
 
150
- **Outlined**
151
- - Background: transparent
152
- - Text: `#1c1c1e`
153
- - Border: 1px solid `#c7cad5`
154
- - Radius: 8px
155
- - Padding: 7px 12px
156
- - Font: 17.5px / 700 / Roobert PRO Medium
157
- - Use: Secondary outlined button
152
+ ## 4. Component Stylings
158
153
 
159
- **White Circle**
160
- - Background: `#ffffff`
161
- - Radius: 50%
162
- - Padding: 12px (icon button)
163
- - Shadow: `rgb(224,226,232) 0px 0px 0px 1px` (ring shadow)
164
- - Use: Circular icon button
154
+ All variants below are constrained to the supplied public marketing/pricing capture. Selector, surface, and observed-state provenance are kept with each entry; Mirotone documentation establishes a broader app-library context but does not turn undocumented or unobserved variants into tokens.
165
155
 
166
- ### Inputs
156
+ ### Public actions
167
157
 
168
- **Default**
169
- - Background: `#ffffff`
158
+ **Yellow promo action**
159
+ - Background: `#fde050`
160
+ - Text: `#1c1c1e`
161
+ - Radius: `8px`
162
+ - Padding: `8px 12px`
163
+ - Height: `40px`
164
+ - Font: `16px / 900 / Roobert PRO Medium`
165
+ - Use: public promo/banner action; `home::[data-omd-capture="0"]`, repeated at `surface-2::[data-omd-capture="76"]`
166
+
167
+ **Blue pricing action**
168
+ - Background: `#3859ff`
169
+ - Text: `#ffffff`
170
+ - Border: `1px solid #7a90fe`
171
+ - Radius: `8px`
172
+ - Padding: `11px 15px`
173
+ - Height: `48px`
174
+ - Font: `16px / 600 / Noto Sans`
175
+ - Use: public pricing CTA; `surface-2::[data-omd-capture="136"]`, repeated on `surface-3`
176
+
177
+ **Outlined pricing action**
178
+ - Background: transparent
170
179
  - Text: `#1c1c1e`
171
- - Border: 1px solid `#e9eaef`
172
- - Radius: 8px
173
- - Padding: 16px
174
- - Font: 16px / 400 / Noto Sans
175
- - Placeholder: `#a5a8b5` (`--tw-color-input-placeholder`)
176
- - Use: Standard input
180
+ - Border: `1px solid #c7cad5`
181
+ - Radius: `8px`
182
+ - Padding: `11px 15px`
183
+ - Height: `48px`
184
+ - Font: `16px / 600 / Noto Sans`
185
+ - Use: public pricing action; `surface-2::[data-omd-capture="137"]`, repeated on `surface-3`
177
186
 
178
- ### Cards
187
+ ### Public form and choice controls
179
188
 
180
- **Standard**
189
+ **Email input**
181
190
  - Background: `#ffffff`
182
- - Radius: 12px
183
- - Padding: 16px
184
- - Shadow: `rgb(224,226,232) 0px 0px 0px 1px` (ring shadow)
185
- - Use: Default card with ring-shadow border
186
-
187
- **Pastel Surface**
188
- - Background: pastel accent (e.g., `#ffc6c6` Coral, `#c3faf5` Teal, `#ffe6cd` Orange, `#fde0f0` Pink)
189
191
  - Text: `#1c1c1e`
190
- - Radius: 12-24px
191
- - Padding: 24px
192
- - Use: Feature card with pastel surface
192
+ - Border: `1px solid #e9eaef`
193
+ - Radius: `8px`
194
+ - Padding: `16px`
195
+ - Height: `48px`
196
+ - Font: `16px / 400 / Noto Sans`
197
+ - Use: public home email field; `home::[data-omd-capture="82"]` (one observed instance)
198
+
199
+ **Pricing-period toggle**
200
+ - Radius: `40px`
201
+ - Padding: `6px 16px`
202
+ - Height: `34px`
203
+ - Font: `16px / 600 / Noto Sans`
204
+ - Checked: white background with `#1c1c1e` text; `surface-2::[data-omd-capture="86"]`
205
+ - Unchecked: transparent background with `#555a6a` text at `16px / 400`; `surface-2::[data-omd-capture="85"]`
206
+ - Use: public pricing billing-period selector; both states observed
207
+
208
+ ### Captured dialog boundary
209
+
210
+ **Pricing dialog**
211
+ - Background: `oklch(1 0 0)`
212
+ - Text: `#1c1c1e`
213
+ - Padding: `20px 24px`
214
+ - Font: `16px / 400 / roobertPROLocal`
215
+ - Dialog-open: `surface-2::[data-omd-interaction-capture="dialog-0-8"]`; shadow includes `rgba(0, 0, 0, 0.1) 0px 10px 15px -3px`
216
+ - Use: dialog opened by a captured public-pricing interaction; no global modal token or further state contract is inferred
193
217
 
194
- **Large Panel**
195
- - Background: `#ffffff`
196
- - Radius: 24px
197
- - Padding: 32px
198
- - Shadow: `rgb(224,226,232) 0px 0px 0px 1px`
199
- - Use: Large containers
218
+ ## 5. Layout Principles
200
219
 
201
- ### Badges
220
+ ### Observed spacing scale
202
221
 
203
- **Default**
204
- - Background: `#5b76fe`
205
- - Text: `#ffffff`
206
- - Radius: 8px
207
- - Padding: 4px 8px
208
- - Font: 12px / 400 / Roobert PRO Medium
209
- - Use: Inferred from §1-§2 baseline (no explicit DS variant in source).
222
+ The supplied public capture repeatedly uses 4, 8, 12, 16, 24, and 32px values. This reference retains only those observed values as its spacing tokens.
210
223
 
211
- **Success**
212
- - Background: `#00b473` (`--tw-color-success-accent`)
213
- - Text: `#ffffff`
214
- - Radius: 8px
215
- - Padding: 4px 8px
216
- - Use: Inferred from §1-§2 baseline (no explicit DS variant in source).
224
+ ### Observed shape scale
217
225
 
218
- ## 5. Layout Principles
219
- - Spacing: 1–24px base scale
220
- - Radius: 8px (buttons), 10px–12px (cards), 20px–24px (panels), 40px–50px (large containers)
221
- - Ring shadow: `rgb(224,226,232) 0px 0px 0px 1px`
226
+ - **Public action and email input:** `8px`
227
+ - **Pricing-period option:** `40px`
228
+ - **Circular controls:** `50%` was observed locally on home controls; it is intentionally not normalized into a general-purpose radius token.
222
229
 
223
230
  ## 6. Depth & Elevation
224
- Minimal — ring shadow + pastel surface contrast
231
+
232
+ No global elevation scale is established. The captured pricing dialog has a local two-part black shadow, while public buttons are largely flat; retain that shadow only when reproducing the recorded dialog context.
225
233
 
226
234
  ## 7. Do's and Don'ts
235
+
227
236
  ### Do
228
- - Use pastel light/dark pairs for feature sections
229
- - Apply Roobert PRO with OpenType character variants
230
- - Use Blue 450 (#5b76fe) for interactive elements
237
+
238
+ - Use yellow as a deliberate public-brand signal rather than a blanket surface fill.
239
+ - Use the supplied blue CTA geometry only for public pricing/conversion contexts.
240
+ - Default to the evidence-backed Noto Sans body/UI family where multilingual readability is needed.
241
+ - Keep public actions compact, with the observed 8px control corners.
242
+
231
243
  ### Don't
232
- - Don't use heavy shadows
233
- - Don't mix more than 2 pastel accents per section
244
+
245
+ - Dont turn the observed yellow promo button into Miro’s universal primary action.
246
+ - Don’t promote declared-only scripts, placeholders, or a system stack to Miro typography.
247
+ - Don’t apply Mirotone app-library components to Miro marketing/pricing tokens without direct live evidence.
248
+ - Don’t invent hover, pressed, focus, error, loading, toast, or animation variants from the captured dialog/toggle states.
234
249
 
235
250
  ## 8. Responsive Behavior
236
- Breakpoints: 425px, 576px, 768px, 896px, 1024px, 1200px, 1280px, 1366px, 1700px, 1920px
251
+
252
+ The supplied capture is desktop-only (`1440x900`) for the home and two pricing records. It does not establish a mobile breakpoint, layout transition, or responsive component variant.
237
253
 
238
254
  ## 9. Agent Prompt Guide
239
- ### Quick Color Reference
240
- - Text: Near Black (`#1c1c1e`)
241
- - Background: White (`#ffffff`)
242
- - Interactive: Blue 450 (`#5b76fe`)
243
- - Success: `#00b473`
244
- - Border: `#c7cad5`
245
- ### Example Component Prompts
246
- - "Create hero: white background. Roobert PRO Medium 56px, line-height 1.15, letter-spacing -1.68px. Blue CTA (#5b76fe). Outlined secondary (1px solid #c7cad5, 8px radius)."
255
+
256
+ ### Evidence-safe prompts
257
+
258
+ - “Create a public pricing CTA using the observed `#3859ff` fill, white text, `#7a90fe` 1px border, 8px radius, 11px 15px padding, and 48px height. Keep it scoped to a pricing/conversion context.”
259
+ - “Use Miro Yellow `#fde050` only for a compact public promo action with `#1c1c1e` text, 8px radius, 8px 12px padding, and 40px height; do not assume it is the default app CTA.”
260
+ - “Set functional body/UI text in Noto Sans. Reserve FontFaceSet-backed Roobert display use for short public headings; do not substitute a declared-only or system family.”
261
+ - “For the pricing-period selector, use only the captured checked and unchecked treatments; do not invent transition or focus behavior.”
247
262
 
248
263
  ## 10. Voice & Tone
249
264
 
250
- Miro's voice is **collaboration-warm and workshop-confident.** "AI 이노베이션 워크스페이스" (homepage 2026-05) brand evolution from "online whiteboard" to "AI innovation workspace". Marketing copy emphasizes team workshops + collaborative moments. Yellow `#fde050` CTA signals "playful, sticky-note inspired."
265
+ Miros first-party language is collaborative, expansive, and outcome-oriented: teams come together on a canvas to dream, design, and build. Its recent AI positioning keeps the emphasis on shared work rather than an individual assistant.
251
266
 
252
- | Context | Tone |
267
+ | Context | Supported voice evidence |
253
268
  |---|---|
254
- | CTA | Verb. "Sign up free", "Save your spot", "Start free" |
255
- | Marketing | Workshop-language. Customer co-creation moments |
256
- | Documentation | Visual-heavy, screenshot-driven |
257
- | Error | Specific. "Board permissions changed. Refresh to see updates." |
269
+ | Mission | “empower teams to create the next big thing” Miro About |
270
+ | Product metaphor | “canvas-first” / “from idea to outcome” — Miro newsroom |
271
+ | Accessibility | “Everyone should be able to collaborate … without barriers” — Miro Accessibility |
258
272
 
259
- **Voice samples**
260
- - Marketing CTA: *"SAVE YOUR SPOT"* <!-- verified: miro.com/ko homepage 2026-05 -->
261
-
262
- **Forbidden phrases.** "Revolutionary whiteboard". Aggressive Mural-comparison framing.
273
+ No invented error copy or prohibition list is asserted.
263
274
 
264
275
  ## 11. Brand Narrative
265
276
 
266
- Miro was founded **2011 as RealtimeBoard** in **Perm, Russia** (~1,150 km east of Moscow) by **Andrey Khusid** and **Oleg Shardin** ([Miro — Wikipedia](https://en.wikipedia.org/wiki/Miro_(collaboration_platform)), [bne IntelliNews — Miro $17.5B](https://www.intellinews.com/founded-in-russia-11-years-ago-the-miro-visual-collaboration-software-startup-is-now-valued-at-17-5bn-231861/)). Khusid + Shardin had previously **founded the design agency Vitamin Group in 2005** offering web/product/app design services; **2012 they left Vitamin to focus on RealtimeBoard full-time**. Funding ladder: **$25M Series A (2018)** led by **Accel** with Altair Capital + Scale Venture Partners → **$50M Series B (April 2020)**, after which user base grew **5×** (5M → 30M) and paying customers **5.5×** (20K 130K) **$400M Series C (January 2022)** co-led by **ICONIQ Growth + Accel + Atlassian + Dragoneer + GIC + Scale Venture Partners** at **$17.5B post-money valuation**, total funding ~**$476M** ([Miro Newsroom — $400M Series C](https://miro.com/newsroom/miro-series-c/), [BusinessWire — Series B $50M April 2020](https://www.businesswire.com/news/home/20200427005109/en/Miro-Secures-%2450-Million-in-Series-B-Funding-for-Virtual-Whiteboarding-for-Remote-Teams)). **Rebranded RealtimeBoard → Miro in 2019** reflecting a global identity. Strong adoption in design teams, agile workshops, and consulting. AI features added 2024-2025 to position Miro as the **"AI innovation workspace"** (live `miro.com/ko` page-title confirms 2026-05).
277
+ Miro’s own account traces the product to a 2011 RealtimeBoard experiment built so a design agency could communicate with distant clients. The company now describes the product as a visual workspace where teams work with AI across strategy, product design, and innovation delivery.
278
+
279
+ Its 2023 identity work explains the expression behind the public brand: yellow had always been iconic, but the brand team chose to use it with moderation and supporting colors rather than flood every interface. Aura extends that evolution into a richer board palette and Noto Sans body text for multilingual collaboration. The result is a useful split for this reference: lively brand expression belongs to marketing and board context, while only the supplied live public controls become implementation tokens.
267
280
 
268
281
  ## 12. Principles
269
282
 
270
- 1. **Yellow signals action.** `#fde050` CTA inherited from sticky-note culture. *UI implication:* primary actions yellow on white.
271
- 2. **Roobert PRO is the type voice.** Medium weight throughout. *UI implication:* don't substitute system fonts.
272
- 3. **Workshop > toolbox.** *UI implication:* product positioning treats Miro as a meeting/workshop space, not a static design tool.
273
- 4. **Generous radius for warmth.** *UI implication:* 8px+ on cards, 16px+ on hero modules.
274
- 5. **AI as workshop participant.** *UI implication:* AI features framed as joining the workshop, not replacing humans.
283
+ 1. **The canvas keeps work shared.** *UI implication:* prioritize surfaces that let teams move among ideas, structure, and outcomes without treating the workspace as a document-only flow.
284
+ 2. **Yellow is an intentional identity signal.** *UI implication:* use a yellow accent to focus attention, not as a default fill for every public or product action.
285
+ 3. **Multilingual clarity is a product concern.** *UI implication:* use Noto Sans for body/UI content where the live and official evidence supports it.
286
+ 4. **Accessible collaboration is part of the experience.** *UI implication:* support keyboard access, named colors, readable contrast, and reduced-motion behavior when implementing product work with separate surface evidence.
275
287
 
276
288
  ## 13. Personas
277
289
 
278
- *Personas are fictional archetypes informed by Miro user segments (UX designers, agile coaches, consulting partners), not individual people.*
290
+ *These are first-party stakeholder groups, not fictional individual personas.*
279
291
 
280
- **Yuki Tanaka, 32, Tokyo.** UX designer at agency. Runs client workshops in Miro per week.
292
+ - **Cross-functional innovation teams:** Miro describes teams using the canvas to develop strategy, design products and services, and manage the innovation lifecycle.
293
+ - **Multilingual, hybrid collaborators:** Aura explicitly positions Noto Sans around broad language support for distributed teams.
294
+ - **People with access needs:** Miro’s accessibility work addresses keyboard, screen-reader, voice-control, color, and motion-sensitive collaboration.
281
295
 
282
- **Marcus Chen, 41, San Francisco.** Agile coach at Series C SaaS. Sprint planning + retros in Miro.
296
+ ## 14. States
283
297
 
284
- **Sofia Russo, 36, Milan.** Independent design consultant. Miro for client research + brainstorming.
298
+ Only the following states are observed or officially described in this pass:
285
299
 
286
- ## 14. States
300
+ | State | Treatment | Provenance |
301
+ |---|---|---|
302
+ | Checked | White pricing-period option with `#1c1c1e` text | `surface-2::[data-omd-capture="86"]` |
303
+ | Unchecked | Transparent pricing-period option with `#555a6a` text | `surface-2::[data-omd-capture="85"]` |
304
+ | Dialog open | White pricing dialog with local shadow | captured pricing dialog interactions |
305
+ | Disabled | 36px circular home control was captured disabled | `home::[data-omd-capture="100"]` |
306
+ | Reduced motion | Animations and transitions removed | official Miro Accessibility page |
287
307
 
288
- | State | Treatment |
289
- |---|---|
290
- | **Empty (no boards)** | "Create your first board" CTA + template gallery |
291
- | **Empty (no team)** | "Invite teammates" with email picker |
292
- | **Loading (board opening)** | Skeleton with sticky-note placeholders |
293
- | **Loading (cursor sync)** | Cursor avatars appear with name labels |
294
- | **Error (sync)** | Banner + retry; never block editing |
295
- | **Error (permission)** | "Read-only — request edit access" inline link |
296
- | **Success (saved)** | Implicit; auto-save with subtle indicator |
297
- | **Success (export)** | Download triggered + toast confirmation |
298
- | **Skeleton (board grid)** | Yellow-tinted placeholders |
299
- | **Disabled (free plan limit)** | Upgrade link |
300
- | **Loading (long export)** | Persistent progress chip |
308
+ No public evidence in this pass establishes a loading, empty, success, error, hover, pressed, or focus treatment.
301
309
 
302
310
  ## 15. Motion & Easing
303
311
 
304
- | Token | Value | Use |
305
- |---|---|---|
306
- | `motion-instant` | 0ms | Selection |
307
- | `motion-fast` | 150ms | Hover |
308
- | `motion-standard` | 250ms | Modal, panel |
309
- | `motion-cursor` | continuous | Live cursor sync |
310
-
311
- Standard cubic-bezier; minimal bounce. Cursor sync motion is signature. `prefers-reduced-motion: reduce` removes hover transitions; cursor sync becomes step-discrete.
312
+ The supplied raw capture contains no timing, easing, or transition values. Miro’s accessibility documentation says reduced motion removes animations and transition effects; that establishes a behavioral boundary, not motion tokens. No duration or easing value is asserted.
312
313
 
313
314
  ---
314
315
 
315
- **Verified:** 2026-05-08 (omd:migrate run 38 — Apple-tier)
316
- **Tier 1 sources:** miro.com/ko home + /pricing (live DOM via playwright **three-color 8px Primary**: Yellow banner `#fde050` 40px / 16px·**900** ALL CAPS (banner-only) + Charcoal `#1c1c1e` 42-44px / 16px·**600** (canonical default) + Miro Blue `#3859ff` 48px / 18px·600 (featured-tier accent); Outline transparent / Charcoal text).
317
- **Tier 2 sources:** styles.refero.design / getdesign.md no record.
318
- **Tier 2 (Philosophy/founders/funding):** Wikipedia (Miro), bne IntelliNews ($17.5B), Crunchbase, Miro Newsroom (Series C $400M Jan 2022), BusinessWire (Series B $50M Apr 2020), Contrary Research, EWDN.
319
- **Style ref:** `notion`. **Conflicts unresolved:** none. **Earlier mistake reverted:** prior footer captured Yellow banner only; canonical default Primary is **Charcoal `#1c1c1e`** with Miro Blue `#3859ff` featured-tier accent — three-color discipline was undocumented.
316
+ **Verified:** 2026-07-13
317
+ **Tier 1 sources:** https://miro.com/ko/ | https://miro.com/ko/pricing/ | https://miro.com/about/ | https://miro.com/aura/ | https://miro.com/blog/miro-vis/ | https://developers.miro.com/docs/design-guidelines | https://displaay.net/typeface/roobert | https://displaay.net/help/licenses
318
+ **Tier 2 sources:** https://getdesign.md/miro/design-md (third-party independent analysis; summary only) | https://styles.refero.design/?q=Miro (attempted search; service returned an internal error)
319
+ **Conflicts unresolved:** none
320
+
321
+ Legacy `#5b76fe`/pastel/card/badge tokens and unobserved state variants were removed because the supplied July 2026 capture did not support them; repeated live public pricing actions resolve to `#3859ff`, while `#fde050` is retained only as a promo/brand-accent action.