oh-my-design-cli 1.8.7 → 1.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (247) hide show
  1. package/.claude/hooks/lib/preferences-parser.cjs +1 -0
  2. package/.claude/hooks/lib/preferences-writer.cjs +1 -0
  3. package/.claude/hooks/post-edit-watch.cjs +1 -0
  4. package/.claude/hooks/session-end-foldin.cjs +1 -0
  5. package/.claude/hooks/session-state-loader.cjs +1 -0
  6. package/.claude/hooks/skill-activation.cjs +1 -0
  7. package/.claude/settings.json +10 -1
  8. package/.github/assets/logo-bg.png +0 -0
  9. package/AGENTS.md +20 -1
  10. package/CHANGELOG.md +482 -0
  11. package/MIGRATION.md +103 -0
  12. package/README.ja.md +56 -19
  13. package/README.ko.md +47 -30
  14. package/README.md +48 -30
  15. package/README.zh-TW.md +59 -22
  16. package/agents/AGENT.md +8 -7
  17. package/agents/omd-codex-image.md +1 -1
  18. package/agents/omd-critic.md +6 -7
  19. package/agents/omd-designer-review.md +1 -1
  20. package/agents/omd-final-qa.md +1 -1
  21. package/agents/omd-humanizer.md +38 -0
  22. package/agents/omd-kr-writer.md +3 -4
  23. package/agents/omd-locale-adapter.md +12 -16
  24. package/agents/omd-master.md +24 -19
  25. package/agents/omd-microcopy.md +1 -1
  26. package/agents/omd-orchestrator.md +7 -8
  27. package/agents/omd-slop-auditor.md +31 -0
  28. package/agents/omd-ux-researcher.md +1 -1
  29. package/data/reference-fingerprints.json +1995 -38
  30. package/dist/bin/oh-my-design.js +16 -8
  31. package/dist/bin/oh-my-design.js.map +1 -1
  32. package/dist/chunk-UJIHCEYF.js +99 -0
  33. package/dist/chunk-UJIHCEYF.js.map +1 -0
  34. package/dist/doctor-LDWSFM3I.js +763 -0
  35. package/dist/doctor-LDWSFM3I.js.map +1 -0
  36. package/dist/install-skills-ZZFNJ2II.js +1120 -0
  37. package/dist/install-skills-ZZFNJ2II.js.map +1 -0
  38. package/docs/CLI_QUICKSTART.md +157 -0
  39. package/package.json +25 -4
  40. package/scripts/postinstall.cjs +5 -4
  41. package/skills/claude-design/SKILL.md +38 -14
  42. package/skills/claude-design/references/claude-design-flow.md +11 -11
  43. package/skills/claude-design/references/codebase-analysis.md +5 -4
  44. package/skills/omd-final-qa/SKILL.md +1 -1
  45. package/skills/omd-harness/SKILL.md +51 -50
  46. package/skills/omd-humanize/SKILL.md +116 -0
  47. package/skills/omd-humanize/agents/openai.yaml +4 -0
  48. package/skills/omd-humanize/references/locale-playbooks.md +102 -0
  49. package/skills/omd-humanize/references/sources.md +11 -0
  50. package/skills/omd-init/SKILL.md +18 -12
  51. package/skills/omd-locale-adapter/SKILL.md +58 -91
  52. package/skills/omd-orchestrator/SKILL.md +11 -5
  53. package/skills/omd-reference-capture/SKILL.md +80 -26
  54. package/skills/omd-reference-capture/scripts/PLAYWRIGHT-LICENSE.txt +202 -0
  55. package/skills/omd-reference-capture/scripts/PLAYWRIGHT-NOTICE.txt +5 -0
  56. package/skills/omd-reference-capture/scripts/THIRD_PARTY_NOTICES.md +3 -0
  57. package/skills/omd-reference-capture/scripts/capture-reference-evidence.mjs +159906 -0
  58. package/skills/omd-slop-audit/SKILL.md +110 -0
  59. package/skills/omd-slop-audit/agents/openai.yaml +4 -0
  60. package/skills/omd-slop-audit/references/pattern-catalog.md +96 -0
  61. package/skills/omd-slop-audit/references/sources.md +24 -0
  62. package/web/references/104/DESIGN.md +354 -0
  63. package/web/references/11st/DESIGN.md +197 -316
  64. package/web/references/29cm/DESIGN.md +297 -393
  65. package/web/references/42dot/DESIGN.md +390 -0
  66. package/web/references/8percent/DESIGN.md +438 -0
  67. package/web/references/ably/DESIGN.md +267 -572
  68. package/web/references/acer/DESIGN.md +329 -0
  69. package/web/references/airbnb/DESIGN.md +219 -557
  70. package/web/references/alipay/DESIGN.md +179 -420
  71. package/web/references/apple/DESIGN.md +224 -498
  72. package/web/references/asleep/DESIGN.md +402 -0
  73. package/web/references/au/DESIGN.md +334 -0
  74. package/web/references/autopedia/DESIGN.md +382 -0
  75. package/web/references/aws-cloudscape/DESIGN.md +241 -0
  76. package/web/references/baemin/DESIGN.md +332 -491
  77. package/web/references/banksalad/DESIGN.md +269 -180
  78. package/web/references/barogo/DESIGN.md +416 -0
  79. package/web/references/beusable/DESIGN.md +464 -0
  80. package/web/references/bilibili/DESIGN.md +206 -374
  81. package/web/references/bmw/DESIGN.md +162 -276
  82. package/web/references/brandi/DESIGN.md +184 -325
  83. package/web/references/catchtable/DESIGN.md +219 -264
  84. package/web/references/cgv/DESIGN.md +317 -0
  85. package/web/references/channeltalk/DESIGN.md +210 -336
  86. package/web/references/china-airlines/DESIGN.md +291 -0
  87. package/web/references/cjonstyle/DESIGN.md +453 -0
  88. package/web/references/class101/DESIGN.md +168 -387
  89. package/web/references/classum/DESIGN.md +228 -203
  90. package/web/references/claude/DESIGN.md +242 -479
  91. package/web/references/clay/DESIGN.md +179 -377
  92. package/web/references/clickhouse/DESIGN.md +254 -343
  93. package/web/references/cohere/DESIGN.md +214 -324
  94. package/web/references/coinone/DESIGN.md +199 -179
  95. package/web/references/corca/DESIGN.md +414 -0
  96. package/web/references/coupang/DESIGN.md +205 -475
  97. package/web/references/cursor/DESIGN.md +240 -381
  98. package/web/references/dabang/DESIGN.md +248 -213
  99. package/web/references/dable/DESIGN.md +431 -0
  100. package/web/references/datarize/DESIGN.md +217 -330
  101. package/web/references/dealicious/DESIGN.md +402 -0
  102. package/web/references/drdiary/DESIGN.md +404 -0
  103. package/web/references/elastic/DESIGN.md +238 -0
  104. package/web/references/elevenlabs/DESIGN.md +183 -321
  105. package/web/references/eslite/DESIGN.md +257 -0
  106. package/web/references/evaair/DESIGN.md +338 -0
  107. package/web/references/expo/DESIGN.md +238 -331
  108. package/web/references/familymart-tw/DESIGN.md +254 -0
  109. package/web/references/ferrari/DESIGN.md +160 -377
  110. package/web/references/figma/DESIGN.md +197 -451
  111. package/web/references/fitpet/DESIGN.md +445 -0
  112. package/web/references/flex/DESIGN.md +170 -253
  113. package/web/references/framer/DESIGN.md +197 -340
  114. package/web/references/freee/DESIGN.md +211 -533
  115. package/web/references/friendliai/DESIGN.md +431 -0
  116. package/web/references/frip/DESIGN.md +440 -0
  117. package/web/references/gangnamunni/DESIGN.md +154 -591
  118. package/web/references/gaudiolab/DESIGN.md +414 -0
  119. package/web/references/google/DESIGN.md +290 -398
  120. package/web/references/hashicorp/DESIGN.md +273 -318
  121. package/web/references/heydealer/DESIGN.md +429 -0
  122. package/web/references/humanscape/DESIGN.md +433 -0
  123. package/web/references/hyundai/DESIGN.md +158 -368
  124. package/web/references/hyundaicard/DESIGN.md +171 -121
  125. package/web/references/ibm/DESIGN.md +227 -378
  126. package/web/references/idus/DESIGN.md +450 -0
  127. package/web/references/igaworks/DESIGN.md +437 -0
  128. package/web/references/inflearn/DESIGN.md +221 -366
  129. package/web/references/intuit/DESIGN.md +244 -0
  130. package/web/references/jandi/DESIGN.md +191 -291
  131. package/web/references/jobplanet/DESIGN.md +415 -0
  132. package/web/references/kakao/DESIGN.md +287 -475
  133. package/web/references/kakaobank/DESIGN.md +220 -521
  134. package/web/references/kakaogames/DESIGN.md +220 -0
  135. package/web/references/kakaopay/DESIGN.md +207 -526
  136. package/web/references/karrot/DESIGN.md +227 -251
  137. package/web/references/kb-kookmin/DESIGN.md +308 -0
  138. package/web/references/kbank/DESIGN.md +220 -175
  139. package/web/references/kmong/DESIGN.md +281 -356
  140. package/web/references/krds/DESIGN.md +245 -19
  141. package/web/references/kream/DESIGN.md +224 -359
  142. package/web/references/kurly/DESIGN.md +211 -533
  143. package/web/references/lamborghini/DESIGN.md +198 -360
  144. package/web/references/lguplus/DESIGN.md +259 -0
  145. package/web/references/likelion/DESIGN.md +283 -0
  146. package/web/references/line/DESIGN.md +396 -355
  147. package/web/references/linear.app/DESIGN.md +209 -562
  148. package/web/references/lotteon/DESIGN.md +386 -0
  149. package/web/references/lovable/DESIGN.md +255 -349
  150. package/web/references/makinarocks/DESIGN.md +149 -349
  151. package/web/references/maum-ai/DESIGN.md +423 -0
  152. package/web/references/medibloc/DESIGN.md +425 -0
  153. package/web/references/megabox/DESIGN.md +232 -0
  154. package/web/references/mercari/DESIGN.md +217 -434
  155. package/web/references/microsoft/DESIGN.md +234 -388
  156. package/web/references/mildang/DESIGN.md +411 -0
  157. package/web/references/millie/DESIGN.md +183 -504
  158. package/web/references/minimax/DESIGN.md +264 -322
  159. package/web/references/miricanvas/DESIGN.md +182 -355
  160. package/web/references/miro/DESIGN.md +234 -232
  161. package/web/references/mistral.ai/DESIGN.md +231 -314
  162. package/web/references/mixi/DESIGN.md +234 -0
  163. package/web/references/moin/DESIGN.md +445 -0
  164. package/web/references/mongodb/DESIGN.md +219 -316
  165. package/web/references/musinsa/DESIGN.md +184 -510
  166. package/web/references/mynavi/DESIGN.md +242 -0
  167. package/web/references/myrealtrip/DESIGN.md +169 -406
  168. package/web/references/naver/DESIGN.md +328 -499
  169. package/web/references/naverwebtoon/DESIGN.md +172 -395
  170. package/web/references/nhn/DESIGN.md +169 -346
  171. package/web/references/nhncloud/DESIGN.md +185 -123
  172. package/web/references/notion/DESIGN.md +271 -475
  173. package/web/references/nrise/DESIGN.md +417 -0
  174. package/web/references/ohouse/DESIGN.md +210 -549
  175. package/web/references/oliveyoung/DESIGN.md +217 -326
  176. package/web/references/ollama/DESIGN.md +241 -308
  177. package/web/references/onestore/DESIGN.md +248 -0
  178. package/web/references/palantir/DESIGN.md +256 -0
  179. package/web/references/panasonic/DESIGN.md +276 -0
  180. package/web/references/patternfly/DESIGN.md +259 -0
  181. package/web/references/payhere/DESIGN.md +438 -0
  182. package/web/references/pega/DESIGN.md +262 -0
  183. package/web/references/peoplefund/DESIGN.md +431 -0
  184. package/web/references/petfriends/DESIGN.md +428 -0
  185. package/web/references/pinkfong/DESIGN.md +199 -367
  186. package/web/references/pinterest/DESIGN.md +258 -308
  187. package/web/references/poya/DESIGN.md +286 -0
  188. package/web/references/pozalabs/DESIGN.md +438 -0
  189. package/web/references/protopie/DESIGN.md +419 -0
  190. package/web/references/qraft/DESIGN.md +448 -0
  191. package/web/references/quotabook/DESIGN.md +449 -0
  192. package/web/references/recruit/DESIGN.md +247 -0
  193. package/web/references/remember/DESIGN.md +202 -396
  194. package/web/references/resend/DESIGN.md +274 -348
  195. package/web/references/sakura-internet/DESIGN.md +269 -0
  196. package/web/references/samsung/DESIGN.md +157 -359
  197. package/web/references/sandoll/DESIGN.md +445 -0
  198. package/web/references/sanity/DESIGN.md +241 -375
  199. package/web/references/scatterlab/DESIGN.md +412 -0
  200. package/web/references/selectstar/DESIGN.md +439 -0
  201. package/web/references/servicenow/DESIGN.md +289 -0
  202. package/web/references/shinhanbank/DESIGN.md +161 -341
  203. package/web/references/shinhancard/DESIGN.md +208 -319
  204. package/web/references/sionic/DESIGN.md +454 -0
  205. package/web/references/sktelecom/DESIGN.md +310 -0
  206. package/web/references/socar/DESIGN.md +125 -32
  207. package/web/references/softbank/DESIGN.md +231 -0
  208. package/web/references/sony/DESIGN.md +234 -0
  209. package/web/references/soop/DESIGN.md +261 -0
  210. package/web/references/spacex/DESIGN.md +184 -323
  211. package/web/references/spotify/DESIGN.md +253 -394
  212. package/web/references/squeezebits/DESIGN.md +441 -0
  213. package/web/references/stayfolio/DESIGN.md +422 -0
  214. package/web/references/stripe/DESIGN.md +212 -491
  215. package/web/references/supabase/DESIGN.md +244 -316
  216. package/web/references/tabling/DESIGN.md +415 -0
  217. package/web/references/taishinbank/DESIGN.md +243 -0
  218. package/web/references/teamlab/DESIGN.md +240 -0
  219. package/web/references/teamsparta/DESIGN.md +472 -0
  220. package/web/references/tellingme/DESIGN.md +392 -0
  221. package/web/references/tesla/DESIGN.md +244 -427
  222. package/web/references/thsr/DESIGN.md +284 -0
  223. package/web/references/thumbtack/DESIGN.md +302 -0
  224. package/web/references/together.ai/DESIGN.md +257 -304
  225. package/web/references/toss/DESIGN.md +251 -593
  226. package/web/references/toss-securities/DESIGN.md +255 -178
  227. package/web/references/tossbank/DESIGN.md +195 -491
  228. package/web/references/toyota/DESIGN.md +238 -0
  229. package/web/references/tving/DESIGN.md +197 -245
  230. package/web/references/typed/DESIGN.md +413 -0
  231. package/web/references/uber/DESIGN.md +256 -333
  232. package/web/references/udn/DESIGN.md +250 -0
  233. package/web/references/upbit/DESIGN.md +145 -256
  234. package/web/references/upstage/DESIGN.md +211 -204
  235. package/web/references/uswds/DESIGN.md +287 -0
  236. package/web/references/vercel/DESIGN.md +236 -440
  237. package/web/references/wanted/DESIGN.md +215 -487
  238. package/web/references/wise/DESIGN.md +223 -231
  239. package/web/references/wisetracker/DESIGN.md +462 -0
  240. package/web/references/wooribank/DESIGN.md +245 -0
  241. package/web/references/yanolja/DESIGN.md +250 -419
  242. package/web/references/yeogiotte/DESIGN.md +235 -418
  243. package/web/references/zapier/DESIGN.md +256 -377
  244. package/web/references/zendesk/DESIGN.md +288 -0
  245. package/web/references/zigzag/DESIGN.md +200 -621
  246. package/dist/install-skills-7UUDOLG2.js +0 -734
  247. package/dist/install-skills-7UUDOLG2.js.map +0 -1
