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
@@ -9,271 +9,296 @@ primary_color: "#ff4438"
9
9
  logo:
10
10
  type: favicon
11
11
  slug: "https://www.google.com/s2/favicons?domain=classum.com&sz=256"
12
- verified: "2026-05-15"
12
+ verified: "2026-07-13"
13
13
  omd: "0.1"
14
+ verification_v2:
15
+ schema: 2
16
+ checked: "2026-07-13"
17
+ surfaces:
18
+ - { id: home, kind: public-marketing, url: "https://business.classum.com/", inspected: "2026-07-13" }
19
+ - { id: learning, kind: public-marketing, url: "https://business.classum.com/learning", inspected: "2026-07-13" }
20
+ - { id: university-lms, kind: public-marketing, url: "https://business.classum.com/university/lms", inspected: "2026-07-13" }
21
+ sources:
22
+ - { id: home-capture, kind: product-surface, url: "https://business.classum.com/", captured: "2026-07-13" }
23
+ - { id: learning-capture, kind: product-surface, url: "https://business.classum.com/learning", captured: "2026-07-13" }
24
+ - { id: university-lms-capture, kind: product-surface, url: "https://business.classum.com/university/lms", captured: "2026-07-13" }
25
+ - { id: company-context, kind: official-doc, url: "https://business.classum.com/", captured: "2026-07-13" }
26
+ - { id: lms-context, kind: official-doc, url: "https://business.classum.com/university/lms", captured: "2026-07-13" }
27
+ - { id: culture-context, kind: official-doc, url: "https://careers.classum.com/culture", captured: "2026-07-13" }
28
+ - { id: font-design, kind: official-doc, url: "https://github.com/orioncactus/pretendard/blob/main/packages/pretendard/docs/en/README.md", captured: "2026-07-13" }
29
+ - { id: font-license, kind: license, url: "https://github.com/orioncactus/pretendard/blob/main/LICENSE", captured: "2026-07-13" }
30
+ conflicts: []
31
+ claims:
32
+ "tokens.colors.primary": &home { surface_id: home, source_id: home-capture, method: computed-style, captured: "2026-07-13" }
33
+ "tokens.colors.canvas": *home
34
+ "tokens.colors.surface": *home
35
+ "tokens.colors.ink": *home
36
+ "tokens.colors.body": *home
37
+ "tokens.colors.muted": &lms { surface_id: university-lms, source_id: university-lms-capture, method: computed-style, captured: "2026-07-13" }
38
+ "tokens.colors.on-primary": *home
39
+ "tokens.typography.family.ui": *home
40
+ "tokens.typography.marketing-body.size": *home
41
+ "tokens.typography.marketing-body.weight": *home
42
+ "tokens.typography.marketing-body.lineHeight": *home
43
+ "tokens.typography.marketing-body.use": *home
44
+ "tokens.typography.marketing-heading.size": *home
45
+ "tokens.typography.marketing-heading.weight": *home
46
+ "tokens.typography.marketing-heading.lineHeight": *home
47
+ "tokens.typography.marketing-heading.use": *home
48
+ "tokens.typography.action.size": *home
49
+ "tokens.typography.action.weight": *home
50
+ "tokens.typography.action.lineHeight": *home
51
+ "tokens.typography.action.use": *home
52
+ "tokens.spacing.xs": *home
53
+ "tokens.spacing.sm": *home
54
+ "tokens.spacing.md": *home
55
+ "tokens.spacing.card": *lms
56
+ "tokens.rounded.control": *home
57
+ "tokens.rounded.card-item": *lms
58
+ "tokens.rounded.card": *lms
59
+ "tokens.shadow.flat": *home
60
+ "tokens.components.nav-primary-action.type": *home
61
+ "tokens.components.nav-primary-action.bg": *home
62
+ "tokens.components.nav-primary-action.fg": *home
63
+ "tokens.components.nav-primary-action.radius": *home
64
+ "tokens.components.nav-primary-action.padding": *home
65
+ "tokens.components.nav-primary-action.font": *home
66
+ "tokens.components.nav-primary-action.states": *home
67
+ "tokens.components.nav-primary-action.use": *home
68
+ "tokens.components.nav-outline-light.type": *home
69
+ "tokens.components.nav-outline-light.fg": *home
70
+ "tokens.components.nav-outline-light.border": *home
71
+ "tokens.components.nav-outline-light.radius": *home
72
+ "tokens.components.nav-outline-light.padding": *home
73
+ "tokens.components.nav-outline-light.font": *home
74
+ "tokens.components.nav-outline-light.states": *home
75
+ "tokens.components.nav-outline-light.use": *home
76
+ "tokens.components.nav-outline-dark.type": *home
77
+ "tokens.components.nav-outline-dark.fg": *home
78
+ "tokens.components.nav-outline-dark.border": *home
79
+ "tokens.components.nav-outline-dark.radius": *home
80
+ "tokens.components.nav-outline-dark.padding": *home
81
+ "tokens.components.nav-outline-dark.font": *home
82
+ "tokens.components.nav-outline-dark.states": *home
83
+ "tokens.components.nav-outline-dark.use": *home
84
+ "tokens.components.large-primary-action.type": *home
85
+ "tokens.components.large-primary-action.bg": *home
86
+ "tokens.components.large-primary-action.fg": *home
87
+ "tokens.components.large-primary-action.radius": *home
88
+ "tokens.components.large-primary-action.padding": *home
89
+ "tokens.components.large-primary-action.font": *home
90
+ "tokens.components.large-primary-action.states": *home
91
+ "tokens.components.large-primary-action.use": *home
92
+ "tokens.components.university-grid-card.type": *lms
93
+ "tokens.components.university-grid-card.bg": *lms
94
+ "tokens.components.university-grid-card.fg": *lms
95
+ "tokens.components.university-grid-card.radius": *lms
96
+ "tokens.components.university-grid-card.padding": *lms
97
+ "tokens.components.university-grid-card.font": *lms
98
+ "tokens.components.university-grid-card.states": *lms
99
+ "tokens.components.university-grid-card.use": *lms
14
100
  tokens:
