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
@@ -2,493 +2,256 @@
2
2
  id: myrealtrip
3
3
  name: MyRealTrip
4
4
  country: KR
5
- category: travel
5
+ category: consumer-tech
6
6
  homepage: "https://www.myrealtrip.com"
7
- primary_color: "#2B96ED"
7
+ primary_color: "#2b96ed"
8
8
  logo:
9
9
  type: favicon
10
10
  slug: "https://www.google.com/s2/favicons?domain=myrealtrip.com&sz=128"
11
- verified: "2026-05-19"
11
+ verified: "2026-07-13"
12
12
  omd: "0.1"
13
+ verification_v2:
14
+ schema: 2
15
+ checked: "2026-07-13"
16
+ surfaces:
17
+ - { id: consumer-home, kind: product, url: "https://www.myrealtrip.com/", inspected: "2026-07-13" }
18
+ - { id: hotel-listing, kind: product, url: "https://www.myrealtrip.com/hotels", inspected: "2026-07-13" }
19
+ - { id: corporate-about, kind: corporate, url: "https://about.myrealtrip.com/", inspected: "2026-07-13" }
20
+ sources:
21
+ - { id: home-live, kind: product-surface, url: "https://www.myrealtrip.com/", captured: "2026-07-13" }
22
+ - { id: hotel-live, kind: product-surface, url: "https://www.myrealtrip.com/hotels", captured: "2026-07-13" }
23
+ - { id: about-live, kind: product-surface, url: "https://about.myrealtrip.com/", captured: "2026-07-13" }
24
+ - { id: help-center, kind: product-surface, url: "https://help.myrealtrip.com/hc/ko", captured: "2026-07-13" }
25
+ - { id: pretendard-license, kind: license, url: "https://github.com/orioncactus/pretendard/blob/main/LICENSE", captured: "2026-07-13" }
26
+ claims:
27
+ "tokens.colors.primary": &home { surface_id: consumer-home, source_id: home-live, method: computed-style, captured: "2026-07-13" }
28
+ "tokens.colors.canvas": *home
29
+ "tokens.colors.ink": *home
30
+ "tokens.colors.muted": *home
31
+ "tokens.colors.search-fill": *home
32
+ "tokens.colors.control-border": *home
33
+ "tokens.colors.selected-fill": *home
34
+ "tokens.colors.on-primary": *home
35
+ "tokens.typography.family.sans": &hotel_font { surface_id: hotel-listing, source_id: hotel-live, method: computed-style-fontfaceset-source, captured: "2026-07-13" }
36
+ "tokens.typography.body.size": *hotel_font
37
+ "tokens.typography.body.weight": *hotel_font
38
+ "tokens.typography.body.lineHeight": *hotel_font
39
+ "tokens.typography.body.use": *hotel_font
40
+ "tokens.typography.control.size": *hotel_font
41
+ "tokens.typography.control.weight": *hotel_font
42
+ "tokens.typography.control.lineHeight": *hotel_font
43
+ "tokens.typography.control.use": *hotel_font
44
+ "tokens.spacing.action-inline": *home
45
+ "tokens.rounded.square": *home
46
+ "tokens.rounded.action": *home
47
+ "tokens.rounded.selected-tab": *home
48
+ "tokens.components.primary-header-action.type": *home
49
+ "tokens.components.primary-header-action.bg": *home
50
+ "tokens.components.primary-header-action.fg": *home
51
+ "tokens.components.primary-header-action.radius": *home
52
+ "tokens.components.primary-header-action.padding": *home
53
+ "tokens.components.primary-header-action.height": *home
54
+ "tokens.components.primary-header-action.font": *home
55
+ "tokens.components.primary-header-action.states": *home
56
+ "tokens.components.primary-header-action.use": *home
57
+ "tokens.components.selected-locale-tab.type": *home
58
+ "tokens.components.selected-locale-tab.bg": *home
59
+ "tokens.components.selected-locale-tab.fg": *home
60
+ "tokens.components.selected-locale-tab.radius": *home
61
+ "tokens.components.selected-locale-tab.padding": *home
62
+ "tokens.components.selected-locale-tab.height": *home
63
+ "tokens.components.selected-locale-tab.font": *home
64
+ "tokens.components.selected-locale-tab.active": *home
65
+ "tokens.components.selected-locale-tab.use": *home
66
+ conflicts: []
13
67
  tokens:
14
- source: prose-derived
15
- extracted: "2026-06-09"
68
+ source: live-extract
69
+ extracted: "2026-07-13"
70
+ note: "Only values with current raw computed-style provenance are tokens. Home/hotel product surfaces and corporate/about chrome remain separate."
16
71
  colors:
17
72
  primary: "#2b96ed"
18
- primary-hover: "#1583db"
19
- brand: "#0250cb"
20
- accent: "#8238fa"
21
73
  canvas: "#ffffff"
22
- surface: "#f8f8f8"
23
- foreground: "#0f0f0f"
24
- body: "#333333"
25
- muted: "#767676"
74
+ ink: "#495056"
75
+ muted: "#666d75"
76
+ search-fill: "#f5f6f7"
77
+ control-border: "#ced4da"
78
+ selected-fill: "#101418"
26
79
  on-primary: "#ffffff"
27
- hairline: "#e5e5e5"
28
- border-strong: "#d1d1d1"
29
- success: "#22c55e"
30
- error: "#ff4d4f"
31
- warning: "#faad14"
32
80
  typography:
33
- family: { sans: "Pretendard", mono: "Pretendard" }
34
- hero: { size: 32, weight: 700, lineHeight: 1.25, use: "Home hero, campaign titles" }
35
- section: { size: 24, weight: 700, lineHeight: 1.35, use: "Row headers" }
36
- card-title: { size: 16, weight: 600, lineHeight: 1.4, use: "Tour/accommodation card titles" }
37
- body: { size: 14, weight: 400, lineHeight: 1.5, use: "Descriptions, list copy" }
38
- cta: { size: 14, weight: 600, lineHeight: 1.4, use: "Buttons, nav" }
39
- price: { size: 18, weight: 700, lineHeight: 1.3, use: "Price emphasis on cards" }
40
- caption: { size: 12, weight: 400, lineHeight: 1.4, use: "Metadata, badges, fine print" }
41
- spacing: [4, 8, 12, 16, 24, 32, 40]
42
- rounded: { sm: 6, md: 8, lg: 12, xl: 16, full: 9999 }
43
- shadow:
44
- subtle: "0 1px 3px rgba(0,0,0,0.04)"
45
- hover: "0 2px 8px rgba(0,0,0,0.06)"
46
- floating: "0 4px 16px rgba(0,0,0,0.1)"
47
- modal: "0 8px 24px rgba(0,0,0,0.16)"
81
+ family: { sans: "Pretendard" }
82
+ body: { size: 14, weight: 400, lineHeight: "21px", use: "Public hotel-listing body/list text" }
83
+ control: { size: 15, weight: 500, lineHeight: "22.5px", use: "Public hotel-search input" }
84
+ spacing: { action-inline: 24 }
85
+ rounded: { square: 0, action: 12, selected-tab: 16 }
48
86
  components_harvested: true