@@ -9,456 +9,283 @@ primary_color: "#21afbf"
9
9
  logo:
10
10
  type: favicon
11
11
  slug: "https://www.google.com/s2/favicons?domain=miricanvas.com&sz=128"
12
- verified: "2026-06-10"
12
+ verified: "2026-07-13"
13
13
  added: "2026-06-10"
14
14
  omd: "0.1"
15
+ verification_v2:
16
+ schema: 2
17
+ checked: "2026-07-13"
18
+ surfaces:
19
+ - { id: home, kind: public-product, url: "https://www.miricanvas.com/ko", inspected: "2026-07-13" }
20
+ - { id: templates, kind: public-product, url: "https://www.miricanvas.com/ko/templates", inspected: "2026-07-13" }
21
+ - { id: pricing, kind: public-product, url: "https://www.miricanvas.com/ko/pricing", inspected: "2026-07-13" }
22
+ sources:
23
+ - { id: home-live, kind: product-surface, url: "https://www.miricanvas.com/ko", captured: "2026-07-13" }
24
+ - { id: templates-live, kind: product-surface, url: "https://www.miricanvas.com/ko/templates", captured: "2026-07-13" }
25
+ - { id: pricing-live, kind: product-surface, url: "https://www.miricanvas.com/ko/pricing", captured: "2026-07-13" }
26
+ - { id: company-context, kind: official-doc, url: "https://www.miridih.com/ko/home", captured: "2026-07-13" }
27
+ - { id: editor-doc, kind: official-doc, url: "https://help.miricanvas.com/hc/ko/articles/4413862566937", captured: "2026-07-13" }
28
+ - { id: license-doc, kind: official-doc, url: "https://help.miricanvas.com/hc/ko/articles/56483608870681", captured: "2026-07-13" }
29
+ conflicts: []
30
+ claims:
31
+ "tokens.colors.primary": &home { surface_id: home, source_id: home-live, method: live-inspect, captured: "2026-07-13" }
32
+ "tokens.colors.primary-deep": *home
33
+ "tokens.colors.ink": *home
34
+ "tokens.colors.ink-soft": *home
35
+ "tokens.colors.muted": *home
36
+ "tokens.colors.canvas": *home
37
+ "tokens.colors.on-primary": *home
38
+ "tokens.typography.family.sans": *home
39
+ "tokens.typography.display-hero.size": *home
40
+ "tokens.typography.display-hero.weight": *home
41
+ "tokens.typography.display-hero.lineHeight": *home
42
+ "tokens.typography.display-hero.use": *home
43
+ "tokens.typography.page-title.size": &pricing { surface_id: pricing, source_id: pricing-live, method: live-inspect, captured: "2026-07-13" }
44
+ "tokens.typography.page-title.weight": *pricing
45
+ "tokens.typography.page-title.lineHeight": *pricing
46
+ "tokens.typography.page-title.use": *pricing
47
+ "tokens.typography.subsection.size": *home
48
+ "tokens.typography.subsection.weight": *home
49
+ "tokens.typography.subsection.lineHeight": *home
50
+ "tokens.typography.subsection.use": *home
51
+ "tokens.typography.section.size": *home
52
+ "tokens.typography.section.weight": *home
53
+ "tokens.typography.section.lineHeight": *home
54
+ "tokens.typography.section.use": *home
55
+ "tokens.typography.ui.size": *home
56
+ "tokens.typography.ui.weight": *home
57
+ "tokens.typography.ui.lineHeight": *home
58
+ "tokens.typography.ui.use": *home
59
+ "tokens.spacing.xs": *home
60
+ "tokens.spacing.sm": *home
61
+ "tokens.spacing.md": *home
62
+ "tokens.spacing.lg": *home
63
+ "tokens.spacing.xl": *home
64
+ "tokens.spacing.xxl": *home
65
+ "tokens.spacing.hero": *home
66
+ "tokens.rounded.sm": *home
67
+ "tokens.rounded.md": *home
68
+ "tokens.rounded.lg": *home
69
+ "tokens.rounded.xl": *home
70
+ "tokens.shadow.menu-open": *home
15
71
  tokens:
16
- source: live-extract
17
- extracted: "2026-06-10"
18
- note: "primary = live CTA teal (#21afbf); deep teal (#1c95a2) is the text-link/ghost companion. Ink near-black (#16181d) headings; Pretendard Variable + Figtree latin."
72
+ source: reconciled
73
+ extracted: "2026-07-13"
74
+ note: "Public MiriCanvas surfaces only. Tokens are limited to computed observations corroborated by the supplied FontFaceSet evidence; no authenticated editor or help-center chrome is promoted."
19
75
  colors:
20
76
  primary: "#21afbf"
21
77
  primary-deep: "#1c95a2"
22
- accent-bright: "#26c7d9"
23
- tint: "#e7f9fb"
24
78
  ink: "#16181d"
25
79
  ink-soft: "#23242a"
26
- body: "#434956"
27
- muted: "#626677"
28
- muted-blue: "#70798f"
29
- faint: "#8d94a5"
80
+ muted: "#70798f"
30
81
  canvas: "#ffffff"
31
- surface: "#f1f2f4"
32
82
  on-primary: "#ffffff"
33
83
  typography:
34
- family: { sans: "Pretendard Variable", latin: "Figtree" }
35
- display-hero: { size: 64, weight: 700, lineHeight: 1.50, use: "Hero headline, generous 96px line-height" }
36
- page-title: { size: 40, weight: 700, lineHeight: 1.20, use: "Page-level titles (pricing hero)" }
37
- subsection: { size: 28, weight: 600, lineHeight: 1.29, use: "Feature sub-heads (pricing H2)" }
38
- section: { size: 24, weight: 600, lineHeight: 1.33, use: "Section titles (homepage H2)" }
39
- card-title: { size: 20, weight: 600, lineHeight: 1.40, use: "Template category / card titles" }
40
- plan-title: { size: 18, weight: 600, lineHeight: 1.44, use: "Pricing tier names" }
41
- cta-lg: { size: 18, weight: 500, use: "Hero CTA labels" }
42
- body: { size: 16, weight: 400, use: "Body copy, search input text" }
43
- ui: { size: 14, weight: 500, use: "Nav items, standard buttons" }
44
- spacing: { xs: 4, sm: 8, md: 12, base: 16, lg: 24, xl: 32, section: 64 }
45
- rounded: { sm: 8, md: 10, lg: 12, xl: 16, full: 9999 }
84
+ family: { sans: "Pretendard Variable" }
85
+ display-hero: { size: 64, weight: 700, lineHeight: 1.50, use: "Public homepage h1" }
86
+ page-title: { size: 40, weight: 700, lineHeight: 1.20, use: "Public pricing h1" }
87
+ subsection: { size: 28, weight: 600, lineHeight: 1.29, use: "Public-surface heading" }
88
+ section: { size: 24, weight: 600, lineHeight: 1.33, use: "Public-surface heading" }
89
+ ui: { size: 14, weight: 500, lineHeight: 1.43, use: "Observed navigation and standard buttons" }
90
+ spacing: { xs: 4, sm: 6, md: 8, lg: 12, xl: 16, xxl: 20, hero: 24 }
91
+ rounded: { sm: 8, md: 10, lg: 12, xl: 16 }
46
92
  shadow:
47
- card: "rgba(0, 0, 0, 0.15) 0px 2px 8px 0px"
48
- floating: "rgba(0, 0, 0, 0.16) 0px 2px 6px 0px"
49
- components:
50
- button-primary: { type: button, bg: "#21afbf", fg: "#ffffff", radius: "8px", padding: "8px 16px", height: "40px", font: "14px / 500", use: "Header/inline CTA — 회원가입, 지금 써보기" }
51
- button-hero: { type: button, bg: "#21afbf", fg: "#ffffff", radius: "12px", padding: "14px 24px", height: "56px", font: "18px / 500", use: "Hero primary CTA — 바로 시작하기" }
52
- button-secondary: { type: button, bg: "#ffffff", fg: "#1c95a2", radius: "12px", padding: "14px 24px", height: "56px", font: "18px / 500", use: "Hero secondary CTA — 템플릿 보러가기" }
53
- button-ghost: { type: button, fg: "#1c95a2", radius: "8px", padding: "8px 16px", height: "40px", font: "14px / 500", use: "Text-teal tertiary action — 무료로 시작하기, 요금제 알아보기" }
54
- nav-item: { type: tab, fg: "#23242a", radius: "8px", padding: "8px 16px", font: "14px / 500", use: "GNB items — 템플릿, 추천 기능, 요금제" }
55
- input-search: { type: input, fg: "#16181d", radius: "10px", height: "46px", font: "16px / 400", use: "Template hub natural-language search" }
56
- card-template: { type: card, bg: "#ffffff", radius: "12px", shadow: "rgba(0,0,0,0.15) 0px 2px 8px 0px", use: "Template thumbnail card on homepage rail" }
57
- avatar-social: { type: avatar, radius: "9999px", height: "40px", use: "Footer social circles (Facebook/Instagram/YouTube), subtle grey fill" }
58
- components_harvested: true
93
+ menu-open: "rgba(11, 60, 65, 0.2) 0px 6px 20px 0px"
94
+ components: {}
95
+ components_harvested: false
59
96
  ---
60
97
 
61
98
  # Design System Inspiration of MiriCanvas
62
99
 
63
100
  ## 1. Visual Theme & Atmosphere
64
101
 
