Executive saloon
Leather seats, bottled water and a suited driver. Ideal for airport runs and business trips.
See the fleetPhase 2 · Design system
Every colour, size and component CarrGo's blocks are built from. Blocks only use the semantic tokens, so changing one value here re-skins the whole theme, in light and dark.
01
Five families, eleven steps each, generated in OKLCH so every step feels evenly spaced. The yellow's middle steps sit a little lighter so they stay vivid. Source: scripts/palette.mjs.
02
What blocks actually use. Each token has a light and a dark value; both panels below are live.
Light
Surfaces & text
--bgPage background--surfaceCards, fields--surface-2Sunken areas--inkBody text--ink-mutedSecondary text--ink-subtleHints, meta--lineDividers--field-borderInput bordersBrand & accent
--brandBook / primary--brand-hoverPrimary hover--brand-inkYellow-family text--brand-softYellow tint--accentSecond button--on-accentSecond button text--highlightMarks, stars--focusFocus ringRoute & status
--routeMap lines--route-inkRoute text--route-softRoute tint--goAvailable--go-inkSuccess text--go-softSuccess tint--dangerErrors--danger-softError tintDark
Surfaces & text
--bgPage background--surfaceCards, fields--surface-2Sunken areas--inkBody text--ink-mutedSecondary text--ink-subtleHints, meta--lineDividers--field-borderInput bordersBrand & accent
--brandBook / primary--brand-hoverPrimary hover--brand-inkYellow-family text--brand-softYellow tint--accentSecond button--on-accentSecond button text--highlightMarks, stars--focusFocus ringRoute & status
--routeMap lines--route-inkRoute text--route-softRoute tint--goAvailable--go-inkSuccess text--go-softSuccess tint--dangerErrors--danger-softError tint03
Every pairing the blocks rely on, measured at build time against WCAG 2.2 AA (4.5:1 for text, 3:1 for borders and focus rings).
All 32 checks pass AA in light and dark.
| Pairing | Needs | Light | Dark |
|---|---|---|---|
| Body text on page | 4.5:1 | Aa 15.72 Pass | Aa 17.17 Pass |
| Muted text on page | 4.5:1 | Aa 8.98 Pass | Aa 10.20 Pass |
| Subtle text on sunken | 4.5:1 | Aa 5.86 Pass | Aa 5.35 Pass |
| Book button label | 4.5:1 | Aa 8.68 Pass | Aa 8.68 Pass |
| Book button hover | 4.5:1 | Aa 10.99 Pass | Aa 10.99 Pass |
| Second button label | 4.5:1 | Aa 16.88 Pass | Aa 15.73 Pass |
| Yellow text on page | 4.5:1 | Aa 9.00 Pass | Aa 12.00 Pass |
| Yellow text on tint | 4.5:1 | Aa 8.09 Pass | Aa 9.76 Pass |
| Route text on tint | 4.5:1 | Aa 5.77 Pass | Aa 8.75 Pass |
| Success text on tint | 4.5:1 | Aa 5.50 Pass | Aa 8.91 Pass |
| Error text | 4.5:1 | Aa 4.96 Pass | Aa 6.90 Pass |
| Input border | 3:1 | Aa 3.43 Pass | Aa 3.49 Pass |
| Focus ring | 3:1 | Aa 4.58 Pass | Aa 10.24 Pass |
| Taxi tone: text | 4.5:1 | Aa 8.68 Pass | Aa 8.68 Pass |
| Taxi tone: muted | 4.5:1 | Aa 6.81 Pass | Aa 6.81 Pass |
| Taxi tone: button | 4.5:1 | Aa 10.99 Pass | Aa 10.99 Pass |
04
Any block takes tone: route (or any name below) and everything inside re-colours itself. Taxi stays yellow and Night stays dark in both modes.
05
Headings in Archivo, a sturdy grotesque with the feel of road signs (one 35 KB variable file, self-hosted). Body in the visitor's system font, which costs nothing to load. Sizes scale smoothly from phone to desktop.
Your ride, right on time
Fixed fares to every airport
Choose your vehicle
Executive saloon
How booking works
Licensed drivers, fixed airport fares and a car at your door in minutes, day or night.
Every CarrGo driver is licensed, background-checked and rated by riders after every trip.
Licensed private hire operator no. 00123 · Prices include VAT
Badges, captions and legal lines
Blog posts, service and city pages use the .prose style: a comfortable line length, generous spacing and links with a yellow underline. Lists get yellow markers:
"Booked at midnight, picked up in six minutes. The driver even helped with my bags."
06
Nine fluid steps. Sections use --space-3xl top and bottom; cards use m; gaps inside components use 2xs–s.
--space-3xs--space-2xs--space-xs--space-s--space-m--space-l--space-xl--space-2xl--space-3xl07
Crisp corners, like a roof sign. Shadows get stronger in dark mode so cards still lift. The taxi chequer is the one decorative motif, used sparingly.
--radius-xs--radius-s--radius-m--radius-l--radius-xl--radius-pill--shadow-s--shadow-m--shadow-l09
Trip type and vehicle chips are real radio buttons: they work without JavaScript and with a keyboard. Fields with icons keep their labels for screen readers.
10
Badges, ratings, prices, routes, cards and notices. Blocks combine these; they never invent their own.
Badges
Icon discs
Rating
Trip summary (ticket)
Leather seats, bottled water and a suited driver. Ideal for airport runs and business trips.
See the fleetNotices
We track your flight and wait if it's late, at no extra cost.
Booked! Your driver's details arrive by text.
Night rate applies between midnight and 5 am.
We couldn't send your booking. Please call us instead.
11
Any of Lucide's 1,600+ icons by name: <Icon name="car-taxi-front" />. Inlined at build, so a page carries only the icons it uses. These are the ones CarrGo's blocks will use.
car-taxi-frontcar-frontcarbusplaneplane-landingmap-pinmap-pinnednavigationroutelocate-fixedclockcalendar-daysusersluggagebabyaccessibilitybriefcase-businessshield-checkbadge-checkstarwalletcredit-cardsmartphonephonemessage-circlearrow-rightchecksunmoon