oh-my-design-cli 1.8.7 → 1.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (247) hide show
  1. package/.claude/hooks/lib/preferences-parser.cjs +1 -0
  2. package/.claude/hooks/lib/preferences-writer.cjs +1 -0
  3. package/.claude/hooks/post-edit-watch.cjs +1 -0
  4. package/.claude/hooks/session-end-foldin.cjs +1 -0
  5. package/.claude/hooks/session-state-loader.cjs +1 -0
  6. package/.claude/hooks/skill-activation.cjs +1 -0
  7. package/.claude/settings.json +10 -1
  8. package/.github/assets/logo-bg.png +0 -0
  9. package/AGENTS.md +20 -1
  10. package/CHANGELOG.md +482 -0
  11. package/MIGRATION.md +103 -0
  12. package/README.ja.md +56 -19
  13. package/README.ko.md +47 -30
  14. package/README.md +48 -30
  15. package/README.zh-TW.md +59 -22
  16. package/agents/AGENT.md +8 -7
  17. package/agents/omd-codex-image.md +1 -1
  18. package/agents/omd-critic.md +6 -7
  19. package/agents/omd-designer-review.md +1 -1
  20. package/agents/omd-final-qa.md +1 -1
  21. package/agents/omd-humanizer.md +38 -0
  22. package/agents/omd-kr-writer.md +3 -4
  23. package/agents/omd-locale-adapter.md +12 -16
  24. package/agents/omd-master.md +24 -19
  25. package/agents/omd-microcopy.md +1 -1
  26. package/agents/omd-orchestrator.md +7 -8
  27. package/agents/omd-slop-auditor.md +31 -0
  28. package/agents/omd-ux-researcher.md +1 -1
  29. package/data/reference-fingerprints.json +1995 -38
  30. package/dist/bin/oh-my-design.js +16 -8
  31. package/dist/bin/oh-my-design.js.map +1 -1
  32. package/dist/chunk-UJIHCEYF.js +99 -0
  33. package/dist/chunk-UJIHCEYF.js.map +1 -0
  34. package/dist/doctor-LDWSFM3I.js +763 -0
  35. package/dist/doctor-LDWSFM3I.js.map +1 -0
  36. package/dist/install-skills-ZZFNJ2II.js +1120 -0
  37. package/dist/install-skills-ZZFNJ2II.js.map +1 -0
  38. package/docs/CLI_QUICKSTART.md +157 -0
  39. package/package.json +25 -4
  40. package/scripts/postinstall.cjs +5 -4
  41. package/skills/claude-design/SKILL.md +38 -14
  42. package/skills/claude-design/references/claude-design-flow.md +11 -11
  43. package/skills/claude-design/references/codebase-analysis.md +5 -4
  44. package/skills/omd-final-qa/SKILL.md +1 -1
  45. package/skills/omd-harness/SKILL.md +51 -50
  46. package/skills/omd-humanize/SKILL.md +116 -0
  47. package/skills/omd-humanize/agents/openai.yaml +4 -0
  48. package/skills/omd-humanize/references/locale-playbooks.md +102 -0
  49. package/skills/omd-humanize/references/sources.md +11 -0
  50. package/skills/omd-init/SKILL.md +18 -12
  51. package/skills/omd-locale-adapter/SKILL.md +58 -91
  52. package/skills/omd-orchestrator/SKILL.md +11 -5
  53. package/skills/omd-reference-capture/SKILL.md +80 -26
  54. package/skills/omd-reference-capture/scripts/PLAYWRIGHT-LICENSE.txt +202 -0
  55. package/skills/omd-reference-capture/scripts/PLAYWRIGHT-NOTICE.txt +5 -0
  56. package/skills/omd-reference-capture/scripts/THIRD_PARTY_NOTICES.md +3 -0
  57. package/skills/omd-reference-capture/scripts/capture-reference-evidence.mjs +159906 -0
  58. package/skills/omd-slop-audit/SKILL.md +110 -0
  59. package/skills/omd-slop-audit/agents/openai.yaml +4 -0
  60. package/skills/omd-slop-audit/references/pattern-catalog.md +96 -0
  61. package/skills/omd-slop-audit/references/sources.md +24 -0
  62. package/web/references/104/DESIGN.md +354 -0
  63. package/web/references/11st/DESIGN.md +197 -316
  64. package/web/references/29cm/DESIGN.md +297 -393
  65. package/web/references/42dot/DESIGN.md +390 -0
  66. package/web/references/8percent/DESIGN.md +438 -0
  67. package/web/references/ably/DESIGN.md +267 -572
  68. package/web/references/acer/DESIGN.md +329 -0
  69. package/web/references/airbnb/DESIGN.md +219 -557
  70. package/web/references/alipay/DESIGN.md +179 -420
  71. package/web/references/apple/DESIGN.md +224 -498
  72. package/web/references/asleep/DESIGN.md +402 -0
  73. package/web/references/au/DESIGN.md +334 -0
  74. package/web/references/autopedia/DESIGN.md +382 -0
  75. package/web/references/aws-cloudscape/DESIGN.md +241 -0
  76. package/web/references/baemin/DESIGN.md +332 -491
  77. package/web/references/banksalad/DESIGN.md +269 -180
  78. package/web/references/barogo/DESIGN.md +416 -0
  79. package/web/references/beusable/DESIGN.md +464 -0
  80. package/web/references/bilibili/DESIGN.md +206 -374
  81. package/web/references/bmw/DESIGN.md +162 -276
  82. package/web/references/brandi/DESIGN.md +184 -325
  83. package/web/references/catchtable/DESIGN.md +219 -264
  84. package/web/references/cgv/DESIGN.md +317 -0
  85. package/web/references/channeltalk/DESIGN.md +210 -336
  86. package/web/references/china-airlines/DESIGN.md +291 -0
  87. package/web/references/cjonstyle/DESIGN.md +453 -0
  88. package/web/references/class101/DESIGN.md +168 -387
  89. package/web/references/classum/DESIGN.md +228 -203
  90. package/web/references/claude/DESIGN.md +242 -479
  91. package/web/references/clay/DESIGN.md +179 -377
  92. package/web/references/clickhouse/DESIGN.md +254 -343
  93. package/web/references/cohere/DESIGN.md +214 -324
  94. package/web/references/coinone/DESIGN.md +199 -179
  95. package/web/references/corca/DESIGN.md +414 -0
  96. package/web/references/coupang/DESIGN.md +205 -475
  97. package/web/references/cursor/DESIGN.md +240 -381
  98. package/web/references/dabang/DESIGN.md +248 -213
  99. package/web/references/dable/DESIGN.md +431 -0
  100. package/web/references/datarize/DESIGN.md +217 -330
  101. package/web/references/dealicious/DESIGN.md +402 -0
  102. package/web/references/drdiary/DESIGN.md +404 -0
  103. package/web/references/elastic/DESIGN.md +238 -0
  104. package/web/references/elevenlabs/DESIGN.md +183 -321
  105. package/web/references/eslite/DESIGN.md +257 -0
  106. package/web/references/evaair/DESIGN.md +338 -0
  107. package/web/references/expo/DESIGN.md +238 -331
  108. package/web/references/familymart-tw/DESIGN.md +254 -0
  109. package/web/references/ferrari/DESIGN.md +160 -377
  110. package/web/references/figma/DESIGN.md +197 -451
  111. package/web/references/fitpet/DESIGN.md +445 -0
  112. package/web/references/flex/DESIGN.md +170 -253
  113. package/web/references/framer/DESIGN.md +197 -340
  114. package/web/references/freee/DESIGN.md +211 -533
  115. package/web/references/friendliai/DESIGN.md +431 -0
  116. package/web/references/frip/DESIGN.md +440 -0
  117. package/web/references/gangnamunni/DESIGN.md +154 -591
  118. package/web/references/gaudiolab/DESIGN.md +414 -0
  119. package/web/references/google/DESIGN.md +290 -398
  120. package/web/references/hashicorp/DESIGN.md +273 -318
  121. package/web/references/heydealer/DESIGN.md +429 -0
  122. package/web/references/humanscape/DESIGN.md +433 -0
  123. package/web/references/hyundai/DESIGN.md +158 -368
  124. package/web/references/hyundaicard/DESIGN.md +171 -121
  125. package/web/references/ibm/DESIGN.md +227 -378
  126. package/web/references/idus/DESIGN.md +450 -0
  127. package/web/references/igaworks/DESIGN.md +437 -0
  128. package/web/references/inflearn/DESIGN.md +221 -366
  129. package/web/references/intuit/DESIGN.md +244 -0
  130. package/web/references/jandi/DESIGN.md +191 -291
  131. package/web/references/jobplanet/DESIGN.md +415 -0
  132. package/web/references/kakao/DESIGN.md +287 -475
  133. package/web/references/kakaobank/DESIGN.md +220 -521
  134. package/web/references/kakaogames/DESIGN.md +220 -0
  135. package/web/references/kakaopay/DESIGN.md +207 -526
  136. package/web/references/karrot/DESIGN.md +227 -251
  137. package/web/references/kb-kookmin/DESIGN.md +308 -0
  138. package/web/references/kbank/DESIGN.md +220 -175
  139. package/web/references/kmong/DESIGN.md +281 -356
  140. package/web/references/krds/DESIGN.md +245 -19
  141. package/web/references/kream/DESIGN.md +224 -359
  142. package/web/references/kurly/DESIGN.md +211 -533
  143. package/web/references/lamborghini/DESIGN.md +198 -360
  144. package/web/references/lguplus/DESIGN.md +259 -0
  145. package/web/references/likelion/DESIGN.md +283 -0
  146. package/web/references/line/DESIGN.md +396 -355
  147. package/web/references/linear.app/DESIGN.md +209 -562
  148. package/web/references/lotteon/DESIGN.md +386 -0
  149. package/web/references/lovable/DESIGN.md +255 -349
  150. package/web/references/makinarocks/DESIGN.md +149 -349
  151. package/web/references/maum-ai/DESIGN.md +423 -0
  152. package/web/references/medibloc/DESIGN.md +425 -0
  153. package/web/references/megabox/DESIGN.md +232 -0
  154. package/web/references/mercari/DESIGN.md +217 -434
  155. package/web/references/microsoft/DESIGN.md +234 -388
  156. package/web/references/mildang/DESIGN.md +411 -0
  157. package/web/references/millie/DESIGN.md +183 -504
  158. package/web/references/minimax/DESIGN.md +264 -322
  159. package/web/references/miricanvas/DESIGN.md +182 -355
  160. package/web/references/miro/DESIGN.md +234 -232
  161. package/web/references/mistral.ai/DESIGN.md +231 -314
  162. package/web/references/mixi/DESIGN.md +234 -0
  163. package/web/references/moin/DESIGN.md +445 -0
  164. package/web/references/mongodb/DESIGN.md +219 -316
  165. package/web/references/musinsa/DESIGN.md +184 -510
  166. package/web/references/mynavi/DESIGN.md +242 -0
  167. package/web/references/myrealtrip/DESIGN.md +169 -406
  168. package/web/references/naver/DESIGN.md +328 -499
  169. package/web/references/naverwebtoon/DESIGN.md +172 -395
  170. package/web/references/nhn/DESIGN.md +169 -346
  171. package/web/references/nhncloud/DESIGN.md +185 -123
  172. package/web/references/notion/DESIGN.md +271 -475
  173. package/web/references/nrise/DESIGN.md +417 -0
  174. package/web/references/ohouse/DESIGN.md +210 -549
  175. package/web/references/oliveyoung/DESIGN.md +217 -326
  176. package/web/references/ollama/DESIGN.md +241 -308
  177. package/web/references/onestore/DESIGN.md +248 -0
  178. package/web/references/palantir/DESIGN.md +256 -0
  179. package/web/references/panasonic/DESIGN.md +276 -0
  180. package/web/references/patternfly/DESIGN.md +259 -0
  181. package/web/references/payhere/DESIGN.md +438 -0
  182. package/web/references/pega/DESIGN.md +262 -0
  183. package/web/references/peoplefund/DESIGN.md +431 -0
  184. package/web/references/petfriends/DESIGN.md +428 -0
  185. package/web/references/pinkfong/DESIGN.md +199 -367
  186. package/web/references/pinterest/DESIGN.md +258 -308
  187. package/web/references/poya/DESIGN.md +286 -0
  188. package/web/references/pozalabs/DESIGN.md +438 -0
  189. package/web/references/protopie/DESIGN.md +419 -0
  190. package/web/references/qraft/DESIGN.md +448 -0
  191. package/web/references/quotabook/DESIGN.md +449 -0
  192. package/web/references/recruit/DESIGN.md +247 -0
  193. package/web/references/remember/DESIGN.md +202 -396
  194. package/web/references/resend/DESIGN.md +274 -348
  195. package/web/references/sakura-internet/DESIGN.md +269 -0
  196. package/web/references/samsung/DESIGN.md +157 -359
  197. package/web/references/sandoll/DESIGN.md +445 -0
  198. package/web/references/sanity/DESIGN.md +241 -375
  199. package/web/references/scatterlab/DESIGN.md +412 -0
  200. package/web/references/selectstar/DESIGN.md +439 -0
  201. package/web/references/servicenow/DESIGN.md +289 -0
  202. package/web/references/shinhanbank/DESIGN.md +161 -341
  203. package/web/references/shinhancard/DESIGN.md +208 -319
  204. package/web/references/sionic/DESIGN.md +454 -0
  205. package/web/references/sktelecom/DESIGN.md +310 -0
  206. package/web/references/socar/DESIGN.md +125 -32
  207. package/web/references/softbank/DESIGN.md +231 -0
  208. package/web/references/sony/DESIGN.md +234 -0
  209. package/web/references/soop/DESIGN.md +261 -0
  210. package/web/references/spacex/DESIGN.md +184 -323
  211. package/web/references/spotify/DESIGN.md +253 -394
  212. package/web/references/squeezebits/DESIGN.md +441 -0
  213. package/web/references/stayfolio/DESIGN.md +422 -0
  214. package/web/references/stripe/DESIGN.md +212 -491
  215. package/web/references/supabase/DESIGN.md +244 -316
  216. package/web/references/tabling/DESIGN.md +415 -0
  217. package/web/references/taishinbank/DESIGN.md +243 -0
  218. package/web/references/teamlab/DESIGN.md +240 -0
  219. package/web/references/teamsparta/DESIGN.md +472 -0
  220. package/web/references/tellingme/DESIGN.md +392 -0
  221. package/web/references/tesla/DESIGN.md +244 -427
  222. package/web/references/thsr/DESIGN.md +284 -0
  223. package/web/references/thumbtack/DESIGN.md +302 -0
  224. package/web/references/together.ai/DESIGN.md +257 -304
  225. package/web/references/toss/DESIGN.md +251 -593
  226. package/web/references/toss-securities/DESIGN.md +255 -178
  227. package/web/references/tossbank/DESIGN.md +195 -491
  228. package/web/references/toyota/DESIGN.md +238 -0
  229. package/web/references/tving/DESIGN.md +197 -245
  230. package/web/references/typed/DESIGN.md +413 -0
  231. package/web/references/uber/DESIGN.md +256 -333
  232. package/web/references/udn/DESIGN.md +250 -0
  233. package/web/references/upbit/DESIGN.md +145 -256
  234. package/web/references/upstage/DESIGN.md +211 -204
  235. package/web/references/uswds/DESIGN.md +287 -0
  236. package/web/references/vercel/DESIGN.md +236 -440
  237. package/web/references/wanted/DESIGN.md +215 -487
  238. package/web/references/wise/DESIGN.md +223 -231
  239. package/web/references/wisetracker/DESIGN.md +462 -0
  240. package/web/references/wooribank/DESIGN.md +245 -0
  241. package/web/references/yanolja/DESIGN.md +250 -419
  242. package/web/references/yeogiotte/DESIGN.md +235 -418
  243. package/web/references/zapier/DESIGN.md +256 -377
  244. package/web/references/zendesk/DESIGN.md +288 -0
  245. package/web/references/zigzag/DESIGN.md +200 -621
  246. package/dist/install-skills-7UUDOLG2.js +0 -734
  247. package/dist/install-skills-7UUDOLG2.js.map +0 -1