15
- source: prose-derived
16
- extracted: "2026-06-08"
101
+ source: reconciled
102
+ extracted: "2026-07-13"
103
+ note: "Values are selector-backed public marketing claims from three supplied captures. No authenticated Classum product UI, documentation chrome, interaction transition, or declared-only font is promoted."
17
104
  colors:
18
105
  primary: "#ff4438"
19
- brand: "#ff4438"
20
106
  canvas: "#f6f6f9"
21
107
  surface: "#ffffff"
22
- subtle: "#f0f2f8"
23
- hero-dark: "#06080d"
24
- foreground: "#232334"
25
- body: "#49495a"
108
+ ink: "#232334"
109
+ body: "#333333"
26
110
  muted: "#666b80"
27
- inert: "#758696"
28
- hairline: "#b5b9c8"
29
111
  on-primary: "#ffffff"
30
- accent-sky: "#0a84ff"
31
- accent-cobalt: "#243ce7"
32
- accent-violet: "#a567e4"
33
- accent-teal: "#00c3d0"
34
- success: "#34c759"
35
- warning: "#ffb020"
36
- danger: "#ff4438"
37
112
  typography:
38
- family: { sans: "Pretendard Variable" }
39
- hero-h1: { size: 52, weight: 700, lineHeight: 1.4, use: "Hero H1 on inverted dark band" }
40
- cta: { size: 15, weight: 600, lineHeight: 1.5, use: "Primary button label" }
41
- nav: { size: 14, weight: 400, lineHeight: 1.43, use: "Nav link" }
42
- body: { size: 14, weight: 400, lineHeight: 1.43, use: "Body / default — Korean-density baseline" }
43
- caption: { size: 12, weight: 500, use: "Illustration / display captions" }
44
- spacing: { xs: 4, sm: 8, md: 16, base: 16, lg: 24, xl: 32, xxl: 48, section: 80 }
45
- rounded: { xs: 4, sm: 8, md: 16, lg: 20, xl: 30, full: 9999 }
46
- shadow:
47
- none: "none"
48
- float: "rgba(0,0,0,0.08) 0px 8px 24px"
49
- components_harvested: true
113
+ family: { ui: "Pretendard Variable" }
114
+ marketing-body: { size: 14, weight: 400, lineHeight: 1.43, use: "Repeated public-marketing text/card sample" }
115
+ marketing-heading: { size: 52, weight: 700, lineHeight: 1.40, use: "Public-marketing H1/H2 sample" }
116
+ action: { size: 15, weight: 600, lineHeight: 1.50, use: "Repeated public-marketing navigation action" }
117
+ spacing: { xs: 6, sm: 8, md: 16, card: 30 }
118
+ rounded: { control: 8, card-item: 12, card: 30 }
119
+ shadow: { flat: "none" }
50
120
  components:
51
- button-primary: { type: button, bg: "#ff4438", fg: "#ffffff", radius: 8, padding: "6px 16px", font: "15/600", use: "Primary CTA signal red fill, no shadow" }
52
- button-secondary: { type: button, bg: "#ffffff", fg: "#232334", use: "Outline or text-only link, paired right of primary" }
53
- nav: { type: tab, fg: "#232334", font: "14/400", use: "Horizontal menu, sticky on scroll, red 도입 문의 CTA right-aligned" }
54
- card: { type: card, bg: "#ffffff", radius: 20, use: "White surface on lavender canvas, no border/shadow bg contrast defines boundary" }
55
- pill: { type: badge, radius: 9999, use: "Chip for feature tags and 신규 status markers" }
56
- footer: { type: card, bg: "#06080d", fg: "#ffffff", use: "Dark band, white type, social icons + app-store badges + legal links" }
121
+ nav-primary-action: { type: button, bg: "#ff4438", fg: "#ffffff", radius: "8px", padding: "6px 16px", font: "15px / 600 Pretendard Variable", states: "default only; no interaction state captured", use: "Public marketing navigation CTA; home::[data-omd-capture=4]" }
122
+ nav-outline-light: { type: button, fg: "#ff4438", border: "1px solid #ff4438", radius: "8px", padding: "6px 16px", font: "15px / 600 Pretendard Variable", states: "default only; no interaction state captured", use: "Public marketing light-background navigation outline; home::[data-omd-capture=3]" }
123
+ nav-outline-dark: { type: button, fg: "#ffffff", border: "1px solid #ffffff", radius: "8px", padding: "6px 16px", font: "15px / 600 Pretendard Variable", states: "default only; no interaction state captured", use: "Public marketing dark-background navigation outline; home::[data-omd-capture=8]" }
124
+ large-primary-action: { type: button, bg: "#ff4438", fg: "#ffffff", radius: "8px", padding: "12px 34px", font: "18px / 600 Pretendard Variable", states: "default only; no interaction state captured", use: "Public marketing large CTA on home and learning routes; home::[data-omd-capture=17]" }
125
+ university-grid-card: { type: card, bg: "#f6f6f9", fg: "#333333", radius: "30px", padding: "30px", font: "14px / 400 Pretendard Variable", states: "default only; no interaction state captured", use: "University-LMS public-marketing grid card; university-lms::div.grid-card" }
126
+ components_harvested: true
57
127
  ---