49
87
  components:
50
- button-primary: { type: button, bg: "#2b96ed", fg: "#ffffff", radius: "12px", padding: "0 24px", height: "40px", font: "14px / 600", states: "hover #1583db", use: "Login/signup, primary booking action" }
51
- button-promo: { type: button, bg: "#8238fa", fg: "#ffffff", radius: "12px", padding: "0 24px", font: "14px / 600", use: "Membership / benefit CTAs" }
52
- button-secondary: { type: button, bg: "#ffffff", fg: "#2b96ed", border: "1px solid #2b96ed", radius: "12px", padding: "0 24px", font: "14px / 600", use: "Secondary action" }
53
- button-ghost: { type: button, bg: "transparent", fg: "#333333", radius: "8px", font: "14px / 600", use: "Tertiary nav, 더보기" }
54
- input: { type: input, bg: "#ffffff", fg: "#0f0f0f", border: "1px solid #e5e5e5", radius: "12px", padding: "12px 16px", font: "14px / 400", focus: "border #2b96ed", use: "Search / text field" }
55
- card: { type: card, bg: "#ffffff", border: "1px solid #e5e5e5", radius: "8px", shadow: "hover 0 2px 8px rgba(0,0,0,0.06)", use: "Tour / accommodation card" }
56
- badge-confirm: { type: badge, bg: "rgba(34,197,94,0.12)", fg: "#22c55e", radius: "6px", padding: "2px 8px", font: "12px / 600", use: "Instant-confirm badge" }
57
- badge-discount: { type: badge, bg: "transparent", fg: "#ff4d4f", font: "14px / 700", use: "Discount percentage on cards" }
58
- chip: { type: badge, bg: "#f8f8f8", fg: "#333333", radius: "999px", padding: "6px 14px", font: "13px / 500", use: "Category filter chip" }
59
- tab: { type: tab, fg: "#767676", font: "14px / 600", active: "2px bottom bar #2b96ed, fg #0f0f0f", use: "Top nav category item" }
60
- toast: { type: toast, bg: "#0f0f0f", fg: "#ffffff", radius: "8px", padding: "12px 16px", use: "Snackbar transient feedback" }
61
- dialog: { type: dialog, bg: "#ffffff", fg: "#0f0f0f", radius: "16px", padding: "24px", shadow: "rgba(0,0,0,0.5) backdrop", use: "Login, date picker, bottom sheet" }
88
+ primary-header-action: { type: button, bg: "#2b96ed", fg: "#ffffff", radius: "12px", padding: "0px 24px", height: "40px", font: "14px / 600 / Pretendard", states: "Default only; interactionCount is 0, so hover, focus, pressed, and disabled variants are not claimed.", use: "Public home and hotel-header action; home::[data-omd-capture=\"5\"] and surface-3::[data-omd-capture=\"3\"]" }
89
+ selected-locale-tab: { type: tab, bg: "#101418", fg: "#ffffff", radius: "16px", padding: "6px 10px", height: "32px", font: "15px / 700 / Pretendard", active: "aria-selected=true observed on home::[data-omd-capture=\"1\"]", use: "Selected locale tab on the public home header" }
62
90
  ---
63
91
 
64
92
  # Design System Inspiration of MyRealTrip (마이리얼트립)
65
93
 
66
94
  ## 1. Visual Theme & Atmosphere
67
95
 
68
- MyRealTrip is Korea's largest travel-experience marketplace the platform that started by connecting Korean travelers with local guides abroad and grew into a one-stop super-app for flights, hotels, tours, tickets, and packages. After a 2023 rebrand built around the idea of *"My"* travel that is genuinely yours the interface settled into a bright, optimistic, content-forward marketplace look: a clean white canvas (`#FFFFFF`) under a near-translucent frosted header (`rgba(248,248,248,0.8)`), wall-to-wall with photographic tour and accommodation cards. The brand wordmark renders in near-black (`#0F0F0F`), so the page reads as a confident editorial travel magazine rather than a discount-shouting OTA.
96
+ MyRealTrip is a Korean travel marketplace whose own public materials describe a 2012 start brokering locally made tours and a current scope across travel experiences. The current public home and hotel-listing surfaces pair a white working canvas with low-chrome navigation: a blue header action, a pale-gray search field, compact gray text, and a selected dark locale pill. The visual system recorded here is deliberately narrower than a brand story. It covers only current rendered public web evidence, while the separate corporate/about site is kept as corporate chrome rather than silently blended into consumer-product tokens. MyRealTrip’s public partner program foregrounds reliable booking, sustained traveler ratings, and prompt communication; its current company blog describes the organisation as an AI-native travel platform. Those are product and organisational context, not evidence for an unobserved app component or visual token.
69
97
 
70
- The interactive system is anchored by a friendly sky-blue, observed live as `#2B96ED` on the primary "로그인 회원가입" CTA a lighter, more approachable blue than the deep "Science Blue" (`#0250CB`) of the marketing/logo lockups. This split is intentional: the deep blue carries brand gravity in hero and logo contexts, while the lighter `#2B96ED` does the day-to-day interactive work. Alongside the blue, a vivid violet (`#8238FA`) appears as a promotional/membership accent across the home feed — the color that flags benefits, membership, and "특가" energy. The result is a two-accent system: blue for trust-and-action, violet for offers-and-delight.
71
-
72
- Typography is Pretendard (loaded as a self-hosted variable face, `__pretandard_*`), the modern Korean product sans, in a black-to-gray scale on white. Geometry is rounded and soft — `12px` radius on the primary CTA, `8px` on cards — giving the marketplace a tactile, friendly feel that says "booking should feel easy, not bureaucratic."
73
-
74
- **Key Characteristics:**
75
- - Sky-blue interactive accent (`#2B96ED`) for primary actions; deep "Science Blue" (`#0250CB`) reserved for brand/logo
76
- - Violet promotional accent (`#8238FA`) for membership, benefits, and special-offer surfaces
77
- - Clean white canvas (`#FFFFFF`) with a frosted-translucent header (`rgba(248,248,248,0.8)`)
78
- - Near-black wordmark (`#0F0F0F`) — editorial, not discount-loud
79
- - Pretendard variable type stack in a black→gray scale
80
- - Soft rounded geometry — `12px` CTA radius, `8px` cards
81
- - Photographic, content-forward marketplace: imagery carries the page
98
+ **Observed character:** restrained utility chrome around travel discovery, with `#2B96ED` used for the repeated public header action rather than a generalised brand palette.
82
99
 
