12 KiB
Design System: Cadence UI Material Runtime
Repository: cadence-ui
Status: Active direction as of 2026-03-23
1. Visual Theme & Atmosphere
Cadence UI should feel like a softly lit Material You showcase, not a generic dashboard kit and not a rotating gallery of unrelated skins. The visual language is pastel-tonal, ambient, rounded, and slightly theatrical, borrowing the warmth and optimism of Google's Material You presentations while staying usable as a real product UI system.
The overall mood is luminous and calm. Surfaces should feel like layered slabs of tinted light: cream canvas, lilac containers, sage accents, and soft violet action tones. The system should feel premium without becoming severe, expressive without becoming noisy, and mobile-informed without becoming toy-like.
The experience should evoke the feeling of a polished launch demo:
- soft environmental glow instead of hard contrast
- large rounded geometry instead of sharp technical edges
- tonal surfaces instead of flat white cards
- gentle spatial motion instead of bouncy micro-interaction clutter
- one coherent design language instead of multiple competing visual personalities
Key characteristics:
- Warm cream backgrounds with subtle tinted atmospheric light
- Rounded "slab" components with generous radii
- Tonal color relationships derived from a single seed color
- Pastel purple and sage-green emphasis by default
- Mobile-product elegance scaled to desktop docs and app surfaces
- Motion that feels staged, floaty, and spatial rather than mechanical
2. Color Palette & Roles
Cadence UI is dynamic-color first. New screens should be described in terms of roles, not hardcoded one-off fills. The seed color may change, but the role structure should stay stable.
Default Seed Presets
- Violet Seed (
#6750A4) - the default Material baseline. Use when no stronger palette choice exists. - Jade Seed (
#0B8F83) - cooler, calmer, more aquatic. Good for operational or wellness-like product surfaces. - Sunset Seed (
#B75A46) - warmer and more human. Good for editorial, consumer, or lifestyle-heavy screens.
Default Tonal Foundation
These are the current default fallback values when the active palette is not overridden:
- Warm Cream Canvas (
hsl(22 18% 96%)) - primary page background - Soft Surface Cream (
hsl(22 12% 94%)) - general surface background - Lilac Mist Surface (
hsl(274 18% 92%)) - default tonal container - Lilac Lifted Surface (
hsl(274 22% 89%)) - elevated tonal container - Sage Mist Surface (
hsl(117 18% 86%)) - strongest supporting container / accent slab - Ink Violet Text (
hsl(259 6% 15%)) - primary text and icon color - Muted Violet Text (
hsl(259 10% 38%)) - secondary text - Primary Violet (
hsl(264 38% 45%)) - active emphasis and focus color - Primary Violet Container (
hsl(270 34% 87%)) - filled action and highlighted slab - Tertiary Sage (
hsl(128 18% 40%)) - supporting accent color - Tertiary Sage Container (
hsl(112 20% 86%)) - soft secondary accent background - Outline Violet Gray (
hsl(259 10% 56%)) - structural outline color - Outline Variant (
hsl(259 10% 84%)) - low-emphasis borders and separators
Role Rules
- Backgrounds should read as tinted light, never as flat white.
- Containers should come from surface-container roles, not arbitrary translucent cards.
- Primary actions should usually use
primary-containerrather than a fully saturated fill. - Secondary emphasis should prefer sage/tertiary-container instead of introducing a new accent.
- Borders should be whisper-soft or transparent. Hard dividers are the exception, not the default.
- Errors should use the error container family rather than loud red fills.
Dynamic Color Principle
When generating new screens, treat color like this:
- Pick a seed color.
- Generate a full tonal family from that seed.
- Map the resulting tones to stable semantic roles.
- Keep the component geometry and motion language unchanged.
Do not solve personalization by introducing a new skin. Personalization comes from seed-driven tonal shifts, not from changing the entire design language.
3. Typography Rules
Primary Font Family: Google Sans Text / Google Sans / Roboto Flex / Roboto
Display Font Family: Google Sans Display / Google Sans / Roboto Flex / Roboto
The typography should feel friendly, modern, and softly engineered. It should not feel editorial-serif, brutalist, developer-minimal, or luxury-fashion. The character is rounded, high-legibility, and quietly optimistic.
Hierarchy & Weights
- Display Headlines: Semibold weight,
clamp(2.75rem, 4vw, 4.75rem), tight tracking (-0.02em), line-height1.1 - Primary Section Headlines: Semibold weight,
2.25remor1.75rem, line-height1.1-1.3 - Card / Panel Titles: Semibold weight,
1.375rem, line-height1.3 - Body Text: Regular weight,
1rem, line-height1.5 - Supporting Text: Regular weight,
0.875rem, line-height1.5 - Eyebrow / Small Label Text:
0.75remor0.875rem, uppercase only when used sparingly, tracking around0.12em - Buttons: Medium to semibold presence through weight and shape, never all-caps shouting
Typography Principles
- Headline scale should feel heroic but rounded, not sharp or corporate.
- Body copy should feel quiet and readable, letting color and space carry the emotional load.
- Eyebrow text is allowed, but only as a small framing device.
- Avoid serif display typography, condensed newspaper styling, and overly technical monospace accents.
- Large headlines should often be left-aligned and allowed to breathe.
4. Component Stylings
Buttons
- Shape: fully pill or near-pill; default radius should feel almost capsule-like
- Primary Button: use
primary-containerwith darker on-primary-container text - Secondary Button: use the sage / tertiary container family
- Ghost Button: no visible container at rest; reveal a tonal hover plate on interaction
- Subtle Button: pale lifted slab, close to the surrounding tonal field
- Hover Behavior: gentle lift (
translateY(-1px)), slight scale, soft shadow bloom - Press Behavior: subtle compression, never dramatic squash
- Tone: polished and tactile, not loud, glossy, metallic, or game-like
Cards & Surfaces
- Corner Radius: large and soft; standard cards should feel more like 28px slabs than desktop cards
- Borders: usually transparent
- Depth: use soft diffused shadow and tonal contrast before introducing visible strokes
- Accent Card: use primary-container tinting, never a neon or glass effect
- Interactive Cards: lift gently and scale microscopically; feel buoyant, not jumpy
Inputs
- Shape: rounded but not full-pill in most cases
- Background: lifted tonal field rather than pure white
- Border: often transparent by default
- Focus State: soft violet glow ring plus tonal shadow bloom
- Placeholder: muted violet-gray
- Overall Feel: touch-friendly, calm, and integrated into the tonal field
Panels, Dialogs, Popovers
- Background: elevated tonal container with slightly brighter internal light
- Border: transparent by default
- Shadow: deeper than cards, but still diffused and soft
- Overlay: blurred and dimmed, never harsh black
- Motion: smooth rise/fade with restrained speed; should feel spatial and deliberate
Switches & Toggles
- Track: soft tonal channel
- Checked Track: primary-container, not fully saturated primary
- Thumb: bright neutral at rest, richer violet when active
- Behavior: smooth slide with calm easing; no spring snap
Skeletons & Loaders
- Skeleton Color: muted tonal slab
- Shimmer: soft highlight pass that feels like light moving over frosted material
- Spinners: clean and minimal; motion should feel controlled and premium
5. Motion Language
Cadence UI should use one motion language plus a static accessibility fallback. Motion is not a style pack. It is part of how the system communicates state and hierarchy.
Motion Personality
- Calm, floaty, and spatial
- Slightly cinematic in hero/showcase moments
- Never bouncy, elastic, or playful-for-its-own-sake
- Built on ease-out curves that feel like soft deceleration
Timing Guidance
- Instant feedback: ~120ms
- Core state change: ~180ms
- Larger surface movement: ~280ms
- Deliberate ambient choreography: ~360ms and above
Approved Motion Patterns
- Soft rise / fade for surface entry
- Hover lift with small shadow bloom
- Press compression with minimal scale-down
- Slow floating or drifting ambient motion for showcase-only compositions
- Breathing accent glows or tonal pulses for decorative context
Motion Rules
- Animate transform, opacity, and shadow; avoid layout-heavy animation
- Ambient motion belongs in showcase or hero surfaces, not on every control
- Exit motion should be faster than enter motion
- Respect reduced/static motion at all times
- Never use bounce, elastic easing, jitter, or constant busy loops across core UI
6. Layout Principles
Structural Direction
Cadence UI layouts should feel like a mobile-first visual language expanded to desktop. Even on large canvases, interfaces should maintain the rounded, stacked, tonal quality of contemporary mobile surfaces.
Spacing & Rhythm
- Use generous spacing to create a sense of premium calm
- Tighten within components, relax between sections
- Default spacing should feel deliberate, not grid-default or generic Tailwind spacing everywhere
- Prefer larger top-level section gaps than dense dashboard compression
Alignment
- Headlines and body content should generally be left-aligned
- Centering is reserved for hero/showcase moments and empty states
- Use layered blocks and offset compositions when you need drama, not arbitrary asymmetry
Showcase / Marketing-like Surfaces
For high-visibility demo pages:
- Use environmental light pools and blurred radial tints
- Layer device-like slabs or floating cards with overlap
- Let one hero composition dominate rather than filling the canvas with equal-weight content
- Create a clear front plane, middle plane, and background glow plane
Product / Application Surfaces
For practical product screens:
- Use tonal grouping instead of borders to define regions
- Keep hierarchy obvious in under two seconds
- Maintain touch-friendly control sizes and generous internal padding
- Avoid the generic "card grid + icon + heading + paragraph" AI layout pattern
7. Design System Notes for Stitch / AI Generation
When using Stitch or any other AI design generator, this file should be treated as the source of truth for design direction.
Language to Use
Use phrases like:
- "softly lit Material You showcase"
- "pastel-tonal slabs with large rounded geometry"
- "warm cream canvas with lilac and sage tonal containers"
- "dynamic color derived from a single seed"
- "ambient spatial motion with restrained hover lift"
Avoid phrases like:
- "multiple skins"
- "glassmorphism"
- "neon"
- "cyber"
- "dark dashboard"
- "minimal monochrome admin panel"
- "brutalist"
Component Prompt Examples
- "Create a dashboard hero using large rounded tonal slabs, warm cream background, lilac and sage containers, and softly staged Material motion."
- "Design a primary action button using a primary-container fill, dark violet text, pill geometry, and a gentle hover lift."
- "Build a settings card with a large 28px slab radius, transparent border, soft diffused shadow, and a tonal input field embedded into the same color family."
- "Generate a dialog that feels like an elevated Material container, with blurred overlay, soft entry rise, and large rounded corners."
Iteration Rules
When refining screens:
- Change one layer at a time: color, spacing, geometry, or motion.
- Preserve the single Material language.
- Prefer changing tonal roles before changing component structure.
- Prefer changing seed color before inventing a new theme family.
- If a screen starts to look like a different design system, pull it back.
Non-Negotiables
- One visual language
- Dynamic color from a seed
- Tonal surfaces over flat white cards
- Large radii
- Calm spatial motion
- Reduced/static fallback
This repository should feel like one memorable system, not a catalog of styling experiments.