58
128
 
59
129
  # Design System Inspiration of Classum (클라썸)
60
130
 
61
131
  ## 1. Visual Theme & Atmosphere
62
132
 
63
- Classum is a Seoul-built EdTech platform for universities and corporate L&D, and its marketing surface treats the screen the way a good classroom treats a whiteboard — quiet canvas, structured columns, one bright signal where attention must land. The body background sits at a barely-tinted lavender-gray (`#F6F6F9`), a half-step off pure white that makes elevation read without shadows, and the dominant card radius is a generous 20px that softens the otherwise dense, multi-section Webflow page composition. Type is set entirely in Pretendard Variable, the open-source Korean optical-sized sans by orioncactus, served from jsDelivr and antialiased aggressively — a deliberate choice that signals "we trust the open Korean web stack" rather than commissioning custom display type.
64
-
65
- The brand's color discipline is unusually tight for an EdTech site: long stretches of neutral gray-violet surface punctuated by a single high-saturation red (`#FF4438`) that lives almost exclusively on primary CTAs ("도입 문의" / 도입 문의 = "request adoption inquiry"). Accent blues, violets and teals appear inside marketing illustrations and feature pills, but the page's interactive grammar is fundamentally two-color: muted lavender for everything, red when you should click. The result reads as B2B-confident without being corporate-cold — closer to a research lab's recruiting page than a typical SaaS hero.
133
+ Classum’s current public business site presents an AI-focused education offer for universities and corporate HR: the official home frames it as LMS, consultation, and skill solutions, while the university route focuses on an AI LMS for instructors and students. The three supplied routes are public marketing surfaces, not a captured signed-in learning application. Their visual system is therefore recorded as marketing expression only.
66
134
 
67
- Elevation is almost entirely flat. The CTA observed live had `box-shadow: none`, cards lean on radius and background contrast instead, and the only depth signal is the lavender canvas pulling cards forward without a stated z-axis. For a product whose actual application is a discussion-heavy LMS (Q&A threads, instructor responses, AI chatbot suggestions), the marketing site's flatness is a thesis: comprehension comes from layout clarity, not from chrome.
68
-
69
- **Key Characteristics:**
70
- - Lavender-gray canvas (`#F6F6F9`) instead of pure white — softens dense B2B information density
71
- - Single saturated brand red (`#FF4438`) reserved strictly for primary CTAs
72
- - Pretendard Variable as the only typeface — open-source Korean sans, jsDelivr-delivered
73
- - 20px dominant card radius, 8px CTA radius, 999px pills for status chips
74
- - Flat shadow language — `box-shadow: none` on primary CTA, depth through bg contrast
75
- - 14px / 1.43 lh body baseline — tight Korean reading rhythm, not Western 16px default
76
- - Webflow-built site, Channel Talk live chat — typical Korean B2B SaaS stack
135
+ The captured pages pair a lavender-white field (`#F6F6F9` and `#FFFFFF`) with a signal-red action color (`#FF4438`). Large rounded content blocks and compact 8px actions keep the information-heavy pages calm without making their public CTAs look generic. The system is flat in the retained samples: `box-shadow: none` on the documented actions and ordinary grid cards.
77
136
 
78
137
  ## 2. Color Palette & Roles
79
138
 