@@ -8,420 +8,345 @@ primary_color: "#92fa72"
8
8
  logo:
9
9
  type: favicon
10
10
  slug: "https://www.google.com/s2/favicons?domain=kmong.com&sz=128"
11
- verified: "2026-06-09"
11
+ verified: "2026-07-13"
12
12
  added: "2026-06-09"
13
13
  omd: "0.1"
14
+ verification_v2:
15
+ schema: 2
16
+ checked: "2026-07-13"
17
+ surfaces:
18
+ - { id: marketplace-home, kind: public-marketplace, url: "https://kmong.com/", inspected: "2026-07-13" }
19
+ - { id: marketplace-category, kind: public-marketplace, url: "https://kmong.com/category/1", inspected: "2026-07-13" }
20
+ sources:
21
+ - { id: home-capture, kind: product-surface, url: "https://kmong.com/", captured: "2026-07-13" }
22
+ - { id: category-capture, kind: product-surface, url: "https://kmong.com/category/1", captured: "2026-07-13" }
23
+ - { id: company-context, kind: official-doc, url: "https://company.kmong.com/", captured: "2026-07-13" }
24
+ - { id: font-design, kind: official-doc, url: "https://github.com/orioncactus/pretendard/blob/main/packages/pretendard/docs/en/README.md", captured: "2026-07-13" }
25
+ - { id: font-license, kind: license, url: "https://github.com/orioncactus/pretendard/blob/main/LICENSE", captured: "2026-07-13" }
26
+ conflicts: []
27
+ claims:
28
+ "tokens.colors.canvas": &home { surface_id: marketplace-home, source_id: home-capture, method: computed-style, captured: "2026-07-13" }
29
+ "tokens.colors.ink": *home
30
+ "tokens.colors.heading": *home
31
+ "tokens.colors.muted": *home
32
+ "tokens.colors.hairline": *home
33
+ "tokens.colors.control-border": *home
34
+ "tokens.colors.primary": *home
35
+ "tokens.colors.on-primary": *home
36
+ "tokens.colors.header-action": *home
37
+ "tokens.colors.on-header-action": *home
38
+ "tokens.colors.category-surface": &category { surface_id: marketplace-category, source_id: category-capture, method: computed-style, captured: "2026-07-13" }
39
+ "tokens.colors.category-border": *category
40
+ "tokens.typography.family.ui": *home
41
+ "tokens.typography.marketplace-body.size": *home
42
+ "tokens.typography.marketplace-body.weight": *home
43
+ "tokens.typography.marketplace-body.lineHeight": *home
44
+ "tokens.typography.marketplace-body.use": *home
45
+ "tokens.typography.header-action.size": *home
46
+ "tokens.typography.header-action.weight": *home
47
+ "tokens.typography.header-action.lineHeight": *home
48
+ "tokens.typography.header-action.use": *home
49
+ "tokens.typography.hero.size": *home
50
+ "tokens.typography.hero.weight": *home
51
+ "tokens.typography.hero.lineHeight": *home
52
+ "tokens.typography.hero.use": *home
53
+ "tokens.typography.search.size": *home
54
+ "tokens.typography.search.weight": *home
55
+ "tokens.typography.search.lineHeight": *home
56
+ "tokens.typography.search.use": *home
57
+ "tokens.typography.category-heading.size": *category
58
+ "tokens.typography.category-heading.weight": *category
59
+ "tokens.typography.category-heading.lineHeight": *category
60
+ "tokens.typography.category-heading.use": *category
61
+ "tokens.spacing.xxs": *home
62
+ "tokens.spacing.sm": *home
63
+ "tokens.spacing.md": *home
64
+ "tokens.spacing.base": *home
65
+ "tokens.spacing.lg": *home
66
+ "tokens.spacing.xl": *home
67
+ "tokens.spacing.xxl": *category
68
+ "tokens.rounded.square": *home
69
+ "tokens.rounded.primary-cta": *home
70
+ "tokens.rounded.control": *home
71
+ "tokens.rounded.category-panel": *category
72
+ "tokens.rounded.home-search": *home
73
+ "tokens.rounded.category-search": *category
74
+ "tokens.shadow.home-search": *home
75
+ "tokens.shadow.category-search": *category
76
+ "tokens.components.home-primary-cta.type": *home
77
+ "tokens.components.home-primary-cta.bg": *home
78
+ "tokens.components.home-primary-cta.fg": *home
79
+ "tokens.components.home-primary-cta.radius": *home
80
+ "tokens.components.home-primary-cta.padding": *home
81
+ "tokens.components.home-primary-cta.height": *home
82
+ "tokens.components.home-primary-cta.font": *home
83
+ "tokens.components.home-primary-cta.states": *home
84
+ "tokens.components.home-primary-cta.use": *home
85
+ "tokens.components.header-action.type": *home
86
+ "tokens.components.header-action.bg": *home
87
+ "tokens.components.header-action.fg": *home
88
+ "tokens.components.header-action.radius": *home
89
+ "tokens.components.header-action.height": *home
90
+ "tokens.components.header-action.font": *home
91
+ "tokens.components.header-action.states": *home
92
+ "tokens.components.header-action.use": *home
93
+ "tokens.components.home-search.type": *home
94
+ "tokens.components.home-search.bg": *home
95
+ "tokens.components.home-search.fg": *home
96
+ "tokens.components.home-search.border": *home
97
+ "tokens.components.home-search.radius": *home
98
+ "tokens.components.home-search.padding": *home
99
+ "tokens.components.home-search.height": *home
100
+ "tokens.components.home-search.font": *home
101
+ "tokens.components.home-search.states": *home
102
+ "tokens.components.home-search.use": *home
103
+ "tokens.components.home-outline-cta.type": *home
104
+ "tokens.components.home-outline-cta.bg": *home
105
+ "tokens.components.home-outline-cta.fg": *home
106
+ "tokens.components.home-outline-cta.border": *home
107
+ "tokens.components.home-outline-cta.radius": *home
108
+ "tokens.components.home-outline-cta.padding": *home
109
+ "tokens.components.home-outline-cta.height": *home
110
+ "tokens.components.home-outline-cta.font": *home
111
+ "tokens.components.home-outline-cta.states": *home
112
+ "tokens.components.home-outline-cta.use": *home
113
+ "tokens.components.category-filter-control.type": *category
114
+ "tokens.components.category-filter-control.bg": *category
115
+ "tokens.components.category-filter-control.fg": *category
116
+ "tokens.components.category-filter-control.border": *category
117
+ "tokens.components.category-filter-control.radius": *category
118
+ "tokens.components.category-filter-control.padding": *category
119
+ "tokens.components.category-filter-control.height": *category
120
+ "tokens.components.category-filter-control.font": *category
121
+ "tokens.components.category-filter-control.states": *category
122
+ "tokens.components.category-filter-control.use": *category
123
+ "tokens.components.category-panel.type": *category
124
+ "tokens.components.category-panel.bg": *category
125
+ "tokens.components.category-panel.radius": *category
126
+ "tokens.components.category-panel.padding": *category
127
+ "tokens.components.category-panel.font": *category
128
+ "tokens.components.category-panel.use": *category
14
129
  tokens:
15
- source: live-extract
16
- extracted: "2026-06-09"
17
- components_harvested: true
130
+ source: reconciled
131
+ extracted: "2026-07-13"
132
+ note: "Only selector-backed values from the supplied public marketplace capture are tokens. Home and category observations remain route-local; no logged-in, checkout, support-doc, or interaction state is inferred."
18
133
  colors:
19
- primary: "#92fa72"
20
- primary-deep: "#5dd877"
21
- primary-tint: "#e1f5dc"
22
- mint: "#27e7b7"
23
134
  canvas: "#ffffff"
24
- heading: "#212224"
25
135
  ink: "#000000"
26
- label: "#303441"
136
+ heading: "#212224"
137
+ muted: "#555969"
27
138
  hairline: "#f2f3f7"
28
- border: "#c8cad2"
29
- border-card: "#e4e5ed"
30
- blue: "#4b94fa"
31
- blue-deep: "#116ad4"
32
- blue-tint: "#ebf4ff"
33
- red: "#ff402b"
139
+ control-border: "#c8cad2"
140
+ primary: "#92fa72"
34
141
  on-primary: "#212224"
142
+ header-action: "#212224"
143
+ on-header-action: "#ffffff"
144
+ category-surface: "#fafafc"
145
+ category-border: "#e4e5ed"
35
146
  typography:
36
- family: { sans: "Pretendard" }
37
- display: { size: 40, weight: 700, lineHeight: 1.30, tracking: 0, use: "Hero headline (40px / 52px)" }
38
- section: { size: 28, weight: 700, lineHeight: 1.36, tracking: 0, use: "Section titles (28px / 38px)" }
39
- subheading: { size: 20, weight: 700, lineHeight: 1.40, tracking: 0, use: "Card heads, search field text" }
40
- body: { size: 16, weight: 400, lineHeight: 1.50, tracking: 0, use: "Standard reading text, nav, links" }
41
- button: { size: 16, weight: 500, lineHeight: 1.00, tracking: 0, use: "Primary button label" }
42
- caption: { size: 11, weight: 700, lineHeight: 1.40, tracking: 0, use: "Badges, ranking labels" }
43
- micro: { size: 10, weight: 700, lineHeight: 1.40, tracking: 0, use: "Pill tags (기업용), metadata" }
44
- spacing: { xs: 4, sm: 8, md: 12, base: 16, lg: 20, xl: 24, xxl: 40, section: 76 }
45
- rounded: { sm: 4, md: 11, lg: 27, full: 9999 }
147
+ family: { ui: "Pretendard" }
148
+ marketplace-body: { size: 16, weight: 400, lineHeight: 1.50, use: "Repeated public marketplace body, card, and list sample" }
149
+ header-action: { size: 14, weight: 500, lineHeight: 1.43, use: "Public home/category header action" }
150
+ hero: { size: 40, weight: 700, lineHeight: 1.30, use: "Public home headline" }
151
+ search: { size: 20, weight: 400, lineHeight: 1.40, use: "Public home search input" }
152
+ category-heading: { size: 36, weight: 700, lineHeight: 1.22, use: "Public category-page heading sample" }
153
+ spacing: { xxs: 2, sm: 8, md: 12, base: 16, lg: 20, xl: 24, xxl: 32 }
154
+ rounded: { square: 0, primary-cta: 4, control: 8, category-panel: 12, home-search: 36, category-search: 24 }
46
155
  shadow:
47
- card: "rgba(0,0,0,0.08) 0px 4px 12px 0px"
48
- pop: "rgba(0,0,0,0.1) 0px 0px 20px 0px"
156
+ home-search: "rgba(0,0,0,0.1) 0px 0px 20px 0px"
157
+ category-search: "rgba(0,0,0,0.06) 0px 0px 8px 0px"
49
158
  components:
50
- button-primary: { type: button, bg: "#92fa72", fg: "#212224", radius: "4px", padding: "0px 24px", font: "16px / 500", use: "Primary CTA 크몽 시작하기, dark ink label on signature green" }
51
- button-secondary: { type: button, bg: "#ffffff", fg: "#000000", radius: "4px", padding: "0px 20px", font: "16px / 400", use: "Outlined action, 1px #c8cad2 border category chips" }
52
- button-pill: { type: button, bg: "#ffffff", fg: "#303441", radius: "9999px", padding: "0px", font: "16px / 400", use: "Round icon/control button, translucent white surface" }
53
- input-search: { type: input, bg: "#ffffff", fg: "#212224", radius: "4px", padding: "16px 0px", font: "20px / 400", use: "Hero search 어떤 전문가가 필요하세요?, underline-led, 1px #f2f3f7 hairline" }
54
- card-gig: { type: card, bg: "#ffffff", fg: "#212224", radius: "4px", use: "Service/gig card, 1px #e4e5ed border, shadow rgba(0,0,0,0.08) 0px 4px 12px" }
55
- badge-biz: { type: badge, bg: "#ebf4ff", fg: "#116ad4", radius: "11px", font: "10px / 700", use: "기업용 / Biz pill, blue-tinted" }
56
- badge-best: { type: badge, bg: "#ffffff", fg: "#ff402b", radius: "27px", font: "11px / 700", use: "Best / ranking badge, red accent" }
57
- badge-mint: { type: badge, bg: "#e1f5dc", fg: "#5dd877", radius: "11px", font: "10px / 700", use: "Promo / new tag, green-tint on deep green text" }
58
- nav-bar: { type: tab, bg: "#ffffff", fg: "#212224", font: "16px / 400", use: "Top header 76px, white surface, category nav row", active: "2px bottom border #212224" }
59
- avatar-pro: { type: avatar, bg: "#f2f3f7", radius: "9999px", use: "Expert/seller profile circle, hairline fill" }
159
+ home-primary-cta: { type: button, bg: "#92fa72", fg: "#212224", radius: "4px", padding: "0px 24px", height: "52px", font: "16px / 500 Pretendard", states: "default only; no interaction state captured", use: "Public home CTA, selector home::[data-omd-capture=143]" }
160
+ header-action: { type: button, bg: "#212224", fg: "#ffffff", radius: "8px", height: "36px", font: "14px / 500 Pretendard", states: "default only; no interaction state captured", use: "Public marketplace header action, selector home::[data-omd-capture=6]" }
161
+ home-search: { type: input, bg: "#ffffff", fg: "#212224", border: "1px solid #c8cad2", radius: "36px", padding: "0px 32px", height: "64px", font: "20px / 400 Pretendard", states: "default only; no interaction state captured", use: "Public home search shell/input, selectors home::form and home::[data-omd-capture=7]" }
162
+ home-outline-cta: { type: button, bg: "#ffffff", fg: "#212224", border: "1px solid #c8cad2", radius: "8px", padding: "0px 24px", height: "52px", font: "16px / 500 Pretendard", states: "default only; no interaction state captured", use: "Public home outlined CTA, selector home::[data-omd-capture=145]" }
163
+ category-filter-control: { type: button, bg: "#ffffff", fg: "#212224", border: "1px solid #e4e5ed", radius: "8px", padding: "0px 12px", height: "36px", font: "14px / 400 Pretendard", states: "default only; no interaction state captured", use: "Public category filter control, selector surface-3::[data-omd-capture=93]" }
164
+ category-panel: { type: card, bg: "#fafafc", radius: "12px", padding: "32px 24px", font: "16px / 400 Pretendard", use: "Public category-page panel, selector surface-3::article" }
165
+ components_harvested: true
60
166
  ---
61
167
 
62
- # Design System Inspiration of Kmong
168
+ # Design System Inspiration of Kmong (크몽)
63
169
 
64
170
  ## 1. Visual Theme & Atmosphere
65
171
 
66
- Kmong (크몽) is Korea's largest freelance and skill marketplace, and its homepage reads exactly like what it is: a high-trust, high-volume transaction surface designed to move a buyer from "I have a problem" to "I hired the right expert" with the least possible friction. The canvas is pure white (`#ffffff`) with near-black ink headings (`#212224`), and the entire personality is carried by a single, almost shockingly bright signature green `#92fa72` on the primary CTA and the deeper `#5dd877` saturating cards, tags, and accents across the page. This is not the muted, institutional green of a bank; it is a fresh, energetic, almost neon lime that signals approachability and momentum. The effect is a marketplace that feels optimistic and fast rather than corporate.
67
-
68
- The typography is set entirely in **Pretendard**, the de-facto Korean web sans that renders Hangul and Latin with even rhythm and excellent legibility at small sizes. Headlines run heavy (weight 700) and tight in leading — the hero is 40px on a 52px line — projecting confidence and directness rather than the whisper-weight restraint of Western fintech. Korean copy ("성공이 필요한 순간, 딱 맞는 전문가를 찾아보세요") is large, bold, and conversational. There is no decorative letter-spacing; tracking sits at `normal` throughout, letting Pretendard's native metrics do the work.
172
+ Kmong is a Korean expert-services marketplace: its public home lets people find and commission specialists, while the official company site describes an escrow-protected transaction model and company-oriented services such as corporate-card payment and tax-invoice issuance. The public marketplace surface is deliberately direct: white space, dark `#212224` headings, a large searchable entry point, and a lime `#92FA72` action that stands apart from a compact dark header action. Kmong’s company site also records a 2025 logo-rebrand story, so the current expression should be treated as a living marketplace identity rather than an inherited generic green UI. This reference separates the public marketplace evidence from company/corporate context; neither is treated as a substitute for a signed-in workflow or documentation chrome.
69
173
 
70
- Depth is handled with the lightest possible touch. Cards lift on a soft single-layer shadow (`rgba(0,0,0,0.08) 0px 4px 12px`) and floating popovers use a diffuse `rgba(0,0,0,0.1) 0px 0px 20px`. Corners are conservative — a 4px radius dominates buttons, cards, and inputs — while small status pills go fully rounded (11px–27px) for a friendly, badge-like read. The overall atmosphere is clean, dense, and commerce-first: lots of real content per screen, a vivid green guiding every primary action, and just enough elevation to separate the gig cards from the white field they sit on.
174
+ ## 2. Color & Surface Evidence
71
175
 