83
100
  ## 2. Color Palette & Roles
84
101
 
85
- Colors below are extracted from live computed styles on myrealtrip.com (2026-05-19) plus the MyRealTrip product team's published color-system writeup. The brand uses a documented gray scale (`gray_300`–`gray_700` tokens observed in markup).
86
-
87
- ### Brand / Interactive
88
- - **MRT Blue** (`#2B96ED`): Primary interactive — login/signup CTA, primary buttons, active states. Observed `rgb(43, 150, 237)` on the header CTA, 12px radius.
89
- - **Science Blue** (`#0250CB`): Deep brand blue (per Brandfetch / brand assets) — logo, hero, marketing lockups. The gravity blue, distinct from the lighter UI `#2B96ED`.
90
- - **Blue Pressed** (`#1583DB`): Hover/pressed for MRT Blue. Observed `rgb(21, 131, 219)`.
91
-
92
- ### Accent (Promotional)
93
- - **MRT Violet** (`#8238FA`): Membership, benefits, special-offer surfaces and badges — the most-frequent accent in the home feed. Observed `rgb(130, 56, 250)`.
94
-
95
- ### Surfaces
96
- - **Canvas White** (`#FFFFFF`): Page background, card surfaces.
97
- - **Header Frosted** (`rgba(248,248,248,0.8)`): Translucent sticky header background.
98
- - **Surface Tint** (`#F8F8F8`): Section bands, subtle grouping fills.
99
- - **Blue Tint** (`#F0F6FE`): Informational blue-tinted blocks.
102
+ The following are current computed observations from the supplied 2026-07-13 product bundle. They are not a published MyRealTrip token library.
100
103
 
101
- ### Text
102
- - **Text Primary** (`#0F0F0F`): Wordmark, headings, primary labels. Observed `rgb(15, 15, 15)` on logo.
103
- - **Text Body** (`#333333`): Body copy, card titles.
104
- - **Text Secondary** (`#767676`): Metadata, secondary nav, captions. Observed `rgb(118, 118, 118)`.
105
- - **Text Tertiary** (`#999999`): Placeholder, fine print, disabled labels.
104
+ | Observed role | Value | Provenance and boundary |
105
+ |---|---:|---|
106
+ | Repeated header action | `#2B96ED` | 40px button background on home and hotel listing; do not infer hover or booking-flow use. |
107
+ | White canvas / action text | `#FFFFFF` | Repeated public surface background and text on the blue action. |
108
+ | Search fill | `#F5F6F7` | 48px public search input on home and hotel listing. |
109
+ | Search/control ink | `#495056` | Repeated input and public list/control text. |
110
+ | Muted navigation text | `#666D75` | Repeated public home and hotel-header text/border observation. |
111
+ | Control border | `#CED4DA` | Static white outlined control in both product surfaces. |
112
+ | Selected locale-tab fill | `#101418` | `aria-selected=true` tab on the home header. |
106
113
 
107
- ### Borders & Dividers
108
- - **Border Default** (`#E5E5E5`): Card borders, dividers, input outlines.
109
- - **Border Strong** (`#D1D1D1`): Emphasized borders, active outlines.
110
-
111
- ### Semantic
112
- - **Success / Confirm** (`#22C55E`): Instant-confirm badge ("즉시확정"), booking confirmed.
113
- - **Discount / Sale** (`#FF4D4F`): Discount percentages, sale tags.
114
- - **Warning** (`#FAAD14`): Pending, attention-needed.
114
+ The prior deep-blue, violet, semantic, sale, and success palette claims are not retained: the fresh bundle does not establish them as current reusable product tokens.
115
115
 
116
116
  ## 3. Typography Rules
117
117
 
118
- ### Font Stack
119
- ```
120
- Pretendard (variable, self-hosted), -apple-system, "system-ui", Roboto, "Noto Sans KR", "Malgun Gothic", sans-serif
121
- ```
118
+ ### Current public-web font evidence
122
119
 
123
- Pretendard leads as a self-hosted variable face (observed `__pretandard_*` font-face names), with system fallbacks. All rendering is black-to-gray on white.
120
+ | Evidence class | Finding | Boundary |
121
+ |---|---|---|
122
+ | **Official product-use** | No first-party MyRealTrip font specification or announcement was found in this update. | No brand-font claim is inferred from a marketing or corporate page. |
123
+ | **Live computed surface-use** | `Pretendard` is a loaded, high-confidence first family with 60 visible uses and 36 captured source URLs; the hotel search input resolves to it directly. | This supports the public-web UI-family token only. |
124
+ | **Loaded internal alias** | `__pretandard_7bdbf6` is loaded with high confidence, 64 visible uses, and four MyRealTrip CDN sources. | The bundle does not prove that the internal alias is a separately named, reusable brand typeface. |
125
+ | **Official distributed font asset / licence** | Pretendard’s upstream project publishes the font under SIL Open Font License 1.1. | This is third-party font licensing, not a licence to MyRealTrip marks, UI assets, or an assertion that every MyRealTrip surface ships the same build. |
126
+ | **Declared-only** | `Pretendard Variable`, `Noto Sans KR`, `PP Neue Montreal`, and icon faces appear as declarations in the bundle but are not promoted by the collector. | Do not render a specimen or token as though any of them were verified visible current UI use. |
124
127
 
125
- ### Type Scale (observed home + listing surfaces)
128
+ ### Measured public roles
126
129
 
127
- | Role | Size | Weight | Line Height | Use |
128
- |---|---|---|---|---|
129
- | Hero | 32–40px | 700 | 1.25 | Home hero, campaign titles |
130
- | Section Heading | 22–24px | 700 | 1.35 | "투어·티켓", "숙소" row headers |
131
- | Card Title | 16px | 600 | 1.4 | Tour/accommodation card titles |
132
- | Body | 14px | 400 | 1.5 | Descriptions, list copy |
133
- | CTA / Label | 14px | 600 | 1.4 | Buttons (login CTA observed 14px/600), nav |
134
- | Price | 16–18px | 700 | 1.3 | Price emphasis on cards |
135
- | Caption | 12px | 400 | 1.4 | Metadata, badges, fine print |
130
+ | Role | Family | Size | Weight | Line height | Surface |
131
+ |---|---|---:|---:|---:|---|
132
+ | Hotel-listing body/list text | Pretendard | 14px | 400 | 21px | `https://www.myrealtrip.com/hotels` |
133
+ | Hotel search control | Pretendard | 15px | 500 | 22.5px | `https://www.myrealtrip.com/hotels` |
134
+ | Selected home locale tab | Pretendard | 15px | 700 | 18.6px | `https://www.myrealtrip.com/` |
136
135
 