80
- ### Primary
81
- - **Signal Red** (`#FF4438`): Primary CTA fill only "도입 문의", "소개서 받기" booking CTAs. Never used on body type, never on decorative blocks.
82
- - **Ink** (`#232334`): Primary heading color on light surfaces a dark navy-charcoal, not true black. Warmer than `#000`.
83
- - **White** (`#FFFFFF`): Card and modal surface used wherever content needs to lift off the lavender canvas.
84
-
85
- ### Surface & Background
86
- - **Canvas** (`#F6F6F9`): Page background — the lavender-gray that defines the whole site mood.
87
- - **Surface** (`#FFFFFF`): Card / modal / sticky-nav surface.
88
- - **Subtle** (`#F0F2F8`): Tertiary fills, alternating rows, soft section dividers.
89
- - **Hero Dark** (`#06080D`–`#121215`): Inverted hero/footer band — the rare dark surface where white type takes over.
90
-
91
- ### Neutrals & Text
92
- - **Ink** (`#232334`): Primary headings and body emphasis.
93
- - **Slate** (`#49495A`): Secondary body text — descriptions, captions.
94
- - **Mute** (`#666B80`): Tertiary labels, metadata, breadcrumb.
95
- - **Subtle** (`#758696`): Disabled / inert text.
96
- - **Border** (`#B5B9C8`): Card borders, divider rules.
97
-
98
- ### Accent (illustration-only)
99
- - **Sky** (`#0A84FF`) / **Cobalt** (`#243CE7`): Hyperlinks and product-mark accents.
100
- - **Violet** (`#A567E4`): AI-feature illustration accents.
101
- - **Teal** (`#00C3D0`): Skill/competency data visualization.
102
- - **Green** (`#009A5A` / `#34C759`): Success states, growth metrics in case-study charts.
103
-
104
- ### Semantic
105
- - Classum does not expose a formal semantic palette publicly; on the marketing surface, semantic color appears almost exclusively inside illustration assets. Inferred semantic mapping below for downstream use.
106
- - **Success**: `#34C759` (matches iOS system green — likely intentional given Pretendard's Apple-adjacent stack).
107
- - **Warning**: `#FFB020` (illustration-derived).
108
- - **Danger**: `#FF4438` (same as brand red — implies CTAs and destructive actions share visual weight; downstream consumers should split this).
109
-
110
- ### Gradient System
111
- - The site avoids type gradients entirely. Visual gradients appear only in hero illustration backgrounds (blue-violet washes behind product mockups). Functional UI is fully flat.
139
+ - **Signal red** (`#FF4438`) — observed public-marketing action background and outline/action text. It is not asserted as an in-app destructive or status color.
140
+ - **Lavender canvas** (`#F6F6F9`) — observed public-marketing page/card background.
141
+ - **White surface** (`#FFFFFF`) — observed action and surface background.
142
+ - **Dark ink** (`#232334`) — observed dark action/background and text role on public marketing.
143
+ - **Body charcoal** (`#333333`) — repeated public-marketing text and card foreground.
144
+ - **Muted gray-violet** (`#666B80`) — university-LMS public-marketing supporting text sample.
145
+
146
+ No semantic success, warning, error, product-app, or documentation palette is claimed from these captures.
112
147
 
113
148
  ## 3. Typography Rules
114
149
 
115
- ### Font Family
116
- - **All roles**: `Pretendard Variable` — single typeface across hero, body, nav, CTA, footer. The variable axis covers weights 100–900; observed weights in production are 300 / 400 / 500 / 600 / 700.
117
- - **Source**: `https://cdn.jsdelivr.net/gh/orioncactus/pretendard@v1.3.9/dist/web/variable/pretendardvariable.min.css` (SIL OFL 1.1).
118
- - **Fallback stack**: `-apple-system, BlinkMacSystemFont, system-ui, Roboto, "Helvetica Neue", "Segoe UI", "Apple SD Gothic Neo", "Noto Sans KR", "Malgun Gothic", sans-serif` — Korean-first system fallbacks before Western ones.
119
- - **Rendering**: `-webkit-font-smoothing: antialiased`, `text-rendering: optimizeLegibility` — applied globally.
150
+ ### Verified public-marketing family
120
151
 
121
- ### Type Scale (observed live)
122
- - **Hero H1**: 52px / 72.8px line-height / weight 700 — used on the inverted dark hero band.
123
- - **CTA**: 15px / 22.5px / weight 600 — primary button label.
124
- - **Nav link**: 14px / 20px / weight 400.
125
- - **Body / default**: 14px / 20px / weight 400 — note this is *one step below* the Western 16px default, a deliberate Korean-density choice.
126
- - **Display caption** (illustration labels): observed 11–13px / weight 500–600.
152
+ `Pretendard Variable` is the sole promoted UI family. It appears as the visible computed family across button, card, heading, and text roles (279 observed uses), is backed by a loaded `FontFace`, and has both jsDelivr and Classum-hosted WOFF2 sources in the supplied evidence. The upstream project documents the exact `"Pretendard Variable"` webfont family and distributes it under SIL Open Font License 1.1.
127
153
 
128
- ### Weight Discipline
129
- Production CSS frequencies: 700 (55 occurrences) > 600 (32) > 400 (16) > bold-keyword (11) > 500 (11) > 300 (6). The system relies on **bold-vs-regular contrast** rather than mid-weight subtlety when a Classum surface needs hierarchy, it jumps from 400 to 600/700, rarely passing through 500.
154
+ - **Marketing heading** — `52px / 700 / 72.8px`; observed public H1/H2 sample.
155
+ - **Marketing body** — `14px / 400 / 20px`; repeated public text/card sample.
156
+ - **Navigation action** — `15px / 600 / 22.5px`; repeated public navigation action.
130
157
 
131
- ### Korean Treatment
132
- Pretendard's optical sizing handles Korean syllables (한글) at the same metrics as Latin without manual `lang="ko"` overrides. Classum does not appear to use any letter-spacing adjustment for Korean (`letter-spacing: normal` on every observed sample) — trusting Pretendard's default kerning.
158
+ `webflow-icons` is declared in the capture but has zero visible uses. It remains a declared-only icon asset, not a text family. No authenticated product or documentation font family was captured, so none is substituted or inferred.
133
159
 
134
- ## 4. Spacing, Radius, Shadow
160
+ ## 4. Component Stylings
135
161
 
136
- ### Radius (CSS bundle frequency)
137
- - `20px` (×18 — dominant card radius)
138
- - `var(--r-12)` (×12)
139
- - `999px` (×10 — pill chips)
140
- - `10px` (×9)
141
- - `30px` (×8 — large feature cards)
142
- - `100%` (×8 — circular avatars)
143
- - `8px` (×7 — CTA buttons)
144
- - `16px` (×7)
145
- - `4px` (×7 — input chips)
162
+ ### Public marketing navigation primary action
146
163
 
147
- The radius spectrum is wide but disciplined: CTAs at 8px, content cards at 20px, hero feature cards at 30px, pills at 999px. There is no 2px / 6px / 14px noise — Classum picks ratios cleanly.
164
+ **Default**
165
+ - Background: `#FF4438`
166
+ - Text: `#FFFFFF`
167
+ - Border: `0px solid #FFFFFF`
168
+ - Radius: `8px`
169
+ - Padding: `6px 16px`
170
+ - Font: `15px / 600 Pretendard Variable`
171
+ - Use: Home public-marketing navigation CTA; selector `home::[data-omd-capture="4"]`, six occurrences across the three captured routes.
148
172
 
149
- ### Spacing
150
- - Container max-width and inner padding are Webflow-grid-driven; observed CTA padding `6px 16px`. The lavender canvas leaves wide unbranded margins between sections — vertical rhythm comes from 80–120px section padding.
173
+ ### Public marketing navigation outline on light
151
174
 
152
- ### Shadow
153
- - The captured CTA had `box-shadow: none`. The CSS bundle does include `box-shadow` rules but they are reserved for floating elements (modals, dropdowns, the Channel Talk widget). Marketing-surface depth is canvas-vs-card, not z-axis.
175
+ **Default**
176
+ - Background: transparent
177
+ - Text: `#FF4438`
178
+ - Border: `1px solid #FF4438`
179
+ - Radius: `8px`
180
+ - Padding: `6px 16px`
181
+ - Font: `15px / 600 Pretendard Variable`
182
+ - Use: Home public-marketing light-background navigation action; selector `home::[data-omd-capture="3"]`, three occurrences across the captured routes.
154
183
 
155
- ## 5. Component Patterns
184
+ ### Public marketing navigation outline on dark
156
185
 
157
- - **Primary CTA**: red fill (`#FF4438`), white label, weight 600, 8px radius, 6×16 padding, no shadow, no hover-lift observed (Webflow default opacity dim).
158
- - **Secondary CTA**: outline or text-only link, ink color, often paired right-of-primary.
159
- - **Nav**: 14px / 400 inline horizontal menu, login + "도입 문의" red CTA right-aligned, sticky on scroll.
160
- - **Cards**: white surface on lavender canvas, 20px radius, no border, no shadow — bg contrast alone defines the card boundary.
161
- - **Pills / chips**: 999px radius, used for feature tags and "신규" status markers inside hero illustrations.
162
- - **Forms**: not exposed on public surface (gated behind "도입 문의" form modal via Channel Talk).
163
- - **Footer**: dark band (`#06080D`–`#121215`), white type, social icons + app-store badges + legal links.
186
+ **Default**
187
+ - Background: transparent
188
+ - Text: `#FFFFFF`
189
+ - Border: `1px solid #FFFFFF`
190
+ - Radius: `8px`
191
+ - Padding: `6px 16px`
192
+ - Font: `15px / 600 Pretendard Variable`
193
+ - Use: Home public-marketing dark-background navigation action; selector `home::[data-omd-capture="8"]`, three occurrences across the captured routes.
164
194
 
165
- ## 6. Visual Style
195
+ ### Public marketing large primary action
166
196
 
167
- - **Photography vs illustration**: heavily illustration-led. Product mockup screenshots (LMS dashboards, AI chat surfaces) are the primary content, framed inside browser-chrome mockups on gradient backdrops.
168
- - **Iconography**: line + filled hybrid, weight 1.5–2px strokes, matching Pretendard's geometric character.
169
- - **Charts / data**: case-study sections lean on horizontal bar / arc gauges with the accent palette (teal, green, violet).
170
- - **Mascot / character**: none observed.
197
+ **Default**
198
+ - Background: `#FF4438`
199
+ - Text: `#FFFFFF`
200
+ - Border: `0px solid #FFFFFF`
201
+ - Radius: `8px`
202
+ - Padding: `12px 34px`
203
+ - Font: `18px / 600 Pretendard Variable`
204
+ - Use: Home and learning public-marketing large CTA; selector `home::[data-omd-capture="17"]`, two occurrences across those routes.
171
205
 
172
- ## 7. Voice & Microcopy Posture
206
+ ### University-LMS public-marketing grid card
173
207
 
174
- Classum's marketing voice (Korean) is **direct, B2B, outcome-oriented** — sentences are short declarative, present-tense, and verb-final per Korean syntax. Korean honorifics are formal `~합니다` style, not the casual `~해요` style seen in C2C Korean SaaS like Toss or Daangn. English voice (on the same site's translated sections) mirrors this: short claims, no exclamation marks, no marketing hyperbole. Calls to action are functional verbs (`문의`, `받기`, `보기`) — Classum does not pun or use playful imperatives.
208
+ **Default**
209
+ - Background: `#F6F6F9`
210
+ - Text: `#333333`
211
+ - Border: `0px solid #333333`
212
+ - Radius: `30px`
213
+ - Padding: `30px`
214
+ - Font: `14px / 400 Pretendard Variable`
215
+ - Use: University-LMS public-marketing grid card; selector `university-lms::div.grid-card`, two occurrences on that route.
175
216
 
