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
@@ -0,0 +1,464 @@
1
+ ---
2
+ id: beusable
3
+ name: Beusable
4
+ display_name_kr: 뷰저블 (포그리트 4Grit)
5
+ country: KR
6
+ category: marketing
7
+ homepage: "https://www.beusable.net/"
8
+ primary_color: "#ec0047"
9
+ logo:
10
+ type: favicon
11
+ slug: "https://dream-cdn.beusable.net/home/images/favicon.ico"
12
+ verified: "2026-07-02"
13
+ added: "2026-07-02"
14
+ omd: "0.1"
15
+ tokens:
16
+ source: live-extract
17
+ extracted: "2026-07-02"
18
+ note: "primary = live Get Started CTA rose (#ec0047); brighter #ff1553 on hover/emphasis. Cyan (#00b7ff) is the highlight/link accent; teal (#13a5bf/#16b5d2) + heatmap yellow (#f6e136) are the data-viz hues. Dark hero band #181818 over white content; pure-black (#000000) body text."
19
+ colors:
20
+ primary: "#ec0047"
21
+ primary-hover: "#ff1553"
22
+ accent: "#00b7ff"
23
+ teal: "#13a5bf"
24
+ teal-alt: "#16b5d2"
25
+ data-yellow: "#f6e136"
26
+ ink: "#000000"
27
+ heading: "#2f2f2f"
28
+ heading-strong: "#222222"
29
+ body: "#444444"
30
+ border-strong: "#666666"
31
+ muted: "#777777"
32
+ muted-alt: "#999999"
33
+ faint: "#b1b1b1"
34
+ faint-alt: "#cccccc"
35
+ canvas: "#ffffff"
36
+ surface-dark: "#181818"
37
+ tint-cyan: "#e0f6fa"
38
+ hairline: "#ebebeb"
39
+ hairline-alt: "#d9d9d9"
40
+ typography:
41
+ family: { display: "NewRubrik", body: "Pretendard Variable" }
42
+ display-hero: { size: 65, weight: 700, lineHeight: 1.00, tracking: -1.5, use: "English display H1, NewRubrik" }
43
+ section: { size: 55, weight: 700, lineHeight: 1.31, tracking: -1.0, use: "Korean section headline, Pretendard" }
44
+ nav: { size: 14, weight: 500, lineHeight: 1.40, use: "Top nav links, Pretendard" }
45
+ button: { size: 14, weight: 700, lineHeight: 1.00, use: "CTA / Get Started label" }
46
+ body: { size: 16, weight: 400, lineHeight: 1.50, use: "Standard reading text" }
47
+ caption: { size: 14, weight: 400, lineHeight: 1.40, use: "Sub-nav / dropdown menu labels" }
48
+ spacing: { xs: 4, sm: 8, md: 12, base: 16, lg: 18, xl: 28, xxl: 32 }
49
+ rounded: { sm: 4, md: 5, lg: 21, full: 9999 }
50
+ shadow:
51
+ none: "none"
52
+ floating: "rgba(0,0,0,0.05) 0px 9px 11px -5px"
53
+ components:
54
+ cta-primary: { type: button, bg: "#ec0047", fg: "#ffffff", radius: "9999px", padding: "8px 16px", height: "38px", font: "14px / 700 Pretendard Variable", states: "hover #ff1553", use: "Primary Get Started CTA, full pill" }
55
+ button-outline-light: { type: button, fg: "#222222", border: "1px solid #666666", radius: "21px", padding: "10px 18px", height: "38px", font: "14px / 700 Pretendard Variable", use: "Sign In / secondary action on white surface" }
56
+ hero-glass-pill: { type: button, fg: "#00b7ff", radius: "9999px", padding: "0 28px", height: "60px", font: "16px / 400 Pretendard Variable", use: "Hero glass CTA on dark band, translucent bg + white hairline border" }
57
+ filter-tag: { type: badge, fg: "#ec0047", border: "1px solid #ec0047", radius: "5px", padding: "4px 10px", font: "14px / 500 Pretendard Variable", use: "Feature filter / section tag" }
58
+ nav-menu-item: { type: listItem, bg: "#ffffff", fg: "#444444", radius: "4px", padding: "6px 10px", font: "14px / 400 Pretendard Variable", states: "active #ec0047", use: "Feature dropdown menu row" }
59
+ tinted-card: { type: card, bg: "#e0f6fa", fg: "#222222", radius: "20px", use: "Soft cyan-tinted feature card" }
60
+ back-fab: { type: button, bg: "#ffffff", fg: "#00b7ff", radius: "20px", padding: "9px 15px", shadow: "rgba(0,0,0,0.05) 0px 9px 11px -5px", font: "16px / 400 Pretendard Variable", use: "Floating back button on feature pages" }
61
+ data-marker: { type: badge, bg: "#f6e136", fg: "#000000", radius: "9999px", use: "Heatmap warm-zone data marker" }
62
+ components_harvested: true
63
+ ---
64
+
65
+ # Design System Inspiration of Beusable
66
+
67
+ ## 1. Visual Theme & Atmosphere
68
+
69
+ Beusable (뷰저블), built by the Korean analytics company 4Grit (포그리트), is a CX-data and UX-heatmap SaaS whose marketing site pairs a cinematic dark hero with crisp, high-contrast white product sections. The homepage opens on a near-black band (`#181818`) where a saturated rose CTA (`#ec0047`) and an electric cyan highlight (`#00b7ff`) do all the signalling, then drops into bright white (`#ffffff`) content zones where text sits in pure black (`#000000`) and a graphite heading grey (`#2f2f2f`). The effect is confident and data-forward: the dark stage frames the product's visualizations, and the light body keeps dense analytics copy legible.
70
+
71
+ The typographic personality is a deliberate two-voice split. English display headlines run in the custom **NewRubrik** face at large sizes — 65px / weight 700 with tight `-1.5px` tracking on the feature hero H1 ("UX Heatmap") — while Korean headlines and all UI text run in **Pretendard Variable** (with Noto Sans KR and AppleSDGothicNeo fallbacks), including 55px / 700 Korean section headlines at `-1px` tracking. Body and navigation drop to a quiet 14–16px / 400–500. This gives the brand a globalized, product-marketing cadence: bold Latin display for impact, Pretendard for dense hangul readability.
72
+
73
+ Geometry leans hard into the pill. Primary CTAs and hero buttons carry effectively-full radii (700px–999px on the dark hero, a tamer 21px on inner feature pages), while dropdown menu rows and filter tags stay tight at 4–5px. Depth is mostly flat — most surfaces show `box-shadow: none`, separated instead by the dark/light band contrast, `#ebebeb` hairlines, and soft cyan-tinted cards (`#e0f6fa`). The one recurring elevation is a floating "back" control that uses a soft `rgba(0,0,0,0.05) 0px 9px 11px -5px` shadow. Color-coded data hues — teal (`#13a5bf`, `#16b5d2`) and a heatmap-warm yellow (`#f6e136`) — surface where the product shows its heatmap and journey-map visualizations.
74
+
75
+ **Key Characteristics:**
76
+ - Dark cinematic hero (`#181818`) over bright white (`#ffffff`) product sections
77
+ - Single saturated rose (`#ec0047`) as the primary action color, brightening to `#ff1553` on hover/emphasis
78
+ - Electric cyan (`#00b7ff`) as the highlight/link accent, distinct from the action rose
79
+ - Two-voice type: NewRubrik for English display, Pretendard Variable for Korean + all UI
80
+ - Pill-everything CTAs (700px–999px on hero, 21px inner) with tight 4–5px menu/tag radii
81
+ - Flat depth — mostly shadowless, separated by band contrast and `#ebebeb` hairlines
82
+ - Data-viz palette — teal (`#13a5bf`/`#16b5d2`) and heatmap yellow (`#f6e136`) for visualizations
83
+ - Pure-black (`#000000`) body text with a graphite heading ladder (`#2f2f2f` → `#222222`)
84
+
85
+ ## 2. Color Palette & Roles
86
+
87
+ ### Primary & Action
88
+ - **Beusable Rose** (`#ec0047`): Primary brand and action color — the Get Started CTA background, inline action buttons, active nav state, and filter-tag outline. The system's single "do this" color.
89
+ - **Rose Bright** (`#ff1553`): A brighter rose used for hover and emphasis states on the primary action.
90
+
91
+ ### Accent & Data
92
+ - **Cyan Accent** (`#00b7ff`): The highlight/link color — hero highlight text, inline links, and the floating back control. Deliberately separate from the action rose so "highlight" never reads as "action."
93
+ - **Teal** (`#13a5bf`): Secondary data-visualization hue for charts and journey-map surfaces.
94
+ - **Teal Alt** (`#16b5d2`): A lighter teal companion for gradient and data accents.
95
+ - **Heatmap Yellow** (`#f6e136`): Warm heatmap-zone marker — the hot end of the product's data visualization scale.
96
+
97
+ ### Text & Ink
98
+ - **Ink Black** (`#000000`): Pure black — the dominant body-text color across white sections.
99
+ - **Heading Graphite** (`#2f2f2f`): Display H1 heading color on light surfaces.
100
+ - **Heading Strong** (`#222222`): Strong Korean section-headline and secondary-button text color.
101
+ - **Body Grey** (`#444444`): Nav links and standard body copy on white.
102
+ - **Border Strong** (`#666666`): 1px outline color for the Sign In / secondary button on white.
103
+ - **Muted** (`#777777`): Tertiary text, captions, metadata.
104
+ - **Muted Alt** (`#999999`): Lower-emphasis labels and helper text.
105
+ - **Faint** (`#b1b1b1`): Faint labels, disabled-adjacent text.
106
+ - **Faint Alt** (`#cccccc`): Lowest-emphasis text, placeholder-level greys.
107
+
108
+ ### Surface & Hairline
109
+ - **Pure White** (`#ffffff`): Page background, cards, nav, and text on rose/dark.
110
+ - **Surface Dark** (`#181818`): The cinematic dark hero band and dark feature strips.
111
+ - **Cyan Tint** (`#e0f6fa`): Soft cyan-tinted card/section surface for grouped feature blocks.
112
+ - **Hairline** (`#ebebeb`): Primary thin border/divider given the near-shadowless system.
113
+ - **Hairline Alt** (`#d9d9d9`): Slightly stronger divider for secondary separation.
114
+
115
+ ## 3. Typography Rules
116
+
117
+ ### Font Family
118
+ - **Display (English)**: `NewRubrik` — the custom Latin display face used for English hero headlines (e.g. "UX Heatmap") at weight 700 with tight negative tracking.
119
+ - **Body & Korean**: `Pretendard Variable` (with `Noto Sans KR`, `AppleSDGothicNeo` fallbacks) — Korean headlines and all UI/body text.
120
+
121
+ ### Hierarchy
122
+
123
+ | Role | Font | Size | Weight | Line Height | Letter Spacing | Notes |
124
+ |------|------|------|--------|-------------|----------------|-------|
125
+ | Display Hero (EN) | NewRubrik | 65px (4.06rem) | 700 | 1.00 (65px) | -1.5px | English feature H1 |
126
+ | Section Heading (KR) | Pretendard Variable | 55px (3.44rem) | 700 | 1.31 (72px) | -1.0px | Korean section headline |
127
+ | Nav Link | Pretendard Variable | 14px (0.88rem) | 500 | 1.40 | normal | Top navigation items |
128
+ | Button | Pretendard Variable | 14px (0.88rem) | 700 | 1.00 | normal | Get Started / CTA labels |
129
+ | Body | Pretendard Variable | 16px (1.00rem) | 400 | 1.50 | normal | Standard reading text |
130
+ | Caption / Menu | Pretendard Variable | 14px (0.88rem) | 400 | 1.40 | normal | Dropdown menu / sub-nav labels |
131
+
132
+ ### Principles
133
+ - **Two voices, two scripts**: NewRubrik owns English display impact; Pretendard Variable owns Korean headlines and every functional UI string. They never swap roles.
134
+ - **Tight display tracking**: -1.5px on the 65px English H1, -1px on the 55px Korean section heading. Headlines compress; body stays at normal tracking.
135
+ - **Heavy display, light body**: weight 700 for headlines and CTAs, 400–500 for reading and navigation — the weight jump is the primary hierarchy signal.
136
+ - **Hangul-first body sizing**: body sits at 14–16px with 1.5 line-height for dense, legible Korean analytics copy.
137
+
138
+ ## 4. Component Stylings
139
+
140
+ ### Buttons
141
+
142
+ **Get Started (Primary)**
143
+ - Background: `#ec0047`
144
+ - Text: `#ffffff`
145
+ - Radius: 9999px (full pill on hero; 21px on inner feature pages)
146
+ - Padding: 8px 16px
147
+ - Height: 38px
148
+ - Font: 14px Pretendard Variable weight 700
149
+ - Hover: `#ff1553`
150
+ - Use: Primary conversion CTA in header and hero — the single primary action
151
+
152
+ **Sign In (Outline, Light)**
153
+ - Background: transparent
154
+ - Text: `#222222`
155
+ - Border: 1px solid `#666666`
156
+ - Radius: 21px
157
+ - Padding: 10px 18px
158
+ - Height: 38px
159
+ - Font: 14px Pretendard Variable weight 700
160
+ - Use: Secondary action on white surfaces
161
+
162
+ **Hero Glass Pill**
163
+ - Text: `#00b7ff`
164
+ - Border: 1px solid rgba(255,255,255,0.24)
165
+ - Radius: 9999px
166
+ - Padding: 0px 28px
167
+ - Height: 60px
168
+ - Font: 16px Pretendard Variable weight 400
169
+ - Use: Translucent hero CTA on the dark band ("9,000개 기업이 발견한 것")
170
+
171
+ **Floating Back**
172
+ - Background: `#ffffff`
173
+ - Text: `#00b7ff`
174
+ - Radius: 20px
175
+ - Padding: 9px 15px
176
+ - Shadow: `rgba(0,0,0,0.05) 0px 9px 11px -5px`
177
+ - Font: 16px Pretendard Variable weight 400
178
+ - Use: Floating "뒤로" back control on feature pages
179
+
180
+ ### Cards & Containers
181
+
182
+ **Cyan-Tinted Card**
183
+ - Background: `#e0f6fa`
184
+ - Text: `#222222`
185
+ - Radius: 20px
186
+ - Use: Soft cyan-tinted feature/grouping card
187
+
188
+ **White Feature Card**
189
+ - Background: `#ffffff`
190
+ - Border: 1px solid `#ebebeb`
191
+ - Radius: 20px
192
+ - Use: White feature card separated by hairline, no shadow
193
+
194
+ ### Badges
195
+
196
+ **Filter Tag**
197
+ - Background: transparent
198
+ - Text: `#ec0047`
199
+ - Border: 1px solid `#ec0047`
200
+ - Radius: 5px
201
+ - Padding: 4px 10px
202
+ - Font: 14px Pretendard Variable weight 500
203
+ - Use: Feature filter / section tag
204
+
205
+ **Heatmap Data Marker**
206
+ - Background: `#f6e136`
207
+ - Text: `#000000`
208
+ - Radius: 9999px
209
+ - Use: Warm-zone marker in heatmap visualizations
210
+
211
+ ### List Items
212
+
213
+ **Feature Dropdown Row**
214
+ - Background: `#ffffff`
215
+ - Text: `#444444`
216
+ - Radius: 4px
217
+ - Padding: 6px 10px
218
+ - Font: 14px Pretendard Variable weight 400
219
+ - Active: `#ec0047`
220
+ - Use: Feature dropdown menu row (Features / Pricing / UX Heatmaps…)
221
+
222
+ ### Navigation
223
+ - Background: `#181818` (dark home) / `#ffffff` (inner pages)
224
+ - Text: `#ffffff` (dark) / `#444444` (light)
225
+ - Font: 14px Pretendard Variable weight 500
226
+ - Active: rose `#ec0047` text
227
+ - Use: Top horizontal nav ("UX 히트맵", "CX 저니맵", "대화형 BI", "생성형 GEO", "맞춤형 AI")
228
+
229
+ ---
230
+
231
+ **Verified:** 2026-07-02 (omd:add-reference CREATE — Tier 1 live inspect, 2 surfaces)
232
+ **Tier 1 sources:** https://www.beusable.net/ ; https://www.beusable.net/features/heatmaps ; https://www.beusable.net/blog ; https://www.4grit.com/company-english/
233
+ **Tier 2 sources:** getdesign.md/beusable (SPA shell, no beusable record) ; styles.refero.design/?q=beusable (not listed — only generic trending styles returned)
234
+ **Conflicts unresolved:** none
235
+
236
+ ## 5. Layout Principles
237
+
238
+ ### Spacing System
239
+ - Base unit: 8px
240
+ - Scale: 4px, 6px, 8px, 10px, 11px, 12px, 14px, 16px, 18px, 28px, 32px
241
+ - Notable: hero pill CTAs carry generous 28–32px horizontal padding for a large, tappable target; inner nav/menu rows stay tight at 6–10px
242
+
243
+ ### Grid & Container
244
+ - Centered single-column dark hero anchored by the CTA and highlight text
245
+ - White product sections alternate as full-width bands beneath the hero
246
+ - Feature pages use a left sub-nav of feature rows plus a large display H1
247
+ - Cards group related visualizations at a 20px radius
248
+
249
+ ### Whitespace Philosophy
250
+ - **Band contrast over borders**: the dark hero (`#181818`) versus white (`#ffffff`) sections is the primary structural divide, not heavy rules
251
+ - **Flat separation**: within white zones, `#ebebeb` and `#d9d9d9` hairlines and cyan-tinted (`#e0f6fa`) cards separate content without elevation
252
+ - **Pill rhythm**: repeated full-radius CTAs create a consistent, friendly cadence across conversion points
253
+
254
+ ### Border Radius Scale
255
+ - Small (4px): dropdown menu rows
256
+ - Tag (5px): filter/section tags
257
+ - Inner CTA (20–21px): buttons and floating controls on feature pages
258
+ - Full (700–999px / 9999px): hero CTAs, glass pills, data markers
259
+
260
+ ## 6. Depth & Elevation
261
+
262
+ | Level | Treatment | Use |
263
+ |-------|-----------|-----|
264
+ | Flat (Level 0) | No shadow | Most surfaces — hero, nav, headings, cards |
265
+ | Band (Level 1) | Dark `#181818` vs white `#ffffff` contrast | Primary section separation |
266
+ | Hairline (Level 2) | 1px solid `#ebebeb` / `#d9d9d9` | White card outlines, dividers |
267
+ | Floating (Level 3) | `rgba(0,0,0,0.05) 0px 9px 11px -5px` | Floating back control on feature pages |
268
+
269
+ **Shadow Philosophy**: Beusable is a near-flat system. Live inspection found `box-shadow: none` across the hero, nav, headings, and most cards; depth comes from the dark/light band contrast and thin `#ebebeb` hairlines rather than elevation. The single recurring shadow is a soft, wide, negative-spread lift (`rgba(0,0,0,0.05) 0px 9px 11px -5px`) reserved for the floating back control. When the product needs emphasis it reaches for color — the rose `#ec0047` action or the cyan `#00b7ff` highlight — not a heavier shadow.
270
+
271
+ ## 7. Do's and Don'ts
272
+
273
+ ### Do
274
+ - Use the rose (`#ec0047`) as the single primary action color; brighten to `#ff1553` on hover
275
+ - Keep cyan (`#00b7ff`) for highlights and links, distinct from the action rose
276
+ - Set English display headlines in NewRubrik at weight 700 with tight negative tracking
277
+ - Set Korean headlines and all UI text in Pretendard Variable
278
+ - Frame product visualizations against the dark `#181818` hero band
279
+ - Use full-pill radii on hero CTAs and tight 4–5px radii on menu rows and tags
280
+ - Separate white sections with `#ebebeb` hairlines and cyan-tinted (`#e0f6fa`) cards, not shadows
281
+ - Reserve teal (`#13a5bf`/`#16b5d2`) and heatmap yellow (`#f6e136`) for data visualization
282
+
283
+ ### Don't
284
+ - Spread the rose across many elements — it dilutes the single-action signal
285
+ - Use cyan (`#00b7ff`) as an action color — it means "highlight," not "do this"
286
+ - Set Korean headlines in NewRubrik — it owns English display only
287
+ - Add heavy drop shadows for elevation — the system separates with band contrast and hairlines
288
+ - Use pure black (`#000000`) backgrounds for content sections — reserve `#181818` for the hero band
289
+ - Mix additional saturated accent hues beyond rose, cyan, and the data teals/yellow
290
+ - Set display headlines in a light weight — display is always 700
291
+ - Use sharp square corners on CTAs — hero actions are full pills
292
+
293
+ ## 8. Responsive Behavior
294
+
295
+ ### Breakpoints
296
+ | Name | Width | Key Changes |
297
+ |------|-------|-------------|
298
+ | Mobile | <640px | Single column, hero headline compresses, nav collapses to menu |
299
+ | Tablet | 640-1024px | Moderate padding, 2-up feature cards, sub-nav wraps |
300
+ | Desktop | 1024-1440px | Full layout, centered dark hero, multi-column product bands |
301
+
302
+ ### Touch Targets
303
+ - Hero glass pills at 56–60px height with 28–32px horizontal padding — large, unmistakable targets
304
+ - Get Started CTA at 36–38px height, full pill
305
+ - Nav links and dropdown rows spaced for touch within the header
306
+
307
+ ### Collapsing Strategy
308
+ - Hero: 65px English / 55px Korean display compresses on mobile; weight 700 maintained
309
+ - Feature sub-nav: left rail of feature rows wraps/scrolls on narrow viewports
310
+ - Product bands: multi-column → stacked single column
311
+ - Dark hero and white sections keep full-width treatment, reduce internal padding
312
+
313
+ ### Image Behavior
314
+ - Heatmap and journey-map visualizations sit on the dark hero band or white cards at 20px radius
315
+ - Data markers keep the heatmap yellow (`#f6e136`) at all sizes
316
+ - Cards maintain 20px radius across breakpoints, no shadow
317
+
318
+ ## 9. Agent Prompt Guide
319
+
320
+ ### Quick Color Reference
321
+ - Primary action: Beusable Rose (`#ec0047`)
322
+ - Action hover: Rose Bright (`#ff1553`)
323
+ - Highlight / link: Cyan Accent (`#00b7ff`)
324
+ - Data viz: Teal (`#13a5bf`), Teal Alt (`#16b5d2`), Heatmap Yellow (`#f6e136`)
325
+ - Background (light): Pure White (`#ffffff`)
326
+ - Background (hero): Surface Dark (`#181818`)
327
+ - Tinted card: Cyan Tint (`#e0f6fa`)
328
+ - Body text: Ink Black (`#000000`)
329
+ - Heading: Graphite (`#2f2f2f`), Strong (`#222222`)
330
+ - Body / nav: Body Grey (`#444444`)
331
+ - Muted: `#777777`, `#999999`
332
+ - Hairline: `#ebebeb`, `#d9d9d9`
333
+
334
+ ### Example Component Prompts
335
+ - "Create a dark hero on `#181818`. English H1 in NewRubrik 65px weight 700, line-height 1.0, letter-spacing -1.5px, color `#ffffff`. A glass CTA pill: translucent dark background, `#00b7ff` text, 1px solid rgba(255,255,255,0.24) border, full radius, 0px 28px padding, 60px height. A solid rose CTA: `#ec0047` background, white text, full pill, 8px 16px, 14px Pretendard weight 700 — hover `#ff1553`."
336
+ - "Design a white feature card: `#ffffff` background, 1px solid `#ebebeb` border, 20px radius, no shadow. Title in Pretendard Variable weight 700, color `#222222`. Body 16px weight 400, `#000000`."
337
+ - "Build a cyan-tinted section card: `#e0f6fa` background, 20px radius. Heading `#222222`, body `#444444`. Include a filter tag: transparent background, `#ec0047` text, 1px solid `#ec0047` border, 5px radius, 4px 10px padding, 14px weight 500."
338
+ - "Create a light-page nav: white header, Pretendard 14px weight 500 links in `#444444`, active item rose `#ec0047`. Get Started CTA right-aligned as a `#ec0047` pill, white text, 21px radius."
339
+
340
+ ### Iteration Guide
341
+ 1. Rose (`#ec0047`) is the single action color — don't spread it; hover goes to `#ff1553`
342
+ 2. Cyan (`#00b7ff`) is highlight/link only, never an action
343
+ 3. NewRubrik for English display; Pretendard Variable for Korean + all UI
344
+ 4. Frame product visuals on the dark `#181818` band; keep body sections white
345
+ 5. Full-pill hero CTAs, tight 4–5px menu/tag radii
346
+ 6. Separate with `#ebebeb` hairlines and `#e0f6fa` tinted cards, not shadows
347
+ 7. Reserve teal (`#13a5bf`/`#16b5d2`) and yellow (`#f6e136`) for data visualization
348
+
349
+ ---
350
+
351
+ ## 10. Voice & Tone
352
+
353
+ Beusable's voice is **plain, curiosity-driven, and outcome-focused** — it turns web/app analytics from an intimidating numbers game into a "see why" invitation. The homepage frames the product as "가장 쉬운 CX데이터 분석" ("the easiest CX-data analysis"), and social proof is stated as a discovery, not a boast: "9,000개 기업이 발견한 것" ("what 9,000 companies discovered"). CTAs are conversational and question-led ("왜인지 알아보기" / "find out why", "직접 물어보기" / "ask directly"), positioning the product as a way to interrogate user behavior rather than a dashboard to admire.
354
+
355
+ | Context | Tone |
356
+ |---|---|
357
+ | Hero headline | Plain-benefit, curiosity-framed. "가장 쉬운 CX데이터 분석." |
358
+ | Social proof | Stated as discovery, not bragging. "9,000개 기업이 발견한 것." |
359
+ | Feature nav | Functional, product-named. "UX 히트맵", "CX 저니맵", "대화형 BI". |
360
+ | CTAs | Conversational, question-led. "왜인지 알아보기", "직접 물어보기". |
361
+ | Feature copy | Explains the analytics concept in user language, heatmap over raw numbers. |
362
+
363
+ **Voice samples (verbatim from live surfaces):**
364
+ - "가장 쉬운 CX데이터 분석" — homepage title/positioning (easiest CX-data analysis). *(verified live 2026-07-02)*
365
+ - "9,000개 기업이 발견한 것" — hero glass CTA (social proof as discovery). *(verified live 2026-07-02)*
366
+ - "사용자의 의도와 요구, 과정 그리고 실패를 한눈에 확인할 수 있습니다." — UX Heatmap feature H2 (see intent, needs, journey, failure at a glance). *(verified live 2026-07-02)*
367
+
368
+ **Forbidden register**: intimidating statistics-speak with no plain-language framing, hype superlatives, fear-based conversion pressure, jargon left undecoded.
369
+
370
+ ## 11. Brand Narrative
371
+
372
+ Beusable (뷰저블) is the CX-data analytics product of **4Grit (포그리트)**, a Korean analytics company, and its core promise is to make understanding user behavior "the easiest" it can be. Where legacy web analytics reduces behavior to tables of numbers, Beusable's founding idea is visual: heatmaps, journey maps, funnels, and session analysis that let a team *see* where users hesitate, scroll, click, and drop off. The product's own framing — "숫자 대신 히트맵" (heatmaps instead of numbers) — is the whole thesis in four words.
373
+
374
+ The company states broad reach on its homepage — "9,000개 기업이 발견한 것" (what 9,000 companies discovered) — positioning Beusable as a widely-adopted Korean CX-analytics platform rather than a niche tool. Its product surface spans UX Heatmaps, RealTime Heatmap, Path Plot, Reporting & User Analytics, A/B Testing, Funnels, and Session Report, and the current site shows a clear move into AI: "대화형 BI" (conversational BI), "생성형 GEO" (generative GEO), and "맞춤형 AI" (custom AI) now sit alongside the classic heatmap features.
375
+
376
+ What Beusable rejects, visible in its design: the cold, table-heavy chrome of traditional analytics suites and the intimidation that keeps non-analysts away. What it embraces: a cinematic dark stage that puts visualizations center-frame, a single decisive rose action color, curiosity-led copy that asks "왜인지 알아보기" (find out why), and heatmap-warm data hues that make the data itself feel legible and human.
377
+
378
+ *(Company/parent facts — Beusable is a product of 4Grit / 포그리트 — are drawn from the brand's own site and company page; specific figures such as "9,000 companies" are the brand's own homepage claim, quoted as stated, not independently audited.)*
379
+
380
+ ## 12. Principles
381
+
382
+ 1. **See it, don't tabulate it.** Behavior is shown as heatmaps and journeys, not rows of numbers. *UI implication:* lead with visualization surfaces; keep raw tables secondary and on demand.
383
+ 2. **One decisive action.** The rose (`#ec0047`) means "do this" and nothing else does. *UI implication:* reserve the saturated rose exclusively for the primary CTA; use cyan for highlights so the next step is never ambiguous.
384
+ 3. **Curiosity over intimidation.** Copy asks "왜인지 알아보기" rather than presenting a wall of metrics. *UI implication:* frame entry points as questions and discoveries, decode analytics jargon into plain benefit.
385
+ 4. **Stage the product.** The dark hero band exists to frame the visualizations. *UI implication:* use `#181818` as a cinematic stage for product imagery; keep reading content on white.
386
+ 5. **Flat and fast.** Clarity beats decorative depth. *UI implication:* separate with band contrast and `#ebebeb` hairlines; reserve shadow for the one floating control.
387
+
388
+ ## 13. Personas
389
+
390
+ *Personas below are fictional archetypes informed by publicly observable Beusable user segments (Korean growth marketers, UX researchers, e-commerce product owners), not individual people.*
391
+
392
+ **정민지, 30, 서울.** A growth marketer at a mid-size e-commerce brand. Uses heatmaps and funnels to find where checkout drop-off happens before an A/B test. Chose Beusable because "왜인지 알아보기" matched exactly how she thinks — she wants the why, not just the conversion number.
393
+
394
+ **한도윤, 34, 판교.** A UX researcher who reads Path Plot and Session Report to validate design changes. Values that the product shows intent and failure "한눈에" (at a glance) instead of making him assemble it from raw event tables.
395
+
396
+ **오세라, 41, 부산.** A product owner at a services company evaluating the new conversational BI and custom-AI features. Wants analytics her non-analyst teammates can actually read; trusts the plain, curiosity-led tone over enterprise dashboard jargon.
397
+
398
+ ## 14. States
399
+
400
+ | State | Treatment |
401
+ |---|---|
402
+ | **Empty (no data collected yet)** | White canvas. Single Ink Black (`#000000`) line explaining no sessions are collected yet, plus one rose (`#ec0047`) CTA to install/start tracking. No clutter. |
403
+ | **Empty (report, zero results)** | Muted (`#777777`) single line stating nothing matched the filter, with the filter summary visible above to adjust scope. |
404
+ | **Loading (heatmap render)** | Skeleton blocks at final dimensions on white with a flat pulse — consistent with the near-shadowless system. Cyan (`#00b7ff`) progress accent where a determinate bar applies. |
405
+ | **Loading (dashboard fetch)** | Previous values stay visible; a subtle cyan progress indicator rather than a full-screen block. |
406
+ | **Error (data fetch failed)** | Inline message in Ink Black with a plain-language explanation and a retry — states what to do next, never a bare "오류가 발생했습니다". |
407
+ | **Error (form validation)** | Field-level message below the input describing what is valid, not just "필수". |
408
+ | **Success (tracking installed / report saved)** | Brief inline confirmation in a calm tone with next-step detail linked below. No celebratory emoji. |
409
+ | **Skeleton** | Neutral blocks at final dimensions, 20px radius on cards, flat pulse. |
410
+ | **Disabled** | Faint (`#b1b1b1`) / Faint Alt (`#cccccc`) text on reduced-opacity surface; rose actions fade rather than turn grey to preserve brand read. |
411
+
412
+ ## 15. Motion & Easing
413
+
414
+ **Durations**:
415
+
416
+ | Token | Value | Use |
417
+ |---|---|---|
418
+ | `motion-fast` | 120ms | Hover, button press, focus |
419
+ | `motion-standard` | 220ms | Card/section reveal, dropdown, sheet |
420
+ | `motion-slow` | 340ms | Page-level transitions, hero reveal, heatmap paint-in |
421
+
422
+ **Easings**:
423
+
424
+ | Token | Curve | Use |
425
+ |---|---|---|
426
+ | `ease-enter` | `cubic-bezier(0.2, 0.6, 0.25, 1)` | Arriving — cards, dropdowns, floating back control |
427
+ | `ease-exit` | `cubic-bezier(0.4, 0.0, 1, 1)` | Dismissals |
428
+ | `ease-standard` | `cubic-bezier(0.25, 0.1, 0.25, 1)` | Two-way transitions |
429
+
430
+ **Motion rules**: Motion is functional and data-forward. Heatmap and journey visualizations paint in progressively at `motion-slow / ease-enter` so the reveal reads as data arriving, not decoration. Pill CTAs respond to press with a subtle scale/opacity shift and hover shifts rose `#ec0047` → `#ff1553`. The floating back control eases in with its soft shadow. No bounce or spring — an analytics product signals steadiness and precision. Under `prefers-reduced-motion: reduce`, all transitions collapse to instant and visualizations render in their final state immediately; the product stays fully functional.
431
+
432
+ <!--
433
+ OmD v0.1 Sources — Philosophy Layer (sections 10–15)
434
+
435
+ Tier 1 live inspect (2026-07-02) via playwright getComputedStyle:
436
+ - https://www.beusable.net/ (homepage, dark hero) — document.title "뷰저블 - 가장 쉬운 CX데이터 분석|Beusable"
437
+ - https://www.beusable.net/features/heatmaps (UX Heatmap feature page) — document.title "UX Heatmap|Beusable"
438
+
439
+ Token-level claims (§1-9) are sourced from this live inspection:
440
+ - Get Started CTA — bg rgb(236,0,71) #ec0047 / white text / full pill / 14px Pretendard weight 700
441
+ - Rose bright accent rgb(255,21,83) #ff1553 seen in fg frequency scan
442
+ - Cyan accent rgb(0,183,255) #00b7ff — hero highlight text, links, floating back control
443
+ - Teal rgb(19,165,191) #13a5bf and rgb(22,181,210) #16b5d2 — data-viz hues
444
+ - Heatmap yellow rgb(246,225,54) #f6e136 — warm data marker on heatmaps page
445
+ - Dark hero band rgb(24,24,24) #181818; body text pure black rgb(0,0,0)
446
+ - Heading graphite rgb(47,47,47) #2f2f2f (H1) / strong rgb(34,34,34) #222222 (H2)
447
+ - H1 "UX Heatmap" NewRubrik 65px/700 -1.5px; H2 Korean 55px/700 -1px, Pretendard Variable
448
+ - Floating "뒤로" button — bg #ffffff / #00b7ff text / shadow rgba(0,0,0,0.05) 0px 9px 11px -5px
449
+
450
+ Voice samples (§10) are verbatim from the live homepage and feature H2.
451
+
452
+ Brand narrative (§11): Beusable (뷰저블) is a CX-data analytics / UX-heatmap product of 4Grit
453
+ (포그리트). Company/parent facts are from the brand's own site and the 4Grit company page
454
+ (https://www.4grit.com/company-english/). The "9,000 companies" figure is the brand's own
455
+ homepage claim, quoted as stated, not independently audited.
456
+
457
+ Personas (§13) are fictional archetypes informed by publicly observable Beusable user
458
+ segments (Korean growth marketers, UX researchers, e-commerce product owners). Names are
459
+ illustrative; they do not refer to real people.
460
+
461
+ Interpretive claims (e.g., "see it, don't tabulate it", "stage the product") are editorial
462
+ readings connecting Beusable's observed design to its positioning, not directly sourced
463
+ Beusable statements.
464
+ -->