137
- ### Conventions
138
- - **700 for headings and prices, 600 for CTAs/card titles, 400 for body** — prices get heading-level weight because they're the decision.
139
- - **Black headline, gray body** — `#0F0F0F` → `#333333` → `#767676` hierarchy.
140
- - **Discount numerals are loud** — `15%`, `10%` rendered in sale-red with emphasis weight.
141
- - **Korean-primary, English secondary** — Korean copy is first-class; English used in language-toggle parity, not as default.
136
+ These are captured public-web roles, not a claim about authenticated booking screens, mobile native UI, help-center chrome, or a company-wide typographic scale.
142
137
 
143
138
  ## 4. Component Stylings
144
139
 
145
- ### Buttons
140
+ ### Public header action
146
141
 
147
- **Primary CTA (로그인 및 회원가입 / 예약하기)**
142
+ **Observed default**
148
143
  - Background: `#2B96ED`
149
144
  - Text: `#FFFFFF`
150
- - Border: none
151
- - Radius: 12px
152
- - Padding: 0 24px
153
- - Font: 14px / 600 / Pretendard
154
- - Hover: background `#1583DB`
155
- - Use: Login/signup, primary booking action — observed 40px tall in header
156
-
157
- **Membership / Promo CTA**
158
- - Background: `#8238FA`
159
- - Text: `#FFFFFF`
160
- - Border: none
161
145
  - Radius: 12px
162
- - Padding: 0 24px
163
- - Font: 14px / 600 / Pretendard
164
- - Use: Membership join, benefit/offer CTAs the violet accent
165
-
166
- **Secondary / Outline**
167
- - Background: `#FFFFFF`
168
- - Text: `#2B96ED`
169
- - Border: 1px solid `#2B96ED`
170
- - Radius: 12px
171
- - Padding: 0 24px
172
- - Font: 14px / 600 / Pretendard
173
- - Use: Secondary action paired with the filled primary
174
-
175
- **Ghost / Text**
176
- - Background: transparent
177
- - Text: `#333333`
178
- - Border: none
179
- - Radius: 8px
180
- - Font: 14px / 600 / Pretendard
181
- - Use: Tertiary nav, "더보기"
182
-
183
- ### Inputs
184
-
185
- **Search / Text Field**
186
- - Background: `#FFFFFF`
187
- - Text: `#0F0F0F`
188
- - Border: 1px solid `#E5E5E5`
189
- - Radius: 12px
190
- - Padding: 12px 16px
191
- - Font: 14px / 400 / Pretendard
192
- - Placeholder: `#999999`
193
- - Focus: border `#2B96ED`
194
- - Use: Destination/keyword search, form fields
195
-
196
- ### Cards
197
-
198
- **Tour / Product Card**
199
- - Background: `#FFFFFF`
200
- - Border: 1px solid `#E5E5E5` (or shadowless on tinted bands)
201
- - Radius: 8px
202
- - Padding: 0 (image-led) + 12px text region
203
- - Shadow: `0 2px 8px rgba(0,0,0,0.06)` on hover
204
- - Use: The marketplace atom — image top, title + rating + price below
205
-
206
- **Accommodation Card**
207
- - Background: `#FFFFFF`
208
- - Border: 1px solid `#E5E5E5`
209
- - Radius: 8px
210
- - Padding: 0 + 12px text
211
- - Use: Hotel/stay listing, same rhythm as tour card
212
-
213
- ### Badges / Chips
214
-
215
- **Instant-Confirm Badge (즉시확정)**
216
- - Background: `rgba(34,197,94,0.12)`
217
- - Text: `#22C55E`
218
- - Border: none
219
- - Radius: 6px
220
- - Padding: 2px 8px
221
- - Font: 12px / 600 / Pretendard
222
- - Use: "✨즉시확정" instant booking flag
223
-
224
- **Discount Tag**
225
- - Background: transparent
226
- - Text: `#FF4D4F`
227
- - Font: 14px / 700 / Pretendard
228
- - Use: "15%", "10%" discount percentages on cards
229
-
230
- **Category Chip**
231
- - Background: `#F8F8F8`
232
- - Text: `#333333`
233
- - Border: none
234
- - Radius: 999px
235
- - Padding: 6px 14px
236
- - Font: 13px / 500 / Pretendard
237
- - Use: Category filters (투어·티켓 / 숙소 / 패키지 / 한인민박)
238
-
239
- ### Tabs / Nav
240
-
241
- **Top Nav Item**
242
- - Active text: `#0F0F0F` (weight 600)
243
- - Inactive text: `#767676`
244
- - Indicator: bottom bar `#2B96ED` 2px (on active)
245
- - Font: 14px / 500–600 / Pretendard
246
- - Use: Category navigation in the frosted header
247
-
248
- ### Toasts
249
-
250
- **Snackbar**
251
- - Background: `#0F0F0F`
146
+ - Padding: 0px 24px
147
+ - Height: 40px
148
+ - Font: 14px / 600 / loaded internal Pretendard alias on home; Pretendard stack on hotel listing
149
+ - States: default only; the supplied bundle reports `interactionCount: 0`, so no hover, focus, pressed, disabled, menu, dialog, validation, or loading variant is claimed
150
+ - Use: repeated header action on `home::[data-omd-capture="5"]` and `surface-3::[data-omd-capture="3"]`
151
+
152
+ ### Public search field
153
+
154
+ **Observed default**
155
+ - Background: `#F5F6F7`
156
+ - Text: `#495056`
157
+ - Border: 0px
158
+ - Radius: 0px
159
+ - Padding: 0px 54px 0px 20px
160
+ - Height: 48px
161
+ - Font: 15px / 500 / loaded internal Pretendard alias on home; Pretendard stack on hotel listing
162
+ - Use: public keyword search at `home::[data-omd-capture="3"]` and `surface-3::[data-omd-capture="1"]`
163
+
164
+ ### Selected locale tab
165
+
166
+ **Selected state observed**
167
+ - Background: `#101418`
252
168
  - Text: `#FFFFFF`
253
- - Radius: 8px
254
- - Padding: 12px 16px
255
- - Use: "찜 목록에 추가했어요" transient feedback
256
-
257
- ### Dialogs
169
+ - Radius: 16px
170
+ - Padding: 6px 10px
171
+ - Height: 32px
172
+ - Font: 15px / 700 / Pretendard
173
+ - Active: `aria-selected="true"` on `home::[data-omd-capture="1"]`
174
+ - Use: selected locale tab within the home-header tablist
258
175
 