72
- **Key Characteristics:**
73
- - Pretendard everywhere the standard Korean web sans, weight 700 for headings, 400 for body
74
- - Signature electric green `#92fa72` on the primary CTA with deeper `#5dd877` as the dominant brand fill
75
- - Dark ink labels (`#212224`) ON the green button rather than white text — the green is bright enough to carry dark type
76
- - Pure white (`#ffffff`) canvas with `#f2f3f7` hairlines for a clean, high-density commerce layout
77
- - Conservative 4px radius on buttons/cards/inputs; fully-rounded pills (11px–27px) on status badges
78
- - Soft single-layer shadows (`rgba(0,0,0,0.08) 0px 4px 12px`) gentle elevation, never heavy
79
- - Blue (`#116ad4` on `#ebf4ff`) for Biz/기업용 trust tags; red (`#ff402b`) for Best/ranking accents
80
- - Bold, conversational Korean headlines at 40px/52px direct and momentum-driven, not understated
81
-
82
- ## 2. Color Palette & Roles
83
-
84
- ### Primary
85
- - **Kmong Green** (`#92fa72`): The primary CTA background ("크몽 시작하기"). A bright, energetic lime-green that anchors every primary action.
86
- - **Brand Green Deep** (`#5dd877`): The dominant brand fill across cards, tags, and decorative accents — the most-used saturated color on the page.
87
- - **Green Tint** (`#e1f5dc`): Soft pale-green surface for promo/new tags and tinted backgrounds.
88
- - **Mint** (`#27e7b7`): Secondary teal-green accent for highlights and decorative gradients.
89
-
90
- ### Neutrals & Text
91
- - **Heading Ink** (`#212224`): Primary heading and label color — a near-black with a hint of warmth. Also the label color on the green CTA.
92
- - **Pure Ink** (`#000000`): Section headings and high-contrast body text.
93
- - **Label Slate** (`#303441`): Secondary control text, muted labels on translucent surfaces.
94
- - **Pure White** (`#ffffff`): Page background, card surfaces, header bar.
95
-
96
- ### Accents
97
- - **Trust Blue** (`#4b94fa`): Informational accent, links, Biz-related highlights.
98
- - **Blue Deep** (`#116ad4`): Biz/기업용 badge text color.
99
- - **Blue Tint** (`#ebf4ff`): Tinted surface for blue Biz badges.
100
- - **Alert Red** (`#ff402b`): Best/ranking badges, urgency and promotional accents.
101
-
102
- ### Surface & Borders
103
- - **Hairline** (`#f2f3f7`): The standard light divider and input underline color.
104
- - **Border** (`#c8cad2`): Outlined secondary button and control borders.
105
- - **Card Border** (`#e4e5ed`): Subtle 1px border on gig/service cards.
176
+ - `#FFFFFF` — observed public home/category canvas, search shell, and outlined controls.
177
+ - `#000000`frequent body and card text in the supplied public capture.
178
+ - `#212224` heading, search-input, and dark header-action colour.
179
+ - `#555969` observed muted public-marketplace text.
180
+ - `#F2F3F7` repeatedly observed hairline/border colour.
181
+ - `#C8CAD2` home search and outlined-CTA border.
182
+ - `#E4E5ED` — category filter-control border.
183
+ - `#92FA72` observed home primary-CTA background; it is not assumed to be every primary action on every route.
184
+ - `#FAFAFC`observed category-page panel surface only.
106
185
 
107
186
  ## 3. Typography Rules
108
187
 
109
- ### Font Family
110
- - **Primary**: `Pretendard`, with system sans fallback (`sans-serif`)
111
- - Pretendard is the de-facto Korean web typeface, chosen for even Hangul/Latin rhythm and strong small-size legibility. No monospace face is used on the marketing surface.
112
-
113
- ### Hierarchy
114
-
115
- | Role | Font | Size | Weight | Line Height | Letter Spacing | Notes |
116
- |------|------|------|--------|-------------|----------------|-------|
117
- | Hero Display | Pretendard | 40px (2.50rem) | 700 | 52px (1.30) | normal | Main homepage headline |
118
- | Section Heading | Pretendard | 28px (1.75rem) | 700 | 38px (1.36) | normal | Feature/section titles |
119
- | Subheading | Pretendard | 20px (1.25rem) | 700 | 1.40 | normal | Card heads, search field text |
120
- | Body | Pretendard | 16px (1.00rem) | 400 | 1.50 | normal | Standard text, nav, links |
121
- | Button | Pretendard | 16px (1.00rem) | 500 | 1.00 | normal | Primary CTA label |
122
- | Caption | Pretendard | 11px (0.69rem) | 700 | 1.40 | normal | Best/ranking badges |
123
- | Micro | Pretendard | 10px (0.63rem) | 700 | 1.40 | normal | Pill tags (기업용), metadata |
124
-
125
- ### Principles
126
- - **Bold-and-direct**: Headlines at weight 700 with tight leading (40px on 52px). Kmong communicates with confidence and clarity, not whisper-weight restraint.
127
- - **One family, full range**: Pretendard handles everything from 40px hero to 10px micro-tags. Weight is the primary hierarchy lever — 700 for headings/badges, 500 for buttons, 400 for body.
128
- - **No decorative tracking**: Letter-spacing stays at `normal` throughout. Pretendard's native metrics are tuned for Hangul and need no adjustment.
129
- - **Korean-first sizing**: Body and labels are generously sized (16px base, 20px search input) for comfortable Hangul reading and dense commerce scanning.
130
-
131
- ## 4. Component Stylings
132
-
133
- ### Buttons
134
-
135
- **Primary (Kmong Green)**
136
- - Background: `#92fa72`
137
- - Text: `#212224` (dark ink — not white)
138
- - Padding: 0px 24px
139
- - Radius: 4px
140
- - Font: 16px Pretendard weight 500
141
- - Use: Primary CTA — "크몽 시작하기", "의뢰하기"
142
-
143
- **Secondary (Outlined)**
144
- - Background: `#ffffff`
145
- - Text: `#000000`
146
- - Border: `1px solid #c8cad2`
147
- - Padding: 0px 20px
148
- - Radius: 4px
149
- - Font: 16px Pretendard weight 400
150
- - Use: Category chips, secondary actions
151
-
152
- **Round Control Pill**
153
- - Background: `#ffffff` (often translucent)
154
- - Text: `#303441`
155
- - Radius: 9999px (full)
156
- - Font: 16px weight 400
157
- - Use: Icon/carousel control buttons
158
-
159
- ### Cards & Containers
160
- - Background: `#ffffff`
161
- - Border: `1px solid #e4e5ed`
162
- - Radius: 4px
163
- - Shadow: `rgba(0,0,0,0.08) 0px 4px 12px 0px`
164
- - Popover shadow: `rgba(0,0,0,0.1) 0px 0px 20px 0px`
165
- - Use: Gig/service cards, expert profile cards
166
-
167
- ### Badges / Tags / Pills
168
- **Biz / 기업용 Pill**
169
- - Background: `#ebf4ff`
170
- - Text: `#116ad4`
171
- - Radius: 11px
172
- - Font: 10px weight 700
173
-
174
- **Best / Ranking Badge**
175
- - Background: `#ffffff`
176
- - Text: `#ff402b`
177
- - Radius: 27px
178
- - Font: 11px weight 700
179
-
180
- **Green Promo Tag**
181
- - Background: `#e1f5dc`
182
- - Text: `#5dd877`
183
- - Radius: 11px
184
- - Font: 10px weight 700
185
-
186
- ### Inputs & Forms
187
- - Hero search: white surface, 4px radius, 20px Pretendard text, placeholder "어떤 전문가가 필요하세요?"
188
- - Underline/hairline border in `#f2f3f7`
189
- - Text color: `#212224`
190
- - Padding: 16px vertical
191
-
192
- ### Navigation
193
- - White (`#ffffff`) sticky header, 76px tall
194
- - Ink (`#212224`) link text, 16px Pretendard weight 400
195
- - Category nav row below the brand logotype
196
- - Active nav item: 2px bottom border in `#212224`
197
- - Primary green CTA right-aligned
188
+ ### Evidence classes
189
+
190
+ - **Live product computed use:** `Pretendard` has 1,444 visible uses across the supplied home and category capture, with a high-confidence loaded FontFace match and 18 Kmong CloudFront font-source URLs. It is the sole `tokens.typography.family.ui` family.
191
+ - **Official font asset and licence:** the upstream Pretendard project documents distribution and its SIL Open Font License 1.1. This establishes the upstream licence boundary; it does not independently establish Kmong product use.
192
+ - **Declared-only:** `slick` has four Kmong-hosted declared source files but zero visible uses in the bundle. It is not a UI-family token and must not be substituted.
193
+ - **Unresolved:** no separate official Kmong typeface or additional browser-loaded family was established from the supplied public routes.
194
+
195
+ ### Observed public-marketplace hierarchy
196
+
197
+ | Role | Family | Size | Weight | Line height | Surface boundary |
198
+ |---|---|---:|---:|---:|---|
199
+ | Home headline | Pretendard | 40px | 700 | 52px | Home only |
200
+ | Home search input | Pretendard | 20px | 400 | 28px | Home only |
201
+ | Category heading sample | Pretendard | 36px | 700 | 44px | Category route only |
202
+ | Repeated body/card/list sample | Pretendard | 16px | 400 | 24px | Home and category routes |
203
+ | Header action | Pretendard | 14px | 500 | 20px | Public marketplace header |
204
+
205
+ ## 4. Components
206
+
207
+ ### Home primary CTA
208
+
209
+ **Default**
210
+ - Background: `#92FA72`
211
+ - Text: `#212224`
212
+ - Radius: `4px`
213
+ - Padding: `0px 24px`
214
+ - Height: `52px`
215
+ - Font: `16px / 500 Pretendard`
216
+ - Use: Public home CTA; `home::[data-omd-capture="143"]`.
217
+
218
+ ### Header action
219
+
220
+ **Default**
221
+ - Background: `#212224`
222
+ - Text: `#FFFFFF`
223
+ - Radius: `8px`
224
+ - Height: `36px`
225
+ - Font: `14px / 500 Pretendard`
226
+ - Use: Public marketplace header action; `home::[data-omd-capture="6"]`.
227
+
228
+ ### Home search
229
+
230
+ **Default**
231
+ - Background: `#FFFFFF`
232
+ - Text: `#212224`
233
+ - Border: `1px solid #C8CAD2`
234
+ - Radius: `36px`
235
+ - Padding: `0px 32px`
236
+ - Height: `64px`
237
+ - Font: `20px / 400 Pretendard`
238
+ - Use: Public home search shell/input; `home::form` and `home::[data-omd-capture="7"]`.
239
+
240
+ ### Home outlined CTA
241
+
242
+ **Default**
243
+ - Background: `#FFFFFF`
244
+ - Text: `#212224`
245
+ - Border: `1px solid #C8CAD2`
246
+ - Radius: `8px`
247
+ - Padding: `0px 24px`
248
+ - Height: `52px`
249
+ - Font: `16px / 500 Pretendard`
250
+ - Use: Public home outlined CTA; `home::[data-omd-capture="145"]`.
251
+
252
+ ### Category filter control
253
+
254
+ **Default**
255
+ - Background: `#FFFFFF`
256
+ - Text: `#212224`
257
+ - Border: `1px solid #E4E5ED`
258
+ - Radius: `8px`
259
+ - Padding: `0px 12px`
260
+ - Height: `36px`
261
+ - Font: `14px / 400 Pretendard`
262
+ - Use: Public category filter control; `surface-3::[data-omd-capture="93"]`.
263
+
264
+ ### Category panel
265
+
266
+ **Default**
267
+ - Background: `#FAFAFC`
268
+ - Radius: `12px`
269
+ - Padding: `32px 24px`
270
+ - Font: `16px / 400 Pretendard`
271
+ - Use: Public category-page panel; `surface-3::article`.
272
+
273
+ The supplied bundle reports zero interaction records. No hover, pressed, focus, disabled, menu, dialog, validation, or responsive variants are claimed from class names or static samples.
198
274
 
