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
@@ -0,0 +1,402 @@
1
+ ---
2
+ id: asleep
3
+ name: Asleep
4
+ display_name_kr: 에이슬립
5
+ country: KR
6
+ category: ai
7
+ homepage: "https://www.asleep.ai/"
8
+ primary_color: "#2a75fc"
9
+ logo:
10
+ type: favicon
11
+ slug: "https://www.google.com/s2/favicons?domain=asleep.ai&sz=128"
12
+ verified: "2026-07-02"
13
+ added: "2026-07-02"
14
+ omd: "0.1"
15
+ tokens:
16
+ source: live-extract
17
+ extracted: "2026-07-02"
18
+ note: "primary = live marketing CTA blue (#2a75fc) on a near-black #121212 canvas; the docs surface (docs.asleep.ai, ReadMe-powered) flips to light mode with its own accent blue #3a61f2. Marketing chrome is sharp-cornered (0px radius) and shadowless."
19
+ colors:
20
+ primary: "#2a75fc"
21
+ accent-docs: "#3a61f2"
22
+ info: "#118cfd"
23
+ canvas-dark: "#121212"
24
+ canvas: "#ffffff"
25
+ on-dark: "#ffffff"
26
+ ink: "#222222"
27
+ body: "#333333"
28
+ muted: "#444e57"
29
+ black: "#000000"
30
+ typography:
31
+ family: { sans: "Pretendard Variable" }
32
+ display-hero: { size: 52, weight: 600, lineHeight: 1.31, use: "Hero headline, Pretendard SemiBold on dark" }
33
+ section: { size: 40, weight: 600, lineHeight: 1.30, use: "Section titles" }
34
+ nav: { size: 18, weight: 400, lineHeight: 1.30, use: "Top nav items on dark header" }
35
+ button: { size: 16, weight: 400, lineHeight: 1.20, use: "CTA button label" }
36
+ body: { size: 14, weight: 400, lineHeight: 1.43, use: "Body text, 20px line-height" }
37
+ docs-nav: { size: 14, weight: 450, lineHeight: 1.43, use: "Docs sidebar navigation row" }
38
+ spacing: { xs: 4, sm: 8, base: 10, md: 12, lg: 20, xl: 32, xxl: 48, section: 64 }
39
+ rounded: { none: 0, sm: 6, md: 8, lg: 20, full: 9999 }
40
+ shadow:
41
+ none: "none"
42
+ subtle: "rgba(0, 0, 0, 0.1) 0px 1px 2px"
43
+ components:
44
+ button-primary: { type: button, bg: "#2a75fc", fg: "#ffffff", radius: "0px", padding: "8px 12px", font: "16px / 400 Pretendard", use: "Marketing primary CTA (API 도입 문의하기) — sharp-edged electric blue" }
45
+ button-outline: { type: button, fg: "#ffffff", border: "1px solid #ffffff", radius: "0px", padding: "8px 12px", font: "16px / 400 Pretendard", use: "Marketing secondary CTA (API Docs) outlined on dark hero" }
46
+ nav-link: { type: tab, fg: "#ffffff", font: "18px / 400 Pretendard", active: "text #2a75fc", use: "Top nav item on dark #121212 header" }
47
+ docs-search: { type: input, bg: "#ffffff", fg: "#000000", radius: "6px", font: "13px / 400 Pretendard", use: "Docs search field (⌘K) on the light docs surface" }
48
+ docs-nav-item: { type: listItem, fg: "#444e57", radius: "8px", font: "14px / 450 Pretendard", active: "bg rgba(255,255,255,0.1)", use: "Docs sidebar navigation row" }
49
+ docs-callout: { type: card, bg: "#ffffff", border: "1px solid #118cfd", radius: "6px", use: "Docs info callout / content card with a blue accent edge" }
50
+ components_harvested: true
51
+ ---
52
+
53
+ # Design System Inspiration of Asleep
54
+
55
+ ## 1. Visual Theme & Atmosphere
56
+
57
+ Asleep (에이슬립) is a KAIST-born sleep-tech AI company, and its marketing site reads exactly like that lineage suggests: a dark, cinematic, research-grade surface where a single electric blue does all the persuading. The hero canvas is a near-black `#121212`, text is pure white (`#ffffff`), and the one saturated accent — an electric blue `#2a75fc` — is reserved almost entirely for the primary call-to-action. The effect is a page that feels like a laboratory at night: quiet, precise, technically confident, letting sleep-data visualizations glow against the dark rather than competing with decorative color.
58
+
59
+ The typographic voice is unmistakably Korean-modern: everything runs in **Pretendard Variable**, the de-facto Korean product typeface, with headlines at weight 600 and large sizes (52px on the hero, 40px on section titles) projecting a calm, declarative authority ("수면으로의 영역 확장, 어렵지 않습니다" / "Expanding into sleep is not difficult"). Body and UI text drop to a quiet 14px / weight 400 with a generous 20px line-height, optimized for dense hangul legibility. There is no second display font and no weight above 600 — the hierarchy comes from size and the dark/light contrast, not from typographic flourish.
60
+
61
+ The most distinctive geometric choice is what is *absent*: the marketing chrome is **sharp-cornered and shadowless**. Live inspection found `border-radius: 0px` on the primary CTA, the outlined button, and the feature cards, and `box-shadow: none` across the hero, nav, and cards. Nothing is a pill, nothing floats on elevation — separation comes from the dark canvas, thin outlines, and the blue accent alone. The developer documentation (docs.asleep.ai, a ReadMe-hosted surface) is the deliberate counterpoint: it flips to light mode with a slightly different accent blue `#3a61f2`, softer 6–8px rounded controls, muted slate navigation (`#444e57`), and an informational tint blue `#118cfd`. Two surfaces, one company — the marketing site is the confident dark pitch; the docs are the calm, legible workbench.
62
+
63
+ **Key Characteristics:**
64
+ - Near-black `#121212` marketing canvas with pure-white (`#ffffff`) text — a dark, laboratory-at-night atmosphere
65
+ - A single electric blue (`#2a75fc`) reserved for the primary CTA — the system's only "action" color
66
+ - Sharp `0px` corners on buttons and cards — no pills, no rounding on the marketing surface
67
+ - Shadowless marketing chrome — separation via dark canvas, outlines, and color, never elevation
68
+ - Pretendard Variable everywhere; weight 600 headlines at 52px, weight 400 body at 14px / 20px line-height
69
+ - Light-mode docs surface (ReadMe) with its own accent blue `#3a61f2`, muted slate nav `#444e57`, info tint `#118cfd`, and 6–8px rounding
70
+ - Near-black heading (`#222222`) and dark-grey body (`#333333`) on light sections; pure `#000000` for maximum-contrast docs controls
71
+
72
+ ## 2. Color Palette & Roles
73
+
74
+ ### Primary & Accents
75
+ - **Asleep Blue** (`#2a75fc`): Primary brand color and CTA background. The saturated electric blue on the "API 도입 문의하기" button — the marketing system's single "action" color.
76
+ - **Docs Accent Blue** (`#3a61f2`): The accent blue of the ReadMe-hosted docs surface — links, active states, and interactive highlights inside `docs.asleep.ai`. A close but distinct sibling of the marketing blue.
77
+ - **Info Blue** (`#118cfd`): Informational highlight/tint blue used in the docs (callout borders, tinted note backgrounds at low alpha).
78
+
79
+ ### Dark Canvas & Text
80
+ - **Ink Black Canvas** (`#121212`): The near-black background of the marketing hero and dark sections.
81
+ - **Pure White** (`#ffffff`): Text and outlines on the dark canvas, and the background of the light docs surface.
82
+ - **Heading Grey** (`#222222`): Near-black heading color on light sections — warm, not pure black.
83
+ - **Body Grey** (`#333333`): Default body/paragraph text color (document default, 14px).
84
+ - **Pure Black** (`#000000`): Maximum-contrast text for docs controls (search field, high-emphasis labels).
85
+
86
+ ### Docs Neutrals
87
+ - **Muted Slate** (`#444e57`): Docs sidebar navigation text and secondary/muted labels — the quiet neutral of the documentation surface.
88
+
89
+ ## 3. Typography Rules
90
+
91
+ ### Font Family
92
+ - **Sans (universal)**: `Pretendard Variable` (with `sans-serif` fallback) — used for every headline, nav item, button label, and paragraph across both the marketing site and the docs. There is no separate display face.
93
+
94
+ ### Hierarchy
95
+
96
+ | Role | Font | Size | Weight | Line Height | Notes |
97
+ |------|------|------|--------|-------------|-------|
98
+ | Display Hero | Pretendard Variable | 52px (3.25rem) | 600 | 1.31 (68px) | Hero headline on dark canvas, white |
99
+ | Section Heading | Pretendard Variable | 40px (2.50rem) | 600 | 1.30 | Section titles |
100
+ | Nav Link | Pretendard Variable | 18px (1.13rem) | 400 | 1.30 | Top navigation items on dark header |
101
+ | Button | Pretendard Variable | 16px (1.00rem) | 400 | 1.20 | CTA button labels |
102
+ | Body | Pretendard Variable | 14px (0.88rem) | 400 | 1.43 (20px) | Standard reading / UI text |
103
+ | Docs Nav | Pretendard Variable | 14px (0.88rem) | 450 | 1.43 | Docs sidebar navigation rows |
104
+
105
+ ### Principles
106
+ - **One typeface, size-driven hierarchy**: Pretendard Variable carries everything. Contrast comes from size (52 → 40 → 18 → 14) and from the dark/light surface split, not from mixing fonts.
107
+ - **Restrained weight**: Headlines top out at weight 600 — confident but never heavy. There is no 700/800 display weight anywhere on the marketing surface.
108
+ - **Hangul-first body sizing**: Body sits at 14px with a 20px line-height — generous for dense hangul legibility while keeping information-rich API content compact.
109
+ - **Docs nudge to 450**: The documentation sidebar uses an intermediate weight (450) — a subtle legibility bump for long navigation lists, distinct from the marketing 400.
110
+
111
+ ## 4. Component Stylings
112
+
113
+ ### Buttons
114
+
115
+ **Primary CTA**
116
+ - Background: `#2a75fc`
117
+ - Text: `#ffffff`
118
+ - Radius: 0px
119
+ - Padding: 8px 12px
120
+ - Font: 16px / 400 / Pretendard Variable
121
+ - Height: 38px
122
+ - Use: Marketing primary action ("API 도입 문의하기") — sharp-edged electric-blue CTA
123
+
124
+ **Outlined (Secondary)**
125
+ - Text: `#ffffff`
126
+ - Border: 1px solid `#ffffff`
127
+ - Radius: 0px
128
+ - Padding: 8px 12px
129
+ - Font: 16px / 400 / Pretendard Variable
130
+ - Height: 45px
131
+ - Use: Secondary action ("API Docs ↗") outlined on the dark hero
132
+
133
+ ### Inputs
134
+
135
+ **Docs Search**
136
+ - Background: `#ffffff`
137
+ - Text: `#000000`
138
+ - Radius: 6px
139
+ - Font: 13px / 400 / Pretendard Variable
140
+ - Use: Documentation search field (⌘K) on the light docs surface
141
+
142
+ ### Cards & Containers
143
+
144
+ **Feature Card (Marketing)**
145
+ - Background: `#121212`
146
+ - Text: `#ffffff`
147
+ - Radius: 0px
148
+ - Use: Product/feature entry card on the dark canvas (Dashboard, Asleep Docs, Sleep Report Design Guide) — sharp corners, shadowless
149
+
150
+ **Docs Callout**
151
+ - Background: `#ffffff`
152
+ - Border: 1px solid `#118cfd`
153
+ - Radius: 6px
154
+ - Use: Documentation info callout / content card with a blue accent edge
155
+
156
+ ### Badges
157
+
158
+ **Info Tint**
159
+ - Background: `rgba(17,140,253,0.1)`
160
+ - Text: `#118cfd`
161
+ - Radius: 6px
162
+ - Font: 13px / 500 / Pretendard Variable
163
+ - Use: Docs informational tint pill / note highlight
164
+
165
+ ### Tabs
166
+
167
+ **Top Nav**
168
+ - Text (inactive): `#ffffff`
169
+ - Text (active): `#2a75fc`
170
+ - Font: 18px / 400 / Pretendard Variable
171
+ - Height: 65px header
172
+ - Use: Top navigation on the dark `#121212` header ("Products", "Research", "Company", "FAQ")
173
+
174
+ ### Navigation
175
+ - Marketing header: dark `#121212`, 65px tall, white 18px nav items, blue `#2a75fc` accent on the CTA
176
+ - Docs sidebar: light surface, muted slate `#444e57` rows at 14px / weight 450, 8px radius, active row tinted `rgba(255,255,255,0.1)`
177
+
178
+ ---
179
+
180
+ **Verified:** 2026-07-02 (omd:add-reference CREATE — Tier 1 live inspect, 2 surfaces)
181
+ **Tier 1 sources:** https://www.asleep.ai/ | https://docs.asleep.ai/docs/brand-guideline
182
+ **Tier 2 sources:** getdesign.md/asleep — 0 DESIGN.md files (not listed); styles.refero.design/?q=asleep — no Asleep match (only sleep-adjacent brands: Eight Sleep, Sandland Sleep)
183
+ **Conflicts unresolved:** none
184
+
185
+ ## 5. Layout Principles
186
+
187
+ ### Spacing System
188
+ - Base grid: ~4px, with control padding landing at 8px vertical / 10–12px horizontal
189
+ - Scale: 4px, 8px, 10px, 12px, 20px, 32px, 48px, 64px
190
+ - Notable: buttons use a tight 8px 12px padding; nav items use 0 10px; feature-card headings use 0 20px
191
+
192
+ ### Grid & Container
193
+ - Dark full-width hero with a centered 52px Pretendard headline as the anchor
194
+ - Product/feature entries arranged as a row of large equal-height cards (~450px tall) on the dark canvas
195
+ - Sections alternate between the dark `#121212` canvas and lighter content bands
196
+ - Docs surface uses a fixed left navigation sidebar + wide content column (classic ReadMe three-zone layout)
197
+
198
+ ### Whitespace Philosophy
199
+ - **Dark breathing room**: the marketing surface leans on generous negative space filled by the dark canvas, so the single blue CTA and white headline carry the eye.
200
+ - **Flat segmentation**: sections separate by surface tone and thin outlines, not by shadow or heavy borders.
201
+ - **Docs density**: the documentation flips the priority — dense, scannable navigation and compact rows for information-rich API reference.
202
+
203
+ ### Border Radius Scale
204
+ - None (0px): marketing buttons, feature cards — the sharp-cornered signature
205
+ - Small (6px): docs search field, docs callouts
206
+ - Medium (8px): docs sidebar navigation rows
207
+ - Large (20px): occasional rounded media/containers
208
+ - Full (9999px / 100%): circular icons and avatars
209
+
210
+ ## 6. Depth & Elevation
211
+
212
+ | Level | Treatment | Use |
213
+ |-------|-----------|-----|
214
+ | Flat (Level 0) | No shadow | Marketing hero, nav, feature cards — the default |
215
+ | Tone (Level 1) | Dark `#121212` vs lighter band | Section separation without elevation |
216
+ | Subtle (Level 2) | `rgba(0, 0, 0, 0.1) 0px 1px 2px` | Docs controls (search, dropdowns) — a faint lift only |
217
+
218
+ **Shadow Philosophy**: Asleep's marketing surface is a near-shadowless system. Live inspection found `box-shadow: none` across the hero, nav, headings, and feature cards. Depth is communicated by the dark canvas, thin white outlines, and the single blue accent — never by drop shadows or floating card stacks. The only place elevation appears is the docs surface, where ReadMe's chrome adds a barely-there `rgba(0,0,0,0.1)` lift on interactive controls. This flat, sharp-cornered treatment reads as engineered and technical — appropriate for a company selling a precision measurement API.
219
+
220
+ ## 7. Do's and Don'ts
221
+
222
+ ### Do
223
+ - Use the near-black `#121212` canvas with white (`#ffffff`) text for hero and dark sections
224
+ - Reserve electric blue (`#2a75fc`) for the primary CTA — keep it the single "action" color on the marketing surface
225
+ - Use sharp `0px` corners on marketing buttons and cards — the square edge is the signature
226
+ - Keep the marketing surface shadowless — separate with the dark canvas, outlines, and color
227
+ - Set every headline in Pretendard Variable at weight 600, sized 40–52px
228
+ - Use body text at 14px / weight 400 with a 20px line-height for dense hangul legibility
229
+ - On the docs surface, switch to the docs accent blue (`#3a61f2`), light mode, and 6–8px rounding
230
+ - Use muted slate (`#444e57`) for documentation navigation rows
231
+
232
+ ### Don't
233
+ - Use drop shadows for elevation on the marketing surface — it is a flat, shadowless system
234
+ - Round the marketing CTA or cards — corners stay at `0px`, never pills
235
+ - Spread the electric blue (`#2a75fc`) across many elements — it dilutes the single-action signal
236
+ - Mix in a second saturated accent hue on the marketing site — blue is the only one
237
+ - Use a heavy display weight (700/800) — headlines top out at 600
238
+ - Use pure black (`#000000`) for marketing headings — reserve near-black `#222222` / dark-grey `#333333`
239
+ - Carry the marketing dark canvas into the docs — documentation is deliberately light-mode
240
+
241
+ ## 8. Responsive Behavior
242
+
243
+ ### Breakpoints
244
+ | Name | Width | Key Changes |
245
+ |------|-------|-------------|
246
+ | Mobile | <640px | Single column, hero headline compresses, nav collapses to a menu |
247
+ | Tablet | 640–1024px | Moderate padding, 2-up feature cards |
248
+ | Desktop | 1024–1440px | Full layout, centered hero, multi-card feature row; docs sidebar visible |
249
+
250
+ ### Touch Targets
251
+ - Primary CTA at 38px height, secondary outlined button at 45px — comfortably tappable
252
+ - Nav items sit within a tall 65px header for generous hit area
253
+ - Docs search and sidebar rows sized for pointer + touch on the documentation surface
254
+
255
+ ### Collapsing Strategy
256
+ - Hero: 52px Pretendard headline scales down on mobile, weight 600 maintained
257
+ - Feature card row: multi-column → stacked single column
258
+ - Dark/light sections maintain full-width treatment
259
+ - Docs: fixed sidebar collapses to a toggle menu on narrow viewports
260
+
261
+ ### Image Behavior
262
+ - Product/data visualizations sit on the dark canvas with no shadow at any size, consistent with the flat system
263
+ - Marketing cards keep sharp `0px` corners across breakpoints
264
+
265
+ ## 9. Agent Prompt Guide
266
+
267
+ ### Quick Color Reference
268
+ - Primary CTA: Asleep Blue (`#2a75fc`)
269
+ - Dark canvas: Ink Black (`#121212`)
270
+ - Text on dark: Pure White (`#ffffff`)
271
+ - Heading (light section): Heading Grey (`#222222`)
272
+ - Body text: Body Grey (`#333333`)
273
+ - Docs accent: Docs Accent Blue (`#3a61f2`)
274
+ - Docs info tint: Info Blue (`#118cfd`)
275
+ - Docs nav text: Muted Slate (`#444e57`)
276
+ - Max-contrast control text: Pure Black (`#000000`)
277
+
278
+ ### Example Component Prompts
279
+ - "Create a hero on a near-black `#121212` canvas. Headline at 52px Pretendard Variable weight 600, line-height 1.31, white `#ffffff`. Two CTAs: a filled electric-blue button (`#2a75fc` background, white text, `0px` radius, 8px 12px padding, 16px Pretendard) labelled 'API 도입 문의하기', and an outlined button (transparent, 1px solid `#ffffff`, white text, `0px` radius) labelled 'API Docs ↗'. No shadow."
280
+ - "Design a feature card on the dark canvas: `#121212` background, white `#ffffff` text, `0px` radius, no shadow, ~450px tall, heading in Pretendard 600 with a small 'Dashboard ↗' link at the bottom."
281
+ - "Build a light-mode docs layout: white `#ffffff` surface, muted slate `#444e57` sidebar rows at 14px weight 450 with 8px radius, docs accent blue `#3a61f2` on links, and an info callout card with a 1px solid `#118cfd` border at 6px radius."
282
+ - "Create a top nav on a `#121212` header, 65px tall: white 18px Pretendard nav items ('Products', 'Research', 'Company', 'FAQ'), electric-blue `#2a75fc` on the active/CTA item."
283
+
284
+ ### Iteration Guide
285
+ 1. Pretendard Variable for everything; headlines weight 600 at 40–52px, body weight 400 at 14px
286
+ 2. Electric blue (`#2a75fc`) is the single marketing action color — don't spread it
287
+ 3. Marketing corners stay at `0px`; docs controls use 6–8px
288
+ 4. No shadows on the marketing surface — separate with the dark canvas and outlines
289
+ 5. Text on dark is `#ffffff`; headings on light are `#222222`, body is `#333333`
290
+ 6. Docs surface flips to light mode with accent `#3a61f2`, info tint `#118cfd`, slate nav `#444e57`
291
+ 7. Keep the atmosphere quiet and technical — the data glows, the chrome recedes
292
+
293
+ ---
294
+
295
+ ## 10. Voice & Tone
296
+
297
+ Asleep's voice is **calm, credible, and quietly ambitious** — a research team that turned a lab breakthrough into an API and talks about it with evidence, not hype. The hero line "수면으로의 영역 확장, 어렵지 않습니다" ("Expanding into sleep is not difficult") sets the register: reassuring and enabling, framed around the partner's ease rather than Asleep's cleverness. Claims are backed with numbers ("세계에서 가장 정확한 수면 AI 모델", 2,201,145 training instances, 74 patent applications, 22 papers, KFDA Class-2 certification) rather than adjectives. The tone treats the reader — usually a developer or product team integrating sleep measurement — as a capable peer.
298
+
299
+ | Context | Tone |
300
+ |---|---|
301
+ | Hero headline | Enabling, partner-focused. "수면으로의 영역 확장, 어렵지 않습니다." Calm, not hype. |
302
+ | Product / API descriptions | Precise and evidence-led. States the capability and the number behind it. |
303
+ | CTAs | Direct and low-pressure. "API 도입 문의하기", "API Docs ↗", "Dashboard ↗". |
304
+ | Docs / brand guideline | Instructional and exact. "서비스에 Asleep 브랜드를 활용하는 방법" — clear rules, no fluff. |
305
+ | Company / mission | Mission-framed and humble about the science. "잘 자는 세상은 잠 자체를 잘 아는 것에서부터 시작한다." |
306
+
307
+ **Voice samples (verbatim from live surfaces):**
308
+ - "수면으로의 영역 확장, 어렵지 않습니다" — hero headline, homepage. *(verified live 2026-07-02)*
309
+ - "세계에서 가장 정확한 수면 AI 모델을 사용하여" — product section, homepage. *(verified live 2026-07-02)*
310
+ - "서비스에 Asleep 브랜드를 활용하는 방법" — brand guideline heading, docs.asleep.ai. *(verified live 2026-07-02)*
311
+
312
+ **Forbidden register**: fear-based health scare marketing, undefined medical jargon left unexplained, exclamation-heavy hype, and unquantified superlatives ("revolutionary", "magical") — accuracy claims must carry a number.
313
+
314
+ ## 11. Brand Narrative
315
+
316
+ Asleep (에이슬립) was founded in **2020** as a spin-out of a **KAIST** research lab, led by CEO **이동헌 (Lee Dong-heon)** — a KAIST AI graduate — with CTO **홍준기 (Hong Jun-ki)** and a founding group of KAIST electrical-engineering researchers. The company describes itself as "잠이 부족한 세상을 기술로 혁신하고 있는 슬립테크 스타트업" (a sleep-tech startup innovating a sleep-deprived world through technology), and its founding conviction was blunt about the science: as the CEO put it, "호흡음이 실제로 가장 정확할 거라는 근거는 없었지만... 확신을 가지고 진행시켰습니다" ("there was no initial evidence that breathing sounds would be the most accurate signal — but we proceeded with conviction"). That bet — measuring sleep stages from breathing sound alone, contactless, with no wearable — became **AsleepTrack**, the API and SDK the company now licenses to partners.
317
+
318
+ The founding pain point was access: a proper polysomnography sleep study historically cost around a million won and required a clinic. The CEO frames the mission around removing that barrier — "누구나 필요하다면 비용걱정 없이 검사를 받았으면 합니다" ("anyone who needs it should be able to get tested without worrying about cost"). Asleep's belief statement makes the philosophy explicit: "잘 자는 세상은 잠 자체를 잘 아는 것에서부터 시작한다" ("a world that sleeps well begins with understanding sleep itself"). Rather than sell a consumer device, Asleep chose to be the measurement layer other products build on — smart home, health/fitness, wellness, and finance partners integrate the sleep model instead of building their own.
319
+
320
+ What Asleep refuses, visible in its design: the fear-driven, over-decorated aesthetic of much health marketing, and the intimidating chrome of clinical software. What it embraces: a dark, quiet, evidence-first surface where the data visualization is the hero and a single blue CTA points to the one next step; numbers instead of adjectives; and a documentation experience precise enough for a developer to integrate a medically-certified model in an afternoon. As the CTO frames the posture: "혁신을 주도하는 스타트업은 바람을 직접 일으킬 줄도 알아야 합니다" ("a startup that leads innovation has to know how to create the wind itself").
321
+
322
+ ## 12. Principles
323
+
324
+ 1. **Evidence over adjectives.** Asleep sells accuracy, so it shows accuracy. *UI implication:* pair every capability claim with the number behind it (accuracy, training instances, patents, certification) rather than superlatives.
325
+ 2. **The data is the hero; the chrome recedes.** *UI implication:* keep the canvas dark and quiet so sleep visualizations glow; use one blue accent and no decorative color.
326
+ 3. **One action, one color.** Electric blue (`#2a75fc`) means "do this next." *UI implication:* reserve the saturated blue for the single primary CTA so the next step is never ambiguous.
327
+ 4. **Engineered, not soft.** A precision measurement API should look precise. *UI implication:* sharp `0px` corners and a shadowless flat surface on the marketing site; save the softer rounding for the docs.
328
+ 5. **Be the layer, not the app.** Asleep succeeds when partners integrate easily. *UI implication:* the developer documentation is a first-class design surface — legible, exact, and fast to navigate.
329
+ 6. **Access is the mission.** Sleep measurement should not require a clinic. *UI implication:* copy and flows emphasize ease of adoption ("어렵지 않습니다") over technical gatekeeping.
330
+
331
+ ## 13. Personas
332
+
333
+ *Personas below are fictional archetypes informed by publicly observable Asleep customer segments (developers and product teams integrating sleep measurement, smart-home and wellness partners), not individual people.*
334
+
335
+ **정민석, 33, 서울.** A mobile engineer at a smart-home company adding sleep tracking to a bedside device. Values that AsleepTrack is contactless and API-first, so he can ship a sleep feature without building an ML pipeline. Judges the product by how fast he can get a first measurement working from the docs.
336
+
337
+ **Hannah Cho, 38, Seoul.** A product manager at a wellness app evaluating sleep vendors. Cares about the KFDA Class-2 certification and the published accuracy numbers because her app makes health-adjacent claims. Trusts the evidence-first tone over competitors who lead with lifestyle imagery.
338
+
339
+ **이서연, 29, 대전.** A founder building a fitness-recovery product who needs sleep-stage data but has no hardware budget. Chose Asleep because measuring from breathing sound means her users need nothing but a phone by the bed. Reads the brand guideline to place the partnership logo correctly.
340
+
341
+ ## 14. States
342
+
343
+ | State | Treatment |
344
+ |---|---|
345
+ | **Empty (no sleep sessions yet)** | Dark `#121212` canvas. Single white (`#ffffff`) line explaining no measurements yet, with one blue `#2a75fc` CTA to start a first session. No decorative illustration. |
346
+ | **Empty (dashboard, no data)** | Muted line on the surface tone; a clear path to create an API key or run a sample session. Honest and calm. |
347
+ | **Loading (measurement / analysis)** | Flat progress indicator consistent with the shadowless system; previous values stay visible during in-place refresh. |
348
+ | **Loading (page / docs)** | Skeleton blocks at final dimensions, no shadow shimmer — a flat pulse matching the flat surface. |
349
+ | **Error (API call failed)** | Inline message stating the error type and a plain next step; on the docs surface, the error code is shown verbatim with a link to the Error Codes reference. No generic "문제가 발생했습니다" alone. |
350
+ | **Error (form validation)** | Field-level message below the input describing what is valid, not just "필수". |
351
+ | **Success (session complete / key created)** | Brief inline confirmation in a calm tone; the resulting data or key is surfaced immediately below. No celebratory emoji. |
352
+ | **Skeleton** | Flat blocks at final dimensions on the surface, sharp corners on the marketing side and 6px on the docs side. |
353
+ | **Disabled** | Reduced-opacity control; the blue action fades rather than turning grey, preserving the single-action read. |
354
+
355
+ ## 15. Motion & Easing
356
+
357
+ **Durations**:
358
+
359
+ | Token | Value | Use |
360
+ |---|---|---|
361
+ | `motion-fast` | 120ms | Hover, focus, button press |
362
+ | `motion-standard` | 200ms | Card/section reveal, dropdown, docs sidebar expand |
363
+ | `motion-slow` | 320ms | Page-level transitions, hero reveal |
364
+
365
+ **Easings**:
366
+
367
+ | Token | Curve | Use |
368
+ |---|---|---|
369
+ | `ease-enter` | `cubic-bezier(0.2, 0.6, 0.25, 1)` | Arriving — sections, cards, panels |
370
+ | `ease-exit` | `cubic-bezier(0.4, 0.0, 1, 1)` | Dismissals |
371
+ | `ease-standard` | `cubic-bezier(0.25, 0.1, 0.25, 1)` | Two-way transitions |
372
+
373
+ **Motion rules**: Motion is functional and restrained — consistent with the flat, evidence-first aesthetic. Sections and data cards fade in from slightly below at `motion-standard / ease-enter`; the primary blue CTA responds to press with a subtle opacity/scale shift. No bounce or spring — a precision measurement product signals steadiness, not playfulness. Under `prefers-reduced-motion: reduce`, all transitions collapse to instant and the product remains fully functional.
374
+
375
+ <!--
376
+ OmD v0.1 Sources — Philosophy Layer (sections 10–15)
377
+
378
+ Tier 1 live inspect (2026-07-02) via playwright getComputedStyle on 2 brand-owned surfaces:
379
+ - https://www.asleep.ai/ (marketing homepage) — bg rgb(18,18,18) #121212; hero H1 "수면으로의 영역 확장, 어렵지 않습니다" Pretendard 52px/600 white; primary CTA bg rgb(42,117,252) #2a75fc radius 0px padding 8px 12px; outlined button 1px solid #ffffff radius 0px; nav 18px/400 white on 65px header; body Pretendard 14px/400 rgb(51,51,51) #333333; box-shadow none across hero/nav/cards; feature cards radius 0px.
380
+ - https://docs.asleep.ai/docs/brand-guideline (ReadMe docs) — accent rgb(58,97,242) #3a61f2; sidebar nav rgb(68,78,87) #444e57 14px/450 radius 8px; search bg #ffffff fg #000000 radius 6px; info tint rgb(17,140,253) #118cfd; brand-guideline copy "서비스에 Asleep 브랜드를 활용하는 방법".
381
+
382
+ Token-level claims (§1-9) are sourced from this live inspection.
383
+
384
+ Voice samples (§10) are verbatim from the live homepage (hero H1, product section) and the
385
+ docs brand-guideline heading.
386
+
387
+ Brand narrative (§11): founded 2020 as a KAIST spin-out; CEO 이동헌 (Lee Dong-heon), CTO
388
+ 홍준기 (Hong Jun-ki); product AsleepTrack (contactless breathing-sound sleep AI). Mission,
389
+ belief, and executive quotes are from the company page (https://www.asleep.ai/company,
390
+ WebFetch 2026-07-02) and corroborated by public reporting (Forbes Korea, THE VC, Daum/news
391
+ "KAIST 연구실서 글로벌 슬립테크 강자로"). Credentials (2,201,145 training instances, 74
392
+ patent applications, 22 papers, KFDA Class-2 certification, CES 2025 Innovation Award,
393
+ Forbes 30-under-30) are stated on Asleep's own surfaces and public reporting.
394
+
395
+ Personas (§13) are fictional archetypes informed by publicly observable Asleep customer
396
+ segments (developers/product teams integrating sleep measurement, smart-home/wellness
397
+ partners). Names are illustrative; they do not refer to real people.
398
+
399
+ Interpretive claims (e.g., "the data is the hero; the chrome recedes", "engineered, not
400
+ soft") are editorial readings connecting Asleep's observed design to its positioning, not
401
+ directly sourced Asleep statements.
402
+ -->