259
- **Modal / Bottom Sheet**
260
- - Background: `#FFFFFF`
261
- - Text: `#0F0F0F`
262
- - Radius: 16px (top corners on sheet)
263
- - Padding: 24px
264
- - Backdrop: `rgba(0,0,0,0.5)`
265
- - Use: Login, date picker, option selection
176
+ The unselected sibling’s transparent computed text is not promoted as a reusable inactive variant. Its static capture does not establish an interaction transition.
266
177
 
267
178
  ---
179
+ **Verified:** 2026-07-13
180
+ **Tier 1 sources:** `https://www.myrealtrip.com/` (public consumer home), `https://www.myrealtrip.com/hotels` (public hotel listing), `https://about.myrealtrip.com/` (separate corporate/about surface), `https://help.myrealtrip.com/hc/ko` (official support chrome and service context)
181
+ **Tier 2 sources:** `https://getdesign.md/myrealtrip` (attempted; built-in web open returned a safe-open failure and search returned no MyRealTrip detail), `https://styles.refero.design/?q=myrealtrip` (attempted; built-in web open returned a safe-open failure and search returned no MyRealTrip detail). No Tier 2 value was promoted.
182
+ **Conflicts unresolved:** none
268
183
 
269
- **Verified:** 2026-05-19
270
- **Tier 1 sources:** myrealtrip.com (live computed styles via Playwright — primary CTA `#2B96ED` (rgb 43,150,237) / 12px radius / 14px·600 / 40px tall; violet accent `#8238FA` (rgb 130,56,250) most-frequent feed color; blue pressed `#1583DB` (rgb 21,131,219); wordmark `#0F0F0F` (rgb 15,15,15); secondary glyph `#767676` (rgb 118,118,118); header bg `rgba(248,248,248,0.8)`; font self-hosted Pretendard `__pretandard_*`; bg white).
271
- **Tier 2 sources:** Brandfetch (myrealtrip.com) — brand "Science Blue" `#0250CB`, White `#FFFFFF`, Woodsmoke `#141719`; MyRealTrip product Medium (medium.com/myrealtrip-product/color-system) — documented flexible color system + gray-scale tokens (`gray_300`–`gray_700` observed in markup).
272
- **Conflicts unresolved:** Brand blue split — Brandfetch lists deep `#0250CB` (Science Blue) as primary brand; live UI primary action is the lighter `#2B96ED`. Resolved as distinct surfaces: `#0250CB` = logo/marketing gravity, `#2B96ED` = interactive UI (Toss brand-vs-UI-blue precedent). `primary_color` frontmatter set to the live interactive `#2B96ED`.
184
+ The prior prose-derived palette, broad card/badge/dialog/toast inventory, hover/focus/error/disabled catalogue, mobile breakpoints, and motion rules were not supported by the supplied current raw evidence. They are removed rather than refreshed by assumption.
273
185
 
274
186
  ## 5. Layout Principles
275
187
 
276
- ### Page Structure
277
- - Frosted sticky header (~64px) over a centered max-width content column (~1200px).
278
- - Home feed is a stack of horizontally-scrolling product rows ("투어·티켓", "숙소", "패키지") with section headers.
279
-
280
- ### Spacing
281
- - Base unit 8px; common values 4 / 8 / 12 / 16 / 24 / 32 / 40.
282
- - Card gutter ~16px; vertical gap between sections ~40px.
283
- - Page horizontal padding ~24px desktop, 16px mobile.
284
-
285
- ### Density
286
- **Medium-density, image-forward.** Cards pack 3–4 per row at desktop with generous imagery; text regions are compact. Detail/booking pages loosen up for trust (price breakdown, policy, reviews get breathing room).
287
-
288
- ### Border Radius Scale
289
- - Small (6px): badges
290
- - Standard (8px): cards, ghost buttons
291
- - Comfortable (12px): primary buttons, inputs
292
- - Large (16px): modals, bottom sheets
293
- - Pill (999px): category chips
188
+ The supplied bundle records public desktop-width documents only. The repeated consumer header is compact: the search field is 48px high, the primary action is 40px high, and the selected locale tab is 32px high. No public max-width, carousel, card-grid, booking-detail, or authenticated-flow layout rule is retained because the bundle does not supply a stable element-level measurement for one.
294
189
 
295
190
  ## 6. Depth & Elevation
296
191
 
297
- | Level | Treatment | Use |
298
- |---|---|---|
299
- | Flat | no shadow | Page bg, inline elements, cards on tinted bands |
300
- | Subtle | `0 1px 3px rgba(0,0,0,0.04)` | Resting cards |
301
- | Hover | `0 2px 8px rgba(0,0,0,0.06)` | Card hover lift |
302
- | Floating | `0 4px 16px rgba(0,0,0,0.1)` | Dropdowns, sticky CTA bar |
303
- | Modal | `0 8px 24px rgba(0,0,0,0.16)` | Dialogs, bottom sheets |
304
-
305
- Shadows are light and neutral — the frosted header (`backdrop-filter: blur`) is the most distinctive depth cue, separating sticky chrome from the scrolling photographic feed beneath without a hard border.
192
+ The retained primary action, search field, and selected locale tab have no shadow. The selected tab’s own sample carries `0px 1px 2px rgba(0, 0, 0, 0.15)` while the action and search field are `none`; this isolated header treatment does not establish a reusable elevation scale.
306
193
 
307
194
  ## 7. Do's and Don'ts
308
195
 
309
196
  ### Do
310
- - Use `#2B96ED` for primary interactive actions; reserve deep `#0250CB` for logo/marketing.
311
- - Use `#8238FA` violet only for membership/benefit/offer surfaces.
312
- - Keep the canvas white and let photography carry the page.
313
- - Render prices at heading weight (700) — they're the decision.
314
- - Use the frosted translucent header over scrolling content.
315
197
 
316
- ### Don't
317
- - Don't fill UI buttons with the deep Science Blue (`#0250CB`) that's brand gravity, not UI action.
318
- - Don't overuse violet it's the offer accent, not a second primary.
319
- - Don't bury the price; never render it lighter than the title.
320
- - Don't add hard borders to the sticky header — the blur is the separation.
321
- - Don't shout with sale-red across non-discount UI.
198
+ - Keep the documented `#2B96ED` / `#FFFFFF` pair for the observed 40px public header action when reproducing that exact public-web pattern.
199
+ - Preserve the selected locale tab’s observed `#101418` fill, 16px radius, and explicit selected-state provenance.
200
+ - Treat the pale `#F5F6F7` search field as its own square-cornered public header control.
322
201
 
