Design Tokens

Source of truth synced from Figma. Edit source/*.json then run pnpm tokens:generate

Primary

Neutrals for backgrounds and text

Primary#ffffff
white
Primary#fafafa
gray
Primary#f7f6f3
warm-gray-1
Primary#e4e3dc
warm-gray-2
Primary#7f7a75
brown
Primary#424242
charcoal
Primary#222222
ink
Primary#0f0e12
black

Accent

Brand accent colors

Marketing#ff4f10
coral
Marketing#1f73e0
lagoon

Coral and Lagoon are the only colors used in marketing surfaces.

Product UI / Status palette

Available in product UI for status and data-viz. Do NOT use in marketing surfaces.

brick#992616
terracotta#ce4739
mandarin#dd6541
marigold#ff8e2d
pine#2d562a
emerald#007637
fog#b9c5c6
sky#5ca5d6
indigo#433d8f
lavender#918cd9
cashmere#ac8c4d
chestnut#7a4310
teak#291b02

Semantic

UI intent mappings (light/dark adaptive)

Core

backgroundPage backgrounds
foregroundDefault text color
cardCard/surface backgrounds
card-foregroundText on cards
borderBorders, dividers
inputInput field borders
ringFocus rings

Actions & State

primaryMain brand actions (buttons, links)
primary-foregroundText on primary elements
secondarySecondary actions
secondary-foregroundText on secondary
mutedSubtle backgrounds
muted-foregroundSecondary text
accentHighlights, hover states
accent-foregroundText on accent
destructiveErrors, warnings
destructive-foregroundText on destructive

Tokens in Action

How semantic colors apply to components

primary

Main brand

secondary

Alternative

accent

Highlights

New

muted

Backgrounds

Secondary text

destructive

Errors

Alert

Buttons

Badges

Default
Secondary
Outline
Error

Inputs

background

Default

muted

Secondary

dark

Contrast

backdrop-blur

Air 1

Typography

Everyday Sans primary, Rhymes Display decorative

Primary — Everyday Sans

Better Air. Everyday.

LightRegularMediumSemi-Bold

Display — Rhymes Display

Healthy life at home.

Mono — System

0123456789 — const air = true;

Size Scale

display
Everyday
6rem
xxl
Everyday
5rem
xl
Everyday
3.75rem
l
Everyday
2.5rem
m
Everyday
1.75rem
s
Everyday
1.25rem
body-xlThe quick brown fox1.5rem
body-lThe quick brown fox1.125rem
body-mThe quick brown fox1rem
body-sThe quick brown fox0.875rem
captionThe quick brown fox0.75rem

Wordmark

EverydayEveryday

Weight & rhythm

Two weights. Three colors. That’s the rhythm.

With Everyday Sans, almost everything is regular or medium. Hierarchy comes from color and size first, weight second.

Weights

Regular — body & most prosefont-normal · 400
Medium — headings & inline emphasisfont-medium · 500
Semibold — rare, only for calloutsfont-semibold · 600
Bold — almost neverfont-bold · 700

Color rhythm

Foreground — headings, primary copyink · #222
Muted-foreground — body-secondarycharcoal · #424242
Muted-foreground @ 60% — tertiary, captionsopacity-60
Primary — links, focused brand momentscoral

In context

Safety

Know what you breathe

Safety means knowing when something invisible might be harmful. We monitor key toxins like carbon monoxide and formaldehyde to detect threats early — providing peace of mind.

Freshness

Air that moves freely

Freshness is about how air moves and renews itself. By tracking CO₂ levels, air exchange rates, and thermal layering, we help users understand how well-ventilated their environment is.

Cleanliness

Clarity you can feel

We interpret cleanliness not just as the absence of dust, but as a feeling of clarity and calm. By measuring key air quality indicators we translate invisible data into intuitive insights.

Spacing

Base scale for gaps and padding

10.25rem
20.5rem
30.75rem
41rem
61.5rem
82rem
123rem

Border Radius

Rounded corners for UI elements

none0px
sm0.25rem
md0.5rem
lg0.75rem
xl1rem
2xl1.5rem
full9999px

Effects

Blur, shadow, and opacity values

Blur

none0
sm4px
md8px
lg19px
xl24px
2xl40px

Shadow

sm
md
lg
xl
2xl

Opacity

0
10
30
50
70
90
100

Better Air. Everyday.