199
275
  ---
200
276
 
201
- **Verified:** 2026-06-09 (live DOM inspect — homepage)
202
- **Tier 1 sources:** https://kmong.com, https://kmong.com/atoz (Kmong A to Z brand guide / help center)
203
-
204
- ## 5. Layout Principles
277
+ **Verified:** 2026-07-13
278
+ **Tier 1 sources:** `https://kmong.com/` (public marketplace home), `https://kmong.com/category/1` (public category marketplace), `https://company.kmong.com/` (official company context), `https://github.com/orioncactus/pretendard/blob/main/packages/pretendard/docs/en/README.md` (upstream font distribution), and `https://github.com/orioncactus/pretendard/blob/main/LICENSE` (upstream font licence)
279
+ **Tier 2 sources:** `https://getdesign.md/kmong` (attempted; built-in web open returned an internal safe-open failure/no usable record), `https://styles.refero.design/?q=kmong` (attempted; built-in web open returned an internal safe-open failure/no usable record)
280
+ **Conflicts unresolved:** none
205
281
 
206
- ### Spacing System
207
- - Base unit: 4px, scaling 4 / 8 / 12 / 16 / 20 / 24 / 40 / 76px
208
- - Section rhythm uses generous ~76px header-to-content gaps, while gig cards pack densely in grids
209
- - Notable: dense at the small end (4–16px) for in-card spacing, generous at the section level
282
+ The older universal 4px input/card rule, 76px header, card-shadow system, Biz/Best/promo badge variants, generic gig-card treatment, and all reusable interaction/state/motion assertions were rolled back: they are not established by the supplied 2026 multi-surface capture.
210
283
 
211
- ### Grid & Container
212
- - Wide centered content area for category grids and gig-card carousels
213
- - Hero: left-aligned bold headline + large search field as the primary entry point
214
- - Feature sections: horizontally scrolling card carousels ("쇼핑몰 사장님이 많이 찾아요")
215
- - High content density — many gig cards visible per screen, commerce-first
284
+ ## 5. Layout & Responsive Evidence
216
285
 
217
- ### Whitespace Philosophy
218
- - **Commerce density**: Unlike minimalist marketing sites, Kmong fills the screen with real, scannable inventory. Whitespace separates sections, not individual cards.
219
- - **Green as wayfinding**: The bright green CTA is the single most prominent element, pulling the eye to the next action on every section.
220
- - **Card rhythm**: Uniform 4px-radius gig cards in repeating carousels create a predictable, catalog-like scanning rhythm.
221
-
222
- ### Border Radius Scale
223
- - Standard (4px): Buttons, inputs, cards — the workhorse radius
224
- - Pill small (11px): Biz/promo status tags
225
- - Pill large (27px): Best/ranking badges
226
- - Full (9999px): Round control buttons, avatars
286
+ - The supplied capture covers public 1440×900 home and category routes. It establishes a 628px × 64px home-search shell and a 500px × 50px category-search shell, not a breakpoint system.
287
+ - The public category page includes a 1,168px × 184px `#FAFAFC` panel with `32px 24px` padding. It is a route-local observation, not a universal card layout.
288
+ - No mobile, signed-in, checkout, seller, help-centre, or documentation-chrome route was supplied as product evidence. Their layout contracts are intentionally absent.
227
289
 
228
290
  ## 6. Depth & Elevation
229
291
 
230
- | Level | Treatment | Use |
231
- |-------|-----------|-----|
232
- | Flat (Level 0) | No shadow | Page background, inline text, hairline dividers |
233
- | Card (Level 1) | `rgba(0,0,0,0.08) 0px 4px 12px 0px` | Gig cards, content panels |
234
- | Popover (Level 2) | `rgba(0,0,0,0.1) 0px 0px 20px 0px` | Dropdowns, floating tooltips, hover cards |
292
+ - Home search shell: `rgba(0,0,0,0.1) 0px 0px 20px 0px`.
293
+ - Category search shell: `rgba(0,0,0,0.06) 0px 0px 8px 0px`.
235
294
 
236
- **Shadow Philosophy**: Kmong's elevation is deliberately gentle. Shadows are neutral black at very low alpha (0.08–0.1), single-layer, with no colored tinting. The goal is to lift a gig card just enough off the white field to register as tappable, without introducing visual heaviness that would slow down catalog scanning. Elevation is functional separation, not decorative drama — appropriate for a high-volume marketplace where the content, not the chrome, is the star.
295
+ No general card, popover, modal, or hover-elevation ladder is claimed.
237
296
 
238
297
  ## 7. Do's and Don'ts
239
298
 
240
299
  ### Do
241
- - Use the signature green `#92fa72` for the primary CTA, with dark ink (`#212224`) text on it
242
- - Use `#5dd877` as the dominant brand fill for accents, tags, and decorative elements
243
- - Set all type in Pretendard 700 for headings/badges, 500 for buttons, 400 for body
244
- - Keep button/card/input radius at 4px; reserve full-round pills for status badges only
245
- - Use soft single-layer shadows (`rgba(0,0,0,0.08) 0px 4px 12px`) for card elevation
246
- - Use blue (`#116ad4` on `#ebf4ff`) for Biz/기업용 trust tags and red (`#ff402b`) for Best/ranking
247
- - Let content density carry the layout — many scannable gig cards per screen
300
+
301
+ - Keep the observed home primary CTA distinct: `#92FA72` with `#212224` text.
302
+ - Use Pretendard only when reproducing the verified public-marketplace specimen.
303
+ - Preserve the route distinction between the 36px home search and 24px category search.
304
+ - Treat the dark 36px header action and lime 52px home CTA as separate observed variants.
248
305
 
249
306
  ### Don't
250
- - Don't put white text on the green CTA — the green is bright; dark ink (`#212224`) is the brand choice
251
- - Don't use heavy or colored shadows elevation stays soft, neutral, and minimal
252
- - Don't apply decorative letter-spacing Pretendard runs at `normal` tracking
253
- - Don't use large rounded corners (12px+) on cards or buttons 4px is the standard
254
- - Don't dilute the green with secondary brand colors green is the single wayfinding accent
255
- - Don't use thin/light heading weights — Kmong headlines are bold (700) and direct
256
- - Don't sacrifice content density for whitespace — this is a marketplace, not a minimalist landing page
307
+
308
+ - Do not turn the lime home CTA into an unsupported universal action token.
309
+ - Do not reuse `slick` or substitute it for Pretendard; its visible product use was not observed.
310
+ - Do not infer hover, focus, disabled, error, modal, or responsive styles from utility class names.
311
+ - Do not apply the category panel or filters to marketing, support, or signed-in flows without evidence.
257
312
 