323
- ## 8. Responsive Behavior
202
+ ### Don't
324
203
 
325
- ### Breakpoints
326
- | Name | Width | Key Changes |
327
- |---|---|---|
328
- | Mobile | <768px | Single-column feed, ~1.5 cards peeking per row, bottom tab nav, full-width sticky CTA |
329
- | Tablet | 768–1024px | 2–3 cards per row, condensed header |
330
- | Desktop | >1024px | 3–4 cards per row, full frosted header, ~1200px content |
204
+ - Don't turn the captured default action into hover, focus, pressed, disabled, booking, or payment variants without new state evidence.
205
+ - Don't substitute a declared-only font face for the visibly loaded Pretendard/public aliases.
206
+ - Don't blend the corporate/about or help-center chrome into consumer product tokens.
331
207
 
332
- ### Touch & Media
333
- - Cards swipeable in carousels on touch; chevron-driven on desktop.
334
- - Sticky bottom CTA ("예약하기") with safe-area inset on product detail.
335
- - Min 44px tap targets on controls.
208
+ ## 8. Responsive Behavior
336
209
 
337
- ### Image Behavior
338
- - Product images 4:3 or 1:1, `object-fit: cover`, lazy-loaded, rounded 8px top.
339
- - Hero campaigns full-bleed with text overlay.
210
+ No responsive breakpoint or mobile layout was captured in the supplied evidence. The record therefore makes no claim about mobile navigation, carousel behavior, touch targets, safe-area controls, or image aspect-ratio rules.
340
211
 
341
212
  ## 9. Agent Prompt Guide
342
213
 
343
- ### Quick Color Reference
344
- - Primary CTA: MRT Blue `#2B96ED` (pressed `#1583DB`)
345
- - Brand/logo: Science Blue `#0250CB`
346
- - Promo/membership: Violet `#8238FA`
347
- - Canvas: White `#FFFFFF`; tint `#F8F8F8`; blue tint `#F0F6FE`
348
- - Text: `#0F0F0F` → `#333333` → `#767676` → `#999999`
349
- - Border: `#E5E5E5`; focus `#2B96ED`
350
- - Confirm green `#22C55E`; sale red `#FF4D4F`; warning `#FAAD14`
351
-
352
- ### Example Component Prompts
353
- - "Build a MyRealTrip primary button: bg `#2B96ED`, white text 14px weight 600, 12px radius, padding 0 24px, 40px tall. Hover bg `#1583DB`."
354
- - "Create a MyRealTrip tour card: white bg, 1px border `#E5E5E5`, 8px radius. Image top (4:3, cover, rounded 8px top). Below: title (16px weight 600 `#0F0F0F`), rating + review count (12px `#767676`), price (16px weight 700 `#0F0F0F`), discount `15%` (14px weight 700 `#FF4D4F`), instant-confirm badge (bg `rgba(34,197,94,0.12)`, text `#22C55E`, 6px radius). Hover shadow `0 2px 8px rgba(0,0,0,0.06)`."
355
- - "Design a membership CTA: bg `#8238FA`, white text 14px weight 600, 12px radius — for benefit/offer surfaces only."
356
- - "Create the frosted header: bg `rgba(248,248,248,0.8)`, backdrop-filter blur, no hard border, near-black wordmark `#0F0F0F`, category nav (active `#0F0F0F` weight 600 with 2px `#2B96ED` underbar, inactive `#767676`)."
357
-
358
- ### Iteration Guide
359
- 1. Blue `#2B96ED` for action, deep `#0250CB` for brand only, violet `#8238FA` for offers.
360
- 2. White canvas; photography is the color.
361
- 3. Pretendard stack first.
362
- 4. Prices at 700 weight — never quieter than the title.
363
- 5. Radius: 12px buttons/inputs, 8px cards, 16px sheets, 999px chips.
364
- 6. Frosted blur header over scrolling feed; no hard border.
365
- 7. Sale-red stays inside discount contexts.
214
+ Use only the captured public pattern: “Create a 40px MyRealTrip public header action with `#2B96ED` background, `#FFFFFF` text, 12px radius, 0px 24px padding, and 14px/600 Pretendard-context typography. This is a static default; do not invent interaction states.”
366
215
 
367
- ---
216
+ For the selected locale control: “Use the observed selected tab only: `#101418` fill, white 15px/700 text, 16px radius, 6px 10px padding, 32px height; preserve that it was an `aria-selected=true` observation.”
368
217
 
369
218
  ## 10. Voice & Tone
370
219
 
371
- MyRealTrip speaks like a well-traveled friend helping you plan the trip that's truly *yours* warm, encouraging, second-person, with the post-2023 "진짜 나다운 여행" (real, you-shaped travel) thesis running through every line. The register is friendly-polite Korean with `~요`/`~어요` endings (`찜 목록에 추가했어요`, `이 여행, 어때요?`), never the stiff travel-agency `~습니다` except in policy/legal. Korean is primary; English exists for inbound and the language toggle. Copy centers the traveler's intent — *your* trip, *your* taste, *your* moment — not the platform's inventory size.
220
+ The public sources demonstrate Korean-first service labels such as `무엇을 도와드릴까요?`, `문의하기`, and partner guidance written in polite `~요` language. Those samples support a practical, explanatory service register on the public help and partner surfaces; they do not establish a comprehensive product voice system.
372
221
 
373
- | Context | Tone |
222
+ | Evidence | Safe use |
374
223
  |---|---|