176
- **Voice tendencies** (paraphrased, not quoted):
177
- - Lead with the operational benefit (efficiency, data consolidation), follow with the human outcome (autonomous growth, communication).
178
- - Use AI as a modifier, not as a noun headline ("AI 기반 LMS" vs "AI for education").
179
- - Audience-segmented copy: separate doors for universities and corporate HR, never a unified "for everyone" pitch.
217
+ The supplied bundle records zero interaction transitions. Hover, focus, pressed, selected, disabled, dialog, menu, tab, toast, and form-error variants are deliberately absent rather than invented.
180
218
 
181
- > **IP note**: this section paraphrases only. Verbatim Classum taglines are not reproduced in this DESIGN.md.
219
+ ## 5. Layout Principles
182
220
 
183
- ## 8. Interaction & Motion
221
+ - The retained public routes use recurring 6px, 8px, 16px, and 30px spacing measurements; 30px is attached to the documented university-LMS cards, not promoted as a global application gutter.
222
+ - The public marketing page moves between compact navigation controls and large rounded content blocks. No responsive breakpoint, signed-in application layout, or documentation layout was captured.
223
+ - Use surface-local component geometry above; do not reuse a marketing CTA as an LMS workflow control without separate product evidence.
184
224
 
185
- - Webflow-default page transitions only — no custom motion library detected in the CSS bundle.
186
- - Scroll-triggered fades on section reveal (Webflow IX2).
187
- - No marquee, no parallax beyond Webflow defaults, no auto-rotating hero carousel.
188
- - Live chat (Channel Talk) is the one persistent interactive element bottom-right.
225
+ ## 6. Depth & Elevation
189
226
 
