KKday is a Taiwan-born online travel marketplace — the place a traveler books a tea-ceremony in Kyoto, a SIM card for Bangkok, or a high-speed-rail pass before a trip — and its design system is built for one job: turning
Needs work: freshness conflict · proof incomplete · tier1 source missing · token source unverified · verification v2 missing
KKday is a Taiwan-born online travel marketplace — the place a traveler books a tea-ceremony in Kyoto, a SIM card for Bangkok, or a high-speed-rail pass before a trip — and its design system is built for one job: turning the overwhelming abundance of "things to do" into a confident, scannable, conversion-ready surface. The atmosphere is bright, warm, and energetic, anchored by a saturated travel-orange (#FF5C00) that behaves like a sunrise over a white, photography-dense canvas. Where a luxury OTA might whisper in muted neutrals, KKday is unembarrassed about enthusiasm: orange CTAs, big colorful destination imagery, and price/discount signals that pop. The feel is closer to a vibrant night-market stall than a quiet concierge desk — abundance presented cleanly.
Typography runs a locale-aware system stack (no custom display typeface), leading with Latin system sans and layering Traditional Chinese (PingFang TC, Microsoft JhengHei), Simplified Chinese, Japanese, Korean, and Thai fallbacks — because KKday operates across 90+ markets and every traveler must read in their own script. Hierarchy is weight- and color-driven: bold product titles, bold prices, lighter metadata, with orange reserved for action and price-urgency. The layout is card-grid first — products, experiences, and destinations all resolve to image-led cards in responsive grids, optimized for browse-many-options behavior.
What distinguishes KKday from a generic e-commerce template is the discipline around its single hot color. Orange is the action and conversion signal — primary CTAs, "Book Now", sale badges, selected states — and the rest of the palette stays deliberately neutral so that orange always reads as "do this next." It is a high-density commerce surface engineered for a traveler comparing twelve tours at once, where warmth invites and orange directs.
Key Characteristics:
#FF5C00) as the singular hot/action color — CTAs, sale badges, selected states8px workhorse on cards/buttons, smaller on badges) for a clean commerce feelNote: Live computed-style verification was not completed this pass (the inspection browser session redirected unreliably). Values below combine the brief-provided primary, KKday's known orange-led commerce identity, and conventional OTA roles. Treat hexes other than the primary as well-grounded approximations pending live re-inspection.
#FF5C00): Primary brand + action color. Primary CTAs ("Book Now", "Add to Cart"), selected states, key emphasis, sale signal. The sunrise.#E65300): Darker press/hover state for orange CTAs.#FFF0E8): Very light orange wash for selected-card backgrounds, highlight rows, soft emphasis surfaces.#FFFFFF): Card surfaces, primary content background.#F7F7F8): Grouped section background, page tint between white cards.#EEEEEF): Hover/pressed neutral surface.#1A1A1A): Headings, product titles, prices. Near-black for maximum legibility against dense imagery.#4A4A4A): Secondary copy, descriptions.#888888): Metadata, timestamps, location labels, captions.#BDBDBD): Disabled labels, strikethrough original prices.#E5E5E6): Row dividers, soft separators.#D9D9D9): Component borders (inputs, outlined cards, secondary button outline).#1FA463): "Instant confirmation", availability, success toasts. Travel-green, trustworthy.#F5A623): Limited-availability, "only 2 left" urgency. Amber, distinct from the orange action color.#E0353B): Form validation, failed payment, destructive actions.#FFB400): Review-star fills — the trust signal color, separate from the orange brand.#26BEC9): An older KKday brand teal documented in brand-asset aggregators; treat as a legacy/secondary accent, not the current primary. Modern surfaces lead with orange.| Locale | Stack |
|---|---|
| Default | -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif |
| Traditional Chinese | … "PingFang TC", "Microsoft JhengHei", sans-serif |
| Simplified Chinese | … "PingFang SC", "Microsoft YaHei", sans-serif |
| Japanese | … "Hiragino Kaku Gothic Pro", "Meiryo", sans-serif |
| Korean | … "Apple SD Gothic Neo", "Malgun Gothic", sans-serif |
| Thai | … "Thonburi", "Noto Sans Thai", sans-serif |
No custom web font — system stacks keep LCP fast across slow APAC connections and respect each market's native reading habits.
| Use | Size |
|---|---|
| Caption / meta | 12px |
| Body small / location label | 13px |
| Body / card title | 14–16px |
| Price | 16–20px (bold) |
| Card heading | 18–20px |
| Section heading | 22–24px |
| Hero headline | 28–36px |
text-decoration: line-through in muted gray.4.8 · 1,240).Primary (Book / Action)
#FF5C00#FFFFFF8px10px 20px16px / 600#E65300Secondary (Outlined)
#FFFFFF#1A1A1A1px solid #D9D9D98px10px 20px16px / 600#F7F7F8Ghost / Text
#FF5C008px8px 12pxDefault
#FFFFFF#1A1A1A1px solid #D9D9D98px10px 14px16px / 400#FF5C00#E0353BSearch (hero)
#FFFFFF1px solid #D9D9D9 (or shadowed pill on hero)8px#FF5C00)Experience Card
#FFFFFF1px solid #E5E5E6 (or shadow-separated)8px0 (image-led top, padded body)Destination Card
8pxSale Badge
#FF5C00#FFFFFF4px2px 6px12px / 700Trust Chip
#FFF0E8 or #FFFFFF#1FA463 (confirmed) / #1A1A1A4px2px 8px12px / 500Urgency Chip
#F5A62312px / 60014–16px / 400–500, orange active/hover accentKKday is medium-high density — a traveler compares many options at once, so cards pack efficiently while staying scannable. Whitespace is functional (separating cards, framing imagery), not luxurious.
KKday leans mostly flat with soft commerce shadows. Cards separate via a 1px border or a subtle shadow; orange CTAs are flat (color is the weight).
0 2px 8px rgba(0,0,0,0.08) — soft lift on hover for grid cards0 1px 4px rgba(0,0,0,0.06) on scroll0 4px 16px rgba(0,0,0,0.12)0 8px 32px rgba(0,0,0,0.2)#FF5C00) for action and conversion — primary CTAs, sale badges, selected states.8px radius on cards/buttons, 4px on badges.#F5A623) from action-orange (#FF5C00) and success-green (#1FA463).| Width | Behavior |
|---|---|
Desktop >1200px | 4-column grid, full nav + mega-menu, centered container |
Laptop 1024–1200px | 3–4 column grid, condensed nav |
Tablet 768–1024px | 2–3 column grid, search collapses |
Mobile <768px | 1–2 column grid, hamburger nav, full-width orange CTAs, sticky bottom "Book" bar on product pages |
object-fit: cover, fixed aspect ratio#FF5C00); hover #E65300; tint #FFF0E8#1A1A1A; muted: #888888#FFFFFF; soft #F7F7F8#D9D9D9#1FA463; Warning/urgency: #F5A623; Error: #E0353B; Rating gold: #FFB400object-fit: cover, sale badge top-left (#FF5C00 bg, white, 4px radius, 12px/700), body padding 12px, title 16px/700 #1A1A1A (2-line clamp), rating row 4.8 · 1,240 in 13px #888888 with #FFB400 stars, price 18px/700 #1A1A1A with strikethrough original in muted gray, trust chip 'Instant confirmation' in #1FA463."#FF5C00 bg, white text, 8px radius, 16px/600, padding 10px 20px, no shadow. Hover bg #E65300. Label 'Book Now'."#FF5C00) search button. Soft shadow 0 4px 16px rgba(0,0,0,0.12)."#FF5C00, 8px radius)."KKday speaks like an enthusiastic local friend who has actually done the tour — warm, specific, and encouraging, never pushy. The register is inviting and benefit-led: it sells the feeling of the experience ("explore", "dream", "discover") and backs it with concrete trust ("instant confirmation", "free cancellation"). The brand is genuinely multilingual — Traditional Chinese, English, Japanese, Korean, Thai, and more are first-class voices authored per market, not translated from one master. Copy avoids hard-sell discount-shouting; urgency, when present, is factual ("only 2 left") rather than manipulative. The homepage line "EXPLORE. DREAM. DISCOVER" captures the tone — aspirational verbs, clean and unhyped.
| Context | Tone |
|---|---|
| Hero / discovery | Aspirational verbs. Explore. Dream. Discover. Invitational, not transactional. |
| CTAs | Imperative + concrete. Book Now, Add to Cart, See availability. No trailing exclamation. |
| Trust chips | Factual reassurance. Instant confirmation, Free cancellation, Mobile voucher. |
| Urgency | Factual scarcity only. Only 2 left — never BUY NOW OR MISS OUT!. |
| Product copy | Specific and experiential — what you'll see/do/taste, with practical logistics. |
| Empty states | One-line reason + one suggested next destination/category. Never terminal "No results". |
| Errors | Blameless, field-specific, actionable. |
| Success (booking) | Confirm what happened + next step (voucher in app / view booking). |
Forbidden phrases. Manipulative urgency (HURRY!, LAST CHANCE!), Oops! Something went wrong without a reason, No results found. as a dead end, hype superlatives without substance (the best tour in the world), approximate prices (always show exact amount in the user's currency), emoji on checkout/payment screens, Simplified-Chinese characters on TW-Traditional surfaces.
Voice samples.
EXPLORE. DREAM. DISCOVER — homepage hero positioning Book Now — primary conversion CTA Instant confirmation · Free cancellation — trust chips on experience cards Only 2 spots left for this date — illustrative factual-urgency string No experiences match these filters yet — try a nearby date or city. — illustrative empty state KKday was founded in 2014 in Taipei, Taiwan, by Ming Chen — a travel-industry veteran who had previously built and taken Star Travel and Ezfly to IPO (en.wikipedia.org/wiki/KKday). The thesis: while flights and hotels had been commoditized online for years, the "things to do" layer of travel — the tea ceremony, the day tour, the airport transfer, the local SIM card — remained fragmented, offline, and language-locked. KKday set out to be the marketplace that aggregates curated local experiences and makes them bookable, in your language, before you land.
The design language is the product-surface expression of that thesis. Travel is overwhelming — there are thousands of things to do in any destination — so the system is engineered to make abundance feel navigable and trustworthy rather than chaotic: image-led cards for fast visual scanning, bold prices and ratings as decision anchors, and trust chips (instant confirmation, free cancellation) that defuse the anxiety of booking an experience in a place you've never been. The saturated orange is the warmth of anticipation made into an action color — the "yes, do this" of trip-planning.
KKday now operates across 90+ countries with over 300,000 curated experiences, has raised over US$250 million across funding rounds (Series D of $70M in late 2024, with Japanese travel giant H.I.S. among its investors), and has expanded from a pure activities marketplace toward an all-in-one travel super-app spanning tours, tickets, transport, hotels, SIM/WiFi, and rail passes — while operating B2B and luxury-travel subsidiaries (Rezio, FineDayClub, ActivityJapan). (en.wikipedia.org/wiki/KKday)
Orange is the path, not the paint. The hot orange exists to point a comparing traveler at the next action. UI implication: One dominant orange action per decision moment (the Book CTA, the selected date). Keep surrounding surfaces neutral so orange always means "proceed."
Abundance must feel navigable. Travelers face thousands of options; the system's job is fast, confident comparison. UI implication: Card grids with consistent anchors — image, title, rating, price, trust chip in the same position every time. Predictable layout lowers cognitive load across many cards.
Trust is a component, not a footnote. Booking an experience abroad is anxious; reassurance must be visible at the moment of decision. UI implication: Surface instant-confirmation / free-cancellation / mobile-voucher chips on the card and the CTA area — not buried in fine print.
Locale is infrastructure. Every traveler reads in their own script; the brand is authored per market. UI implication: Always use the full locale-aware font stack; route microcopy through locale bundles; show prices in the user's currency exactly.
Honest urgency only. Scarcity signals must be factual, never manufactured. UI implication: Use amber #F5A623 for real low-availability states; never use countdown manipulation or fake "selling fast" without data behind it.
The image is the salesperson. Experiences are bought on the feeling the photo evokes. UI implication: Cards are image-led with consistent aspect ratios and quality bars; chrome stays minimal so the destination carries the page.
Personas are fictional archetypes informed by publicly described KKday user segments (TW/HK/JP independent travelers and APAC outbound tourists), not individual people.
怡君 (Yi-Jun), 28, Taipei. Plans her own trips meticulously, opens KKday weeks before departure to pre-book day tours, airport transfers, and a SIM card for Japan. Compares a dozen tour options on rating and price, and will only book ones with "instant confirmation" because she finalizes her itinerary the night before flying.
Kenji, 35, Osaka. Books last-minute weekend experiences and theme-park tickets to skip ticket lines. Uses the mobile app almost exclusively, values mobile-voucher delivery, and cares most about whether the voucher works at the gate without a printout.
Wing, 24, Hong Kong. Budget-conscious solo traveler who discovers experiences through curated collections and social posts, bookmarks tours to a wishlist, and waits for a sale badge before booking. Reads reviews carefully and abandons anything with opaque cancellation terms.
| State | Treatment |
|---|---|
| Empty (search no results) | One #888888 line explaining the zero-match in the user's terms + 3–5 suggested nearby-date / nearby-city chips. Never a terminal "No results". |
| Empty (wishlist) | One-line #888888 explanation + secondary CTA to browse a popular destination. No illustration required. |
| Loading (grid first paint) | Skeleton cards at #F7F7F8 with 8px radius matching final cards; image area fixed-aspect, title/price as gray bars. Shimmer ~1.2s. No spinner. |
| Loading (inline action — booking) | Orange CTA holds width; label swaps to a white 3-dot/spinner; prevents double-tap and layout shift. |
| Error (form field) | Border switches to 1px solid #E0353B; helper text below in #E0353B 12px; field-specific and blameless. |
| Error (payment declined) | Escalated card at checkout top, #E0353B accent, one blameless sentence describing the decline + single retry in #FF5C00. No generic "Something went wrong" alone. |
| Success (added to cart) | Toast top-right, dark bg, white 14px text, 3s auto-dismiss, "View cart" action. No celebratory animation. |
| Success (booking confirmed) | Dedicated confirmation screen — order number, voucher access, per-experience date/time. Not a toast. No orange CTA here (the purchase moment is past). |
| Skeleton | #F7F7F8 blocks at exact card dimensions; price placeholder renders as — in the user's currency, never $0. |
| Disabled (button) | Faded fill, #BDBDBD text, geometry preserved so re-enabled controls don't shift. |
KKday motion is brisk and commerce-functional — fast feedback, no theatrics.
Durations:
| Token | Value | Use |
|---|---|---|
motion-instant | 0ms | Toggle flips, reduce-motion fallback |
motion-fast | 120ms | Hover/press on cards, buttons, links |
motion-standard | 200ms | Dropdowns, mega-menu, tooltip fades, cart-count update |
motion-slow | 300ms | Modal open, filter bottom-sheet slide, image lightbox |
motion-page | 250ms | Route transition + top progress bar |
Easings:
| Token | Curve | Use |
|---|---|---|
ease-standard | cubic-bezier(0.4, 0, 0.2, 1) | Default two-way transitions |
ease-enter | cubic-bezier(0, 0, 0.2, 1) | Things appearing — modals, sheets, toasts |
ease-exit | cubic-bezier(0.4, 0, 1, 1) | Dismissals |
Spring stance. Spring/overshoot is avoided — KKday is a high-density commerce surface where bouncy motion fights fast comparison and reads as a flash-sale tic. Add-to-cart and booking confirmations resolve cleanly, not elastically.
Signature motions.
0 2px 8px rgba(0,0,0,0.08)) over motion-fast; optional alternate-image swap. No scale jump.motion-slow / ease-enter; backdrop fades in. Dismiss reverses with ease-exit.motion-standard fade — no bounce.ease-standard; arrows fade in on hover (desktop).Reduce motion. Under prefers-reduced-motion: reduce, all motion-* collapse to motion-instant; sheet slides become instant opacity toggles; progress bar hidden. Hover color/shadow state changes still apply.
Verified: 2026-05-19
Tier 1 sources: kkday.com — live inspect NOT completed (403 + browser redirect); primary #FF5C00 is brief-provided and matches KKday's orange-led identity (hexes other than primary are grounded approximations pending live re-inspection). kkday.com/en-us hero "EXPLORE. DREAM. DISCOVER" (WebSearch).
Tier 2 sources: brandcolorcode.com/kkday (heritage teal #26BEC9, noted as legacy/unofficial); lilingh.com KKday UX case study (WCAG contrast note).
Tier 2 (Philosophy/founders): Wikipedia (KKday — Ming Chen / 2014 Taipei / 90+ countries / H.I.S. / $250M+).
Style ref: pinkoi (TW commerce tone). Conflicts unresolved: exact production hexes beyond primary not live-verified this pass (browser session unreliable) — flagged for UPDATE.
KKday is a Taiwan-born online travel marketplace — the place a traveler books a tea-ceremony in Kyoto, a SIM card for Bangkok, or a high-speed-rail pass before a trip — and its design system is built for one job: turning the overwhelming abundance of "things to do" into a confident, scannable, conversion-ready surface. The atmosphere is bright, warm, and energetic, anchored by a saturated travel-orange (#FF5C00) that behaves like a sunrise over a white, photography-dense canvas. Where a luxury OTA might whisper in muted neutrals, KKday is unembarrassed about enthusiasm: orange CTAs, big colorful destination imagery, and price/discount signals that pop. The feel is closer to a vibrant night-market stall than a quiet concierge desk — abundance presented cleanly.
Do and Don't guidelines parsed from DESIGN.md.
Do
Don't