SSarvita
Sarvita · Design System

Bold blocks.
Good boy.

Playground is the visual language for every Sarvita surface: saturated color blocks, hard cut-out shadows, chunky rounded geometry, and a voice set in Bricolage Grotesque. Color is always a flat block — never a cross-fade — and the warm cartoon Sar finally feels at home.

Sar

00 — Brand

The marks.

The wordmark, the app icon, and Sar — recognized before a word is read. The wordmark pairs a rotated "S" tile with Bricolage "Sarvita".

Wordmark
SSarvita

Rotated coral "S" tile (−6°, hard shadow) + Bricolage Grotesque Black. Tile and text move as one. Don't unrotate or recolor the text.

App icon
Sarvita app icon

A true 1024² square, opaque white edge-to-edge. The platform masks corners at display time. Mark inset ~12–15%.

Sar · on a block
Sar

Cream Pomeranian, blue-violet cape, teal "S" tag. Mount on a color block with a hard offset drop-shadow — Sar reads as a sticker pressed onto the page.

Icon at scale

Same source PNG at common sizes with a squircle mask. Legible to ~40px; below that the "S" silhouette carries the brand.

180px
120px
76px
60px
40px
29px

01 — Palette

Warm bed, loud blocks.

Click any swatch to copy its hex. A quiet warm sand bed lets the bold "crayon" blocks shout. Every block is one flat pigment — never a cross-fade. On light blocks (gold, lime) use ink text; on the rest use cream.

Tier 1 — Surfaces & ink

Warm sand & cream surfaces, warm-brown ink. Never pure white, never pure black.

sand
#FBF3E9
App background
sand-deep
#F1E6D4
Trough
cream
#FFF7EC
Cards / on-block text
line
#E7D8BE
Hairlines
ink
#2A211B
Primary text
ink-soft
#6F6256
Secondary text
ink-faded
#8A7C6B
Metadata
ink-ghost
#C0B4A2
Disabled

Tier 2 — Brand

Coral = primary action, hero block, brand. Coral-deep = pressed state & the hard button drop-shadow.

coral
#E1593B
Primary / brand
coral-deep
#C9462C
Pressed / shadow

Tier 3 — Crayon blocks

The bold play palette. Used as full-bleed card backgrounds and as the source for pillars, macros and data. Deep and saturated — flat, never gradient.

rust
#C75A36
gold
#E0A12E
green
#2E9E7C
teal
#1A8C78
blue
#2F6FB0
indigo
#3F5DB0
plum
#5E4B8B
navy
#21384F
slate
#6E7A87

Tier 4 — Path pillars

Drawn from the crayon palette and spread across the wheel — slate · amber · red · blue · green — so no two active pillars blur. Five active, two reserved.

root
#6E7A87
Slate · foundation
nutrition
#E0A12E
Gold
cardio
#E1593B
Coral
strength
#2F6FB0
Steel blue
stability
#2E9E7C
Green
sleep
#3F3D8F
Indigo · future
mind
#8A46A8
Violet · future

Macros

Shared with pillars — same biology.

protein
#C75A36
carbs
#E0A12E
fat
#2E9E7C

HR zones

Warm play ramp. No rainbow.

Z1
Z2
Z3
Z4
Z5

State

One each. Error is deeper than brand coral.

success
#2E8C6A
warning
#E0A12E
error
#A6331C
info
#2F7FB5

02 — Typography

Two faces. Big & chunky.

Bricolage Grotesque (Google) — a warm, slightly wonky grotesque — sets the big, heavy headlines and hero numerals. General Sans (Fontshare) carries all UI, body, buttons and data. Mono (JetBrains) is styleguide-only.

Display · Bricolage weight 800
Aa
0123456789

Headlines, section titles, hero numerals. Tracking −0.02em.

Text · General Sans 400 / 500 / 600
Aa
0123456789

All UI, body, buttons, tabular data.