190
- ## 9. Site Architecture (observed)
227
+ The retained navigation actions and standard university-LMS grid card report `box-shadow: none`. One decorative university grid-card variant has a multicolor shadow in the raw evidence, but it is a separate `gradient-11` marketing decoration and is not generalized into the canonical elevation token. Treat the verified public marketing system as flat.
191
228
 
192
- ```
193
- business.classum.com/
194
- ├── Hero (dark band, AI 에듀테크 솔루션 positioning)
195
- ├── Product pillars (4): AI LMS / Learning Community / Classum Connect / Skill Solution
196
- ├── Audience split: 대학 vs 기업 HRD
197
- ├── Case studies
198
- ├── Resources (브로셔, 블로그, 채용)
199
- └── Footer (dark, legal + social + app badges)
200
- ```
229
+ ## 7. Do's and Don'ts
201
230
 
202
- Top-nav surfaces: AI 기반 LMS · 학습 커뮤니티 · AI 상담 챗봇 · 스킬 솔루션 · 리소스 · 로그인 · 도입 문의 (red CTA).
231
+ ### Do
232
+ - Use `#FF4438` only where the captured public-marketing surface shows an action or outline action.
233
+ - Keep verified public marketing type in `Pretendard Variable` and preserve the observed 14px body and 15px compact-action scales.
234
+ - Use 8px for documented actions and 30px only for the documented university-LMS public grid-card treatment.
235
+ - Keep marketing cards flat unless a separately evidenced decorative variant is intentionally being reproduced.
203
236
 
237
+ ### Don't
238
+ - Do not turn the public marketing red into an unverified product-state or destructive-action palette.
239
+ - Do not substitute system fonts for the loaded `Pretendard Variable` family.
240
+ - Do not fabricate app controls, documentation chrome, form states, or interaction states from the public landing pages.
241
+ - Do not treat the decorative multicolor-shadow card as a default card elevation.
204
242
 
205
- ## 16. Do's and Don'ts
243
+ ## 8. Responsive Behavior
206
244
 
207
- ### Do
208
- - Reserve the saturated brand red `#FF4438` strictly for primary CTA fills like "도입 문의", and let everything else stay in the lavender-gray neutral range
209
- - Set the page background to the barely-tinted lavender-gray canvas `#F6F6F9` rather than pure white, so white cards (`#FFFFFF`) read as elevated through background contrast alone
210
- - Typeset every role — hero, body, nav, CTA, footer — in Pretendard Variable, using only the production weights 300/400/500/600/700 served from the jsDelivr CDN
211
- - Build hierarchy by jumping from weight 400 to 600/700 (bold-vs-regular contrast) instead of leaning on mid-weight 500 transitions
212
- - Apply the disciplined radius ladder — 8px on CTA buttons, 20px on content cards, 30px on large feature cards, 999px on pill chips — with no in-between 2px/6px/14px noise
213
- - Use Ink `#232334` (a warm navy-charcoal, not true black) for primary headings, with Slate `#49495A` for secondary body text and Mute `#666B80` for tertiary labels
245
+ The supplied evidence is desktop `1440×900` only. It establishes no mobile breakpoint, mobile navigation state, or responsive component transformation. Preserve this uncertainty rather than extrapolating desktop marketing geometry into mobile or authenticated LMS behavior.
214
246
 