65
- MiriCanvas (미리캔버스) is Korea's mass-market web design tool the "design for everyone" answer to Canva and its marketing surface reads exactly like its promise: bright, frictionless, and unintimidating. The page sits on a pure white canvas (`#ffffff`) with near-black ink headings (`#16181d`) and a single, unmistakable action color: a fresh aqua teal (`#21afbf`) that paints every "start now" moment. The teal is energetic without being loud closer to a swimming-pool blue-green than a corporate cyan and it instantly separates MiriCanvas from the purple-saturated Western design-tool landscape. Around it, soft grey surfaces (`#f1f2f4`) and a faint teal wash (`#e7f9fb`) keep the page airy, while real template thumbnails do most of the visual talking.
102
+ MiriCanvas (미리캔버스) is MIRIDIH's browser-based design service: its public template and pricing surfaces position design creation as something users can begin from ready-made material instead of specialist software. The visible system is deliberately spare: a white canvas (`#ffffff`), dark ink (`#16181d`), and an aqua-teal action color (`#21afbf`) recur across the home, template, and pricing routes. This gives the public experience a clear action hierarchy without turning every surface into brand decoration. MIRIDIH frames its broader purpose as reducing inconvenient moments in design and enabling easier communication through design; its corporate site also describes a move from domestic success toward global markets. Those company statements provide context for the inclusive product positioning, but they are not UI-token evidence.
66
103
 
67
- Typography is contemporary Korean-product standard executed with unusual generosity: **Pretendard Variable** (with Figtree handling Latin glyphs) at a bold 700 for the 64px hero — "세상의 모든 디자인은 미리캔버스로 완성" — set on a remarkably loose 96px line-height (1.5 ratio). Where most landing pages compress display type, MiriCanvas lets its hero breathe, which makes the headline feel like an invitation rather than a pitch. Below the hero, the scale steps down quickly and politely: 24px/600 section heads, 20px/600 card titles, 16px body, and a quiet 14px/500 for all UI chrome. Letter-spacing stays at normal throughout — no fashionable tightening — reinforcing the approachable, default-friendly tone.
104
+ The collector confirms a loaded, site-hosted `Pretendard Variable` face throughout styled public UI. A 64px/700 homepage heading with 96px line-height sits above smaller 28px, 24px, and 14px steps; the contrast is soft geometry rather than an assertion about a private editor system. The evidence packet covers public surfaces only. It does not establish authenticated-editor styling, marketing-only feature-page styling, help-center chrome, or a complete responsive system.
68
105
 
69
- Depth is used sparingly and only where content floats: template thumbnail cards carry a soft `rgba(0, 0, 0, 0.15) 0px 2px 8px` shadow at 12px radius, and small floating controls get `rgba(0, 0, 0, 0.16) 0px 2px 6px`. Buttons, nav, and sections are completely flat — separation comes from the grey surface bands and white cards. The geometry is consistently soft-rectangular: 8px on standard buttons, 10px on medium controls and the search field, 12px on hero CTAs and cards, 16px on large template tiles, and full circles only for footer social icons. The total effect is a tool that looks like it takes ten seconds to learn — which is precisely the brand strategy.
106
+ **Key characteristics:**
70
107
 
71
- **Key Characteristics:**
72
- - Single teal action color (`#21afbf`) every primary CTA, one hue, zero ambiguity
73
- - Deep teal text-link companion (`#1c95a2`) for secondary and ghost actions
74
- - Pretendard Variable + Figtree Korean-first sans with weights 700 (display) / 600 (sections) / 500 (UI) / 400 (body)
75
- - 64px hero at line-height 1.5 unusually generous, friendly air
76
- - Near-black ink (`#16181d`) and soft ink (`#23242a`) instead of pure black
77
- - Flat chrome + shadowed content: only template cards and floating controls elevate
78
- - Soft radius ladder: 8 → 10 → 12 → 16px, circles reserved for social avatars
79
- - Template thumbnails as the dominant visual element — the product demos itself
108
+ - Aqua teal (`#21afbf`) on an observed 40px public CTA
109
+ - White (`#ffffff`), Ink (`#16181d`), and Ink Soft (`#23242a`) as recurring public-surface neutrals
110
+ - `Pretendard Variable` is loaded and used by visible styled UI; fallback family names are not promoted
111
+ - 8px, 10px, 12px, and 16px are observed radii, with 8px the strongest public-button cluster
112
+ - An expanded navigation menu is the only captured interaction state; it is white, 16px-rounded, and softly elevated
80
113
 
81
114
  ## 2. Color Palette & Roles
82
115
 
83
- ### Primary
84
- - **MiriCanvas Teal** (`#21afbf`): The system's single action color. Primary CTA backgrounds — 회원가입, 바로 시작하기, 지금 써보기, 앱 다운로드 — and brand accents.
85
- - **Deep Teal** (`#1c95a2`): Text-form teal for secondary CTAs on white, ghost buttons, and inline links. Slightly darkened for contrast on light backgrounds.
86
- - **Bright Aqua** (`#26c7d9`): Lighter companion teal observed on decorative brand moments and highlights.
87
-
88
- ### Surface & Tint
89
- - **Pure White** (`#ffffff`): Page canvas, card surfaces, secondary CTA backgrounds, text on teal.
90
- - **Surface Grey** (`#f1f2f4`): Cool light-grey band for alternating sections and feature blocks (a sibling `#f1f2f3` appears on some bands).
91
- - **Teal Tint** (`#e7f9fb`): Faint aqua wash for brand-tinted callouts; pricing uses a translucent `rgba(33, 175, 191, 0.1)` teal tint for the highlighted plan.
92
- - **Subtle Fill** (`rgba(88, 98, 118, 0.05)`): Barely-there blue-grey fill for footer social circles; the footer band itself sits at `rgba(88, 98, 118, 0.1)`.
93
-
94
- ### Text Hierarchy
95
- - **Ink** (`#16181d`): Headings, hero copy, primary text. A near-black with a cool undertone never pure black for headings.
96
- - **Ink Soft** (`#23242a`): Nav items, button labels, sub-headings.
97
- - **Body Slate** (`#434956`): Secondary body copy and descriptions.
98
- - **Muted** (`#626677`): Tertiary text, template-rail "더보기" links, captions.
99
- - **Muted Blue** (`#70798f`): Metadata and lower-emphasis labels.
100
- - **Faint** (`#8d94a5`): Placeholder-level, disabled, finest print.
116
+ ### Action and canvas
117
+
118
+ - **Primary teal** (`#21afbf`): observed background of a high-confidence public CTA on home, templates, and pricing.
119
+ - **Teal text** (`#1c95a2`): observed on a public text-action button; keep it distinct from the filled primary action.
120
+ - **Canvas / on-primary** (`#ffffff`): observed page and menu surface, and white CTA text.
121
+
122
+ ### Text
123
+
124
+ - **Ink** (`#16181d`): observed primary text on the three public routes.
125
+ - **Ink Soft** (`#23242a`): observed on high-confidence public navigation buttons.
126
+ - **Muted** (`#70798f`): repeated lower-emphasis public text observation.
127
+
128
+ No semantic error, success, disabled, hover, focus, or editor color token is asserted from this packet.
101
129
 
102
130
  ## 3. Typography Rules
103
131
 
104
- ### Font Family
105
- - **Primary**: `Pretendard Variable` — the document-wide sans for Korean and UI text.
106
- - **Latin companion**: `Figtree` (stack continues to `IBM Plex Sans JP` for Japanese glyphs).
107
- - Some server-rendered anchor text paints before hydration in the browser-default serif; the styled system is uniformly Pretendard Variable.
108
-
109
- ### Hierarchy
110
-
111
- | Role | Font | Size | Weight | Line Height | Notes |
112
- |------|------|------|--------|-------------|-------|
113
- | Display Hero | Pretendard Variable | 64px (4.00rem) | 700 | 1.50 (96px) | Homepage hero, two-line Korean headline |
114
- | Page Title | Pretendard Variable | 40px (2.50rem) | 700 | 1.20 (48px) | Pricing hero |
115
- | Sub-section | Pretendard Variable | 28px (1.75rem) | 600 | 1.29 (36px) | Pricing feature heads |
116
- | Section Heading | Pretendard Variable | 24px (1.50rem) | 600 | 1.33 (32px) | Homepage section titles |
117
- | Card Title | Pretendard Variable | 20px (1.25rem) | 600 | 1.40 (28px) | Template category titles |
118
- | Plan Title | Pretendard Variable | 18px (1.13rem) | 600 | 1.44 (26px) | Pricing tier names (무료, Pro) |
119
- | CTA Large | Pretendard Variable | 18px (1.13rem) | 500 | | Hero CTA labels |
120
- | Body | Pretendard Variable | 16px (1.00rem) | 400 | | Reading text, search input |
121
- | UI | Pretendard Variable | 14px (0.88rem) | 500 | — | Nav, standard buttons |
122
-
123
- ### Principles
124
- - **Bold-but-breathing display**: 700-weight heroes on a 1.5 line-height — confidence delivered with air, not compression.
125
- - **Normal tracking everywhere**: no negative letter-spacing at any size; the system reads default-friendly, not fashion-tight.
126
- - **One family, weight-driven hierarchy**: Pretendard Variable carries every role; only weight (700/600/500/400) and size signal rank.
127
- - **14px/500 chrome**: all interactive chrome shares one quiet spec, so the teal color — not type — flags the primary action.
132
+ ### Evidence classes
133
+
134
+ - **Live computed surface-use + loaded source corroboration:** `Pretendard Variable` is the computed family for styled public UI and is backed by a matching loaded `FontFace` record (215 observed uses; 92 MiriCanvas-hosted subset source URLs). It is the only family promoted to `tokens.typography.family`.
135
+ - **Declared-only fallbacks:** `Figtree`, `IBM Plex Sans JP`, `Pretendard JP Variable`, and `Pretendard Std Variable` occur later in the computed stack of styled elements, but the supplied `FontFaceSet` evidence does not match them as loaded faces. They remain declared-only and are not UI-family tokens.
136
+ - **Unresolved capture artifact:** `Times` appears in some captured unstyled DOM fragments and in the expanded menu record without a matching loaded face or source URL. It is not treated as a MiriCanvas type choice.
137
+ - **Official distributed font asset:** Pretendard's upstream project documents the variable family and its SIL Open Font License 1.1. This establishes the upstream font's distribution/license boundary; it does not establish a MiriCanvas-owned font asset.
138
+ - **Official product-use announcement:** none located in the first-party sources reviewed for this update.
139
+
140
+ ### Observed hierarchy
141
+
142
+ | Role | Family | Size | Weight | Line height | Public-surface provenance |
143
+ |------|--------|------|--------|-------------|---------------------------|
144
+ | Homepage display | Pretendard Variable | 64px | 700 | 96px | `home`, one h1 observation |
145
+ | Pricing display | Pretendard Variable | 40px | 700 | 48px | `surface-3`, h1 observation |
146
+ | Heading | Pretendard Variable | 28px | 600 | 36px | public heading observations |
147
+ | Heading | Pretendard Variable | 24px | 600 | 32px | public heading observations |
148
+ | Navigation / standard button | Pretendard Variable | 14px | 500 | 20px | high-confidence button records |
128
149
 
