Loading

Every component, in one place.

The reusable Sanaira system: tokens, type, surfaces, product frames, forms and motion. Use it as the reference when customising or adding pages.

Components

Logo

The Care Weave mark with the Manrope wordmark. Light and dark marks swap automatically.

Color tokens

Defined in src/styles/tokens.css for light and dark themes. Section tones may override them locally.

  • Ink--inkPrimary text and icons
  • Muted--mutedSupporting text
  • Surface--surfacePage background
  • Panel--panelRaised surfaces, inputs
  • Mineral teal--tealAccents, active states, editorial italics
  • Sunlit bronze--accentLabels, numerals
  • Sand--sandWarm highlights
  • Button--buttonPrimary action fill
  • Line--lineHairlines and borders
  • Calm blue--infoInformation states
  • Clay red--dangerErrors
  • Focus--focusKeyboard focus ring

Section tones

Art-directed static environments with paper grain. Use <Section tone="…">.

  • Hero meshHomepage, auth and wizard only (animated)tone-hero
  • SageIndividuals, calm introstone-sage
  • MistBrokers, guidancetone-mist
  • SandTeams, comparisontone-sand
  • DawnTestimonials, articlestone-dawn
  • IvoryReading, FAQ, legaltone-ivory
  • ForestDark statement sectionstone-forest

Typography

Manrope for display, Instrument Serif for editorial italics, DM Sans for body and interface text.

Display · h1

Coverage that fits the life you live.

Section · h2

Better choices in three parts.

Heading · h3

Understand your care

Body · 17px

Most coverage journeys begin with premiums. Sanaira begins with the care you already use.

Label

Buttons & links

Containers stay still; arrows move only in the direction they point. Hover any example.

Editorial blocks

Hairlines, numerals and leaf badges — never generic boxed card grids.

  1. Pillars

    Open columns for three or four ideas.

  2. Balanced

    Divided by vertical hairlines.

  3. Numbered

    Editorial numerals in Instrument Serif.

  1. Ledger row

    Icon rows for terms and dimensions.

    Meta
  2. Second row

    Pass numbered for a true sequence.

  • Checklist item. With supporting text.
  • Short item
Audiences
3
Wizard steps
7
Template pages
40
  1. Rail

    Answer

    Step one.

  2. Compare

    Step two.

  3. Decide

    Step three.

Product screenshots

Product visuals are real screens of the Sanaira Coverage Workspace app, captured with scripts/capture-app-screens.mjs and shown with ProductScreenshot (src/components/app).

Broker overview for Asha Rowe: 48 active clients, 7 enrollments in progress, 12 pending client items and 9 upcoming renewals, with the client items that need attention today and recent activity.Broker overview for Asha Rowe: 48 active clients, 7 enrollments in progress, 12 pending client items and 9 upcoming renewals, with the client items that need attention today and recent activity.
Fictional sample data · static application preview

Forms

Labels, hints, optional markers and friendly validation. Leave a field to see its error state.

Helper text sits below.

Includes a show/hide control.

Choice cards

Accordions & tabs

Arrow keys move between tabs.

Underline style for denser contexts.

Wizard controls

Progress, stepper and budget slider from the Find Coverage wizard.

  1. Who
  2. Snapshot
  3. Location
  4. Care
  5. Budget
  6. Preferences
  7. Preview

Alerts

Information

Neutral guidance or demo notices.

Success

A completed action.

Warning

Something needs attention.

Care Weave

One object, two behaviours: the homepage journey (scroll-driven) and the still composition (idle self-turn only).

StillIdle only.Turns slowly, pauses off-screen

Motion & reduced motion

  1. Homepage

    Scroll-driven Care Weave journey, animated hero mesh. Reduced motion shows composed still chapters.

  2. Content pages

    One-time copy reveals, hover arrows, idle weave stills at a slow 44–64 s turn. Paused off-screen.

  3. Auth & wizard

    Calm mesh field and idle weave; wizard steps slide horizontally inside a stable card.

  4. Reduced motion

    All transitions and idle motion stop; content is fully visible without animation.

Motion durations and easing live in tokens.css (--ease-care) and component stylesheets.