215
- ### Don't
216
- - Spread `#FF4438` onto body type, decorative blocks, or a second button color — there is one button color for one job
217
- - Stack box-shadows for elevation on marketing surfaces; the primary CTA ships `box-shadow: none` and depth comes from canvas-vs-card contrast, reserving shadows only for floating UI like modals, dropdowns, and the chat widget
218
- - Pad the layout to a Western 16px body baseline — keep the deliberate Korean-density 14px / 1.43 line-height reading rhythm
219
- - Introduce serif accents, all-caps display type, decorative scripts, glassmorphism, or emoji-led headlines, all of which Classum's B2B-serious surface refuses
220
- - Write a generic "everyone benefits" pitch — every section should name its audience (대학 vs 기업 HRD) before splitting by feature
221
- - Add type gradients or auto-rotating hero carousels; gradients live only in hero illustration backdrops and functional UI stays fully flat
247
+ ## 9. Agent Prompt Guide
222
248
 
223
- ---
249
+ For a Classum public-marketing surface, use the verified lavender canvas, white surfaces, `Pretendard Variable`, and red action treatment only in the source domain where each was observed. Prefer a flat composition with compact 8px navigation actions and route-local 30px university feature cards. If a task concerns an authenticated learner, instructor, administrator, documentation, form validation, or interactive state, request or collect that source-domain evidence before choosing components or tokens.
224
250
 
225
- ## 10. Brand Philosophy (paraphrased, not quoted)
251
+ ## 10. Voice & Tone
226
252
 
227
- Classum's product thesis treats communication as the unit of learning questions, answers, threaded discussion, and instructor presence are the primary surfaces, while content delivery is secondary. The marketing surface reflects this by privileging audience-segmented narrative (universities and HR-led enterprises each get their own doorway) over generic feature lists. AI is positioned as a labor-multiplier for educators and L&D managers, not as a replacement narrator — every AI feature on the site is framed alongside a human role it supports (TA, HR manager, instructor).
253
+ The current public copy is direct, formal Korean B2B/education copy: it names the audience (university, instructor, student, or HR) and pairs AI capability with an operational or learning outcome. Preserve that observed posture rather than inventing a casual consumer voice.
228
254
 
229
- ## 11. Design Principles (inferred from surface)
255
+ | Context | Observed guidance |
256
+ |---|---|
257
+ | Public headline | Lead with the educational or operational result, then name the audience. |
258
+ | CTA | Use short functional actions such as requesting material or making an inquiry. |
259
+ | Product explanation | Describe the specific learning or administrative task before the AI capability. |
230
260
 
231
- 1. **One signal color, one type family.** Red lives on CTAs, Pretendard does every text role. Restraint is the brand.
232
- 2. **Korean-density typography.** 14px body, 1.43 lh — accept that Korean readers parse syllables faster and don't pad like Western sites.
233
- 3. **Flat by default, depth on demand.** Marketing pages are shadow-free; reserve elevation for floating UI (modals, chat).
234
- 4. **Audience-first IA.** Split surfaces by buyer (university vs HR) before splitting by feature.
235
- 5. **Open-source over proprietary.** Pretendard, Webflow, Channel Talk — Classum optimizes for time-to-iterate, not for owning every layer.
261
+ ## 11. Brand Narrative
236
262
 
237
- ## 12. Anti-patterns (what Classum's surface refuses)
263
+ Classum’s official historical material says the company was founded in 2018 by Chaerin Lee and Youjin Choi to address challenges they experienced as learners. Its current public home describes an AI-centered set of LMS, consultation, and skill solutions for university and corporate-HR audiences; the university LMS page concentrates on reducing preparation and evaluation work so instructors can focus on students. The narrative here is confined to those first-party statements and does not claim unobserved product-design intent.
238
264
 
239
- - No multi-color CTA palette — there is one button color, one job.
240
- - No serif accents, no all-caps display type, no decorative scripts.
241
- - No glassmorphism, no skeuomorphic shadow stacks.
242
- - No emoji-led marketing headlines (rare for a 2026 Korean SaaS — a deliberate signal of B2B seriousness).
243
- - No "everyone benefits" generic pitches — every section names its audience.
265
+ ## 12. Principles
244
266
 
245
- ## 13. Personas (inferred for downstream OmD use)
267
+ 1. **Name the education context.** Current public pages separate university and corporate-HR offers. *UI implication:* keep public navigation and feature groups audience-specific.
268
+ 2. **Connect AI to a concrete task.** The university LMS page describes preparation, quizzes, grading, feedback, and learner support. *UI implication:* pair an AI claim with the supported learning task.
269
+ 3. **Keep public calls to action legible.** The repeated public navigation action is red on white with an 8px radius. *UI implication:* retain the verified action hierarchy on comparable public marketing routes only.
246
270
 