375
- | CTAs | Short Korean verb form (`예약하기`, `로그인`, `둘러보기`, `찜하기`). |
376
- | Discovery | Encouraging, second person (`이런 여행은 어때요?`, `취향저격 추천`). |
377
- | Success toasts | Past-tense soft ending (`찜 목록에 추가했어요`). No emoji on system chrome. |
378
- | Error messages | Blameless, specific, one action (`예약 정보를 다시 확인해 주세요`). Never `오류가 발생했습니다`. |
379
- | Empty states | Warm explanation + one action (`아직 찜한 여행이 없어요. 마음에 드는 여행을 담아보세요`). |
380
- | Price / policy | Exact numbers + clear conditions; honest about fees and cancellation. |
381
- | Legal / terms | Formal `~합니다` register — the exception to the warm default. |
382
-
383
- **Forbidden phrases.** `오류가 발생했습니다` (generic error), `죄송하지만` on non-destructive failures, hidden-fee vagueness on price, pressure CTAs (`지금 예약하세요!` → `예약하기`), superlatives (`최저가 보장!` style) on UI chrome unless contractually true, English-first strings on Korean surfaces.
384
-
385
- **Voice samples.**
386
- - `로그인 및 회원가입` — header primary CTA, observed live on the `#2B96ED` button. <!-- verified: myrealtrip.com via Playwright 2026-05-19 -->
387
- - `투어·티켓` / `숙소` / `패키지` / `한인민박` — category nav labels, observed live. <!-- verified: myrealtrip.com via Playwright/WebFetch 2026-05-19 -->
388
- - `진짜 나다운 여행` — page-title tagline (`<title>진짜 나다운 여행 - 마이리얼트립</title>`), the post-rebrand brand line. <!-- verified: page title via Playwright 2026-05-19 -->
389
- - `찜 목록에 추가했어요` — illustrative wishlist-add toast, soft `~요` ending. <!-- illustrative: not verified verbatim -->
224
+ | `무엇을 도와드릴까요?` | Help-centre framing for a support entry point. |
225
+ | `문의하기` | Direct action label for a support route. |
226
+ | `여행자와의 약속을 성실히 이행해요` | Partner-program guidance, not a generic consumer CTA. |
390
227
 
391
228
  ## 11. Brand Narrative
392
229
 
