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,422 @@
1
+ ---
2
+ id: stayfolio
3
+ name: Stayfolio
4
+ display_name_kr: 스테이폴리오
5
+ country: KR
6
+ category: consumer-tech
7
+ homepage: "https://www.stayfolio.com/"
8
+ primary_color: "#1a1a1a"
9
+ logo:
10
+ type: favicon
11
+ slug: "https://www.google.com/s2/favicons?domain=stayfolio.com&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: "Editorial monochrome stay-curation platform. Ink ladder near-black (#181818 body / #171719 headings / #1a1a1a nav-logo / #000000 solid CTA). Single saturated accent = promo blue #017bc6 on marketing banners only. Near-shadowless; sharp 0px photo cards; pill controls."
19
+ colors:
20
+ ink: "#181818"
21
+ ink-heading: "#171719"
22
+ ink-brand: "#1a1a1a"
23
+ black: "#000000"
24
+ stay-title: "#333333"
25
+ muted: "#6b6b6e"
26
+ faint: "#979799"
27
+ disabled: "#999999"
28
+ canvas: "#ffffff"
29
+ surface: "#f2f2f2"
30
+ surface-alt: "#f5f5f5"
31
+ hairline: "#dfe0e2"
32
+ hairline-alt: "#cccccc"
33
+ promo-blue: "#017bc6"
34
+ on-dark: "#ffffff"
35
+ typography:
36
+ family: { sans: "Pretendard JP Variable", fallback: "Pretendard" }
37
+ nav: { size: 16, weight: 600, tracking: 0, use: "Uppercase Latin top-nav labels (FIND STAY, JOURNAL, PRE-ORDER)" }
38
+ section: { size: 28, weight: 600, lineHeight: 1.29, tracking: -0.56, use: "Editorial section headline (H2)" }
39
+ stay-title: { size: 20, weight: 600, lineHeight: 1.40, tracking: -0.2, use: "Stay / property name (H3)" }
40
+ body: { size: 14, weight: 400, lineHeight: 1.50, use: "Body copy, captions, UI text" }
41
+ spacing: { xs: 4, sm: 8, base: 16, lg: 20, xl: 24, xxl: 40, section: 64 }
42
+ rounded: { none: 0, button: 20, pill: 100, full: 9999 }
43
+ shadow:
44
+ none: "none"
45
+ soft: "rgba(0,0,0,0.08) 0px 4px 8px"
46
+ components:
47
+ cta-solid: { type: button, bg: "#000000", fg: "#ffffff", radius: "20px", padding: "8px 16px", height: "40px", font: "16px / 500", use: "Solid primary CTA (지도 / Map toggle on FIND STAY)" }
48
+ nav-tab: { type: tab, fg: "#1a1a1a", font: "16px / 600", active: "text #1a1a1a + 2px bottom border #1a1a1a", use: "Uppercase Latin top-nav item (FIND STAY, JOURNAL)" }
49
+ region-toggle: { type: tab, bg: "#ffffff", fg: "#181818", border: "1px solid #dfe0e2", radius: "100px", height: "44px", shadow: "rgba(0,0,0,0.08) 0px 4px 8px", active: "filled white pill", use: "국내/해외 segmented region toggle" }
50
+ search-pill: { type: input, bg: "#ffffff", fg: "#181818", border: "1px solid #dfe0e2", radius: "100px", height: "44px", font: "14px / 400", use: "Hero search / filter pill (어디로 떠날까요?)" }
51
+ stay-card: { type: card, bg: "#ffffff", fg: "#333333", radius: "0px", use: "Editorial stay card — full-bleed photo, sharp 0px corners, no border/shadow" }
52
+ promo-banner: { type: card, bg: "#017bc6", fg: "#ffffff", radius: "0px", use: "Promotional banner / tag — sole saturated color accent" }
53
+ lang-item: { type: listItem, fg: "#999999", font: "14px / 400", use: "Language switch item (한국어 / English), inactive faint grey" }
54
+ components_harvested: true
55
+ ---
56
+
57
+ # Design System Inspiration of Stayfolio
58
+
59
+ ## 1. Visual Theme & Atmosphere
60
+
61
+ Stayfolio (스테이폴리오) is Korea's curated boutique-stay platform, and its homepage behaves less like a booking engine than like a printed travel monograph rendered on screen. The canvas is pure white (`#ffffff`), the photography is full-bleed and edge-to-edge, and nearly all chrome recedes so the imagery of each stay carries the page. Text sits in a refined near-black ink (`#181818`) — never a hard pure-black for reading — which lends the layout a quiet, editorial gravity. There is no chrome-heavy "app" feeling here; the design trusts the space of each property and the restraint of a magazine art director.
62
+
63
+ The typographic personality is Korean-premium and understated. The system runs on **Pretendard JP Variable** across the entire interface, and the hierarchy is carried almost entirely by weight and size rather than color: editorial section headlines (H2) sit at 28px / weight 600 with tight `-0.56px` tracking (`#171719`), individual stay names (H3) drop to 20px / 600 with `-0.2px` tracking in a softer graphite (`#333333`), and body/UI text settles at a calm 14px / weight 400. Latin navigation labels — `FIND STAY`, `PROMOTION`, `JOURNAL`, `PRE-ORDER` — are set in uppercase at 16px / 600 in the brand ink (`#1a1a1a`), reading like the section dividers of a print catalogue.
64
+
65
+ What defines Stayfolio is its monochrome discipline. The palette is an *ink ladder* of near-blacks (`#181818` body, `#171719` headings, `#1a1a1a` nav/logotype, pure `#000000` for the one solid CTA — the "지도" map toggle at 20px radius) layered over a cool paper-grey surface system (`#f2f2f2`, `#f5f5f5`) and hairline dividers (`#dfe0e2`, `#cccccc`). Depth is almost entirely flat: `box-shadow: none` across headings, nav, and stay cards, with a single soft lift (`rgba(0,0,0,0.08) 0px 4px 8px`) reserved for the floating region-toggle pill. The one saturated color in the entire system is a promotional blue (`#017bc6`) that appears only on marketing banners and tags — everywhere else the brand is black, white, and photograph. Stay cards themselves use sharp `0px` corners so the image reads as a framed plate, while interactive controls (region toggle, search field) are full `100px` pills.
66
+
67
+ **Key Characteristics:**
68
+ - Full-bleed editorial photography over a pure white (`#ffffff`) canvas — imagery is the interface
69
+ - Monochrome *ink ladder*: `#181818` body, `#171719` headings, `#1a1a1a` nav, `#000000` solid CTA
70
+ - Single typeface (Pretendard JP Variable) doing all work via weight/size, not color
71
+ - Uppercase Latin nav labels at 16px / 600 (`FIND STAY`, `JOURNAL`) — print-catalogue rhythm
72
+ - Near-shadowless: `box-shadow: none` everywhere except the floating region pill
73
+ - Sharp `0px` photo cards vs. full `100px` pill controls — a deliberate geometric contrast
74
+ - One saturated accent only — promo blue (`#017bc6`) confined to marketing banners/tags
75
+ - Cool paper-grey surfaces (`#f2f2f2`, `#f5f5f5`) + hairlines (`#dfe0e2`, `#cccccc`) for separation
76
+ - Graphite muted ladder (`#6b6b6e` → `#979799` → `#999999`) for secondary/tertiary text
77
+
78
+ ## 2. Color Palette & Roles
79
+
80
+ ### Ink (Near-Black Ladder)
81
+ - **Body Ink** (`#181818`): The dominant text color across the entire site — captions, body copy, UI labels. A refined near-black, never pure black, giving reading text an editorial softness.
82
+ - **Heading Ink** (`#171719`): Section headlines (H2). A fractionally cooler near-black for the largest editorial titles.
83
+ - **Brand Ink** (`#1a1a1a`): The logotype and uppercase Latin nav labels. This is the brand's signature black — the primary_color.
84
+ - **Pure Black** (`#000000`): Reserved for the single solid CTA — the "지도" (Map) toggle — and maximum-contrast marks.
85
+ - **Stay Title Graphite** (`#333333`): Individual stay/property names (H3). A softer graphite that sits below headings in the hierarchy.
86
+
87
+ ### Muted & Tertiary
88
+ - **Muted Slate** (`#6b6b6e`): Secondary text, metadata, supporting captions.
89
+ - **Faint Grey** (`#979799`): Tertiary labels and low-emphasis text.
90
+ - **Disabled Grey** (`#999999`): Inactive controls such as the unselected language switch (한국어 / English).
91
+
92
+ ### Surface & Neutral
93
+ - **Pure White** (`#ffffff`): Page background, card surfaces, text on dark/photo overlays.
94
+ - **Paper Grey** (`#f2f2f2`): The primary tinted surface for segmented sections and placeholder blocks.
95
+ - **Paper Grey Alt** (`#f5f5f5`): A secondary near-white surface for alternating bands.
96
+ - **Hairline** (`#dfe0e2`): Thin borders on the region toggle and search pills — the main separation device in a shadowless system.
97
+ - **Hairline Alt** (`#cccccc`): Lighter divider grey for secondary rules.
98
+
99
+ ### Accent
100
+ - **Promo Blue** (`#017bc6`): The only saturated color in the system, confined to promotional banners and tags. It is intentionally *not* the brand color — the brand is monochrome; the blue is a marketing signal.
101
+
102
+ ## 3. Typography Rules
103
+
104
+ ### Font Family
105
+ - **Primary**: `Pretendard JP Variable` (with `Pretendard` and system fallbacks) — a single variable family carries the entire interface, Korean and Latin alike.
106
+
107
+ ### Hierarchy
108
+
109
+ | Role | Font | Size | Weight | Line Height | Letter Spacing | Notes |
110
+ |------|------|------|--------|-------------|----------------|-------|
111
+ | Nav Label | Pretendard JP | 16px (1.00rem) | 600 | — | normal | Uppercase Latin (FIND STAY, JOURNAL, PRE-ORDER) |
112
+ | Section Heading (H2) | Pretendard JP | 28px (1.75rem) | 600 | 1.29 (36px) | -0.56px | Editorial section titles |
113
+ | Stay Title (H3) | Pretendard JP | 20px (1.25rem) | 600 | 1.40 (28px) | -0.2px | Stay / property names |
114
+ | Body | Pretendard JP | 14px (0.88rem) | 400 | 1.50 | normal | Body copy, captions, UI text |
115
+
116
+ ### Principles
117
+ - **One family, weight-led hierarchy**: Pretendard JP Variable does every job. Hierarchy comes from size + weight (600 for titles/nav, 400 for body), never from switching typefaces.
118
+ - **Tight tracking scales with size**: -0.56px at 28px headings, -0.2px at 20px stay titles, normal at body. Larger editorial type compresses; reading text stays open.
119
+ - **Uppercase Latin as structure**: The uppercase 16px / 600 Latin nav labels function like the running heads of a print magazine, anchoring the editorial tone.
120
+ - **Hangul-first reading**: Body sits at a deliberate 14px / 1.5 line-height, generous for dense hangul legibility inside long editorial stay descriptions.
121
+
122
+ ## 4. Component Stylings
123
+
124
+ ### Buttons
125
+
126
+ **Solid CTA (지도 / Map)**
127
+ - Background: `#000000`
128
+ - Text: `#ffffff`
129
+ - Radius: 20px
130
+ - Padding: 8px 16px
131
+ - Height: 40px
132
+ - Font: 16px weight 500 Pretendard JP
133
+ - Use: The system's single solid primary action (map toggle on FIND STAY)
134
+
135
+ **Text CTA (FIND STAY)**
136
+ - Text: `#1a1a1a`
137
+ - Font: 16px weight 600 Pretendard JP
138
+ - Use: Uppercase Latin text actions in the nav; no fill, no border — type only
139
+
140
+ ### Inputs & Forms
141
+
142
+ **Search / Filter Pill**
143
+ - Background: `#ffffff`
144
+ - Text: `#181818`
145
+ - Border: 1px solid `#dfe0e2`
146
+ - Radius: 100px
147
+ - Height: 44px
148
+ - Font: 14px weight 400 Pretendard JP
149
+ - Use: Hero search field ("어디로 떠날까요?") and date/guest filter pills
150
+
151
+ ### Tabs & Toggles
152
+
153
+ **Region Toggle (국내 / 해외)**
154
+ - Background: `#ffffff`
155
+ - Text: `#181818`
156
+ - Border: 1px solid `#dfe0e2`
157
+ - Radius: 100px
158
+ - Height: 44px
159
+ - Shadow: `rgba(0,0,0,0.08) 0px 4px 8px`
160
+ - Active: filled white pill segment
161
+ - Use: Domestic / overseas segmented region toggle — the only element carrying a soft shadow
162
+
163
+ **Nav Tabs**
164
+ - Text: `#1a1a1a`
165
+ - Font: 16px weight 600 Pretendard JP
166
+ - Active: text `#1a1a1a` with a 2px bottom border `#1a1a1a`
167
+ - Use: Top navigation (FIND STAY, PROMOTION, JOURNAL, PRE-ORDER)
168
+
169
+ ### Cards & Containers
170
+
171
+ **Editorial Stay Card**
172
+ - Background: `#ffffff`
173
+ - Text: `#333333`
174
+ - Radius: 0px
175
+ - Use: The workhorse — a full-bleed photograph with the stay name (`#333333`, 20px) beneath, no border, no shadow, sharp corners so the image reads as a framed plate
176
+
177
+ **Promotional Banner**
178
+ - Background: `#017bc6`
179
+ - Text: `#ffffff`
180
+ - Radius: 0px
181
+ - Use: Marketing banners and promo tags — the sole saturated-color surface in the system
182
+
183
+ ### List Items
184
+
185
+ **Language Switch Item**
186
+ - Text: `#999999`
187
+ - Font: 14px weight 400 Pretendard JP
188
+ - Use: Language switch (한국어 / English); inactive items sit in faint grey, the active locale in ink
189
+
190
+ ---
191
+
192
+ **Verified:** 2026-07-02 (omd:add-reference CREATE — Tier 1 live inspect)
193
+ **Tier 1 sources:** https://www.stayfolio.com/, https://www.stayfolio.com/findstay, https://brunch.co.kr/@stayfolio
194
+ **Tier 2 sources:** getdesign.md/stayfolio (0 DESIGN.md files — not covered); styles.refero.design/?q=stayfolio (no Stayfolio-specific style; returns default gallery)
195
+ **Conflicts unresolved:** none
196
+
197
+ ## 5. Layout Principles
198
+
199
+ ### Spacing System
200
+ - Base unit: ~8px
201
+ - Scale: 4px, 8px, 16px, 20px, 24px, 40px, 64px
202
+ - Notable: Solid CTA padding lands at 8px 16px; the airy vertical rhythm between full-bleed photo sections is the dominant spacing signal
203
+
204
+ ### Grid & Container
205
+ - Full-bleed photography sections stacked vertically, each a "plate" in an editorial layout
206
+ - Stay cards arranged in responsive multi-column grids beneath section headlines
207
+ - Floating region toggle + search pills sit over the hero as the only persistent interactive chrome
208
+ - Content alternates white (`#ffffff`) and paper-grey (`#f2f2f2`) bands for gentle segmentation
209
+
210
+ ### Whitespace Philosophy
211
+ - **Imagery over density**: The layout gives each stay generous room; whitespace frames photography like a gallery wall.
212
+ - **Flat segmentation**: Sections separate by background tint (`#f2f2f2` vs `#ffffff`) and hairlines (`#dfe0e2`), never by heavy borders or shadow stacks.
213
+ - **Editorial rhythm**: Uppercase Latin section labels + tight-tracked H2 headlines create a magazine-like cadence down the page.
214
+
215
+ ### Border Radius Scale
216
+ - None (0px): Stay cards, photo plates, promo banners — sharp editorial framing
217
+ - Button (20px): The solid map CTA
218
+ - Pill (100px): Region toggle, search/filter fields
219
+ - Full (9999px): Circular icon buttons
220
+
221
+ ## 6. Depth & Elevation
222
+
223
+ | Level | Treatment | Use |
224
+ |-------|-----------|-----|
225
+ | Flat (Level 0) | No shadow | Page background, stay cards, headings, most surfaces |
226
+ | Tint (Level 1) | `#f2f2f2` background shift | Section / card separation without elevation |
227
+ | Hairline (Level 2) | `1px solid #dfe0e2` border | Pill controls, dividers |
228
+ | Soft lift (Level 3) | `rgba(0,0,0,0.08) 0px 4px 8px` | The floating region toggle pill only |
229
+
230
+ **Shadow Philosophy**: Stayfolio is a near-shadowless, flat editorial system. Live inspection returned `box-shadow: none` across headings, nav, and stay cards; the only measured elevation is a single soft `rgba(0,0,0,0.08) 0px 4px 8px` on the floating region-toggle pill so it reads as hovering over the hero photograph. Depth otherwise comes from the photography itself and from flat paper-grey (`#f2f2f2`) surfaces divided by thin `#dfe0e2` hairlines. This restraint keeps the focus on imagery and gives the product the calm of a printed catalogue rather than a card-stacked app.
231
+
232
+ ## 7. Do's and Don'ts
233
+
234
+ ### Do
235
+ - Let full-bleed photography carry the page — chrome should recede
236
+ - Use Pretendard JP Variable for everything; drive hierarchy with weight (600) and size, not color
237
+ - Keep text in the near-black ink ladder (`#181818` body, `#171719` headings, `#1a1a1a` nav)
238
+ - Reserve pure black (`#000000`) for the single solid CTA
239
+ - Use sharp `0px` corners on photo/stay cards so images read as framed plates
240
+ - Use full `100px` pills for interactive controls (region toggle, search fields)
241
+ - Separate sections with paper-grey tint (`#f2f2f2`) and `#dfe0e2` hairlines, not shadows
242
+ - Set uppercase Latin nav labels at 16px / 600 for the print-catalogue rhythm
243
+
244
+ ### Don't
245
+ - Spread the promo blue (`#017bc6`) beyond marketing banners — the brand is monochrome
246
+ - Use drop shadows for elevation — the system is flat except the one floating pill
247
+ - Round the photo/stay cards — sharp `0px` framing is the editorial signature
248
+ - Introduce a second typeface — Pretendard JP does every job
249
+ - Use pure black (`#000000`) for body text — reserve the softer `#181818`
250
+ - Add a second saturated accent color — black, white, and photograph is the whole palette
251
+ - Set headlines in a light weight — editorial titles are weight 600
252
+ - Use positive letter-spacing on headlines — Stayfolio tracks tight (-0.56px at 28px)
253
+
254
+ ## 8. Responsive Behavior
255
+
256
+ ### Breakpoints
257
+ | Name | Width | Key Changes |
258
+ |------|-------|-------------|
259
+ | Mobile | <640px | Single column, stay cards stack, floating pills collapse |
260
+ | Tablet | 640-1024px | 2-column stay grids, moderate padding |
261
+ | Desktop | 1024-1440px | Full multi-column editorial grids, full-bleed hero |
262
+
263
+ ### Touch Targets
264
+ - Region toggle and search pills at 44px height — comfortably tappable
265
+ - Solid map CTA at 40px height with 8px 16px padding
266
+ - Nav labels spaced for touch within the header
267
+
268
+ ### Collapsing Strategy
269
+ - Hero: full-bleed photograph maintained; overlaid pills stack/collapse on mobile
270
+ - Stay grids: multi-column → 2-up → single stacked column
271
+ - Section headlines: 28px H2 compresses on mobile, weight 600 maintained
272
+ - White / paper-grey alternating bands keep full-width treatment
273
+
274
+ ### Image Behavior
275
+ - Stay photography stays full-bleed and sharp-cornered (`0px`) at every breakpoint
276
+ - Cards carry no shadow at any size, consistent with the flat system
277
+ - Aspect ratios are preserved so each plate keeps its editorial framing
278
+
279
+ ## 9. Agent Prompt Guide
280
+
281
+ ### Quick Color Reference
282
+ - Body text: Body Ink (`#181818`)
283
+ - Headings: Heading Ink (`#171719`)
284
+ - Nav / logotype: Brand Ink (`#1a1a1a`)
285
+ - Solid CTA: Pure Black (`#000000`)
286
+ - Stay titles: Graphite (`#333333`)
287
+ - Secondary text: Muted Slate (`#6b6b6e`)
288
+ - Tertiary / disabled: Faint Grey (`#979799`), Disabled Grey (`#999999`)
289
+ - Background: Pure White (`#ffffff`)
290
+ - Tinted surface: Paper Grey (`#f2f2f2`), Alt (`#f5f5f5`)
291
+ - Hairline: `#dfe0e2`, Alt `#cccccc`
292
+ - Promo accent: Promo Blue (`#017bc6`) — banners only
293
+
294
+ ### Example Component Prompts
295
+ - "Create a full-bleed hero: edge-to-edge photograph, no chrome. Overlay a region toggle pill — white `#ffffff` background, 1px solid `#dfe0e2` border, 100px radius, 44px height, soft `rgba(0,0,0,0.08) 0px 4px 8px` shadow. Uppercase Latin nav labels at 16px weight 600, `#1a1a1a`."
296
+ - "Design an editorial stay card: white `#ffffff` background, full-bleed photo, sharp `0px` corners, no border, no shadow. Stay name below in Pretendard JP 20px weight 600, `#333333`, -0.2px tracking."
297
+ - "Build a solid CTA: pure black `#000000` background, white text, 20px radius, 8px 16px padding, 16px weight 500."
298
+ - "Create a section band: paper-grey `#f2f2f2` background. Section headline in Pretendard JP 28px weight 600, `#171719`, -0.56px tracking. Cards inside are white `#ffffff` with sharp `0px` corners."
299
+
300
+ ### Iteration Guide
301
+ 1. Photography leads — keep chrome minimal and let images fill the frame
302
+ 2. One typeface (Pretendard JP Variable); hierarchy via weight 600 vs 400 and size
303
+ 3. Stay in the ink ladder: `#181818` body, `#171719` headings, `#1a1a1a` nav, `#000000` solid CTA
304
+ 4. No shadows except the one floating region pill; separate with `#f2f2f2` tint + `#dfe0e2` hairlines
305
+ 5. Sharp `0px` corners on cards/photos; full `100px` pills on controls
306
+ 6. Promo blue (`#017bc6`) only on marketing banners — never structural
307
+ 7. Tight negative tracking on headlines, normal on body
308
+
309
+ ---
310
+
311
+ ## 10. Voice & Tone
312
+
313
+ Stayfolio's voice is **quiet, sensory, and curatorial** — the register of a well-read travel editor rather than a booking site. Copy leans into mood and place, inviting rather than selling: the homepage headline "비가 오면 짙어지는 산내음, 숲속 스테이로 떠나요" ("When it rains the scent of the mountains deepens — set out for a forest stay") is descriptive and atmospheric, treating the reader as someone seeking meaning in a stay, not a transaction. Section labels stay in restrained uppercase Latin (`FIND STAY`, `JOURNAL`, `PRE-ORDER`), signalling an editorial, almost printed sensibility.
314
+
315
+ | Context | Tone |
316
+ |---|---|
317
+ | Hero / editorial headlines | Sensory, evocative. "비가 오면 짙어지는 산내음, 숲속 스테이로 떠나요." Mood before mechanics. |
318
+ | Stay names | Left as the property's own name (엠버퓨어힐, 빌라 마르디, 취호가) — the curator steps back. |
319
+ | Nav labels | Minimal uppercase Latin: FIND STAY, PROMOTION, JOURNAL, PRE-ORDER. |
320
+ | Journal / magazine | Long-form editorial voice — essays about places and staying, not listings. |
321
+ | CTAs | Calm and low-pressure ("지도", "해외 스테이 지금 보러 가기"). |
322
+
323
+ **Voice samples (verbatim from live homepage):**
324
+ - "비가 오면 짙어지는 산내음, 숲속 스테이로 떠나요" — hero editorial headline (sensory, place-led). *(verified live 2026-07-02)*
325
+ - "해외 스테이 지금 보러 가기" — invitation-style CTA (calm, no urgency). *(verified live 2026-07-02)*
326
+ - "어디로 떠날까요?" — search field prompt (conversational, warm). *(verified live 2026-07-02)*
327
+
328
+ **Forbidden register**: hard-sell urgency, discount-shouting, exclamation-heavy hype, generic OTA phrasing ("best price guaranteed"). Stayfolio's authority comes from restraint and taste.
329
+
330
+ ## 11. Brand Narrative
331
+
332
+ Stayfolio (스테이폴리오) is a Korean curation platform for design-forward, independent stays — architecturally and aesthetically distinctive places to sleep that fall outside the standard hotel and OTA channels. Rather than aggregating every available room, Stayfolio's premise is editorial selection: a curated *folio* of stays worth traveling for, presented with the care of a magazine. The name itself — *stay* + *folio* — frames the product as a bound collection of considered places.
333
+
334
+ The site's information architecture makes this ethos explicit. Alongside `FIND STAY` (the curated inventory of domestic and overseas properties), the navigation carries `JOURNAL` (a long-form magazine about places and the culture of staying) and `PRE-ORDER` (physical publications), positioning the brand as a media property as much as a booking service. The homepage leads with atmosphere — full-bleed photography and sensory headlines — not price or availability.
335
+
336
+ What Stayfolio refuses, visible in its design, is the dense, promotion-cluttered chrome of mainstream travel platforms: no stacked discount badges, no urgency banners, no card-shadow-heavy "app" surface. What it embraces is a monochrome, photography-first, editorial interface — black, white, and image — where the single saturated blue appears only when a promotion genuinely needs to be flagged. The design *is* the curation: restraint signals taste, and taste is the product.
337
+
338
+ ## 12. Principles
339
+
340
+ 1. **Curation over aggregation.** Stayfolio shows a selected folio, not everything. *UI implication:* present each stay as a considered editorial plate with generous space; never bury it in a dense results grid with promotional noise.
341
+ 2. **Photography is the interface.** The image carries the decision. *UI implication:* full-bleed, sharp-cornered (`0px`) photography; keep chrome minimal so nothing competes with the picture.
342
+ 3. **Monochrome discipline.** The brand is black, white, and photograph. *UI implication:* stay in the ink ladder (`#181818`/`#171719`/`#1a1a1a`); reserve the promo blue (`#017bc6`) strictly for marketing flags.
343
+ 4. **Mood before mechanics.** Copy and layout lead with atmosphere, then function. *UI implication:* sensory headlines and imagery first; search, filters, and price recede into calm pill controls.
344
+ 5. **Flat and quiet.** Editorial calm beats app-like elevation. *UI implication:* no shadows except the one floating region pill; separate with paper-grey tint and hairlines.
345
+
346
+ ## 13. Personas
347
+
348
+ *Personas below are fictional archetypes informed by publicly observable Stayfolio user segments (design-conscious Korean travelers, staycationers seeking distinctive independent stays), not individual people.*
349
+
350
+ **정다은, 32, 서울.** A design-industry professional planning a quiet weekend away. Distrusts generic OTA listings and chooses Stayfolio because the curation feels like a trusted editor's shortlist rather than an ad-ranked feed. Books on the strength of the photography and the writing.
351
+
352
+ **김도현, 38, 경기.** A couple's-trip planner who reads the JOURNAL before deciding. Values that each stay is presented with mood and context, not just amenities and price. Appreciates the calm, uncluttered interface.
353
+
354
+ **이서연, 29, 부산.** A frequent staycationer collecting distinctive stays the way others collect restaurants. Uses the domestic/overseas toggle to browse, saves places for later, and trusts the brand's monochrome, magazine-like taste.
355
+
356
+ ## 14. States
357
+
358
+ | State | Treatment |
359
+ |---|---|
360
+ | **Empty (no stays match filters)** | White `#ffffff` canvas. A single Body Ink (`#181818`) line explaining no matches, with a calm text CTA to widen the search. No cluttered illustration. |
361
+ | **Empty (saved list, none yet)** | Muted Slate (`#6b6b6e`) single line inviting the user to explore FIND STAY. Quiet and editorial. |
362
+ | **Loading (stay grid fetch)** | Paper-grey (`#f2f2f2`) placeholder plates at final card dimensions, sharp `0px` corners. Flat pulse — no shadow shimmer, consistent with the shadowless system. |
363
+ | **Loading (image not yet decoded)** | `#f2f2f2` block holds the photograph's aspect ratio; image fades in when ready. |
364
+ | **Error (search / network failed)** | Inline message in Body Ink (`#181818`) with a plain-language explanation and a retry. No generic "오류가 발생했습니다" alone. |
365
+ | **Error (form validation)** | Field-level note below the pill input describing what's valid, not just "필수". |
366
+ | **Success (reservation / inquiry sent)** | Brief inline confirmation in a calm tone; next-step detail linked immediately below. No celebratory emoji. |
367
+ | **Skeleton** | `#f2f2f2` blocks at final dimensions, `0px` corners, flat pulse. |
368
+ | **Disabled** | Faint / Disabled Grey (`#979799` / `#999999`) text on reduced-opacity surface; the active locale/control stays in ink to preserve the monochrome read. |
369
+
370
+ ## 15. Motion & Easing
371
+
372
+ **Durations**:
373
+
374
+ | Token | Value | Use |
375
+ |---|---|---|
376
+ | `motion-fast` | 120ms | Hover, pill press, focus |
377
+ | `motion-standard` | 240ms | Card / image fade-in, sheet, dropdown |
378
+ | `motion-slow` | 400ms | Full-bleed hero / gallery transitions |
379
+
380
+ **Easings**:
381
+
382
+ | Token | Curve | Use |
383
+ |---|---|---|
384
+ | `ease-enter` | `cubic-bezier(0.2, 0.6, 0.25, 1)` | Arriving — cards, images, sheets |
385
+ | `ease-exit` | `cubic-bezier(0.4, 0.0, 1, 1)` | Dismissals |
386
+ | `ease-standard` | `cubic-bezier(0.25, 0.1, 0.25, 1)` | Two-way transitions |
387
+
388
+ **Motion rules**: Motion is soft and photographic — consistent with the editorial, gallery-like aesthetic. Stay images fade in gently from `#f2f2f2` placeholders at `motion-standard / ease-enter` rather than sliding; pill controls respond to press with a subtle opacity/scale shift. There is no bounce or spring — a curation product signals calm and taste, not playfulness. Under `prefers-reduced-motion: reduce`, all transitions collapse to instant and images appear without fade; the product remains fully functional.
389
+
390
+ <!--
391
+ OmD v0.1 Sources — Philosophy Layer (sections 10–15)
392
+
393
+ Tier 1 live inspect (2026-07-02) via playwright getComputedStyle on
394
+ https://www.stayfolio.com/ and https://www.stayfolio.com/findstay:
395
+ - body: Pretendard JP Variable / color rgb(24,24,24) #181818 / 14px / bg #ffffff
396
+ - Nav labels FIND STAY / PROMOTION / JOURNAL / PRE-ORDER — rgb(26,26,26) #1a1a1a / 16px / 600
397
+ - H2 "비가 오면 짙어지는 산내음, 숲속 스테이로 떠나요" — rgb(23,23,25) #171719 / 28px / 600 / lh 36px / -0.56px
398
+ - H3 stay names (엠버퓨어힐, 빌라 마르디, 취호가) — rgb(51,51,51) #333333 / 20px / 600 / 28px / -0.2px
399
+ - Solid CTA "지도" (FIND STAY) — bg rgb(0,0,0) #000000 / white / radius 20px / 8px 16px / 16px 500
400
+ - Region toggle "국내/해외" — border 1px solid rgb(223,224,226) #dfe0e2 / radius 100px / 44px / shadow rgba(0,0,0,0.08) 0px 4px 8px
401
+ - Language switch 한국어/English — rgb(153,153,153) #999999 / 14px
402
+ - box-shadow: none across headings/nav/cards (near-shadowless system)
403
+ - document.title homepage "스테이폴리오"; /findstay "FIND STAY | 스테이폴리오"
404
+
405
+ Token-level claims (§1-9) are sourced from this live inspection.
406
+
407
+ Voice samples (§10) are verbatim from the live homepage (hero H2, CTA label, search prompt).
408
+
409
+ Brand narrative (§11) is grounded in observable site behavior: Stayfolio (스테이폴리오)
410
+ is a Korean curated boutique-stay platform; the nav architecture (FIND STAY / JOURNAL /
411
+ PRE-ORDER), the editorial photography-first homepage, and the name (stay + folio) are all
412
+ directly observed. Broader company facts beyond the live site are treated as general public
413
+ knowledge, not directly quoted from a verified Stayfolio statement this turn.
414
+
415
+ Personas (§13) are fictional archetypes informed by publicly observable Stayfolio user
416
+ segments (design-conscious Korean travelers). Names are illustrative; they do not refer to
417
+ real people.
418
+
419
+ Interpretive claims (e.g., "the design is the curation", "monochrome discipline as a
420
+ rejection of OTA clutter") are editorial readings connecting Stayfolio's observed design to
421
+ its positioning, not directly sourced Stayfolio statements.
422
+ -->