247
- - **대학 운영팀 (University Operations Lead)**: needs LMS + Q&A unification across departments. Cares about TA workload reduction, instructor adoption, FERPA-adjacent Korean privacy posture.
248
- - **기업 HRD 매니저 (Corporate L&D Manager)**: needs measurable skill assessment + scalable internal community. Cares about completion rates, skill-gap analytics, integration with HRIS.
249
- - **AI 도입 검토자 (AI Procurement Reviewer)**: needs vendor with clear data-handling story, evaluates Classum Connect against in-house GPT pilots.
271
+ ## 13. Personas
250
272
 
251
- ## 14. Accessibility Posture (observed, not certified)
273
+ The following are source-bound audience roles, not synthetic user research.
252
274
 
253
- - Pretendard Variable rendered at 14px with `-webkit-font-smoothing: antialiased` legible at small sizes, but 14px Korean body sits just at WCAG floor; downstream consumers should consider 15–16px base for broader audiences.
254
- - Primary CTA `#FF4438` on white = ~4.3:1 contrast (AA for large text, borderline for 14px). White CTA label on `#FF4438` background = ~4.6:1 — passes AA for body, narrowly.
255
- - No `prefers-reduced-motion` overrides detected.
256
- - Channel Talk widget injects its own focus order; keyboard-only navigation on the marketing site is otherwise clean.
275
+ - **University instructor:** explicitly addressed on the public LMS page in the context of lesson preparation, assessment, feedback, and student-focused teaching.
276
+ - **University student:** explicitly addressed on the same page as a participant in AI-supported, self-directed learning.
277
+ - **Corporate HR audience:** explicitly named on the official home as the audience for Classum’s corporate/skill-solution offer.
257
278
 
258
- ## 15. Verification Footer
279
+ No behavioral, demographic, or satisfaction claims are inferred beyond those public audience descriptions.
259
280
 
260
- **Verified:** 2026-05-14
261
- **Tier 1 — Live inspect (succeeded):**
262
- - CDP `getComputedStyle` × 6 raw samples (hero h1, nav, primary CTA, secondary link, body, section card) on `https://business.classum.com/` — captured in `assets/_reference/.live-inspect-proof.json`.
263
- - Production CSS bundle frequency analysis on `https://cdn.prod.website-files.com/67b08d840cb9f278763c8005/css/classum-web.webflow.shared.ee81640c2.css` (13,904 lines).
281
+ ## 14. States
264
282
 
265
- **Tier 1 Official DS lookup (negative result, documented):**
266
- - `classum.com/brand` — page title only, no DS/brand guideline content surfaced.
267
- - No public Figma library, no `design.classum.com`, no GitHub org with token repo found.
268
- - Classum operates as a closed B2B SaaS without published brand guidelines as of 2026-05-14.
283
+ | State | Evidence boundary |
284
+ |---|---|
285
+ | Empty | Not captured on the three public marketing routes. |
286
+ | Loading | Not captured. |
287
+ | Inline error | Not captured. |
288
+ | Form error | Not captured. |
289
+ | Success | Not captured. |
290
+ | Disabled | Not captured. |
291
+ | Skeleton | Not captured. |
292
+ | Hover | Not captured; interaction count is zero. |
293
+ | Focus | Not captured; interaction count is zero. |
294
+ | Pressed | Not captured; interaction count is zero. |
269
295
 
270
- **Tier 2 Third-party indexes (both empty):**
271
- - `getdesign.md/classum` → "No designs found for 'classum'." (consistent with KR-10 systemic finding that English directories under-index Korean SaaS).
272
- - `styles.refero.design/?q=classum` → no entry returned.
296
+ ## 15. Motion & Easing
273
297
 
274
- **Conflicts unresolved:** none Tier 1 live data was internally consistent across CSS bundle and runtime samples.
298
+ No motion timing, easing token, or interaction transition is promoted. The supplied capture reports zero interaction kinds and zero interaction events. A future source-specific inspection is required before defining public marketing, authenticated product, or documentation motion behavior.
275
299
 
276
- **IP guardrails applied:**
277
- - Brand assets (logo, screenshots) referenced by URL only, not redistributed.
278
- - No verbatim taglines reproduced §7 voice analysis is paraphrased.
279
- - Voice mimicry kept abstract (tone descriptors, not phrase templates).
300
+ ---
301
+ **Verified:** 2026-07-13
302
+ **Tier 1 sources:** https://business.classum.com/ · https://business.classum.com/learning · https://business.classum.com/university/lms · https://careers.classum.com/culture · https://github.com/orioncactus/pretendard/blob/main/packages/pretendard/docs/en/README.md · https://github.com/orioncactus/pretendard/blob/main/LICENSE
303
+ **Tier 2 sources:** https://getdesign.md/classum (retrieval attempted; no importable record returned) · https://styles.refero.design/?q=classum (retrieval attempted; no importable record returned)
304
+ **Conflicts unresolved:** none