SplitStay · Design System · v2.0

The visual
language of
SplitStay

One reference for every touchpoint — website, app, pitch deck, social, print. Dark first. Orange is reserved. Whitespace builds trust.

Dark Mode Default WCAG 2.1 AA Bebas Neue + Inter 6-Color Palette

01 — Color System

Brand Palette

Six colors: a core duo (Orange + near-black) plus a supporting blue family (Cool Steel, Alice Blue, Bright Sky) and a secondary background tone. At the center of the system: Orange is energy, action, and emphasis. Bright Sky is trust, coordination, and connection. They alternate through every user journey — neither is decoration; both carry meaning.

SplitStay Orange
#FCA700
CTAs · Emphasis · Keywords · Icons
Black (Primary BG)
#050505
Page background · Dark canvas
Secondary BG
#161F27
Card backgrounds · Elevated surfaces · Modals
Bright Sky
#3AAEDB
Trust · Safety · Coordination · Verification · Network · Connection moments
Cool Steel
#8CA5BA
Secondary text · Dividers · Card BG (light)
Alice Blue
#EEF8FC
Light mode BG · Near-white surface

Tint / Shade Ramps

Calculated via flat HSL-lightness shift for mathematical consistency — not eyeballed. Every ramp uses the same logic so each color scales predictably.

Token Hover / Light Base Active / Pressed Disabled-adj.
--color-orange #FFB626 #FCA700 #C98500 #966300
--color-bright-sky #5CBCE1 #3AAEDB #2393BF #1B7294
--color-cool-steel #A5B9C9 #8CA5BA #6C8CA7 #54728C
--color-alice-blue — (near-white, no lighter) #EEF8FC #C3E6F4 #97D4ED

Color Duo — Orange × Bright Sky

These two colors form SplitStay's visual backbone. They're not interchangeable — each carries distinct meaning. Use them in alternation to create rhythm through multi-step flows. Never treat Sky as merely "a secondary version of orange."

SplitStay Orange
#FCA700 · --accent-primary
Use for:
Primary CTAs and conversion actions
Keywords, inline emphasis, highlighted copy
Hero display type and headline moments
First and final steps in journey flows
Energy, discovery, and commercial signals
Bright Sky
#3AAEDB · --accent-secondary
Use for:
Trust, safety, and verification signals
Coordination, matching, and network moments
Middle steps in multi-step flows
Partner integrations and "Connect" actions
Secondary CTAs and data visualization
In Practice — Alternating Rhythm
1
Find Your People
Discover athletes at same event
2
Align Travel Plans
Match dates, budget & preferences
3
Coordinate Stay
Compare and align on options
4
Arrive Connected
Less friction. More connection.

State / Functional Colors

Utilitarian only — not part of brand identity. These exist so error/success states never misuse orange. They appear in product UI only, never in marketing or brand contexts.

Error / Destructive
#D64545 · var(--color-state-error)
Form errors · Destructive actions · Alerts
Success
#7FB069 · var(--color-state-success)
Confirmations · Completed states · Valid inputs

Dark Mode vs. Light Mode — Semantic Tokens

Dark mode is canonical. Light mode uses the same role relationships but different values — shifted to the active/pressed shades already defined in the ramp, not invented new colors.

Dark Mode (Default)
--bg-base#050505
--bg-card#161F27
--text-primary#FFFFFF
--text-secondary#B5B5B5
--accent-primary (text/icon)#FCA700
--accent-primary (filled btn)#FCA700
--accent-secondary (text/icon)#3AAEDB
--accent-neutral#8CA5BA
Light Mode (Fallback)
--bg-base#FFFFFF
--bg-card#EEF8FC (Alice Blue, role-flipped)
--text-primary#1F2933
--text-secondary#5C6670
--accent-primary (text/icon)#966300 (pressed shade — AA pass)
--accent-primary (filled btn)#FCA700 (unchanged)
--accent-secondary (text/icon)#1B7294 (pressed shade — AA pass)
--accent-neutral#54728C (pressed shade — AA pass)

02 — Typography

Type System

