🧊 Brand & design system
The KIDIGLOO system.
Cool, sturdy exterior; warm, safe interior. One parent system that every Quarlabs brand inherits — trustworthy enough for identity & payments, playful enough for kids. Sub-brands like Whimzi keep the bones and change the skin.
01 — Brand
Logo
The Cosy Igloo: an ice-blue snow-block dome with a warm hearth glowing through the doorway. The mark always keeps its hearth — that warm glow is the heart of the brand.
✅ Do
Keep clear-space of one dome-width around the mark. Use on snow, frost-50, or night. Keep the hearth warm.
🚫 Don't
Recolour the hearth cold, stretch, rotate, add shadows to the wordmark, or place on busy photos without a snow scrim.
Files
/components/brand/logo.tsx is the source of truth; SVG exports live in /public/brand.
02 — Foundations
Colour
Snow + hearth. Cool ice-blues (Frost) and deep indigo (Night) carry trust and structure; warm amber→coral (Ember/Hearth) carries the cosy glow. Semantic tokens flip automatically in dark mode.
Core palette
#14143a#1f8ae3#74c0fb#ff7e5f#ffb454#f4faffRamps
--color-night-*--color-frost-*--color-ember-*--color-slate-*Semantic tokens
--primary--accent--success--warning--danger--infoTenant accents
Every brand that joins the hub gets one accent block. Sub-brands override the brand layer with theirs.
03 — Foundations
Typography
Baloo 2 for display (rounded, warm, sturdy). Plus Jakarta Sans for UI & body (warm but credible, great on billing & admin). JetBrains Mono for code, keys & tokens. Bilingual-ready (English + 繁體中文).
font-displayfont-sansfont-mono04 — Foundations
Spacing
A 4px base grid. Use the scale — never arbitrary values — so every brand lines up on the same rhythm.
space-14pxspace-28pxspace-312pxspace-416pxspace-624pxspace-832pxspace-1248pxspace-1664px05 — Foundations
Radius
Rounded but structured — cosy, not bubbly. Pills for actions & chips; soft rectangles for cards & inputs.
rounded-xsrounded-smrounded-mdrounded-lgrounded-xlrounded-2xlrounded-3xlrounded-full06 — Foundations
Elevation
Soft, cool, snow-tinted shadows. The warm “hearth” glow is reserved for the single most important action on a screen.
07 — Foundations
Motion
Cosy easing with a slight “snap” when blocks settle. Gentle and purposeful — and fully disabled under prefers-reduced-motion.
cubic-bezier(.22,1,.36,1)cubic-bezier(.34,1.56,.64,1)150ms250ms / 400ms08 — Library
Components
Built once on the tokens, inherited by every brand. Primitives live in /components/ui.
Buttons
Pills. One warm “hearth” CTA per screen.
Badges & status
Entitlements, plan tiers, account states.
Fields
Inputs, labels, helper text.
Alerts
Semantic feedback that flips in dark mode.
Tenant blocks
Each brand is a coloured block snapping into the hub.
09 — Library
Iconography
Rounded line icons — 1.75 stroke, round caps & joins, 24px grid. Warm, friendly, legible. Matches the dome’s curves.
10 — Brand
Voice & tone
Warm, plain-spoken, and parent-respecting. Playful in small moments; serious where it counts — money, privacy, and children.
Principles
Cosy, not childish. Friendly to parents first; the delight is in details, not baby-talk.
Clear over clever. Especially around billing, consent, and security. Say exactly what happens.
Safe by default. Lead with what we protect and what we don’t collect.
Bilingual & inclusive. Reads naturally in English and 繁體中文.
Say / Don’t say
11 — System
Sub-brands inherit, then vary
The whole point of a parent system. Both panels below use the same components and the same spacing, type scale, radius and motion — only the brand/accent tokens differ. Whimzi just adds class="theme-whimzi".
Welcome home.
Trust-leaning, warm. Frost + Night + Hearth.
Today’s wonders ✨
Same bones, playful skin. Pink → purple, sparkly.
Inheritance is defined in app/globals.css → .theme-whimzi. Real Whimzi also swaps the display face to Nunito.