129
150
  ## 4. Component Stylings
130
151
 
131
- ### Buttons
152
+ Only the following public-surface variants have sufficient selector and computed-style provenance. No hover, pressed, focused, disabled, error, dialog, tab, toast, or authenticated-editor variant is inferred.
153
+
154
+ ### Public buttons
132
155
 
133
- **Primary (Standard)**
156
+ **Filled primary**
134
157
  - Background: `#21afbf`
135
158
  - Text: `#ffffff`
136
159
  - Radius: 8px
137
160
  - Padding: 8px 16px
138
161
  - Font: 14px / 500 / Pretendard Variable
139
162
  - Height: 40px
140
- - Use: Header CTA (회원가입) and inline CTAs (지금 써보기, 다운로드, Pro로 업그레이드)
163
+ - Use: High-confidence CTA record on `home`, `surface-2`, and `surface-3`; representative selector `home::[data-omd-capture="21"]`.
141
164
 
142
- **Primary (Hero)**
143
- - Background: `#21afbf`
144
- - Text: `#ffffff`
145
- - Radius: 12px
146
- - Padding: 14px 24px
147
- - Font: 18px / 500 / Pretendard Variable
148
- - Height: 56px
149
- - Use: Hero primary CTA (바로 시작하기, 모든 템플릿 둘러보기)
150
-
151
- **Secondary (White)**
152
- - Background: `#ffffff`
153
- - Text: `#1c95a2`
154
- - Radius: 12px
155
- - Padding: 14px 24px
156
- - Font: 18px / 500 / Pretendard Variable
157
- - Height: 56px
158
- - Use: Hero secondary CTA (템플릿 보러가기), paired beside the teal primary
159
-
160
- **Ghost (Teal Text)**
165
+ **Navigation item**
161
166
  - Background: transparent
162
- - Text: `#1c95a2`
167
+ - Text: `#23242a`
163
168
  - Radius: 8px
164
169
  - Padding: 8px 16px
165
170
  - Font: 14px / 500 / Pretendard Variable
166
171
  - Height: 40px
167
- - Use: Tertiary actions on pricing (무료로 시작하기, 요금제 알아보기) and "더보기" rail links
168
-
169
- **Neutral (White on Grey)**
170
- - Background: `#ffffff`
171
- - Text: `rgba(0, 0, 0, 0.8)`
172
- - Radius: 10px
173
- - Padding: 12px 20px
174
- - Font: 16px / 500 / Pretendard Variable
175
- - Height: 48px
176
- - Use: Mid-emphasis actions on grey surfaces (자세히 보기, 요금제 비교)
177
-
178
- ### Inputs
179
-
180
- **Template Search**
181
- - Background: `#ffffff` (container; input itself transparent)
182
- - Text: `#16181d`
183
- - Border: 1px solid transparent (container)
184
- - Radius: 10px
185
- - Font: 16px / 400 / Pretendard Variable
186
- - Height: 46px
187
- - Use: Design-hub natural-language search ("스타일과 용도를 함께 검색해 보세요")
188
-
189
- ### Cards & Containers
190
-
191
- **Template Card**
192
- - Background: `#ffffff`
193
- - Radius: 12px
194
- - Shadow: `rgba(0, 0, 0, 0.15) 0px 2px 8px 0px`
195
- - Use: Template thumbnail cards in homepage rails — the only consistently elevated element
196
-
197
- **Category Tile**
198
- - Background: `#ffffff`
199
- - Radius: 16px
200
- - Height: 280px
201
- - Use: Large template-category link tiles (프레젠테이션, 동영상, SNS)
172
+ - Use: High-confidence public navigation record on all three surfaces; representative selector `home::[data-omd-capture="12"]`.
202
173
 
203
- **Section Band**
204
- - Background: `#f1f2f4`
205
- - Use: Alternating full-width feature bands on white canvas (flat, no shadow)
206
-
207
- ### Navigation
174
+ **Navigation switcher item**
175
+ - Background: transparent
176
+ - Text: `#23242a`
177
+ - Radius: 8px
178
+ - Padding: 12px
179
+ - Font: 14px / 500 / Pretendard Variable
180
+ - Height: 44px
181
+ - Use: High-confidence public navigation record on all three surfaces; representative selector `home::[data-omd-capture="1"]`.
208
182
 
209
- **GNB Item**
183
+ **Menu trigger**
210
184
  - Background: transparent
211
185
  - Text: `#23242a`
212
186
  - Radius: 8px
213
- - Padding: 8px 16px
187
+ - Padding: 8px 12px 8px 16px
214
188
  - Font: 14px / 500 / Pretendard Variable
215
189
  - Height: 40px
216
- - Use: Top navigation (템플릿, 추천 기능, 기업용, 교육용, 요금제) — product-family switcher items (미리캔버스, 디자인허브, 프린트허브, 비즈하우스) run 44px tall
190
+ - Use: High-confidence trigger with `aria-haspopup="menu"`; representative selector `home::[data-omd-capture="9"]`.
217
191
 
218
- ### Avatars
192
+ ### Expanded navigation
219
193
 
220
- **Footer Social Circle**
221
- - Background: `rgba(88, 98, 118, 0.05)`
222
- - Radius: 50%
223
- - Padding: 8px
224
- - Height: 40px
225
- - Use: Footer social links (Facebook, Instagram, Naver Blog, Pinterest, YouTube)
194
+ **Menu open**
195
+ - Background: `#ffffff`
196
+ - Text: `#000000`
197
+ - Radius: 16px
198
+ - Padding: 16px
199
+ - Shadow: `rgba(11, 60, 65, 0.2) 0px 6px 20px 0px`
200
+ - Height: 321px
201
+ - Use: Observed only in `expanded` / `menu-open` state on all three surfaces; representative selector `home::[data-omd-interaction-capture="menu-0-0"]`.
226
202
 
227
- The marketing surfaces expose no standalone badge/tag component; the closest pattern is the translucent teal plan-highlight tint (`rgba(33, 175, 191, 0.1)`) on pricing. Buttons carry no box-shadow anywhere elevation belongs exclusively to content imagery.
203
+ Medium- and low-confidence captures (including a 56px white button, a 48px white button, and a 46px input) remain raw observations in `.verification.md`; they are not promoted as canonical component variants because their visible purpose and/or confidence is insufficient.
228
204
 
229
205
  ---