258
313
  ## 8. Responsive Behavior
259
314
 
260
- ### Breakpoints
261
- | Name | Width | Key Changes |
262
- |------|-------|-------------|
263
- | Mobile | <768px | Single-column, full-width search, stacked card carousels |
264
- | Tablet | 768–1024px | 2-column gig grids, condensed nav |
265
- | Desktop | 1024–1440px | Full multi-column carousels, complete category nav |
266
- | Large | >1440px | Centered content with side margins |
267
-
268
- ### Touch Targets
269
- - Primary CTA and search field sized for comfortable mobile tapping
270
- - Gig cards full-width tappable on mobile
271
- - Category chips with adequate horizontal padding (0 20px)
272
- - Round control pills sized as discrete tap targets
273
-
274
- ### Collapsing Strategy
275
- - Hero: 40px headline compresses on mobile, weight 700 maintained
276
- - Navigation: full category row collapses to hamburger + search on mobile
277
- - Card carousels: horizontal scroll preserved across breakpoints
278
- - Search field: remains the dominant above-the-fold element at all sizes
279
-
280
- ### Image Behavior
281
- - Gig thumbnails maintain 4px radius at all sizes
282
- - Expert avatars stay fully round (9999px)
283
- - Card images fill card width, fixed aspect ratio for catalog uniformity
315
+ Only desktop-sized public capture evidence was supplied. No breakpoint, touch-target, mobile navigation, or image-ratio rule is recorded.
284
316
 
285
317
  ## 9. Agent Prompt Guide
286
318
 
287
- ### Quick Color Reference
288
- - Primary CTA: Kmong Green (`#92fa72`) with dark ink (`#212224`) text
289
- - Brand fill: Green Deep (`#5dd877`)
290
- - Background: Pure White (`#ffffff`)
291
- - Heading text: Ink (`#212224`)
292
- - Body text: Ink (`#000000`)
293
- - Hairline/divider: (`#f2f3f7`)
294
- - Card border: (`#e4e5ed`)
295
- - Biz tag: blue text (`#116ad4`) on tint (`#ebf4ff`)
296
- - Best/ranking: Red (`#ff402b`)
297
-
298
- ### Example Component Prompts
299
- - "Create a hero on white background. Headline at 40px Pretendard weight 700, line-height 52px, color #212224, no letter-spacing. Below it a search field (white, 4px radius, 20px text, placeholder '어떤 전문가가 필요하세요?'). Primary green CTA button (#92fa72 bg, #212224 dark text, 4px radius, 0 24px padding, 16px weight 500)."
300
- - "Design a gig card: white background, 1px solid #e4e5ed border, 4px radius, shadow rgba(0,0,0,0.08) 0px 4px 12px. Title at 20px Pretendard weight 700, #212224. A Biz pill: #ebf4ff bg, #116ad4 text, 11px radius, 10px weight 700."
301
- - "Build a Best badge: white background, #ff402b text, 27px radius, 11px Pretendard weight 700."
302
- - "Create navigation: white sticky 76px header. Pretendard 16px weight 400 links in #212224, active item with 2px bottom border #212224. Green CTA '크몽 시작하기' right-aligned (#92fa72 bg, #212224 text, 4px radius)."
303
-
304
- ### Iteration Guide
305
- 1. The signature green `#92fa72` carries dark ink text (`#212224`), not white — this is the defining brand quirk
306
- 2. Pretendard is the only family; lean on weight (700/500/400) for hierarchy
307
- 3. Radius stays at 4px for buttons/cards/inputs; full-round only for badges and avatars
308
- 4. Shadows are soft, neutral, single-layer — `rgba(0,0,0,0.08) 0px 4px 12px`
309
- 5. Blue (`#116ad4`/`#ebf4ff`) is reserved for Biz/trust; red (`#ff402b`) for ranking/urgency
310
- 6. Content density over whitespace — this is a marketplace catalog
311
-
312
- ---
319
+ - Recreate the **public home CTA** as a 52px-tall, 4px-radius button with `#92FA72` background, `#212224` label, `0px 24px` padding, and 16px/500 Pretendard.
320
+ - Recreate the **public home search** as a 64px white shell with a `#C8CAD2` 1px border, 36px radius, `0px 32px` shell padding, and a 20px/400 Pretendard input.
321
+ - Recreate the **public category filter** as a 36px white control with `#E4E5ED` border, 8px radius, `0px 12px` padding, and 14px/400 Pretendard.
322
+ - Do not generate an interaction or state variant unless new selector-and-interaction evidence establishes it.
313
323
 
314
324
  ## 10. Voice & Tone
315
325
 
316
- Kmong's voice is warm, encouraging, and outcome-focused it speaks to small-business owners, founders, and solo creators who need expert help and frames the platform as the bridge to their goal. The hero line "성공이 필요한 순간, 맞는 전문가를 찾아보세요" (When you need success, find exactly the right expert) is characteristic: it leads with the user's aspiration, then offers a concrete path. Copy is conversational and second-person, never bureaucratic. Section headers like "쇼핑몰 사장님이 많이 찾아요" (Shopping-mall owners search for this a lot) use social proof and relatable personas rather than abstract feature claims.
317
-
318
- | Context | Tone |
319
- |---|---|
320
- | Hero headlines | Aspirational + concrete. Names the goal ("성공"), then the action ("전문가를 찾아보세요"). |
321
- | Category labels | Plain, scannable Korean nouns. "디자인", "마케팅", "IT·프로그래밍". |
322
- | Social-proof sections | Relatable persona framing. "쇼핑몰 사장님이 많이 찾아요". |
323
- | CTAs | Direct, momentum verbs. "크몽 시작하기", "의뢰하기", "전문가 찾기". |
324
- | Trust signals | Specific and reassuring — ratings, review counts, 안전결제 (safe payment), Biz guarantees. |
325
- | Help / A to Z | Friendly, step-by-step, beginner-aware. Assumes the user is new to outsourcing. |
326
-
327
- **Forbidden register.** Cold corporate jargon, English-heavy buzzwords where plain Korean works, fear-based urgency, or anything that makes a first-time outsourcer feel they don't belong. Kmong's voice lowers the barrier to hiring an expert.
326
+ The official homepage frames the service around finding capable experts and protecting a transaction until work is received; the company site presents the same marketplace as a place where individuals and companies can commission work with practical payment and document support. The observable public tone is therefore direct, reassuring, and task-oriented. This is source-grounded service framing, not a claim that every internal or support message uses one fixed voice.
328
327
 
329
328
  ## 11. Brand Narrative
330
329
 
331
- Kmong (크몽) launched in **2012** and grew into **Korea's largest freelance and skill marketplace**, operated by **Kmong Inc.** The platform connects clients with freelancers and agencies across categories such as design, IT/programming, marketing, video/photography, translation, documents, and business consulting. The model is a service-listing ("gig") marketplace: experts publish productized services with fixed scopes and prices, and buyers browse, compare ratings and reviews, and commission work through Kmong's escrow-style safe-payment (안전결제) system.
332
-
333
- The name "크몽" is the brand's own coinage, and the bright lime-green identity has become a recognizable mark in the Korean startup and SMB ecosystem. Over time Kmong expanded beyond individual gigs into **Kmong Enterprise / Biz** offerings (the 기업용 / 엔터프라이즈 tags visible in the nav) — bringing vetted experts, quality guarantees, and managed sourcing to companies, not just individuals. The platform positions itself as the default first stop for any Korean small business or founder who needs specialized work done without the overhead of hiring full-time.
334
-
335
- What Kmong embraces: lowering the barrier to outsourcing, trust infrastructure (reviews, safe payment, dispute handling), and a friendly, high-energy visual brand that makes commissioning expert work feel approachable rather than intimidating.
330
+ Kmong’s official company site presents the service as an expert platform where a request can be made by chat and protected through escrow payment, with distinct support for company transactions such as corporate cards and tax invoices. Its public home exposes the marketplace side of that proposition: specialist listings, reviews, and a search-led path into discovery. The company site also publishes a 2025 logo-rebrand item, indicating an actively maintained visual identity. These facts establish the product and its current public expression; no unobserved seller, contract, or post-purchase experience is inferred here.
336
331
 
337
332
  ## 12. Principles
338
333
 