Token Size / line Face Used for
display64 / 62BricolageHero numerals (bio-age)
title44 / 48BricolagePage / hero title
subtitle28 / 34BricolageSection title
headline20 / 28General SansCard & list headlines
body16 / 26General SansPrimary body text
cta16 / 22General SansButtons (bold)
pill13 / 18General SansLabels, chips, eyebrows
meta12 / 20General SansFine print

03 — Illustrations

Sar lives on the blocks.

Sar and the Path-node art are warm, saturated cartoons on transparent backgrounds. Mount them on a color block with a hard offset drop-shadow — the warm fur pops against the saturated block and reads as a pressed sticker.

Sar on coral
coral
Sar on plum
plum
Sar on green
green
Sar on navy
navy

04 — Blocks & shadows

Flat color, hard shadow.

Two rules carry the whole look: color is a flat block (never a cross-fade), and depth is a hard offset shadow (no blur). That cut-out, stacked-sticker feel is the signature.

Gradient + soft blur
Don't

Two-color cross-fade with a soft blurry drop-shadow. Reads generic-AI, fights the illustrations, no personality.

Flat block + hard shadow
Do

A flat coral block with a hard 7px 9px 0 offset shadow. Bold, warm, unmistakably ours.

Hard offset shadow scale
pop · 4 5 0
block · 7 9 0
hero · 10 12 0
Rules
  • · Color blocks are flat single pigments. No gradients in chrome.
  • · Shadows are hard offsets (no blur), tinted warm-ink — never gray haze.
  • · Cream text on saturated blocks; ink text on light blocks (gold, lime) and neutral surfaces.
  • · Buttons get a solid bottom drop-shadow in a darker shade; they "press down" on tap.
  • · Data-viz area charts may use one hue at 100%→0% alpha (alpha falloff only).

05 — Components

Patterns, not pixels.

Reference renderings. Every consuming surface hits these shapes with the same hex values — variance is a bug.

Buttons

Primary = coral + cream + solid bottom drop-shadow. Dark = ink. Ghost = outlined with a hard offset. All press down on tap.

Status pills
analyzing on track close over under

Background = state color @ 14–20% alpha; text = state color, darkened to clear AA.

The path to 100
31.5
↓ 4 years younger · Day 5
Cardio Stability Fuel

Feature stat as a color block. Cream text, Bricolage numeral.

Today's move
73%
142 / 180 min

Single-hue conic ring — not a chrome gradient.

Path pillar tiles
Cardio
Strength
Stability
Sleep
Fuel

Each pillar a flat block tile + hard pop shadow. Fuel (gold) would take ink text at larger sizes.

HR zone ramp
Z1Z2Z3Z4Z5

Green → lime → gold → coral → deep red. No rainbow.

Sar
Sar · daily check-in
Nice work yesterday!

Your Zone 2 session had excellent heart-rate control. One more for the streak.

06 — Tokens

Two surfaces, one vocabulary.

src/theme.css for Tailwind v4 consumers; src/tokens.css for everything else. Names match. Changing one without the other is a bug.

Tailwind v4
@import "tailwindcss";
@import "@sarvita/design-system/theme.css";

<button class="h-btn px-6 bg-coral text-cream
              text-cta font-bold rounded-btn">
  Start your path
</button>
Plain CSS
@import "@sarvita/design-system/tokens.css";

.cta {
  background: var(--sv-color-coral);
  color: var(--sv-color-cream);
  border-radius: var(--sv-radius-btn);
  box-shadow: 0 6px 0 var(--sv-color-coral-deep);
}
Fonts (load in <head>)
<link href="https://fonts.googleapis.com/css2?family=Bricolage+Grotesque:opsz,wght@12..96,500;12..96,600;12..96,700;12..96,800&display=swap" rel="stylesheet">
<link href="https://api.fontshare.com/v2/css?f[]=general-sans@400,500,600,700&display=swap" rel="stylesheet">
Copied