230
- **Verified:** 2026-06-10
231
- **Tier 1 sources:** https://www.miricanvas.com/ko (homepage, live computed style), https://www.miricanvas.com/ko/pricing (pricing, live computed style), https://www.miricanvas.com/ko/templates (template hub, live computed style), https://www.miridih.com/ko (operator MIRIDIH corporate site mission/values), https://medium.com/miridih (MIRIDIH official team blog)
232
- **Tier 2 sources:** none available (getdesign.md/miricanvas 404 "No designs found"; styles.refero.design ?q=miricanvas searched no MiriCanvas listing)
206
+ **Verified:** 2026-07-13
207
+ **Tier 1 sources:** https://www.miricanvas.com/ko (public product marketing surface, supplied computed-style/FontFaceSet evidence), https://www.miricanvas.com/ko/templates (public template surface, supplied computed-style evidence), https://www.miricanvas.com/ko/pricing (public pricing surface, supplied computed-style evidence), https://www.miridih.com/ko/home (operator context and values), https://help.miricanvas.com/hc/ko/articles/4413862566937 (documentation domain: editor controls, not UI tokens), https://help.miricanvas.com/hc/ko/articles/56483608870681 (documentation domain: content license boundary, not UI tokens)
208
+ **Tier 2 sources:** https://getdesign.md/miricanvas (attempted; fetch unavailable), https://styles.refero.design/?q=miricanvas (query attempted; fetch unavailable)
233
209
  **Conflicts unresolved:** none
234
210
 
211
+ Tier 2 token/component data could not be retrieved, so no Tier 2 comparison is asserted.
212
+
235
213
  ## 5. Layout Principles
236
214
 
237
- ### Spacing System
238
- - Base unit: 4px
239
- - Scale: 4px, 8px, 12px, 16px, 24px, 32px, 64px
240
- - Button padding pairs are tight and consistent: 8px 16px (standard), 12px 20px (medium), 14px 24px (hero)
241
-
242
- ### Grid & Container
243
- - Centered hero with the 64px headline and a two-button CTA pair (teal + white)
244
- - Template content presented as horizontal card rails grouped by category, each with a "더보기" teal text link
245
- - Full-width alternating bands: white canvas ↔ `#f1f2f4` grey surface
246
- - Pricing uses side-by-side plan cards with a translucent teal tint marking the recommended tier
247
- - Footer is a single light band at `rgba(88, 98, 118, 0.1)` with circular social icons
248
-
249
- ### Whitespace Philosophy
250
- - **Air as friendliness**: the 1.5 hero line-height and wide section gaps make a feature-dense product feel light.
251
- - **Templates do the talking**: whitespace frames real thumbnail content rather than abstract illustration — the product is its own demo.
252
- - **Flat segmentation**: bands of `#f1f2f4` separate topics without borders or shadows.
253
-
254
- ### Border Radius Scale
255
- - Small (8px): standard buttons, nav items
256
- - Medium (10px): medium buttons, search field
257
- - Large (12px): hero CTAs, template cards
258
- - XLarge (16px): big category tiles
259
- - Full (50% / 9999px): footer social circles only
215
+ The public packet establishes component-level spacing, not a full grid. Observed spacing values are 4px, 6px, 8px, 12px, 14px, 16px, 20px, 24px, and 56px; the strongest component pairs are 8px 16px, 12px, and 14px 24px. The page-level grid, card-rail behavior, and authenticated-editor layout are unresolved.
260
216
 
261
- ## 6. Depth & Elevation
217
+ Observed public geometry is a small radius ladder: 8px is common on navigation and the filled CTA; 10px, 12px, and 16px occur less often. Do not turn the capture frequency into a claim about an exhaustive design scale.
262
218
 
263
- | Level | Treatment | Use |
264
- |-------|-----------|-----|
265
- | Flat (Level 0) | No shadow | Buttons, nav, sections, pricing cards |
266
- | Tint (Level 1) | `#f1f2f4` / `#e7f9fb` background shift | Section and callout separation |
267
- | Content (Level 2) | `rgba(0, 0, 0, 0.15) 0px 2px 8px 0px` | Template thumbnail cards |
268
- | Floating (Level 3) | `rgba(0, 0, 0, 0.16) 0px 2px 6px 0px` | Small floating circular controls |
219
+ ## 6. Depth & Elevation
269
220
 