Two fonts. One role each. Headlines: Bebas Neue. Body: Inter. Bebas Neue carries authority and presence — it's the brand voice made visible. Inter handles everything that needs to be read, not just seen.

Headlines — Display & Titles
Bebas Neue
Condensed · All-caps optimized · Letter-spacing: 0.04em
Use for: Display, H1, H2, H3, card titles, all section headings
Split Your Stay.
Book One Trip. Two Cities.
Find Your Split
Body — All Readable Text
Inter
Variable · Optical sizing · Wide weight range
Use for: body copy, captions, labels, UI text, metadata
Regular 400
Travel smarter.
Medium 500
Travel smarter.
Semibold 600
Travel smarter.
Bold 700
Travel smarter.

Type Scale

--text-display
56px · lh 1.05 · Bold
SplitStay
--text-h1
40px · lh 1.1 · Bold
Book Two Cities
--text-h2
28px · lh 1.15 · Bold
How It Works
--text-h3
20px · lh 1.2 · Bold
Your Itinerary
--text-body
16px · lh 1.5 · Regular
SplitStay finds the best flight combinations so you can spend one leg of your trip in each city — without paying more.
--text-body-sm
14px · lh 1.5 · Regular
Prices shown are per person, economy class. Availability subject to change.
--text-caption
12px · lh 1.4 · Regular
Last updated June 2026 · Fares from ITA Matrix

03 — Spacing

Space Scale

"Whitespace Builds Trust" — this is the token system behind that rule. 4px base, consistent multipliers. Never use arbitrary pixel values outside this scale.

--space-1 4px Tight internal spacing — icon-to-label gap
--space-2 8px Compact internal padding
--space-3 12px Default internal padding
--space-4 16px Standard gap between related elements
--space-5 24px Gap between distinct elements / cards
--space-6 32px Section-level spacing
--space-7 48px Major section breaks
--space-8 64px Large layout gaps
--space-9 96px Hero / full-section vertical padding

04 — Effects

Shadows, Glow & Radius

Shadows anchor depth. Glows are orange or sky — never just gray. The orange-core / Bright-Sky-ambient glow effect is dark-mode only; light mode uses flat fills and borders.

Border Radius
--radius-sm
4px
--radius-md
8px
--radius-lg
16px
--radius-xl
20px
--radius-full
pill
Elevation Shadows
--shadow-sm · 2px 8px
--shadow-md · 6px 20px
--shadow-lg · 12px 40px
Glow Effects (Dark Mode)
--glow-orange · Primary accent
--glow-sky · Secondary accent
--glow-soft · Subtle ambient

Border Tokens

--border-subtle
Structural separators, low-key card borders
--border-default
Emphasized cards, focused input borders
--border-strong
Active elements, selected states

05 — Components

Core Components

Every component below has copyable code — but "copy" means two different things depending on what you're doing with it.

How the copy buttons work
Component
Just this component's own HTML + CSS, nothing else — for an app that already has the tokens above set up. Drop the tokens in once with "Copy all tokens," then use Component on everything after.
Standalone
A complete, self-contained example — tokens included — so it renders correctly pasted into any blank sandbox (CodePen, JSFiddle, a plain .html file). Good for previewing or sharing, not for repeated integration.
Just testing how something looks (CodePen, W3Schools, a scratch .html file)? Use Standalone — it's the only one wrapped in an actual <style> tag. Tokens and Component are raw text meant for your app's real files (a stylesheet, a template); pasted into a single preview box on their own, the CSS just shows up as plain text.

Buttons

One primary CTA per view. Orange is the action color — never used for more than one button on the same surface. Secondary is a Bright Sky outline that fills solid on hover. Ghost for tertiary actions.

