Visual guide · May 2026

Four design systems, one repo.

Mono-Happnest ships four front-end packages that each present a different face to a different audience. This guide explains how the design tokens, fonts, and component recipes flow between them — and what's still left to refactor.

At a glance

Click into any package to see its tokens, typography, code, and plan walkthrough.

The token flow

The big idea of the in-flight refactor: core stops baking colors in, and instead reads from a small public contract of CSS variables. Each consumer owns its own tokens.css and imports core's recipes. Admin & enterprise keep working because legacy variables stay in place.

After the refactor lands
client/tokens.css
--accent: deep teal
--font-body: Manrope
webcheckin/tokens.css
--accent: warm amber
(+ --hotel-* runtime)
enterprise/tokens.css
--theme-primary: HSL
(+ admin legacy vars)
↓ each imports ↓
@happnest/core/styles/components.css
Hand-authored CSS recipes:
.core-btn, .core-card, .core-modal …
Reads hsl(var(--accent)), var(--radius-md), …
↓ produces ↓
client <Button />
Teal accent, Manrope
webcheckin <Button />
Hotel-branded at runtime
admin <Button />
Monochrome (unchanged)

Why now?

The problem

Until recently every consumer pulled core's globals.css, which baked the admin/enterprise monochrome palette. When client wanted a teal accent for the guest booking flow, the only options were per-package if-statements or forking core components. Webchecking faced the same wall with multi-tenant hotel branding.

The fix

A small public contract of CSS variables (--accent, --bg, --ink, --radius-md, --font-body, …) owned by each consumer. Core ships a hand-authored components.css that uses only those variables. Consumers swap the values; core never has to change.

Suggested reading order

  1. Client — finished example. Shows what the end state looks like for a consumer.
  2. Webcheckin — same shape as client, plus a runtime-branding twist.
  3. Core — the big in-flight refactor that ties it all together.
  4. Enterprise — already shipped, lives in parallel; useful for contrast.