270
- **Shadow Philosophy**: MiriCanvas elevates content, never chrome. Live inspection found `box-shadow: none` on every button, nav element, and heading; the only shadowed elements are template-thumbnail images (the user's potential designs) and small floating controls. This inverts the usual SaaS pattern — instead of decorating its own UI, the system spends its entire depth budget making *user-facing template content* pop off the page. Separation between sections is handled flatly with grey tints, keeping the page fast-feeling and print-clean.
221
+ The high-confidence filled CTA and navigation records have `box-shadow: none`. One expanded navigation menu state has `rgba(11, 60, 65, 0.2) 0px 6px 20px 0px`. No card, modal, editor, hover-lift, or general elevation policy is established from the new packet.
271
222
 
272
223
  ## 7. Do's and Don'ts
273
224
 
274
225
  ### Do
275
- - Reserve teal (`#21afbf`) for primary actions — one hue, every "start" moment
276
- - Use deep teal (`#1c95a2`) for text-form secondary/ghost actions and links
277
- - Set display type in Pretendard Variable 700 with generous (≥1.4) line-height
278
- - Keep all UI chrome at 14px / 500 and let color signal priority
279
- - Elevate only content imagery (template cards) with the soft 2px/8px shadow
280
- - Separate sections with flat `#f1f2f4` bands
281
- - Use the radius ladder deliberately: 8px buttons, 10px medium, 12px hero/cards, 16px tiles
282
- - Use near-black ink (`#16181d`) for headings, never pure black
226
+
227
+ - Use `#21afbf` with white text for the observed public filled-action pattern.
228
+ - Use the loaded `Pretendard Variable` family for a reconstruction of these public surfaces.
229
+ - Retain the observed 8px / 14px 500 / 40px geometry where the standard public CTA or navigation item is intended.
230
+ - Treat the 16px rounded, shadowed menu only as an expanded navigation state.
283
231
 
284
232
  ### Don't
285
- - Put shadows on buttons or navigation — chrome stays flat
286
- - Introduce a second saturated action color teal carries the whole system
287
- - Compress display type with negative letter-spacing tracking stays normal
288
- - Use pill-shaped buttons full-round is reserved for social avatar circles
289
- - Replace template thumbnails with abstract illustration real content is the brand proof
290
- - Set body text in grey lighter than `#626677` for reading copy
291
- - Mix fonts — Pretendard Variable (with Figtree Latin) owns every role
233
+
234
+ - Substitute an unresolved or declared-only fallback family as if it were loaded MiriCanvas UI typography.
235
+ - Add hover, disabled, focus, error, modal, toast, or editor-state specifications from this public packet.
236
+ - Generalize the menu's shadow to all cards or buttons.
237
+ - Treat Help Center styling or a feature/marketing page as evidence for the authenticated product editor.
292
238
 
293
239
  ## 8. Responsive Behavior
294
240
 
295
- ### Breakpoints
296
- | Name | Width | Key Changes |
297
- |------|-------|-------------|
298
- | Mobile | <640px | Single column, hero scales down, template rails become swipe carousels |
299
- | Tablet | 640–1024px | 2-up template grids, condensed nav |
300
- | Desktop | 1024–1440px | Full GNB with product-family switcher, multi-rail template sections |
301
-
302
- ### Touch Targets
303
- - Standard buttons at 40px height, hero CTAs at 56px — comfortably tappable
304
- - GNB product-switcher items at 44px
305
- - Footer social circles at 40px diameter
306
- - Search field at 46px input height
307
-
308
- ### Collapsing Strategy
309
- - Hero: 64px headline compresses on mobile, weight 700 and loose line-height maintained
310
- - CTA pair (teal + white) stacks vertically on narrow screens
311
- - Template rails: grid → horizontal swipe with snap
312
- - GNB: full menu collapses behind a toggle; the teal CTA stays visible
313
-
314
- ### Image Behavior
315
- - Template thumbnails keep the 12px radius and soft shadow at every size
316
- - Category tiles maintain 16px radius
317
- - Real template content is served at display density — thumbnails are the product proof and stay sharp
241
+ No viewport comparison or responsive-state capture was supplied. Breakpoints, navigation collapse behavior, touch-target policy, and mobile editor behavior are absent from this reference rather than inferred from desktop public routes.
318
242
 
319
243
  ## 9. Agent Prompt Guide
320
244
 
321
- ### Quick Color Reference
322
- - Primary CTA: MiriCanvas Teal (`#21afbf`)
323
- - Secondary/link teal: Deep Teal (`#1c95a2`)
324
- - Bright accent: Aqua (`#26c7d9`)
325
- - Background: Pure White (`#ffffff`)
326
- - Section band: Surface Grey (`#f1f2f4`)
327
- - Brand tint: Teal Wash (`#e7f9fb`)
328
- - Heading text: Ink (`#16181d`)
329
- - UI text: Ink Soft (`#23242a`)
330
- - Body text: Body Slate (`#434956`)
331
- - Muted text: Muted (`#626677`)
332
-
333
- ### Example Component Prompts
334
- - "Create a hero on white. Headline 64px Pretendard Variable weight 700, line-height 1.5, color #16181d. Two CTAs side by side: primary #21afbf background, white text, 12px radius, 14px 24px padding, 18px/500; secondary white background, #1c95a2 text, same geometry. No shadows on buttons."
335
- - "Design a template card rail: white cards, 12px radius, shadow rgba(0,0,0,0.15) 0px 2px 8px. Section title 24px Pretendard Variable weight 600, #16181d. A '더보기' text link in #626677 at 18px/500 on the right."
336
- - "Build a top nav: white header, items 14px Pretendard Variable weight 500, #23242a text, 8px radius hover surface, 8px 16px padding. One teal CTA (#21afbf bg, white text, 8px radius) right-aligned."
337
- - "Create a pricing band: white plan cards on #f1f2f4, the recommended plan tinted rgba(33,175,191,0.1). Tier name 18px/600 #23242a, price emphasized, ghost CTA in #1c95a2 text and a filled teal #21afbf CTA, both 8px radius, 40px tall."
338
- - "Design a search field: white container, 10px radius, 46px tall, 16px Pretendard Variable text #16181d, long friendly Korean placeholder."
339
-
340
- ### Iteration Guide
341
- 1. Teal `#21afbf` fills = primary action; teal text `#1c95a2` = secondary; everything else neutral
342
- 2. Buttons flat, content shadowed — never the reverse
343
- 3. Radius ladder: 8 / 10 / 12 / 16px; circles only for social avatars
344
- 4. Pretendard Variable everywhere; hierarchy via weight 700 → 600 → 500 → 400
345
- 5. Display line-height stays generous (1.4–1.5) — never compress the hero
346
- 6. Sections alternate white and `#f1f2f4`; no border dividers
347
- 7. Show real template thumbnails as content — the product demos itself
348
-
349
- ---
245
+ For a public MiriCanvas-inspired CTA, use a white canvas, `#21afbf` filled action, `#ffffff` text, 8px radius, 8px 16px padding, 40px height, and `Pretendard Variable` 14px/500. For public navigation, use transparent background, `#23242a` text, 8px radius, and the same 40px / 14px 500 baseline. Use the white 16px-rounded menu with the recorded shadow only after a menu is explicitly expanded.
350
246
 
351
247
  ## 10. Voice & Tone
352
248
 
353
- MiriCanvas speaks in a voice that is **encouraging, plain, and possibility-selling** — it talks to people who don't think of themselves as designers and tells them they already are. The hero "세상의 모든 디자인은 미리캔버스로 완성" ("Every design in the world, completed with MiriCanvas") is the register: sweeping in promise, simple in vocabulary, zero technical jargon. CTAs are immediate and friction-free (바로 시작하기 "start right now"), and even the search placeholder coaches the user with a concrete example instead of a generic "검색".
354
-
355
- | Context | Tone |
356
- |---|---|
357
- | Hero headlines | Big, inclusive promise in plain Korean. "세상의 모든 디자인은 미리캔버스로 완성." |
358
- | CTAs | Immediate, zero-commitment imperatives. "바로 시작하기", "지금 써보기", "템플릿 보러가기". |
359
- | Feature copy | Capability + breadth. "프레젠테이션, 동영상, SNS 등 모든 템플릿이 한 곳에." |
360
- | Pricing | Rational, user-side framing. "사용 방식에 따라 선택하는 합리적인 요금제." |
361
- | Input placeholders | Coaching by example: shows users *how* to ask, with a vivid sample query. |
362
- | Education/enterprise | Welcoming, benefit-first ("교육기관을 위한 특별한 무료 버전"). |
249
+ The public product copy is direct, inclusive, and task-oriented. The template route promises that complex design can be completed with a template in three minutes; the business route frames the service as an all-in-one answer for creation, management, and made-to-order printing. This is source context for voice, not evidence of an editor microcopy system.
363
250
 
364
- **Voice samples (verbatim from live surfaces):**
365
- - "세상의 모든 디자인은 미리캔버스로 완성" — homepage hero H1. *(verified live 2026-06-10)*
366
- - "프레젠테이션, 동영상, SNS 모든 템플릿이 곳에" — homepage section H2. *(verified live 2026-06-10)*
367
- - "사용 방식에 따라 선택하는 합리적인 요금제" pricing H1. *(verified live 2026-06-10)*
368
- - "스타일과 용도를 함께 검색해 보세요 (예: 초록색 차분한 캘리그라피 웨딩 초대장)" — template search placeholder. *(verified live 2026-06-10)*
369
- - "The design tool for creatives like you" English homepage hero. *(verified live 2026-06-10)*
251
+ | Context | Observed or official expression |
252
+ |---------|--------------------------------|
253
+ | Homepage | “세상의 모든 디자인은 미리캔버스로 완성” (supplied public-surface capture) |
254
+ | Templates | “복잡한 디자인, 템플릿으로 3분이면 끝!” (official template page) |
255
+ | Business | “기업의 디자인 고민, 미리캔버스로 번에 해결합니다” (official business page) |
256
+ | Corporate | MIRIDIH describes making communication through design easier (official corporate page) |
370
257
 
371
- **Forbidden register**: designer jargon (kerning, bleed, grid system) on user-facing copy; pressure tactics or countdown urgency; English loan-word showing-off where plain Korean works; apologetic hedging the voice assumes the user *can* do this.
258
+ Avoid inventing editor error messages, onboarding wording, or persona-specific voice rules: these were not available in public evidence.
372
259
 
373
260
  ## 11. Brand Narrative
374
261
 
375
- MiriCanvas is operated by **미리디 (MIRIDIH)** CEO **강창석** — a Seoul-based company whose corporate site states the mission verbatim: *"미리디는 디자인의 불편한 순간들을 바꾸고, 모두가 쉽게 디자인을 통해 소통할 수 있는 세상을 만들어 갑니다"* ("MIRIDIH changes the inconvenient moments of design and builds a world where everyone communicates easily through design"). The corporate tagline doubles down: *"모두가 쉽게 디자인을 통해 세상과 소통하게 합니다."* MiriCanvas launched as a free, browser-based design tool whose founding wedge was distinctly Korean: templates that are free to use **without copyright worry** (저작권 걱정 없는 무료 템플릿) — a direct answer to the licensing anxiety that haunted Korean small businesses, teachers, and civil servants making posters and presentations.
262
+ MiriCanvas is operated by MIRIDIH. The operator's official corporate page says it aims to change inconvenient moments in design and enable people to communicate more easily through design; it lists integrity, customer focus, data-driven work, and high standards as operating values. The same page describes current growth beyond the domestic market, providing a bounded account of the brand's present direction.
376
263
 
377
- The product grew into an ecosystem visible in its own navigation: 미리캔버스 (the editor), 디자인허브 (template discovery), 프린트허브 and **비즈하우스 (BIZHOWS)** the print-commerce sibling that turns finished designs into physical banners, business cards, and merchandise. This design-to-print loop is the company's structural moat: where global rivals stop at export, MiriCanvas hands the file to a printing plant. The team blog (medium.com/miridih) describes itself as *"간편한 디자인 문화를 만들어가는 미리디 팀 블로그"* — a team building an *easy design culture* — and the corporate site declares the next chapter: *"수치로 증명된 압도적인 고객 경험, 이제 국내를 넘어 글로벌 시장으로 나아갑니다"* (proven customer experience, now expanding beyond Korea to the global market).
378
-
379
- What the brand refuses, visible in the design: professional-tool intimidation (no dense toolbars on marketing surfaces, no jargon), dark-pattern monetization pressure (the free tier leads every pricing conversation), and decorative abstraction (real templates instead of brand illustration). What it embraces: one friendly teal, generous type, and the conviction that showing 50,000 real templates is more persuasive than any slogan.
264
+ The public MiriCanvas ecosystem shows two verified contexts rather than one undifferentiated surface. Template and pricing routes serve public discovery and plan comparison, while the business and Help Center materials describe organization-level governance, approval, and content use. The companys terms state that rights in service-provided content remain with the original author/content provider or company as applicable and that use follows the license agreement. That is a license boundary, not a claim that every template, font, or customer output has the same rights.
380
265
 
381
266
  ## 12. Principles
382
267
 
383
- 1. **Everyone is a designer.** The mission "모두가 쉽게 디자인을 통해 소통" — defines the audience as the whole population, not professionals. *UI implication:* zero jargon, coached inputs (example-driven placeholders), and CTAs that promise immediacy (바로 시작하기) rather than capability depth.
384
- 2. **Templates are the interface.** Users start from finished work, not a blank canvas. *UI implication:* template thumbnails get the entire depth budget (the only shadowed elements) and the homepage is organized as browsable category rails.
385
- 3. **One color means go.** Teal `#21afbf` appears exactly where the user can act. *UI implication:* never spend the teal on decoration; secondary actions step down to teal *text* (`#1c95a2`), keeping a strict two-level action hierarchy.
386
- 4. **Customer focus, data-driven.** MIRIDIH's stated core values "Customer Focus & Impact-Driven Goals", "Data-Driven & High Standards" — anchor decisions in measured user impact. *UI implication:* friction metrics beat aesthetics; the design favors obvious affordances (40px buttons, plain labels) over cleverness.
387
- 5. **Integrity for the whole.** The first stated value pair — "Integrity & Thinking for the Whole" — extends to the copyright-safe template promise. *UI implication:* trust messaging (free, no copyright worry) is stated plainly in copy, never buried in fine print.
268
+ 1. **Ease communication through design.** MIRIDIH's stated mission supports clear, approachable public entry points. *UI implication:* retain the public routes' plain action hierarchy, without asserting unobserved editor flows.
269
+ 2. **Customer focus and high standards.** These are MIRIDIH's stated values. *UI implication:* treat a visual token as canonical only when its source domain and computed evidence agree.
270
+ 3. **Governable team creation.** Official help documentation allows owners and managers to constrain colors, fonts, templates, and elements for members. *UI implication:* brand-governance controls are product capabilities, not a license to promote documentation chrome into the public token system.
271
+ 4. **Licensed content has boundaries.** The service terms describe content rights and license-based use. *UI implication:* do not characterize templates or font assets as universally “copyright safe” without a specific applicable license.
388
272
 
389
273
  ## 13. Personas
390
274
 
391
- *Personas below are fictional archetypes informed by publicly observable MiriCanvas user segments (small-business owners, teachers, marketing juniors, casual creators), not individual people.*
275
+ *These are evidence-backed stakeholder groups, not fictional individuals or demographic personas.*
276
+
277
+ **Workspace owners and managers.** The editor-control documentation identifies these roles as configuring permitted editor functions and brand-managed colors, fonts, templates, and elements.
392
278
 
393
- **박은주, 38, 대전.** Runs a small café and makes her own menu boards, event posters, and Instagram announcements. Doesn't know what a vector is and doesn't want to. Chose MiriCanvas because the templates were free, copyright-safe, and she could order the printed banner from the same screen.
279
+ **Workspace members.** The same documentation identifies members as the people to whom those configured controls apply.
394
280
 
395
- **김태현, 27, 서울.** First-year marketer at a 20-person startup, responsible for every card-news post and sales deck. Lives in the template hub's search bar — types things like "미니멀 채용공고" and ships in twenty minutes. Upgraded to Pro when brand-kit consistency started to matter.
281
+ **Review collaborators.** The design-approval guide describes people requesting approval and exchanging feedback in a workspace.
396
282
 
397
- **이선영, 45, 경북.** Middle-school teacher preparing class materials and school-event posters. Uses the free education tier; values that students can collaborate in the browser with nothing installed. Trusts the tool because nothing in it ever made her feel behind.
283
+ **Organization and franchise operators.** The official business material addresses organizations that need consistent design, production, and distribution across headquarters and locations.
398
284
 
399
285
  ## 14. States
400
286
 
401
- | State | Treatment |
402
- |---|---|
403
- | **Empty (no search results)** | White canvas, plain Ink (`#16181d`) one-liner stating no matching templates, with suggested alternate keywords as teal text links — the coached-search pattern continues into the empty state. |
404
- | **Empty (new workspace, no designs)** | Template suggestions instead of a blank void — the system never shows a truly empty canvas; it shows starting points with one teal CTA. |
405
- | **Loading (template rail)** | Skeleton cards at final 12px-radius dimensions on `#f1f2f4` blocks, flat pulse. Thumbnails pop in with their soft shadow once loaded. |
406
- | **Loading (editor open)** | Brand-teal progress indication on white; cheerful, short. |
407
- | **Error (search/network failed)** | Inline plain-Korean message with a retry action in teal text (`#1c95a2`). No blame, no codes — "다시 시도해 주세요" register. |
408
- | **Error (form validation)** | Field-level message below the input; states what a valid value looks like, consistent with the example-driven placeholder voice. |
409
- | **Success (saved/exported)** | Quiet inline confirmation; the resulting design preview is the real success signal. No confetti on routine saves. |
410
- | **Skeleton** | `#f1f2f4` blocks at final dimensions matching the radius ladder (12px cards, 16px tiles), flat pulse, no shimmer gradient. |
411
- | **Disabled** | Labels drop to Faint (`#8d94a5`); teal actions fade in opacity rather than turning grey, preserving the action-color meaning. |
287
+ No public runtime empty, loading, error, success, validation, disabled, skeleton, or reduced-motion state was captured. This reference deliberately does not prescribe them.
412
288
 
413
289
  ## 15. Motion & Easing
414
290
 
415
- **Durations**:
416
-
417
- | Token | Value | Use |
418
- |---|---|---|
419
- | `motion-fast` | 120ms | Hover surfaces on nav/buttons, focus rings |
420
- | `motion-standard` | 200ms | Card hover lift, dropdown/menu open, rail snap |
421
- | `motion-slow` | 320ms | Section reveals, page-level transitions |
422
-
423
- **Easings**:
424
-
425
- | Token | Curve | Use |
426
- |---|---|---|
427
- | `ease-enter` | `cubic-bezier(0.2, 0.6, 0.25, 1)` | Cards, menus, panels arriving |
428
- | `ease-exit` | `cubic-bezier(0.4, 0.0, 1, 1)` | Dismissals |
429
- | `ease-standard` | `cubic-bezier(0.25, 0.1, 0.25, 1)` | Two-way state changes |
430
-
431
- **Motion rules**: Motion is light and content-serving — template rails glide with momentum and snap, card hovers add a subtle lift consistent with the `rgba(0, 0, 0, 0.15)` shadow language, and chrome (nav, buttons) limits itself to fast background-tint fades. Nothing bounces: the tool sells effortlessness, and overshoot reads as effort. Under `prefers-reduced-motion: reduce`, rail animation and lifts collapse to instant state changes; browsing and editing remain fully functional.
432
-
433
- <!--
434
- OmD v0.1 Sources — Philosophy Layer (sections 10–15)
435
-
436
- Tier 1 live inspect (2026-06-10) via playwright getComputedStyle:
437
- - https://www.miricanvas.com/ko — hero H1 "세상의 모든 디자인은 미리캔버스로 완성" 64px/700/lh96,
438
- CTA bg rgb(33,175,191) #21afbf, secondary CTA text rgb(28,149,162) #1c95a2,
439
- section band rgb(241,242,243~244), template-card shadow rgba(0,0,0,0.15) 0 2px 8px
440
- - https://www.miricanvas.com/ko/pricing — H1 40px/700, ghost teal buttons, plan tint rgba(33,175,191,0.1)
441
- - https://www.miricanvas.com/ko/templates — search input 46px/10px radius, placeholder verbatim
442
- - https://www.miridih.com/ko — mission/values verbatim: "미리디는 디자인의 불편한 순간들을 바꾸고,
443
- 모두가 쉽게 디자인을 통해 소통할 수 있는 세상을 만들어 갑니다";
444
- core values "Integrity & Thinking for the Whole", "Customer Focus & Impact-Driven Goals",
445
- "Data-Driven & High Standards"; 대표 강창석 (site footer); products 미리캔버스/비즈하우스
446
- - https://medium.com/miridih — official team blog, self-description verbatim:
447
- "간편한 디자인 문화를 만들어가는 미리디 팀 블로그"
448
-
449
- Voice samples (§10) are verbatim from the live homepage, pricing, and template-hub surfaces.
450
-
451
- Brand narrative (§11): operator MIRIDIH and CEO 강창석 are verbatim from miridih.com footer.
452
- The "copyright-worry-free free templates" positioning (저작권 걱정 없는 무료 템플릿) is the product's
453
- widely documented public positioning, not a verbatim quote captured this turn. BIZHOWS and the
454
- design-to-print ecosystem are confirmed by the product-family switcher in the live GNB
455
- (미리캔버스/디자인허브/프린트허브/비즈하우스).
456
-
457
- Personas (§13) are fictional archetypes informed by publicly observable MiriCanvas user segments.
458
- Names are illustrative; they do not refer to real people.
459
-
460
- §14 States and §15 Motion are design-system extrapolations consistent with observed tokens
461
- (flat chrome, content-only shadows, teal action hierarchy); they are not separately measured
462
- runtime observations. Interpretive claims (e.g., "templates are the interface",
463
- "one color means go") are editorial readings connecting observed design to stated mission.
464
- -->
291
+ No duration, easing curve, transition, or reduced-motion rule was captured in the supplied evidence. No motion token is asserted.