VariantLive PreviewBackgroundTextUse
Primary --color-orange (#FCA700) #050505 (near-black on orange) Main CTA, one per view
Secondary Transparent, fills solid on hover --accent-secondary (Bright Sky) Secondary actions
Ghost Transparent --text-secondary Tertiary / low-emphasis
Disabled --color-cool-steel at low opacity --text-secondary Disabled state

Button Sizes

Secondary — Orange Override

Same interaction pattern as the default Secondary: outline at rest, solid fill with glow on hover. Swap to this variant when the surface calls for the orange accent instead of Bright Sky, e.g. the B2B navigation bar.

Glow Modifier

Add .btn-glow to a Primary button for a persistent halo, reserved for hero-level CTAs that need extra pull. Dark mode only, it is switched off automatically in light mode since the same glow reads as a muddy smudge on a white background.

Header

Logo and nav links are grouped into one left-aligned cluster; actions (CTA, theme toggle) sit on the right, a plain two-group flex row with justify-content: space-between. On the live site it is also position: sticky with the translucent, blurred background shown here so it reads correctly over a hero image; sticky positioning is intentionally left out of this demo so it doesn't compete with this document's own sticky header. It collapses to a stacked, centered layout below 768px.

B2C header: default Secondary (Bright Sky) CTA.

B2B header: same component, CTA swapped to the Secondary — Orange Override variant so it doesn't clash with the orange-forward B2B palette.

Footer

The logo sits on its own line above a second row holding the tagline, nav links, and social icons together, so they read as one aligned line rather than the nav drifting up to the logo's baseline while the tagline sits alone underneath. Copyright is centered on its own row at the bottom. Link lists differ slightly by page (B2B adds a Partner with us link) and both always end with Privacy policy and Terms last.

Cards

Cards use the secondary BG (#161F27 dark / Alice Blue light). Border radius is 16–20px. Orange borders are reserved for emphasized/featured cards. Hover lifts the card 3px.

✈️
Default Card
Standard card with subtle border and dark surface. Used for content listings and itinerary items.
Featured Card
Orange border signals emphasis. Use sparingly — one featured card per section maximum.
🌐
Network Card
Bright Sky border signals trust and coordination — use for connection previews, verified profiles, and partner moments.

Badges

Orange Bright Sky Cool Steel Muted New Beta Archived Confirmed Error

Icons

Outline style, monoline, consistent 1.5px stroke. Accent color orange (or Bright Sky for secondary context). Never filled, multi-color, or cartoon. Recommended libraries: Lucide or Phosphor.

Phone
Clock
Location
Send
Team
Screen
Globe
Activity
Arrow Down
Search
Email
Message

Icon Circles

A recurring motif from SplitStay's product and pitch assets. Circular frames with a branded border and matching icon — orange for action/energy, sky for trust/coordination. Used heavily in journey flows, feature lists, and profile moments.

Small (40px)
.ico-circle (40px)
Medium (56px)
.ico-circle / .ico-circle--sky (56px)
Large (80px)
Journey steps, feature highlights
Feature List Usage
WhatsApp Onboarding
Frictionless athlete sign-up
Verified Profiles
Trust-first matching
Smart Matching
Event & travel alignment
Arrive Connected
Network effects at scale

Form Inputs

Enter one or two cities separated by a +
Date must be in the future
Route confirmed

FAQ Accordion

Native <details>/<summary> elements, no custom JS required for the open/close mechanic itself. On the live site, a small script keeps only one item open per list at a time; that behavior is app logic, not a styling concern, so it is not reproduced in this static reference. First item defaults open per list.

Who are these people?

Verified travelers matched to your event, dates, and preferences. Every profile is reviewed before it is shown to you.

Do I have to share a room?

No. Matching for a shared neighborhood or hotel is just as valid as matching for a shared room. You choose your comfort level.

What if the match is not right for me?

You can request a new match at any time before you commit. There is no obligation once a conversation starts.

Contact Form Card

Used for the B2B lead-capture form. The card sits one elevation step above its section (--bg-card-hover) so it reads as its own component rather than blending into the background. Border color carries the same meaning it does everywhere else in the system: orange in dark mode, Bright Sky in light mode. In light mode, the submit button matches the card's own Bright Sky border rather than defaulting to Orange, so the card reads as one cohesive blue-accented unit. This is a scoped exception: Orange stays the one action color everywhere else in the system.

A member of our team will be in touch within 24 hours.

06 — Accessibility

WCAG 2.1 Compliance

All text/icon color uses are WCAG AA minimum. Brand colors at base value fail on white — this is expected; light mode substitutes the pressed/active shade which passes. Contrast ratios below were calculated using the WCAG 2.1 relative luminance formula.

Dark Mode Pairs
White on #050505
--text-primary on --bg-base
20.4:1
AAA
#B5B5B5 on #050505
--text-secondary on --bg-base
9.94:1
AAA
Alice Blue on #050505
--accent-light on --bg-base
18.89:1
AAA
Orange #FCA700 on #050505
Accent text/icon use — dark
10.35:1
AAA
Light Mode Pairs (adjusted values)
Orange #FCA700 on white
Base value — fill surfaces only
1.97:1
Fail
#966300 on white
Orange pressed — light mode text/icon
5.15:1
AA
#1B7294 on white
Bright Sky pressed — light mode text
5.41:1
AA
#54728C on white
Cool Steel pressed — light mode text
5.04:1
AA
⚠️
Muted Text Warning
Avoid #7A7A7A for small body text on #050505 — borderline at small sizes. Use --text-secondary (#B5B5B5) instead for any muted text that needs to stay reliably readable.
🎨
Fill vs. Text Rule
Brand colors that fail on white (#FCA700, #3AAEDB, #8CA5BA) are only permitted as fill surfaces in light mode. Their pressed-shade equivalents carry the contrast requirement for text/icon roles.
⌨️
Focus Ring
All focusable elements use a 2px --accent-primary outline with 3px offset on focus-visible. Never remove focus indicators without a visible alternative. Glow effects in dark mode reinforce, not replace, the outline.

07 — Brand Voice

How SplitStay Speaks

Brand voice is constant. Tone adapts based on context.

7.1 — Core Brand Voice

SplitStay should always feel — regardless of context, channel, or audience:

01
Warm
People are organizing trips with friends, colleagues, and partners. The product is logistical — the feeling shouldn't be. Warmth is the baseline.
02
Human
No jargon, no buzzwords, no robotic precision. Write like a person who knows travel well and is happy to share what they know.
03
Trustworthy
People are coordinating real plans and real money. The product earns trust through clarity and accuracy — never hype, never ambiguity.
04
Intelligent
SplitStay surfaces something most booking tools miss. The writing reflects that intelligence without announcing it — the insight speaks for itself.
05
Easy to Engage With
Coordination is the hard part. The product and its copy should make every step feel simple, natural, and frictionless — the underlying goal every time.

7.2 — Tone Adapts by Context

Same core personality, different surface tone depending on who's being addressed. Tone adapts along three axes: event type · user type (attendee vs. organizer) · stage in the journey.

Taylor Swift Attendee
Tone: Casual, social, energetic. These users are excited and travelling with people they care about — match the energy without being performative.
Web Summit Attendee
Tone: Polished, efficient, professional. These users want the logistics solved fast so they can focus on why they're there.
Wedding Organizer
Tone: Warm, supportive, reassuring. High stakes emotionally. Reduce friction and anxiety — this is a meaningful occasion and they're responsible for it going smoothly.
Heavy Metal Festival Attendee
Tone: Direct, relaxed, community-driven. These users know what they want and trust each other's taste — be useful, not salesy.

7.3 — Using This in Practice

This is a direction, not a finished playbook

Before writing copy for a new context, check which of the three axes apply — event type, user type, and journey stage — and calibrate tone accordingly, while keeping the five core traits constant underneath.

A more detailed voice/tone playbook with do's, don'ts, and sample copy belongs here once there's more real product copy to generalize from.

08 — Image Style

Image Style Prompts

Ready-to-use prompts for any AI image generation tool. They define lighting, color grading, and mood only — not subject matter. What's being photographed (event, website hero, onboarding screen) is determined by context each time. Copy-paste and add your scene.

Color Vocabulary

Name used in prompts Hex Swatch
SplitStay Orange #FCA700
Cool Steel #8CA5BA
Bright Sky #3AAEDB
near-black #050505
deep charcoal-blue #161F27
Alice Blue #EEF8FC
Dark Theme — Primary / Default
Style Prompt
Hyper-realistic, photojournalistic photography of real people in genuine, candid moments — natural expressions, natural posing, never staged or stock-photo-like. Shot against a deep near-black environment (near-black to deep charcoal-blue tones) with a single dominant light source per scene (practical light, screen glow, signage, ambient sky) rather than flat, even lighting. SplitStay Orange appears only as a deliberate, sparing accent within the scene — a glow, a reflected light, a small detail — never as the dominant color filling the frame. Bright Sky (a cool, saturated blue) is equally welcome and should appear at least as often as the orange, creating temperature contrast between warm and cool light sources in the same image. Sharp focus on the human subject, with environmental depth falling into soft blur behind them. No illustration, no 3D render look, no cartoon or stylized rendering. No generic stock-photo posing or expressions. No color grading that pushes the entire frame warm/amber — light sources can be warm, but the overall frame must hold both warm and cool tones, not one or the other.
Theme Style Prompt
hyper-realistic photojournalistic photography, candid genuine human moments, natural unposed expressions, deep near-black to charcoal-blue environment, single dominant light source per scene, SplitStay Orange as sparing deliberate accent only, Bright Sky cool blue appearing at least as often as the orange, warm/cool temperature contrast within the same frame, sharp focus on subject, soft environmental depth, no illustration, no 3D render look, no cartoon style, no stock photography posing, no all-warm/amber grading
Keywords
photojournalistic candid unposed near-black/charcoal-blue environment single dominant light source SplitStay Orange sparing accent Bright Sky cool blue warm/cool contrast sharp focus on subject soft environmental depth no illustration no 3D render no all-warm grading no stock photography
Light Theme — Secondary / Fallback
Style Prompt
Hyper-realistic, photojournalistic photography of real people in genuine, candid moments — natural expressions, natural posing, never staged or stock-photo-like. Shot in soft, even daylight rather than harsh direct sun. Backgrounds are clean and uncluttered, in Alice Blue and neutral white-to-pale-gray tones, with negative space prioritized over busy detail. SplitStay Orange remains a deliberate, sparing accent within the frame — never the dominant color filling the scene. Bright Sky (cool blue) appears in shadow tones, reflective surfaces, or background elements at a similar frequency to the orange, so the frame holds both warm and cool tones rather than defaulting to an all-warm palette just because the background is light. Sharp focus on the human subject, shallow depth of field to keep the background calm. No illustration, no 3D render look, no cartoon or stylized rendering. No generic stock-photo posing. No harsh sunlight blowing out highlights. No color grading that pushes the entire frame warm — both warm and cool tones must be present in the same frame.
Theme Style Prompt
hyper-realistic photojournalistic photography, candid genuine human moments, natural unposed expressions, soft even daylight, clean uncluttered Alice Blue and neutral backgrounds, negative space prioritized, SplitStay Orange as sparing deliberate accent only, Bright Sky cool blue in shadows and reflective surfaces at similar frequency to the orange, warm/cool balance held within the same frame, sharp focus on subject, shallow depth of field, no illustration, no 3D render look, no cartoon style, no stock photography posing, no harsh blown-out sunlight, no dominant all-warm grading
Keywords
photojournalistic candid unposed soft even daylight Alice Blue/neutral background negative space SplitStay Orange sparing accent Bright Sky cool blue warm/cool balance in frame sharp focus on subject shallow depth of field no illustration no 3D render no harsh sunlight no dominant warm grading
🎨 Why warm/cool balance matters across both themes

With Cool Steel, Alice Blue, and Bright Sky in the system, an all-warm photo treatment will fight the palette. These prompts are subject-agnostic — the lighting and grading logic is what stays constant. Orange as a sparing accent. Cool blue present at similar frequency. Never an all-warm frame.

09 — Implementation Notes

Practical Guidance

Two notes for anyone building with this system — areas where the right call is context-dependent and worth spelling out in advance.

Partner & Third-Party Event Imagery

Referencing a partner's name or event in marketing is fine once a partnership exists. Third-party logos, banners, or franchise-character IP are a separate matter and are not covered by a partnership alone — confirm legal clearance before using them in any partner-facing asset.

Logo

If no logo SVG (icon + wordmark) exists yet for a given use case, treat the wordmark as text set in Bebas Neue, SplitStay Orange, until a finalized logo asset is available.