Warm Cream Editorial DESIGN.md
Warm, literary, and quietly optimistic. A cream-paper canvas hosts crisp white cards bordered by a hairline. Headlines are set in a high-contrast didone serif (DM Serif Display), generous and editorial, while everything else is a clean humanist sans (Instrument Sans), often locked into ALL-CAPS with wide tracking to act as kickers, captions, and labels. The single brand color is a warm honey-amber that reads as sunlight on paper rather than as a corporate accent.
Screen example: Warm Mood.
Describe your app to generate screens with this visual style.
Read and download the full DESIGN.md

Color palette
- primary
#ECAE36 - on-primary
#292524 - surface
#F9F7F2 - surface-alt
#FFFFFF - surface-muted
#EFEBE6 - surface-accent
#FEF3C7 - on-surface
#44403C - on-surface-variant
#78716C - on-accent
#451A03 - border
#E7E5E4 - muted
#F5F5F4 - error
#EF4444 - chart-1
#ECAE36 - chart-2
#F4A261 - chart-3
#2A9D8F - chart-4
#457B9D - chart-5
#E76F51
Typography
| Token | Font | Size | Weight | Line height |
|---|---|---|---|---|
| display-md | DM Serif Display | 48px | 400 | 1.1 |
| headline-lg | DM Serif Display | 30px | 400 | 1.15 |
| headline-md | DM Serif Display | 24px | 400 | 1.2 |
| headline-sm | DM Serif Display | 18px | 400 | 1.25 |
| body-md | Instrument Sans | 14px | 500 | 1.55 |
| body-sm | Instrument Sans | 13px | 500 | 1.5 |
| label-md | Instrument Sans | 12px | 700 | 1.2 |
| label-uppercase-md | Instrument Sans | 12px | 700 | 1.2 |
| label-uppercase-sm | Instrument Sans | 10px | 700 | 1.2 |
| caption | Instrument Sans | 11px | 500 | 1.3 |
Corner radii
- sm
- 8px
- md
- 14px
- lg
- 16px
- xl
- 24px
- 2xl
- 32px
- full
- 9999px
Spacing
- xs
- 4px
- sm
- 8px
- md
- 16px
- lg
- 24px
- xl
- 32px
- 2xl
- 48px
- gutter
- 24px
- card-padding
- 24px
- section-gap
- 32px
The full DESIGN.md
Copy the source into your project. No sign-in required.
---
version: 1
name: Warm Cream Editorial Mobile
colors:
primary: "#ECAE36"
on-primary: "#292524"
surface: "#F9F7F2"
surface-alt: "#FFFFFF"
surface-muted: "#EFEBE6"
surface-accent: "#FEF3C7"
on-surface: "#44403C"
on-surface-variant: "#78716C"
on-accent: "#451A03"
border: "#E7E5E4"
muted: "#F5F5F4"
error: "#EF4444"
chart-1: "#ECAE36"
chart-2: "#F4A261"
chart-3: "#2A9D8F"
chart-4: "#457B9D"
chart-5: "#E76F51"
typography:
display-md:
fontFamily: "DM Serif Display"
fontSize: 48px
fontWeight: 400
lineHeight: 1.1
letterSpacing: -0.02em
headline-lg:
fontFamily: "DM Serif Display"
fontSize: 30px
fontWeight: 400
lineHeight: 1.15
letterSpacing: -0.01em
headline-md:
fontFamily: "DM Serif Display"
fontSize: 24px
fontWeight: 400
lineHeight: 1.2
letterSpacing: -0.01em
headline-sm:
fontFamily: "DM Serif Display"
fontSize: 18px
fontWeight: 400
lineHeight: 1.25
letterSpacing: 0em
body-md:
fontFamily: "Instrument Sans"
fontSize: 14px
fontWeight: 500
lineHeight: 1.55
letterSpacing: 0em
body-sm:
fontFamily: "Instrument Sans"
fontSize: 13px
fontWeight: 500
lineHeight: 1.5
letterSpacing: 0em
label-md:
fontFamily: "Instrument Sans"
fontSize: 12px
fontWeight: 700
lineHeight: 1.2
letterSpacing: 0em
label-uppercase-md:
fontFamily: "Instrument Sans"
fontSize: 12px
fontWeight: 700
lineHeight: 1.2
letterSpacing: 0.2em
label-uppercase-sm:
fontFamily: "Instrument Sans"
fontSize: 10px
fontWeight: 700
lineHeight: 1.2
letterSpacing: 0.15em
caption:
fontFamily: "Instrument Sans"
fontSize: 11px
fontWeight: 500
lineHeight: 1.3
letterSpacing: 0em
rounded:
sm: 8px
md: 14px
lg: 16px
xl: 24px
2xl: 32px
full: 9999px
spacing:
xs: 4px
sm: 8px
md: 16px
lg: 24px
xl: 32px
2xl: 48px
gutter: 24px
card-padding: 24px
section-gap: 32px
icons:
set: solar
default_variant: linear
active_variant: bold
stroke_weight: 1.5px
default_size: 24px
components:
card:
backgroundColor: "{colors.surface-alt}"
textColor: "{colors.on-surface}"
borderColor: "{colors.border}"
borderWidth: 1px
boxShadow: "0 1px 2px rgba(0,0,0,0.04)"
rounded: "{rounded.2xl}"
padding: "{spacing.card-padding}"
card-accent:
backgroundColor: "{colors.surface-accent}"
textColor: "{colors.on-accent}"
borderColor: "{colors.primary}"
borderWidth: 1px
boxShadow: none
rounded: "{rounded.2xl}"
padding: "{spacing.card-padding}"
button-primary:
backgroundColor: "{colors.primary}"
textColor: "{colors.on-primary}"
typography: "{typography.body-md}"
rounded: "{rounded.xl}"
paddingX: 24px
paddingY: 16px
border: none
boxShadow: "0 8px 20px rgba(236,174,54,0.20)"
gap: 8px
button-secondary:
backgroundColor: "{colors.surface-muted}"
textColor: "{colors.on-surface}"
typography: "{typography.body-md}"
rounded: "{rounded.xl}"
paddingX: 24px
paddingY: 16px
border: none
boxShadow: none
gap: 8px
button-text:
backgroundColor: "transparent"
textColor: "{colors.primary}"
typography: "{typography.label-uppercase-sm}"
rounded: "{rounded.full}"
paddingX: 0px
paddingY: 0px
border: none
boxShadow: none
gap: 4px
button-icon-circular:
backgroundColor: "{colors.surface-alt}"
textColor: "{colors.on-surface}"
size: 48px
rounded: "{rounded.full}"
border: none
boxShadow: "0 1px 2px rgba(0,0,0,0.05)"
iconSize: 24px
input-text:
backgroundColor: "transparent"
textColor: "{colors.on-surface}"
typography: "{typography.body-md}"
borderColor: "{colors.border}"
borderWidth: 1px
boxShadow: none
rounded: "0px"
paddingX: 8px
paddingY: 12px
focusRingColor: "{colors.primary}"
chip:
backgroundColor: "{colors.surface-muted}"
textColor: "{colors.on-surface-variant}"
typography: "{typography.label-uppercase-sm}"
rounded: "{rounded.full}"
paddingX: 12px
paddingY: 6px
border: none
boxShadow: none
chip-active:
backgroundColor: "{colors.surface-alt}"
textColor: "{colors.on-surface}"
typography: "{typography.label-uppercase-sm}"
rounded: "{rounded.md}"
paddingX: 16px
paddingY: 8px
border: none
boxShadow: "0 1px 2px rgba(0,0,0,0.05)"
badge-pill:
backgroundColor: "{colors.surface-muted}"
textColor: "{colors.on-surface-variant}"
typography: "{typography.label-uppercase-sm}"
rounded: "{rounded.full}"
paddingX: 8px
paddingY: 4px
border: none
boxShadow: none
badge-circle:
backgroundColor: "{colors.surface-muted}"
textColor: "{colors.on-surface}"
size: 32px
rounded: "{rounded.full}"
border: none
boxShadow: none
avatar:
size: 48px
rounded: "{rounded.full}"
borderColor: "{colors.surface-alt}"
borderWidth: 2px
boxShadow: "0 1px 2px rgba(0,0,0,0.05)"
list-row:
backgroundColor: "transparent"
textColor: "{colors.on-surface}"
typography: "{typography.body-md}"
paddingX: 0px
paddingY: 12px
border: none
boxShadow: none
gap: 12px
progress-bar:
backgroundColor: "{colors.muted}"
height: 8px
rounded: "{rounded.full}"
border: none
boxShadow: none
segmented-control:
backgroundColor: "{colors.surface-muted}"
rounded: "{rounded.xl}"
padding: 4px
border: none
boxShadow: none
top-app-bar:
backgroundColor: "transparent"
textColor: "{colors.on-surface}"
paddingX: "{spacing.gutter}"
paddingY: 16px
border: none
boxShadow: none
height: 80px
tab-bar:
backgroundColor: "{colors.surface}"
borderColor: "{colors.border}"
borderWidth: 1px
boxShadow: none
paddingX: 48px
paddingY: 16px
height: 80px
tab-item-active:
textColor: "{colors.on-surface}"
typography: "{typography.label-uppercase-sm}"
iconSize: 28px
gap: 4px
border: none
boxShadow: none
tab-item-inactive:
textColor: "{colors.on-surface-variant}"
typography: "{typography.label-uppercase-sm}"
iconSize: 28px
gap: 4px
border: none
boxShadow: none
---
# Warm Cream Editorial Mobile
## Overview
**Warm, literary, and quietly optimistic.** A cream-paper canvas hosts crisp white cards bordered by a hairline. Headlines are set in a high-contrast didone serif (DM Serif Display) — generous and editorial — while everything else is a clean humanist sans (Instrument Sans), often locked into ALL-CAPS with wide tracking to act as kickers, captions, and labels. The single brand color is a warm honey-amber that reads as sunlight on paper rather than as a corporate accent.
The mood lands somewhere between a hardcover memoir, a boutique wellness brand, and a stationery aesthetic. Surfaces feel calm; type does the dramatic work. There is no glossy gradient, no neon, no glassy chrome — just paper, ink, and a single warm highlight.
## Colors
The palette is built around a warm-neutral system with one signal color.
- **Page surface** uses `{colors.surface}` (`#F9F7F2`) — a soft cream paper that warms the entire screen. All chrome sits on this.
- **Cards** use `{colors.surface-alt}` (`#FFFFFF`) with a 1px `{colors.border}` hairline plus a barely-there shadow — they read as printed cards laid on cream paper.
- **`{colors.primary}` (`#ECAE36`)** is the one saturated honey-amber. Reserved for: the primary CTA fill, the active-tab icon, key data emphasis, the focus ring, and the highlight chart bar. Never use it as a card background or page surface.
- **`{colors.surface-accent}` (`#FEF3C7`)** is a very soft butter tint, used only for "highlight" cards (insight callouts) that need to stand apart from white cards. Pair with `{colors.on-accent}` (`#451A03`), a deep warm brown, for body copy inside such cards.
- **`{colors.surface-muted}` (`#EFEBE6`)** is the warm taupe used for secondary buttons, low-emphasis chips, and segmented-control rails.
- **Foreground hierarchy**: `{colors.on-surface}` (`#44403C`) — warm graphite — is the primary text color (we deliberately avoid pure black). `{colors.on-surface-variant}` (`#78716C`) is the muted/metadata stone gray.
- **Categorical chart palette** (`chart-1`..`chart-5`) ranges from amber → coral → teal → blue → terracotta. Use only inside data visualizations (bars, distribution rows, calendar cell tints at low alpha). Never as UI chrome fills.
For low-attention secondary actions, render `button-primary` with `bg-{primary}/10` background and `text-{primary}` foreground — the amber tints down nicely on cream.
## Typography
Two typefaces, sharply role-separated.
- **DM Serif Display** is the *only* heading face. It carries every `display-*`, `headline-*` token. Set at weight 400 (the only weight available), it relies on its inherent high contrast and elegant stress for drama. Used for: greeting headlines, screen titles, mood labels, card titles, insight headers. Always set with negative tracking (`-0.01em` to `-0.02em`) to tighten the wide didone counters.
- **Instrument Sans** handles everything else: body, paragraph, labels, buttons, captions. Weight 500 is the workhorse for body, 700 for labels and emphasis. It never sets headings.
**The signature typographic move is wide-tracked uppercase labels.** `{typography.label-uppercase-md}` and `{typography.label-uppercase-sm}` (letter-spacing `0.2em` and `0.15em` respectively) are everywhere — kickers above headlines, calendar day initials, weekday axis labels, tab-bar captions, badge labels, "EDIT" CTAs. They function as small caps replacements and create a quiet typographic rhythm that pairs with the serif's elegance.
Body copy stays at `body-md` (14px / 500) for paragraphs and at `body-sm` for compressed contexts. Avoid stacking serif headlines within a paragraph — let one serif phrase anchor a card, then sans takes over.
## Spacing & Layout
Generous and breathing. Page gutter is `{spacing.gutter}` (24px). Cards pad inward another 24px (`{spacing.card-padding}`), so content inside a card sits ~48px from the screen edge. Sections separate with `{spacing.section-gap}` (32px) of vertical air.
The vertical rhythm is unhurried — short headlines, short paragraphs, lots of negative space below each section. Avoid dense list-stack layouts; this aesthetic falls apart when crammed. Two-column splits are rare; the dominant pattern is single-column cards stacked.
## Elevation & Depth
Depth is mostly *tonal*, not shadowed. The hierarchy goes:
1. **Page** — cream `{colors.surface}`.
2. **Cards** — white `{colors.surface-alt}` with 1px `{colors.border}` hairline and a whisper shadow `0 1px 2px rgba(0,0,0,0.04)`. The hairline does most of the separation work.
3. **Floating chrome** (icon buttons, the primary CTA, active segmented-control pill) — slightly stronger shadow `0 1px 2px rgba(0,0,0,0.05)` to lift them from the surface they sit on.
4. **Accent cards** — `{colors.surface-accent}` butter tint with a `{colors.primary}/5` border, no shadow.
Never reach for heavy drop shadows, glass blurs, or gradient elevation. The aesthetic depends on flat, paper-like surfaces.
## Shapes
Radii are generous and consistently soft. Cards use `{rounded.2xl}` (32px) — large, almost pillow-like. Buttons and segmented controls use `{rounded.xl}` (24px). Inner pills (chips, badges, calendar cells, the round nav buttons) use `{rounded.full}`. Small chips and the active segmented pill use `{rounded.md}` (14px).
A defining shape rule: **circular elements anchor moments of warmth.** The mood orb behind the hero emoji, the avatar, the round icon buttons, the calendar dots, the active-state circle in the mood selector — circles signal human, soft, organic. Rectangles are reserved for cards and bars.
## Components
### card
Tokens: see frontmatter `{components.card}`.
```html
<section class="bg-white rounded-[32px] p-6 border border-[#E7E5E4] shadow-[0_1px_2px_rgba(0,0,0,0.04)]">
<div class="flex items-center justify-between mb-4">
<h3 class="text-xs font-bold tracking-[0.2em] text-[#78716C] uppercase">[Section kicker]</h3>
<button class="text-xs font-medium text-[#ECAE36]">[Action]</button>
</div>
<p class="text-[14px] font-medium text-[#44403C] leading-relaxed">[Body copy]</p>
</section>
```
### card-accent
For insight / highlight callouts that need to stand apart from the white-card stack.
```html
<div class="bg-[#FEF3C7]/40 rounded-[32px] p-6 border border-[#ECAE36]/10">
<div class="flex items-center gap-3 mb-3">
<div class="size-10 bg-[#ECAE36]/20 rounded-2xl flex items-center justify-center text-[#ECAE36]">
<iconify-icon icon="solar:[icon-name]-bold" class="size-5"></iconify-icon>
</div>
<h4 class="font-['DM_Serif_Display'] text-lg text-[#451A03]">[Insight title]</h4>
</div>
<p class="text-[#451A03]/80 text-sm leading-relaxed">[Insight body with <span class="text-[#ECAE36] font-bold">[emphasized data]</span> woven in.]</p>
</div>
```
### button-primary
```html
<button class="py-4 px-6 bg-[#ECAE36] text-[#292524] rounded-2xl font-bold tracking-wide shadow-[0_8px_20px_rgba(236,174,54,0.20)] flex items-center justify-center gap-2 active:scale-95 transition-transform">
<span>[Action]</span>
<iconify-icon icon="solar:check-circle-bold" class="size-5"></iconify-icon>
</button>
```
### button-secondary
```html
<button class="py-4 px-6 bg-[#EFEBE6] text-[#57534E] rounded-2xl font-medium tracking-wide active:scale-95 transition-transform">
[Action]
</button>
```
### button-icon-circular
The signature back/close button — a white pill on cream paper.
```html
<button class="flex items-center justify-center size-12 bg-white rounded-full shadow-[0_1px_2px_rgba(0,0,0,0.05)] text-[#44403C] active:scale-95 transition-transform">
<iconify-icon icon="solar:[icon-name]-linear" class="size-6"></iconify-icon>
</button>
```
### input-text
Inputs are intentionally minimal — bottom-rule only, no fill. They feel like writing on paper.
```html
<input
type="text"
class="w-full bg-transparent border-b border-[#E7E5E4] py-3 px-2 text-center text-[#44403C] placeholder:text-[#78716C]/50 focus:outline-none focus:border-[#ECAE36] transition-colors font-medium"
placeholder="[Placeholder]"
/>
```
### chip / chip-active
```html
<span class="text-[10px] font-bold tracking-widest text-[#78716C] uppercase bg-[#EFEBE6] px-2 py-1 rounded-full">[Label]</span>
```
```html
<button class="flex-1 py-2 px-4 bg-white rounded-xl text-xs font-bold uppercase tracking-wider text-[#44403C] shadow-[0_1px_2px_rgba(0,0,0,0.05)]">[Active]</button>
```
### segmented-control (composition recipe)
A row of three or more `chip-active`/inactive buttons inside a `bg-[#EFEBE6]/50 p-1 rounded-2xl` rail. Active item gets a white pill with shadow; inactive items are transparent with `text-[#78716C]`.
### list-row
A list row in this aesthetic is rendered borderless with `{spacing.md}` of vertical padding and `{spacing.sm}` gap between an icon, a label, and a trailing value. Dividers are not drawn — the rhythm of card padding does the separation work.
### progress-bar
```html
<div class="h-2 w-full bg-[#F5F5F4] rounded-full overflow-hidden">
<div class="h-full bg-[#ECAE36] w-[42%]"></div>
</div>
```
### avatar
```html
<div class="size-12 rounded-full overflow-hidden border-2 border-white shadow-[0_1px_2px_rgba(0,0,0,0.05)]">
<img alt="[Person]" src="[url]" class="size-full object-cover" />
</div>
```
### top-app-bar (composition recipe)
A header row at `pt-12 pb-4 px-6` with three slots: left circular icon-button, center wide-tracked uppercase label (`{typography.label-uppercase-md}`), right circular icon-button. On home/feed screens, replace the slot system with a left-aligned greeting block (kicker + serif headline) and a single trailing avatar.
### tab-bar / tab-item
A bottom nav with hairline top border and translucent backdrop blur. Active item uses the icon set's `bold` variant in `{colors.on-surface}`; inactive uses `linear` in `{colors.on-surface-variant}`. Both label with `{typography.label-uppercase-sm}`.
```html
<nav class="fixed bottom-0 left-0 right-0 bg-[#F9F7F2]/80 backdrop-blur-lg border-t border-[#E7E5E4] py-4 flex items-center justify-between z-30 px-12">
<button class="flex flex-col items-center gap-1">
<iconify-icon icon="solar:[icon-name]-bold" class="size-7"></iconify-icon>
<span class="text-[10px] font-bold uppercase tracking-wider">[Tab]</span>
</button>
<button class="flex flex-col items-center gap-1 text-[#78716C]">
<iconify-icon icon="solar:[icon-name]-linear" class="size-7"></iconify-icon>
<span class="text-[10px] font-bold uppercase tracking-wider">[Tab]</span>
</button>
</nav>
```
## Iconography
The icon set is **`solar`** at Iconify. Solar's two-variant system maps cleanly to active/inactive states:
- **Inactive / default** → `solar:[name]-linear` (clean line, ~1.5px stroke).
- **Active / emphasis** → `solar:[name]-bold` (filled, soft-cornered).
Default icon size in chrome contexts is **24px**; tab-bar icons step up to **28px**; small inline icons inside chips/list rows are **20px**. Icon color follows the surrounding text color rather than introducing its own.
For emoji-style accents (mood, reaction, expressive markers in stat rows or hero areas), use the **`fluent-emoji`** Iconify set — its softly-modeled, slightly-3D faces are a deliberate aesthetic counterpoint to the otherwise flat paper surfaces and are a signature ingredient of this look. Size them at 20–144px depending on context.
## Illustration & Imagery
**Style / Technique**: Soft naturalistic photography with shallow depth-of-field. Subjects are rendered sharp against gently blurred environmental backgrounds — landscapes, dunes, neutral terrain, ambient light. The aesthetic favors warm-grade portraiture and lifestyle photography that *feels* like ambient daylight on cream paper. Two distinct image vocabularies coexist: (1) realistic photographs as user/profile imagery, and (2) plump, slightly-dimensional emoji glyphs from the `fluent-emoji` set used as expressive markers.
**Palette**: Photography is warm-graded — soft creams, sunlit tans, sage greens, dusty blues, gentle terracottas. The grade should feel adjacent to the cream `{colors.surface}` so images don't fight the page. Avoid cool/blue casts, hard shadows, neon saturation. Emoji glyphs bring their inherent saturated palette and act as bright punctuation against the muted UI.
**Edge treatment**: No outlines. Photos are presented as continuous tone. Emoji glyphs carry their own subtle outline from the source set.
**Shading & light**: Soft natural light, no hard cast shadows. Subjects sit against an out-of-focus environmental gradient. Emoji glyphs use soft cel-shaded volume — a defining warmth-bringer.
**Composition & framing**: Portrait images crop tightly to head-and-shoulders, subject centered, eyes near the upper third. Plenty of background bokeh. Square or 1:1 crops dominate (avatars, profile thumbnails). Emoji glyphs are centered in their containers with generous breathing room.
**Background within the illustration**: Photographic backgrounds are environmental and blurred — never studio-stark, never cut-out. Emoji glyphs sit on a transparent background and are placed inside soft tonal circles (`{colors.surface-accent}/40` or `{colors.primary}/10`) for a halo effect.
**Container styling**: Profile photographs are presented inside a `rounded-full` mask with a 2px white (`{colors.surface-alt}`) ring and the standard `0 1px 2px rgba(0,0,0,0.05)` whisper shadow — a printed-locket feel. Emoji glyphs sit inside `rounded-full` halo circles tinted `bg-[#FEF3C7]/40` or `bg-[#ECAE36]/10` at 32–96px depending on context. Hero emoji moments may add an outer blurred bloom (a `bg-[#FEF3C7]/60 rounded-full blur-3xl` placed beneath via `-z-10`) — the signature warm-glow treatment.
**CSS treatment on the `<img>` element**: `class="size-full object-cover"` — always cover-cropped, never letterboxed. No `mix-blend-mode`, no `opacity` change, no CSS `filter`. Photographs are presented as-is with their natural warm grade.
**Box-shadow on the image or its frame**: Whisper only — `0 1px 2px rgba(0,0,0,0.05)` on the circular frame. Emoji halos may carry a `drop-shadow-xl` Tailwind utility on hero placements but flat halos elsewhere.
**Aspect ratio rule**: 1:1 square for all profile/avatar imagery. Cover-crop preserves the subject. For wider editorial photography (cover images, hero illustrations), use 4:5 portrait inside a `rounded-[32px]` frame.
**Anti-references**: NOT studio-stark, NOT high-contrast b&w, NOT cool/blue grade, NOT illustration, NOT 3D-rendered, NOT cartoon, NOT pixel, NOT line art, NOT pastel-only, NOT collage.
**Style recipe prompt**:
> *Warm-graded natural-light photograph of [SUBJECT], shallow depth-of-field with a softly blurred environmental background (open landscape, dunes, neutral terrain, ambient daylight). Subject sharp and centered, framed at portrait crop. Color grade leans cream, honey, sage, and dusty terracotta — adjacent to a warm cream-paper UI. Soft natural shadows only. No studio backdrop, no hard rim light, no cool/blue cast, no illustration or render — pure ambient photography that reads like a candid editorial moment.*
## Hierarchy & Emphasis
Emphasis is granted, in order, by: (1) DM Serif Display headline weight in `{colors.on-surface}`, (2) the warm-amber `{colors.primary}` reserved for the most actionable element on a screen, (3) wide-tracked uppercase labels which signal *scaffolding* rather than emphasis, and (4) `{colors.on-surface-variant}` for everything that whispers. Numerical highlights inside body copy are bolded and tinted `{colors.primary}` — a literary footnote technique.
## Distinctive Details
1. **The amber bloom.** A blurred warm halo (`bg-[#FEF3C7]/60 blur-3xl`) placed behind the hero element of a screen — it's the warmth radiating from beneath. Use sparingly, once per screen at most.
2. **Serif-and-sans pairing as a structural hierarchy.** Every screen-level statement (`headline-lg`, mood label, insight title) is set in DM Serif Display; its presence marks "this is the headline." Sans is everything that supports it. Never break this rule.
3. **Wide-tracked uppercase as decorative scaffolding.** Letter-spacing `0.2em` ALL-CAPS labels are everywhere — kickers, calendar headers, weekday axis labels, tab text, "EDIT" CTAs. They are the visual equivalent of a fine pinstripe and carry the editorial mood as much as the serif does.
## Do's and Don'ts
### Do
- Set every heading in DM Serif Display, weight 400, with negative tracking.
- Use `{colors.primary}` as a single highlight per screen — CTA, active tab, or one inline data emphasis.
- Render kickers, axis labels, badges, and tab labels in wide-tracked ALL-CAPS sans.
- Keep cards white with a hairline border on a cream page — let the paper tone do the warming.
- Anchor warmth moments with circular forms (avatars, mood orbs, icon buttons, calendar dots).
- Reach for the `fluent-emoji` set when you need expressive human warmth in a data or moment context.
### Don't
- Don't use `{colors.primary}` as a card or page background — it's an accent only.
- Don't apply heavy drop shadows or glassmorphism — separation is hairline + tonal.
- Don't set body or labels in DM Serif Display — serif is exclusively for headings and named values.
- Don't introduce a third typeface or a cool/blue palette — it breaks the warm-paper mood.
- Don't outline photographs or apply a CSS filter — let the natural warm grade carry.
- Don't densely stack rows; this aesthetic depends on generous vertical breathing room.
- Don't use the chart palette as UI chrome — those colors live inside data only.
- Don't pure-black any text — `{colors.on-surface}` (`#44403C`) is the darkest foreground.
These files follow the Google Labs format with Sleek extensions. Learn how to load DESIGN.md in your coding agent.





