oh-my-design-cli 1.5.0 → 1.6.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.
- package/AGENTS.md +1 -0
- package/README.ko.md +1 -1
- package/README.md +9 -9
- package/agents/omd-master.md +13 -1
- package/data/reference-fingerprints.json +1428 -523
- package/package.json +5 -4
- package/scripts/ctx-prime.cjs +266 -0
- package/skills/omd-harness/SKILL.md +135 -7
- package/skills/omd-kr-writer/SKILL.md +1 -1
- package/web/references/17live/DESIGN.md +424 -0
- package/web/references/alipay/DESIGN.md +456 -0
- package/web/references/appier/DESIGN.md +420 -0
- package/web/references/bilibili/DESIGN.md +426 -0
- package/web/references/class101/DESIGN.md +433 -0
- package/web/references/cookpad/DESIGN.md +357 -0
- package/web/references/dji/DESIGN.md +416 -0
- package/web/references/gogoro/DESIGN.md +403 -0
- package/web/references/ichef/DESIGN.md +411 -0
- package/web/references/kakaopay/DESIGN.md +1 -1
- package/web/references/kakaot/DESIGN.md +454 -0
- package/web/references/kkday/DESIGN.md +423 -0
- package/web/references/meituan/DESIGN.md +424 -0
- package/web/references/millie/DESIGN.md +533 -0
- package/web/references/money-forward/DESIGN.md +401 -0
- package/web/references/myrealtrip/DESIGN.md +445 -0
- package/web/references/naverwebtoon/DESIGN.md +429 -0
- package/web/references/note/DESIGN.md +318 -0
- package/web/references/publy/DESIGN.md +511 -0
- package/web/references/smarthr/DESIGN.md +404 -0
- package/web/references/smartnews/DESIGN.md +331 -0
- package/web/references/spoon/DESIGN.md +446 -0
- package/web/references/tada/DESIGN.md +528 -0
- package/web/references/tossbank/DESIGN.md +519 -0
- package/web/references/triple/DESIGN.md +434 -0
- package/web/references/tumblbug/DESIGN.md +530 -0
- package/web/references/watcha/DESIGN.md +425 -0
- package/web/references/wavve/DESIGN.md +438 -0
- package/web/references/wconcept/DESIGN.md +511 -0
- package/web/references/xiaohongshu/DESIGN.md +423 -0
- package/web/references/yogiyo/DESIGN.md +465 -0
|
@@ -0,0 +1,445 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: myrealtrip
|
|
3
|
+
name: MyRealTrip
|
|
4
|
+
country: KR
|
|
5
|
+
category: travel
|
|
6
|
+
homepage: "https://www.myrealtrip.com"
|
|
7
|
+
primary_color: "#2B96ED"
|
|
8
|
+
logo:
|
|
9
|
+
type: favicon
|
|
10
|
+
slug: "https://www.google.com/s2/favicons?domain=myrealtrip.com&sz=128"
|
|
11
|
+
verified: "2026-05-19"
|
|
12
|
+
omd: "0.1"
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
# Design System Inspiration of MyRealTrip (마이리얼트립)
|
|
16
|
+
|
|
17
|
+
## 1. Visual Theme & Atmosphere
|
|
18
|
+
|
|
19
|
+
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.
|
|
20
|
+
|
|
21
|
+
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.
|
|
22
|
+
|
|
23
|
+
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."
|
|
24
|
+
|
|
25
|
+
**Key Characteristics:**
|
|
26
|
+
- Sky-blue interactive accent (`#2B96ED`) for primary actions; deep "Science Blue" (`#0250CB`) reserved for brand/logo
|
|
27
|
+
- Violet promotional accent (`#8238FA`) for membership, benefits, and special-offer surfaces
|
|
28
|
+
- Clean white canvas (`#FFFFFF`) with a frosted-translucent header (`rgba(248,248,248,0.8)`)
|
|
29
|
+
- Near-black wordmark (`#0F0F0F`) — editorial, not discount-loud
|
|
30
|
+
- Pretendard variable type stack in a black→gray scale
|
|
31
|
+
- Soft rounded geometry — `12px` CTA radius, `8px` cards
|
|
32
|
+
- Photographic, content-forward marketplace: imagery carries the page
|
|
33
|
+
|
|
34
|
+
## 2. Color Palette & Roles
|
|
35
|
+
|
|
36
|
+
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).
|
|
37
|
+
|
|
38
|
+
### Brand / Interactive
|
|
39
|
+
- **MRT Blue** (`#2B96ED`): Primary interactive — login/signup CTA, primary buttons, active states. Observed `rgb(43, 150, 237)` on the header CTA, 12px radius.
|
|
40
|
+
- **Science Blue** (`#0250CB`): Deep brand blue (per Brandfetch / brand assets) — logo, hero, marketing lockups. The gravity blue, distinct from the lighter UI `#2B96ED`.
|
|
41
|
+
- **Blue Pressed** (`#1583DB`): Hover/pressed for MRT Blue. Observed `rgb(21, 131, 219)`.
|
|
42
|
+
|
|
43
|
+
### Accent (Promotional)
|
|
44
|
+
- **MRT Violet** (`#8238FA`): Membership, benefits, special-offer surfaces and badges — the most-frequent accent in the home feed. Observed `rgb(130, 56, 250)`.
|
|
45
|
+
|
|
46
|
+
### Surfaces
|
|
47
|
+
- **Canvas White** (`#FFFFFF`): Page background, card surfaces.
|
|
48
|
+
- **Header Frosted** (`rgba(248,248,248,0.8)`): Translucent sticky header background.
|
|
49
|
+
- **Surface Tint** (`#F8F8F8`): Section bands, subtle grouping fills.
|
|
50
|
+
- **Blue Tint** (`#F0F6FE`): Informational blue-tinted blocks.
|
|
51
|
+
|
|
52
|
+
### Text
|
|
53
|
+
- **Text Primary** (`#0F0F0F`): Wordmark, headings, primary labels. Observed `rgb(15, 15, 15)` on logo.
|
|
54
|
+
- **Text Body** (`#333333`): Body copy, card titles.
|
|
55
|
+
- **Text Secondary** (`#767676`): Metadata, secondary nav, captions. Observed `rgb(118, 118, 118)`.
|
|
56
|
+
- **Text Tertiary** (`#999999`): Placeholder, fine print, disabled labels.
|
|
57
|
+
|
|
58
|
+
### Borders & Dividers
|
|
59
|
+
- **Border Default** (`#E5E5E5`): Card borders, dividers, input outlines.
|
|
60
|
+
- **Border Strong** (`#D1D1D1`): Emphasized borders, active outlines.
|
|
61
|
+
|
|
62
|
+
### Semantic
|
|
63
|
+
- **Success / Confirm** (`#22C55E`): Instant-confirm badge ("즉시확정"), booking confirmed.
|
|
64
|
+
- **Discount / Sale** (`#FF4D4F`): Discount percentages, sale tags.
|
|
65
|
+
- **Warning** (`#FAAD14`): Pending, attention-needed.
|
|
66
|
+
|
|
67
|
+
## 3. Typography Rules
|
|
68
|
+
|
|
69
|
+
### Font Stack
|
|
70
|
+
```
|
|
71
|
+
Pretendard (variable, self-hosted), -apple-system, "system-ui", Roboto, "Noto Sans KR", "Malgun Gothic", sans-serif
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
Pretendard leads as a self-hosted variable face (observed `__pretandard_*` font-face names), with system fallbacks. All rendering is black-to-gray on white.
|
|
75
|
+
|
|
76
|
+
### Type Scale (observed home + listing surfaces)
|
|
77
|
+
|
|
78
|
+
| Role | Size | Weight | Line Height | Use |
|
|
79
|
+
|---|---|---|---|---|
|
|
80
|
+
| Hero | 32–40px | 700 | 1.25 | Home hero, campaign titles |
|
|
81
|
+
| Section Heading | 22–24px | 700 | 1.35 | "투어·티켓", "숙소" row headers |
|
|
82
|
+
| Card Title | 16px | 600 | 1.4 | Tour/accommodation card titles |
|
|
83
|
+
| Body | 14px | 400 | 1.5 | Descriptions, list copy |
|
|
84
|
+
| CTA / Label | 14px | 600 | 1.4 | Buttons (login CTA observed 14px/600), nav |
|
|
85
|
+
| Price | 16–18px | 700 | 1.3 | Price emphasis on cards |
|
|
86
|
+
| Caption | 12px | 400 | 1.4 | Metadata, badges, fine print |
|
|
87
|
+
|
|
88
|
+
### Conventions
|
|
89
|
+
- **700 for headings and prices, 600 for CTAs/card titles, 400 for body** — prices get heading-level weight because they're the decision.
|
|
90
|
+
- **Black headline, gray body** — `#0F0F0F` → `#333333` → `#767676` hierarchy.
|
|
91
|
+
- **Discount numerals are loud** — `15%`, `10%` rendered in sale-red with emphasis weight.
|
|
92
|
+
- **Korean-primary, English secondary** — Korean copy is first-class; English used in language-toggle parity, not as default.
|
|
93
|
+
|
|
94
|
+
## 4. Component Stylings
|
|
95
|
+
|
|
96
|
+
### Buttons
|
|
97
|
+
|
|
98
|
+
**Primary CTA (로그인 및 회원가입 / 예약하기)**
|
|
99
|
+
- Background: `#2B96ED`
|
|
100
|
+
- Text: `#FFFFFF`
|
|
101
|
+
- Border: none
|
|
102
|
+
- Radius: 12px
|
|
103
|
+
- Padding: 0 24px
|
|
104
|
+
- Font: 14px / 600 / Pretendard
|
|
105
|
+
- Hover: background `#1583DB`
|
|
106
|
+
- Use: Login/signup, primary booking action — observed 40px tall in header
|
|
107
|
+
|
|
108
|
+
**Membership / Promo CTA**
|
|
109
|
+
- Background: `#8238FA`
|
|
110
|
+
- Text: `#FFFFFF`
|
|
111
|
+
- Border: none
|
|
112
|
+
- Radius: 12px
|
|
113
|
+
- Padding: 0 24px
|
|
114
|
+
- Font: 14px / 600 / Pretendard
|
|
115
|
+
- Use: Membership join, benefit/offer CTAs — the violet accent
|
|
116
|
+
|
|
117
|
+
**Secondary / Outline**
|
|
118
|
+
- Background: `#FFFFFF`
|
|
119
|
+
- Text: `#2B96ED`
|
|
120
|
+
- Border: 1px solid `#2B96ED`
|
|
121
|
+
- Radius: 12px
|
|
122
|
+
- Padding: 0 24px
|
|
123
|
+
- Font: 14px / 600 / Pretendard
|
|
124
|
+
- Use: Secondary action paired with the filled primary
|
|
125
|
+
|
|
126
|
+
**Ghost / Text**
|
|
127
|
+
- Background: transparent
|
|
128
|
+
- Text: `#333333`
|
|
129
|
+
- Border: none
|
|
130
|
+
- Radius: 8px
|
|
131
|
+
- Font: 14px / 600 / Pretendard
|
|
132
|
+
- Use: Tertiary nav, "더보기"
|
|
133
|
+
|
|
134
|
+
### Inputs
|
|
135
|
+
|
|
136
|
+
**Search / Text Field**
|
|
137
|
+
- Background: `#FFFFFF`
|
|
138
|
+
- Text: `#0F0F0F`
|
|
139
|
+
- Border: 1px solid `#E5E5E5`
|
|
140
|
+
- Radius: 12px
|
|
141
|
+
- Padding: 12px 16px
|
|
142
|
+
- Font: 14px / 400 / Pretendard
|
|
143
|
+
- Placeholder: `#999999`
|
|
144
|
+
- Focus: border `#2B96ED`
|
|
145
|
+
- Use: Destination/keyword search, form fields
|
|
146
|
+
|
|
147
|
+
### Cards
|
|
148
|
+
|
|
149
|
+
**Tour / Product Card**
|
|
150
|
+
- Background: `#FFFFFF`
|
|
151
|
+
- Border: 1px solid `#E5E5E5` (or shadowless on tinted bands)
|
|
152
|
+
- Radius: 8px
|
|
153
|
+
- Padding: 0 (image-led) + 12px text region
|
|
154
|
+
- Shadow: `0 2px 8px rgba(0,0,0,0.06)` on hover
|
|
155
|
+
- Use: The marketplace atom — image top, title + rating + price below
|
|
156
|
+
|
|
157
|
+
**Accommodation Card**
|
|
158
|
+
- Background: `#FFFFFF`
|
|
159
|
+
- Border: 1px solid `#E5E5E5`
|
|
160
|
+
- Radius: 8px
|
|
161
|
+
- Padding: 0 + 12px text
|
|
162
|
+
- Use: Hotel/stay listing, same rhythm as tour card
|
|
163
|
+
|
|
164
|
+
### Badges / Chips
|
|
165
|
+
|
|
166
|
+
**Instant-Confirm Badge (즉시확정)**
|
|
167
|
+
- Background: `rgba(34,197,94,0.12)`
|
|
168
|
+
- Text: `#22C55E`
|
|
169
|
+
- Border: none
|
|
170
|
+
- Radius: 6px
|
|
171
|
+
- Padding: 2px 8px
|
|
172
|
+
- Font: 12px / 600 / Pretendard
|
|
173
|
+
- Use: "✨즉시확정" instant booking flag
|
|
174
|
+
|
|
175
|
+
**Discount Tag**
|
|
176
|
+
- Background: transparent
|
|
177
|
+
- Text: `#FF4D4F`
|
|
178
|
+
- Font: 14px / 700 / Pretendard
|
|
179
|
+
- Use: "15%", "10%" discount percentages on cards
|
|
180
|
+
|
|
181
|
+
**Category Chip**
|
|
182
|
+
- Background: `#F8F8F8`
|
|
183
|
+
- Text: `#333333`
|
|
184
|
+
- Border: none
|
|
185
|
+
- Radius: 999px
|
|
186
|
+
- Padding: 6px 14px
|
|
187
|
+
- Font: 13px / 500 / Pretendard
|
|
188
|
+
- Use: Category filters (투어·티켓 / 숙소 / 패키지 / 한인민박)
|
|
189
|
+
|
|
190
|
+
### Tabs / Nav
|
|
191
|
+
|
|
192
|
+
**Top Nav Item**
|
|
193
|
+
- Active text: `#0F0F0F` (weight 600)
|
|
194
|
+
- Inactive text: `#767676`
|
|
195
|
+
- Indicator: bottom bar `#2B96ED` 2px (on active)
|
|
196
|
+
- Font: 14px / 500–600 / Pretendard
|
|
197
|
+
- Use: Category navigation in the frosted header
|
|
198
|
+
|
|
199
|
+
### Toasts
|
|
200
|
+
|
|
201
|
+
**Snackbar**
|
|
202
|
+
- Background: `#0F0F0F`
|
|
203
|
+
- Text: `#FFFFFF`
|
|
204
|
+
- Radius: 8px
|
|
205
|
+
- Padding: 12px 16px
|
|
206
|
+
- Use: "찜 목록에 추가했어요" transient feedback
|
|
207
|
+
|
|
208
|
+
### Dialogs
|
|
209
|
+
|
|
210
|
+
**Modal / Bottom Sheet**
|
|
211
|
+
- Background: `#FFFFFF`
|
|
212
|
+
- Text: `#0F0F0F`
|
|
213
|
+
- Radius: 16px (top corners on sheet)
|
|
214
|
+
- Padding: 24px
|
|
215
|
+
- Backdrop: `rgba(0,0,0,0.5)`
|
|
216
|
+
- Use: Login, date picker, option selection
|
|
217
|
+
|
|
218
|
+
---
|
|
219
|
+
|
|
220
|
+
**Verified:** 2026-05-19
|
|
221
|
+
**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).
|
|
222
|
+
**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).
|
|
223
|
+
**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`.
|
|
224
|
+
|
|
225
|
+
## 5. Layout Principles
|
|
226
|
+
|
|
227
|
+
### Page Structure
|
|
228
|
+
- Frosted sticky header (~64px) over a centered max-width content column (~1200px).
|
|
229
|
+
- Home feed is a stack of horizontally-scrolling product rows ("투어·티켓", "숙소", "패키지") with section headers.
|
|
230
|
+
|
|
231
|
+
### Spacing
|
|
232
|
+
- Base unit 8px; common values 4 / 8 / 12 / 16 / 24 / 32 / 40.
|
|
233
|
+
- Card gutter ~16px; vertical gap between sections ~40px.
|
|
234
|
+
- Page horizontal padding ~24px desktop, 16px mobile.
|
|
235
|
+
|
|
236
|
+
### Density
|
|
237
|
+
**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).
|
|
238
|
+
|
|
239
|
+
### Border Radius Scale
|
|
240
|
+
- Small (6px): badges
|
|
241
|
+
- Standard (8px): cards, ghost buttons
|
|
242
|
+
- Comfortable (12px): primary buttons, inputs
|
|
243
|
+
- Large (16px): modals, bottom sheets
|
|
244
|
+
- Pill (999px): category chips
|
|
245
|
+
|
|
246
|
+
## 6. Depth & Elevation
|
|
247
|
+
|
|
248
|
+
| Level | Treatment | Use |
|
|
249
|
+
|---|---|---|
|
|
250
|
+
| Flat | no shadow | Page bg, inline elements, cards on tinted bands |
|
|
251
|
+
| Subtle | `0 1px 3px rgba(0,0,0,0.04)` | Resting cards |
|
|
252
|
+
| Hover | `0 2px 8px rgba(0,0,0,0.06)` | Card hover lift |
|
|
253
|
+
| Floating | `0 4px 16px rgba(0,0,0,0.1)` | Dropdowns, sticky CTA bar |
|
|
254
|
+
| Modal | `0 8px 24px rgba(0,0,0,0.16)` | Dialogs, bottom sheets |
|
|
255
|
+
|
|
256
|
+
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.
|
|
257
|
+
|
|
258
|
+
## 7. Do's and Don'ts
|
|
259
|
+
|
|
260
|
+
### Do
|
|
261
|
+
- Use `#2B96ED` for primary interactive actions; reserve deep `#0250CB` for logo/marketing.
|
|
262
|
+
- Use `#8238FA` violet only for membership/benefit/offer surfaces.
|
|
263
|
+
- Keep the canvas white and let photography carry the page.
|
|
264
|
+
- Render prices at heading weight (700) — they're the decision.
|
|
265
|
+
- Use the frosted translucent header over scrolling content.
|
|
266
|
+
|
|
267
|
+
### Don't
|
|
268
|
+
- Don't fill UI buttons with the deep Science Blue (`#0250CB`) — that's brand gravity, not UI action.
|
|
269
|
+
- Don't overuse violet — it's the offer accent, not a second primary.
|
|
270
|
+
- Don't bury the price; never render it lighter than the title.
|
|
271
|
+
- Don't add hard borders to the sticky header — the blur is the separation.
|
|
272
|
+
- Don't shout with sale-red across non-discount UI.
|
|
273
|
+
|
|
274
|
+
## 8. Responsive Behavior
|
|
275
|
+
|
|
276
|
+
### Breakpoints
|
|
277
|
+
| Name | Width | Key Changes |
|
|
278
|
+
|---|---|---|
|
|
279
|
+
| Mobile | <768px | Single-column feed, ~1.5 cards peeking per row, bottom tab nav, full-width sticky CTA |
|
|
280
|
+
| Tablet | 768–1024px | 2–3 cards per row, condensed header |
|
|
281
|
+
| Desktop | >1024px | 3–4 cards per row, full frosted header, ~1200px content |
|
|
282
|
+
|
|
283
|
+
### Touch & Media
|
|
284
|
+
- Cards swipeable in carousels on touch; chevron-driven on desktop.
|
|
285
|
+
- Sticky bottom CTA ("예약하기") with safe-area inset on product detail.
|
|
286
|
+
- Min 44px tap targets on controls.
|
|
287
|
+
|
|
288
|
+
### Image Behavior
|
|
289
|
+
- Product images 4:3 or 1:1, `object-fit: cover`, lazy-loaded, rounded 8px top.
|
|
290
|
+
- Hero campaigns full-bleed with text overlay.
|
|
291
|
+
|
|
292
|
+
## 9. Agent Prompt Guide
|
|
293
|
+
|
|
294
|
+
### Quick Color Reference
|
|
295
|
+
- Primary CTA: MRT Blue `#2B96ED` (pressed `#1583DB`)
|
|
296
|
+
- Brand/logo: Science Blue `#0250CB`
|
|
297
|
+
- Promo/membership: Violet `#8238FA`
|
|
298
|
+
- Canvas: White `#FFFFFF`; tint `#F8F8F8`; blue tint `#F0F6FE`
|
|
299
|
+
- Text: `#0F0F0F` → `#333333` → `#767676` → `#999999`
|
|
300
|
+
- Border: `#E5E5E5`; focus `#2B96ED`
|
|
301
|
+
- Confirm green `#22C55E`; sale red `#FF4D4F`; warning `#FAAD14`
|
|
302
|
+
|
|
303
|
+
### Example Component Prompts
|
|
304
|
+
- "Build a MyRealTrip primary button: bg `#2B96ED`, white text 14px weight 600, 12px radius, padding 0 24px, 40px tall. Hover bg `#1583DB`."
|
|
305
|
+
- "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)`."
|
|
306
|
+
- "Design a membership CTA: bg `#8238FA`, white text 14px weight 600, 12px radius — for benefit/offer surfaces only."
|
|
307
|
+
- "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`)."
|
|
308
|
+
|
|
309
|
+
### Iteration Guide
|
|
310
|
+
1. Blue `#2B96ED` for action, deep `#0250CB` for brand only, violet `#8238FA` for offers.
|
|
311
|
+
2. White canvas; photography is the color.
|
|
312
|
+
3. Pretendard stack first.
|
|
313
|
+
4. Prices at 700 weight — never quieter than the title.
|
|
314
|
+
5. Radius: 12px buttons/inputs, 8px cards, 16px sheets, 999px chips.
|
|
315
|
+
6. Frosted blur header over scrolling feed; no hard border.
|
|
316
|
+
7. Sale-red stays inside discount contexts.
|
|
317
|
+
|
|
318
|
+
---
|
|
319
|
+
|
|
320
|
+
## 10. Voice & Tone
|
|
321
|
+
|
|
322
|
+
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.
|
|
323
|
+
|
|
324
|
+
| Context | Tone |
|
|
325
|
+
|---|---|
|
|
326
|
+
| CTAs | Short Korean verb form (`예약하기`, `로그인`, `둘러보기`, `찜하기`). |
|
|
327
|
+
| Discovery | Encouraging, second person (`이런 여행은 어때요?`, `취향저격 추천`). |
|
|
328
|
+
| Success toasts | Past-tense soft ending (`찜 목록에 추가했어요`). No emoji on system chrome. |
|
|
329
|
+
| Error messages | Blameless, specific, one action (`예약 정보를 다시 확인해 주세요`). Never `오류가 발생했습니다`. |
|
|
330
|
+
| Empty states | Warm explanation + one action (`아직 찜한 여행이 없어요. 마음에 드는 여행을 담아보세요`). |
|
|
331
|
+
| Price / policy | Exact numbers + clear conditions; honest about fees and cancellation. |
|
|
332
|
+
| Legal / terms | Formal `~합니다` register — the exception to the warm default. |
|
|
333
|
+
|
|
334
|
+
**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.
|
|
335
|
+
|
|
336
|
+
**Voice samples.**
|
|
337
|
+
- `로그인 및 회원가입` — header primary CTA, observed live on the `#2B96ED` button. <!-- verified: myrealtrip.com via Playwright 2026-05-19 -->
|
|
338
|
+
- `투어·티켓` / `숙소` / `패키지` / `한인민박` — category nav labels, observed live. <!-- verified: myrealtrip.com via Playwright/WebFetch 2026-05-19 -->
|
|
339
|
+
- `진짜 나다운 여행` — page-title tagline (`<title>진짜 나다운 여행 - 마이리얼트립</title>`), the post-rebrand brand line. <!-- verified: page title via Playwright 2026-05-19 -->
|
|
340
|
+
- `찜 목록에 추가했어요` — illustrative wishlist-add toast, soft `~요` ending. <!-- illustrative: not verified verbatim -->
|
|
341
|
+
|
|
342
|
+
## 11. Brand Narrative
|
|
343
|
+
|
|
344
|
+
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)
|
|
345
|
+
|
|
346
|
+
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.
|
|
347
|
+
|
|
348
|
+
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.
|
|
349
|
+
|
|
350
|
+
## 12. Principles
|
|
351
|
+
|
|
352
|
+
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.
|
|
353
|
+
|
|
354
|
+
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.
|
|
355
|
+
|
|
356
|
+
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.
|
|
357
|
+
|
|
358
|
+
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.
|
|
359
|
+
|
|
360
|
+
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.
|
|
361
|
+
|
|
362
|
+
## 13. Personas
|
|
363
|
+
|
|
364
|
+
*Personas are fictional archetypes informed by publicly described MyRealTrip user segments (Korean outbound and domestic travelers), not individual people.*
|
|
365
|
+
|
|
366
|
+
**현우 (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.
|
|
367
|
+
|
|
368
|
+
**예린 (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.
|
|
369
|
+
|
|
370
|
+
**정아 (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.
|
|
371
|
+
|
|
372
|
+
## 14. States
|
|
373
|
+
|
|
374
|
+
| State | Treatment |
|
|
375
|
+
|---|---|
|
|
376
|
+
| **Empty (no wishlist)** | Single warm line `#767676` (`아직 찜한 여행이 없어요`) + one blue CTA (`여행 둘러보기`). |
|
|
377
|
+
| **Empty (search no results)** | `#767676` caption (`검색 결과가 없어요. 다른 키워드로 찾아보세요`) + suggested categories. |
|
|
378
|
+
| **Loading (feed first paint)** | Card-shaped skeleton blocks at `#F2F2F2` matching listing layout, subtle shimmer. |
|
|
379
|
+
| **Loading (search submit)** | Inline spinner in `#2B96ED` on the search button; content stays. |
|
|
380
|
+
| **Error (inline field)** | Input border `#FF4D4F`, caption below in red, one actionable sentence (`예약 정보를 다시 확인해 주세요`). |
|
|
381
|
+
| **Error (toast)** | `#0F0F0F` bg, white 14px text, 3s dismiss, one sentence, no icon. |
|
|
382
|
+
| **Error (payment)** | Dedicated screen: `#0F0F0F` heading, clear reason, retry button `#2B96ED`. Never blames the user. |
|
|
383
|
+
| **Success (wishlist add)** | Snackbar `#0F0F0F` + white text (`찜 목록에 추가했어요`), heart fills, 3s dismiss. |
|
|
384
|
+
| **Success (booking confirmed)** | Dedicated confirmation screen — green `#22C55E` check, booking number, date, single `확인` CTA. Never a toast. |
|
|
385
|
+
| **Skeleton** | `#F2F2F2` blocks at exact card dimensions, 8px radius, ~1.2s shimmer. |
|
|
386
|
+
| **Disabled (button)** | Background `rgba(43,150,237,0.4)`, white text; geometry stable. |
|
|
387
|
+
|
|
388
|
+
## 15. Motion & Easing
|
|
389
|
+
|
|
390
|
+
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.
|
|
391
|
+
|
|
392
|
+
**Durations:**
|
|
393
|
+
|
|
394
|
+
| Token | Value | Use |
|
|
395
|
+
|---|---|---|
|
|
396
|
+
| `motion-instant` | 0ms | Toggle/checkbox, heart fill |
|
|
397
|
+
| `motion-fast` | 150ms | Hover lift, button press, chip select |
|
|
398
|
+
| `motion-standard` | 250ms | Card hover, sheet open, tab switch |
|
|
399
|
+
| `motion-slow` | 350ms | Page-to-detail, hero crossfade |
|
|
400
|
+
|
|
401
|
+
**Easings:**
|
|
402
|
+
|
|
403
|
+
| Token | Curve | Use |
|
|
404
|
+
|---|---|---|
|
|
405
|
+
| `ease-standard` | `cubic-bezier(0.4, 0, 0.2, 1)` | Default — most motion |
|
|
406
|
+
| `ease-enter` | `cubic-bezier(0.0, 0.0, 0.2, 1)` | Sheets, modals, toasts appearing |
|
|
407
|
+
| `ease-exit` | `cubic-bezier(0.4, 0.0, 1, 1)` | Dismissals |
|
|
408
|
+
|
|
409
|
+
**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.
|
|
410
|
+
|
|
411
|
+
**Signature motions.**
|
|
412
|
+
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.
|
|
413
|
+
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.
|
|
414
|
+
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.
|
|
415
|
+
4. **Reduce motion.** Under `prefers-reduced-motion: reduce`, lifts and slides collapse to instant; skeletons go static `#F2F2F2`. No exceptions.
|
|
416
|
+
|
|
417
|
+
<!--
|
|
418
|
+
OmD v0.1 Sources — Philosophy Layer (sections 10–15)
|
|
419
|
+
|
|
420
|
+
Tier 1 (UI tokens, §1–9): myrealtrip.com live computed styles via Playwright
|
|
421
|
+
MCP, 2026-05-19. Confirmed: primary CTA `#2B96ED` (rgb 43,150,237) 12px radius
|
|
422
|
+
14px·600 40px tall; violet accent `#8238FA` (rgb 130,56,250) most-frequent feed
|
|
423
|
+
color; blue pressed `#1583DB`; wordmark/logo `#0F0F0F` (rgb 15,15,15);
|
|
424
|
+
secondary glyph `#767676`; header bg `rgba(248,248,248,0.8)`; self-hosted
|
|
425
|
+
Pretendard variable (`__pretandard_*`); white bg. Page title
|
|
426
|
+
`진짜 나다운 여행 - 마이리얼트립`.
|
|
427
|
+
|
|
428
|
+
Tier 2: Brandfetch (myrealtrip.com) lists brand "Science Blue" `#0250CB`,
|
|
429
|
+
White, Woodsmoke `#141719`. MyRealTrip product Medium documents a flexible
|
|
430
|
+
color system (medium.com/myrealtrip-product/color-system). designcompass.org
|
|
431
|
+
documents the 2023 "My" rebrand. about.myrealtrip.com / thevc.kr for company
|
|
432
|
+
history (founder Lee Dong-geon, founded 2012, guide-marketplace origin). Not
|
|
433
|
+
all re-verified against primary MRT press.
|
|
434
|
+
|
|
435
|
+
Brand-blue split (`#0250CB` brand vs `#2B96ED` UI) flagged in §4 footer as a
|
|
436
|
+
distinct-surface resolution (Toss precedent). frontmatter primary_color set to
|
|
437
|
+
the live interactive blue `#2B96ED`.
|
|
438
|
+
|
|
439
|
+
Voice samples: `로그인 및 회원가입`, category labels, and `진짜 나다운 여행`
|
|
440
|
+
verified live. `찜 목록에 추가했어요`, `이런 여행 어때요?`, empty/error copy
|
|
441
|
+
are ILLUSTRATIVE patterns following MRT's warm `~요` register; not verbatim.
|
|
442
|
+
|
|
443
|
+
Personas (§13) are fictional archetypes. Any resemblance to specific users is
|
|
444
|
+
unintended.
|
|
445
|
+
-->
|