339
- 1. **Lower the barrier to expertise.** The entire experience is engineered so a first-time buyer can go from problem to hired expert quickly. Design should reduce friction, never add ceremony.
340
- 2. **Trust is the product.** Reviews, ratings, safe payment, and Biz guarantees are not features bolted on they are the reason the marketplace works. Surface trust signals prominently.
341
- 3. **Green means go.** The signature `#92fa72` is reserved for the next action. One unmistakable wayfinding color keeps the path to purchase obvious.
342
- 4. **Density serves discovery.** A marketplace lives or dies by inventory visibility. Show many scannable gig cards; let content, not chrome, fill the screen.
343
- 5. **Approachable, not corporate.** Bold conversational Korean, warm persona framing, and an energetic palette make hiring an expert feel friendly — appropriate for SMB and solo founders.
344
- 6. **Conservative chrome, vivid accent.** 4px radii and soft neutral shadows keep the frame quiet so the green CTA and the gig content stand out.
345
-
346
- ## 13. Personas
347
-
348
- *Personas below are fictional archetypes informed by publicly observable Kmong user segments (small-business owners, solo founders, freelancers, marketers), not individual people.*
349
-
350
- **Jisoo Han, 34, Seoul.** Runs a small online clothing shop. Needs a detail page (상세페이지) designed and product photos shot but has no in-house designer. Searches Kmong by category, compares portfolios and review counts, and commissions a freelancer through safe payment. Trusts the green "크몽 시작하기" path because it always tells her clearly what happens next.
334
+ 1. **Start with expert discovery.** The large public search field is the most explicit route into the marketplace. *UI implication:* keep a verified search treatment route-local rather than inventing a global command surface.
335
+ 2. **Make the next action legible.** The public home’s lime CTA contrasts with the dark header action. *UI implication:* preserve their separate size, colour, and radius values.
336
+ 3. **Keep transaction trust concrete.** Escrow protection and company-payment support come from official company context. *UI implication:* do not fabricate trust badges, validation states, or checkout affordances from that narrative alone.
351
337
 
352
- **Minjun Park, 29, Busan.** Solo SaaS founder who needs a landing page built and a logo designed on a startup budget. Lives in the IT·프로그래밍 and 디자인 categories. Values the review system and fixed-price gigs because they make scope predictable. Would be put off by a marketplace that hid prices behind "문의하기" gates.
338
+ ## 13. Stakeholder Groups
353
339
 
354
- **Soyeon Lee, 41, Daejeon.** Marketing lead at a mid-size company evaluating Kmong Biz / Enterprise for ongoing outsourced work. Notices the 기업용 blue tags and quality-guarantee messaging. Cares that the platform can provide vetted experts and managed sourcing, not just one-off gigs.
340
+ *Source-grounded groups, not fictional personas.*
355
341
 
356
- **Daniel Kim, 26, freelance designer, Seoul.** Sells productized design gigs on Kmong as a seller. Optimizes his card thumbnails, ratings, and Best-badge ranking. Experiences the same green-accented, Pretendard-set system from the supply side and relies on the trust infrastructure to get paid reliably.
342
+ - **Clients commissioning expert work:** the public marketplace exposes specialist listings, reviews, and search-led discovery for this group.
343
+ - **Experts offering services:** Kmong’s marketplace model depends on expert service listings; no seller-console UI is claimed from this public capture.
344
+ - **Companies commissioning external work:** the official company site identifies corporate transaction support, including corporate-card payment and tax-invoice issuance; this is business context, not a captured enterprise product UI.
357
345
 
358
346
  ## 14. States
359
347
 
360
- | State | Treatment |
361
- |---|---|
362
- | **Empty (search, no results)** | White canvas, ink (`#212224`) single line: "검색 결과가 없어요." A green CTA suggests browsing categories instead. No heavy illustration. |
363
- | **Loading (card grid)** | Skeleton cards at final dimensions in hairline (`#f2f3f7`), 4px radius. Soft shimmer. Card-shaped placeholders preserve the catalog grid. |
364
- | **Error (action failed)** | Inline message below the action in ink. Red (`#ff402b`) accent for the error marker. Plain-Korean explanation plus a retry affordance. |
365
- | **Error (form validation)** | Field-level. Red (`#ff402b`) marker + short Korean message describing what to fix. |
366
- | **Success (order placed / safe payment)** | Confirmation with the green brand fill (`#5dd877`/`#e1f5dc` tint). Clear next-step link to the order. Reassuring, momentum-preserving. |
367
- | **Disabled** | Reduced opacity on surface and text together. Green actions fade rather than switch to gray, preserving brand read. |
368
- | **Loading (button press)** | Inline spinner on the green CTA; label stays, button stays green. No layout shift. |
348
+ No reusable empty, loading, error, success, disabled, validation, or skeleton treatment is recorded. The bundle has zero interaction records, so state design is intentionally omitted rather than synthesized.
369
349
 
370
350
  ## 15. Motion & Easing
371
351
 
372
- **Durations**:
373
-
374
- | Token | Value | Use |
375
- |---|---|---|
376
- | `motion-fast` | 120ms | Hover, focus, button press feedback |
377
- | `motion-standard` | 200ms | Dropdowns, card hover lift, carousel steps |
378
- | `motion-slow` | 320ms | Section reveals, modal open |
379
-
380
- **Easings**:
381
-
382
- | Token | Curve | Use |
383
- |---|---|---|
384
- | `ease-standard` | `cubic-bezier(0.25, 0.1, 0.25, 1)` | Default two-way transitions |
385
- | `ease-enter` | `cubic-bezier(0.2, 0.6, 0.25, 1)` | Dropdowns, hover cards arriving |
386
- | `ease-exit` | `cubic-bezier(0.4, 0.0, 1, 1)` | Dismissals |
387
-
388
- **Signature motions.**
389
-
390
- 1. **Card hover lift.** Gig cards raise gently on hover using `motion-standard / ease-standard`, the soft shadow (`rgba(0,0,0,0.08) 0px 4px 12px`) deepening slightly. The motion signals tappability without distracting from scanning.
391
- 2. **Carousel step.** Horizontal card carousels ("쇼핑몰 사장님이 많이 찾아요") slide one column at a time with `motion-standard`, keeping the catalog's left-to-right reading order intact.
392
- 3. **CTA press.** The green primary button gives immediate `motion-fast` press feedback — a brief scale/opacity dip — confirming the action without delay.
393
- 4. **Reduce motion.** Under `prefers-reduced-motion: reduce`, hover lifts and carousel slides become instantaneous; the marketplace stays fully functional with no decorative motion.
394
-
395
- <!--
396
- OmD v0.1 Sources — Kmong
397
-
398
- Token-level claims (sections 1–9) are sourced from a live DOM inspection of
399
- https://kmong.com on 2026-06-09 via Playwright getComputedStyle:
400
- - Primary CTA "크몽 시작하기": background #92fa72, color #212224, radius 4px,
401
- padding 0 24px, 16px / weight 500 (BUTTON).
402
- - Dominant brand fill #5dd877 (152 occurrences), tint #e1f5dc, mint #27e7b7.
403
- - H1 hero 40px / weight 700 / line-height 52px / color rgb(33,34,36)=#212224,
404
- font-family Pretendard.
405
- - H2 28px / weight 700 / line-height 38px.
406
- - Header (nav) white #ffffff, height 76px, ink #212224 links.
407
- - Biz pill 기업용: bg #ebf4ff, fg #116ad4, radius 11px, 10px / 700.
408
- - Best badge: fg #ff402b, radius 27px, 11px / 700.
409
- - Secondary button: border #c8cad2, radius 4px, fg #000000, 16px / 400.
410
- - Card: white, radius 4px, border #e4e5ed, shadow rgba(0,0,0,0.08) 0px 4px 12px;
411
- popover shadow rgba(0,0,0,0.1) 0px 0px 20px.
412
- - Search input placeholder "어떤 전문가가 필요하세요?", 20px text, #f2f3f7 hairline.
413
-
414
- Brand-narrative claims (sections 10–13): Kmong (크몽) is Korea's largest
415
- freelance/skill marketplace operated by Kmong Inc., launched 2012, productized
416
- gig model with safe-payment (안전결제) escrow and a Biz/Enterprise tier
417
- (기업용 / 엔터프라이즈 tags observed in nav). These are widely documented public
418
- facts about the company plus on-page observed labels.
419
-
420
- Personas (§13) are fictional archetypes informed by publicly observable Kmong
421
- user segments (SMB owners, solo founders, freelancers, marketers). Names are
422
- illustrative; they do not refer to real people.
423
-
424
- Interpretive claims (e.g., "green means go", "dark ink on bright green is the
425
- defining brand quirk") are editorial readings connecting Kmong's observed design
426
- choices to its marketplace strategy, not directly sourced Kmong statements.
427
- -->
352
+ No reusable duration, easing, or motion rule is recorded. Public utility class names and static elements do not establish a motion contract without interaction provenance.