393
- MyRealTrip (마이리얼트립) is operated by **MyRealTrip Co., Ltd.**, founded by **Lee Dong-geon (이동건)** in 2012. It began as a peer-to-peer marketplace connecting Korean outbound travelers with **Korean-speaking local guides abroad** "real trips" led by real people, the opposite of the packaged group bus tour. That origin explains the name and the brand: travel that is personal, guided by someone who actually lives there, shaped around what *you* want to do. Over the 2010s it expanded from guided tours into a full travel super-app flights, hotels, tours and tickets, packages, and 한인민박 (Korean-run guesthouses) becoming one of Korea's largest travel platforms. ([about.myrealtrip.com](https://about.myrealtrip.com/) — company; [thevc.kr/myrealtrip](https://thevc.kr/myrealtrip/products) — product history)
394
-
395
- In **2023 the company rebranded** around the idea of *"My"* — visually expanding the wordmark and tightening the system into the bright, photographic, editorial marketplace it is today. ([designcompass.org rebrand writeup](https://designcompass.org/en/2023/08/11/myrealtrip-rebrand/)) The product team has publicly documented its engineering culture, including a writeup on building a *flexible, shareable color system* for efficient cross-team collaboration ([medium.com/myrealtrip-product](https://medium.com/myrealtrip-product/color-system-f8b7607ba57)) — evidence that the design system is a deliberate, maintained artifact, not an accident of templates.
396
-
397
- What MyRealTrip refuses: the discount-shouting, banner-stuffed aesthetic of legacy OTAs (the rebrand pulled it toward editorial calm), the impersonal "inventory firehose" feed, and the one-size group-tour packaging it was founded to replace. The two-accent system — trustworthy blue for action, delightful violet for benefits — is the visual form of its promise: booking should feel both safe and joyful.
230
+ MyRealTrip’s own public offer page identifies founder Lee Dong-geon and says the company was founded in February 2012, beginning by brokering tours made by local people. Its current partner programme frames quality around responsible reservation fulfilment, traveller ratings, and timely communication. The company blog currently describes MyRealTrip as an AI-native travel platform and publishes product, technology, and organisational stories. Together, these sources establish a travel-marketplace origin and a current organisational direction; they do not supply an official rebrand history or a visual-design manifesto.
398
231
 
399
232
  ## 12. Principles
400
233
 
401
- 1. **Travel is yours, so the UI is personal.** Copy and discovery center the traveler's intent, not the catalog. *UI implication:* `취향저격 추천`, `이런 여행 어때요?`, not `인기 상품`. Lead with the user.
402
-
403
- 2. **Two accents, two jobs.** Blue (`#2B96ED`) is trust-and-action; violet (`#8238FA`) is offers-and-delight. *UI implication:* Never use violet for a generic primary CTA, never use blue for a "membership benefit" flag. Each color keeps its meaning.
404
-
405
- 3. **Photography is the page; chrome is calm.** Imagery carries color and emotion; chrome stays near-monochrome. *UI implication:* White canvas, near-black wordmark, gray nav. Don't compete with the travel photos.
406
-
407
- 4. **The price is the decision.** Price gets heading weight and clarity; fees are honest. *UI implication:* Price at 700 weight, discounts visible, no hidden-fee vagueness. Trust is the conversion lever.
408
-
409
- 5. **Brand gravity vs. UI action are different blues.** Deep `#0250CB` carries the wordmark; lighter `#2B96ED` carries the tap. *UI implication:* Don't fill buttons with Science Blue; don't logo-lockup with the UI blue.
234
+ 1. **Reliable reservation fulfilment.** The partner programme asks partners to manage schedules so confirmed reservations can be fulfilled. *UI implication:* do not represent this as a verified button, badge, or checkout-state treatment without product-screen evidence.
235
+ 2. **Traveller feedback matters.** The public Real Partner criteria include a rolling one-year 4.8-or-higher review requirement. *UI implication:* the criterion is partner-program context, not permission to invent rating-card components.
236
+ 3. **Timely communication.** The same programme asks for message responses and reservation confirmation within 24 hours. *UI implication:* do not turn this service standard into a notification, SLA, or error-state token without direct evidence.
410
237
 
411
238
  ## 13. Personas
412
239
 
413
- *Personas are fictional archetypes informed by publicly described MyRealTrip user segments (Korean outbound and domestic travelers), not individual people.*
414
-
415
- **현우 (Hyun-woo), 31, Seoul.** Plans an annual overseas trip and books tours, tickets, and a 한인민박 through MyRealTrip in one session. Values instant-confirm ("즉시확정") and Korean-language support abroad. Compares prices but converts on trust signals — reviews, clear cancellation policy.
416
-
417
- **예린 (Ye-rin), 26, Seongnam.** Frequent short-haul traveler (Japan, Southeast Asia). Discovers experiences through the home feed's curated rows and "취향저격" recommendations. Joins membership for the violet-flagged benefits. Books almost entirely on mobile.
418
-
419
- **정아 (Jeong-a), 45, Daegu.** Plans family trips. Wants a one-stop flow — flights + hotel + a kid-friendly tour — without juggling apps. Reads every fee line; abandons if the price feels unclear. The honest price breakdown is why she completes the booking.
240
+ The first-party materials identify public stakeholder groups rather than research-backed personas: travellers seeking travel products, partners who operate listings and reservations, and support visitors looking for help. No named or synthetic persona is supplied here; demographic needs, booking journeys, and conversion motivations remain `[FILL IN]` pending first-party research or user-provided evidence.
420
241
 
421
242
  ## 14. States
422
243
 
423
- | State | Treatment |
244
+ The collector reports one selected tab observation and `interactionCount: 0`. No verified empty, loading, error, success, disabled, validation, toast, dialog, or skeleton treatment is available from this packet.
245
+
246
+ | State | Evidence boundary |
424
247
  |---|---|
425
- | **Empty (no wishlist)** | Single warm line `#767676` (`아직 찜한 여행이 없어요`) + one blue CTA (`여행 둘러보기`). |
426
- | **Empty (search no results)** | `#767676` caption (`검색 결과가 없어요. 다른 키워드로 찾아보세요`) + suggested categories. |
427
- | **Loading (feed first paint)** | Card-shaped skeleton blocks at `#F2F2F2` matching listing layout, subtle shimmer. |
428
- | **Loading (search submit)** | Inline spinner in `#2B96ED` on the search button; content stays. |
429
- | **Error (inline field)** | Input border `#FF4D4F`, caption below in red, one actionable sentence (`예약 정보를 다시 확인해 주세요`). |
430
- | **Error (toast)** | `#0F0F0F` bg, white 14px text, 3s dismiss, one sentence, no icon. |
431
- | **Error (payment)** | Dedicated screen: `#0F0F0F` heading, clear reason, retry button `#2B96ED`. Never blames the user. |
432
- | **Success (wishlist add)** | Snackbar `#0F0F0F` + white text (`찜 목록에 추가했어요`), heart fills, 3s dismiss. |
433
- | **Success (booking confirmed)** | Dedicated confirmation screen — green `#22C55E` check, booking number, date, single `확인` CTA. Never a toast. |
434
- | **Skeleton** | `#F2F2F2` blocks at exact card dimensions, 8px radius, ~1.2s shimmer. |
435
- | **Disabled (button)** | Background `rgba(43,150,237,0.4)`, white text; geometry stable. |
248
+ | Selected locale tab | `aria-selected="true"` static home-header observation; values recorded in §4. |
249
+ | Empty | `[FILL IN]` |
250
+ | Loading | `[FILL IN]` |
251
+ | Error | `[FILL IN]` |
252
+ | Success | `[FILL IN]` |
253
+ | Disabled | `[FILL IN]` |
436
254
 
437
255
  ## 15. Motion & Easing
438
256
 
439
- MyRealTrip's motion is friendly and smooth gentle reveals and lifts, optimistic but never gimmicky. The frosted header and card hovers are the signature moments.
440
-
441
- **Durations:**
442
-
443
- | Token | Value | Use |
444
- |---|---|---|
445
- | `motion-instant` | 0ms | Toggle/checkbox, heart fill |
446
- | `motion-fast` | 150ms | Hover lift, button press, chip select |
447
- | `motion-standard` | 250ms | Card hover, sheet open, tab switch |
448
- | `motion-slow` | 350ms | Page-to-detail, hero crossfade |
449
-
450
- **Easings:**
451
-
452
- | Token | Curve | Use |
453
- |---|---|---|
454
- | `ease-standard` | `cubic-bezier(0.4, 0, 0.2, 1)` | Default — most motion |
455
- | `ease-enter` | `cubic-bezier(0.0, 0.0, 0.2, 1)` | Sheets, modals, toasts appearing |
456
- | `ease-exit` | `cubic-bezier(0.4, 0.0, 1, 1)` | Dismissals |
457
-
458
- **Spring stance.** Spring/overshoot is reserved for small delight moments only (heart-favorite pop). Booking and navigation flows use standard easing — a travel-booking app must feel trustworthy, and overshoot on a price or a confirm would read as unserious.
459
-
460
- **Signature motions.**
461
- 1. **Card hover lift.** Card raises with `0 2px 8px rgba(0,0,0,0.06)` shadow and a ~2px translate-up over `motion-standard / ease-standard`. Image stays crisp.
462
- 2. **Header frost-on-scroll.** Header transitions from transparent to `rgba(248,248,248,0.8)` + `backdrop-filter: blur` over `motion-fast` as content scrolls under it.
463
- 3. **Wishlist heart.** On tap, the heart fills instantly and pops to ~1.2 scale, settling over `motion-fast / ease-spring`. The one licensed spring.
464
- 4. **Reduce motion.** Under `prefers-reduced-motion: reduce`, lifts and slides collapse to instant; skeletons go static `#F2F2F2`. No exceptions.
465
-
466
- <!--
467
- OmD v0.1 Sources — Philosophy Layer (sections 10–15)
468
-
469
- Tier 1 (UI tokens, §1–9): myrealtrip.com live computed styles via Playwright
470
- MCP, 2026-05-19. Confirmed: primary CTA `#2B96ED` (rgb 43,150,237) 12px radius
471
- 14px·600 40px tall; violet accent `#8238FA` (rgb 130,56,250) most-frequent feed
472
- color; blue pressed `#1583DB`; wordmark/logo `#0F0F0F` (rgb 15,15,15);
473
- secondary glyph `#767676`; header bg `rgba(248,248,248,0.8)`; self-hosted
474
- Pretendard variable (`__pretandard_*`); white bg. Page title
475
- `진짜 나다운 여행 - 마이리얼트립`.
476
-
477
- Tier 2: Brandfetch (myrealtrip.com) lists brand "Science Blue" `#0250CB`,
478
- White, Woodsmoke `#141719`. MyRealTrip product Medium documents a flexible
479
- color system (medium.com/myrealtrip-product/color-system). designcompass.org
480
- documents the 2023 "My" rebrand. about.myrealtrip.com / thevc.kr for company
481
- history (founder Lee Dong-geon, founded 2012, guide-marketplace origin). Not
482
- all re-verified against primary MRT press.
483
-
484
- Brand-blue split (`#0250CB` brand vs `#2B96ED` UI) flagged in §4 footer as a
485
- distinct-surface resolution (Toss precedent). frontmatter primary_color set to
486
- the live interactive blue `#2B96ED`.
487
-
488
- Voice samples: `로그인 및 회원가입`, category labels, and `진짜 나다운 여행`
489
- verified live. `찜 목록에 추가했어요`, `이런 여행 어때요?`, empty/error copy
490
- are ILLUSTRATIVE patterns following MRT's warm `~요` register; not verbatim.
491
-
492
- Personas (§13) are fictional archetypes. Any resemblance to specific users is
493
- unintended.
494
- -->
257
+ `[FILL IN]` No duration, easing, transition, reduced-motion, or animated-state measurement was captured. Do not infer motion from class names or from the presence of interactive-looking controls.