Peach Sticker DESIGN.md
Cozy, sticker-bright, sticker-soft. A warm peach-cream surface system populated with chunky black-displayed numerals, fully-rounded pill controls, and oversized kawaii vector mascots that sit on cards like vinyl stickers. The aesthetic feels handmade and affectionate, high-saturation coral for primary action, buttery yellow for celebration, sky blue for calm, all anchored to a deep cocoa text color so nothing reads as washed out.
Screen example: Peach Wellness.
Describe your app to generate screens with this visual style.
Read and download the full DESIGN.md

Color palette
- primary
#FF7E5F - on-primary
#FFFFFF - secondary
#6BC5FF - accent
#FFD23F - surface
#FFF2E8 - surface-alt
#FFFFFF - surface-muted
#F0E0D6 - on-surface
#2D2320 - on-surface-variant
#8A756E - border
#EAD9CE - success
#5EDBA8 - error
#FF4D4D - illus-coral
#FF7E5F - illus-sky
#6BC5FF - illus-butter
#FFD23F - illus-mint
#C9E8C9 - illus-cream
#FFF6E0 - illus-blush
#F4B8B0 - illus-cocoa
#4A2E26
Typography
| Token | Font | Size | Weight | Line height |
|---|---|---|---|---|
| display-xl | Bricolage Grotesque | 80px | 900 | 1 |
| display-lg | Bricolage Grotesque | 60px | 900 | 1 |
| display-md | Bricolage Grotesque | 36px | 900 | 1.05 |
| headline-lg | Bricolage Grotesque | 30px | 900 | 1.1 |
| headline-md | Bricolage Grotesque | 24px | 700 | 1.15 |
| headline-sm | Bricolage Grotesque | 20px | 900 | 1.2 |
| body-lg | Nunito Sans | 18px | 700 | 1.4 |
| body-md | Nunito Sans | 14px | 600 | 1.45 |
| body-sm | Nunito Sans | 12px | 600 | 1.35 |
| label-lg | Nunito Sans | 16px | 900 | 1.2 |
| label-md | Nunito Sans | 13px | 800 | 1.2 |
| label-sm | Nunito Sans | 10px | 700 | 1 |
Corner radii
- sm
- 12px
- md
- 18px
- lg
- 20px
- xl
- 28px
- full
- 9999px
Spacing
- xs
- 4px
- sm
- 8px
- md
- 16px
- lg
- 20px
- xl
- 24px
- 2xl
- 32px
- gutter
- 24px
- card-padding
- 24px
- section-gap
- 20px
The full DESIGN.md
Copy the source into your project. No sign-in required.
---
version: 1
name: Peach Sticker Mobile
colors:
primary: "#FF7E5F"
on-primary: "#FFFFFF"
secondary: "#6BC5FF"
accent: "#FFD23F"
surface: "#FFF2E8"
surface-alt: "#FFFFFF"
surface-muted: "#F0E0D6"
on-surface: "#2D2320"
on-surface-variant: "#8A756E"
border: "#EAD9CE"
success: "#5EDBA8"
error: "#FF4D4D"
illus-coral: "#FF7E5F"
illus-sky: "#6BC5FF"
illus-butter: "#FFD23F"
illus-mint: "#C9E8C9"
illus-cream: "#FFF6E0"
illus-blush: "#F4B8B0"
illus-cocoa: "#4A2E26"
typography:
display-xl:
fontFamily: Bricolage Grotesque
fontSize: 80px
fontWeight: 900
lineHeight: 1
letterSpacing: -0.03em
display-lg:
fontFamily: Bricolage Grotesque
fontSize: 60px
fontWeight: 900
lineHeight: 1
letterSpacing: -0.04em
display-md:
fontFamily: Bricolage Grotesque
fontSize: 36px
fontWeight: 900
lineHeight: 1.05
letterSpacing: -0.02em
headline-lg:
fontFamily: Bricolage Grotesque
fontSize: 30px
fontWeight: 900
lineHeight: 1.1
letterSpacing: -0.02em
headline-md:
fontFamily: Bricolage Grotesque
fontSize: 24px
fontWeight: 700
lineHeight: 1.15
letterSpacing: -0.01em
headline-sm:
fontFamily: Bricolage Grotesque
fontSize: 20px
fontWeight: 900
lineHeight: 1.2
letterSpacing: -0.01em
body-lg:
fontFamily: Nunito Sans
fontSize: 18px
fontWeight: 700
lineHeight: 1.4
letterSpacing: 0em
body-md:
fontFamily: Nunito Sans
fontSize: 14px
fontWeight: 600
lineHeight: 1.45
letterSpacing: 0em
body-sm:
fontFamily: Nunito Sans
fontSize: 12px
fontWeight: 600
lineHeight: 1.35
letterSpacing: 0em
label-lg:
fontFamily: Nunito Sans
fontSize: 16px
fontWeight: 900
lineHeight: 1.2
letterSpacing: 0.05em
label-md:
fontFamily: Nunito Sans
fontSize: 13px
fontWeight: 800
lineHeight: 1.2
letterSpacing: 0em
label-sm:
fontFamily: Nunito Sans
fontSize: 10px
fontWeight: 700
lineHeight: 1
letterSpacing: 0em
rounded:
sm: 12px
md: 18px
lg: 20px
xl: 28px
full: 9999px
spacing:
xs: 4px
sm: 8px
md: 16px
lg: 20px
xl: 24px
2xl: 32px
gutter: 24px
card-padding: 24px
section-gap: 20px
icons:
set: material-symbols
default_variant: rounded
active_variant: rounded
stroke_weight: 2.5px
default_size: 24px
components:
card:
backgroundColor: "{colors.surface-alt}"
textColor: "{colors.on-surface}"
rounded: "{rounded.lg}"
padding: "{spacing.card-padding}"
border: none
boxShadow: "0 3px 12px rgba(0,0,0,0.06)"
card-selected:
backgroundColor: "{colors.surface-alt}"
textColor: "{colors.on-surface}"
borderColor: "{colors.primary}"
borderWidth: 4px
rounded: "{rounded.lg}"
padding: 16px
boxShadow: "0 3px 12px rgba(0,0,0,0.06)"
button-primary:
backgroundColor: "{colors.primary}"
textColor: "{colors.on-primary}"
typography: "{typography.label-lg}"
rounded: "{rounded.full}"
paddingX: 32px
paddingY: 22px
border: none
boxShadow: "0 8px 30px rgba(255,126,95,0.3)"
button-secondary:
backgroundColor: "{colors.surface-alt}"
textColor: "{colors.on-surface}"
typography: "{typography.label-md}"
rounded: "{rounded.full}"
paddingX: 24px
paddingY: 14px
border: none
boxShadow: "0 2px 8px rgba(0,0,0,0.04)"
button-text:
backgroundColor: transparent
textColor: "{colors.on-surface}"
typography: "{typography.body-lg}"
paddingX: 0px
paddingY: 8px
border: none
boxShadow: none
button-icon:
backgroundColor: "{colors.primary}"
textColor: "{colors.on-primary}"
size: 48px
rounded: "{rounded.full}"
iconSize: 28px
border: none
boxShadow: "0 4px 16px rgba(255,126,95,0.3)"
button-icon-soft:
backgroundColor: "{colors.surface-alt}"
textColor: "{colors.on-surface}"
size: 40px
rounded: "{rounded.full}"
iconSize: 22px
border: none
boxShadow: "0 2px 8px rgba(0,0,0,0.04)"
input-text:
backgroundColor: "{colors.surface-alt}"
textColor: "{colors.on-surface}"
typography: "{typography.body-md}"
rounded: "{rounded.md}"
paddingX: 18px
paddingY: 14px
border: none
boxShadow: "0 2px 8px rgba(0,0,0,0.04)"
focusRingColor: "{colors.primary}"
chip:
backgroundColor: "{colors.surface-muted}"
textColor: "{colors.on-surface-variant}"
typography: "{typography.label-md}"
rounded: "{rounded.full}"
paddingX: 14px
paddingY: 8px
border: none
boxShadow: none
chip-active:
backgroundColor: "{colors.primary}"
textColor: "{colors.on-primary}"
typography: "{typography.label-md}"
rounded: "{rounded.full}"
paddingX: 14px
paddingY: 8px
border: none
boxShadow: none
badge-pill:
backgroundColor: "{colors.accent}"
textColor: "{colors.on-surface}"
typography: "{typography.label-sm}"
rounded: "{rounded.full}"
paddingX: 10px
paddingY: 4px
border: none
boxShadow: none
badge-circle:
backgroundColor: "{colors.primary}"
textColor: "{colors.on-primary}"
typography: "{typography.label-sm}"
size: 24px
rounded: "{rounded.full}"
border: none
boxShadow: none
avatar:
backgroundColor: "{colors.surface-muted}"
size: 48px
rounded: "{rounded.full}"
border: none
boxShadow: none
list-row:
backgroundColor: "{colors.surface-alt}"
textColor: "{colors.on-surface}"
typography: "{typography.body-lg}"
rounded: "{rounded.lg}"
paddingX: 20px
paddingY: 18px
border: none
boxShadow: "0 3px 12px rgba(0,0,0,0.06)"
toggle-switch:
backgroundColor: "{colors.surface-muted}"
width: 56px
height: 32px
rounded: "{rounded.full}"
border: none
boxShadow: none
toggle-switch-on:
backgroundColor: "{colors.primary}"
width: 56px
height: 32px
rounded: "{rounded.full}"
border: none
boxShadow: none
top-app-bar:
backgroundColor: "{colors.surface}"
textColor: "{colors.on-surface}"
typography: "{typography.headline-lg}"
paddingX: "{spacing.gutter}"
paddingY: 16px
border: none
boxShadow: none
---
# Peach Sticker Mobile
## Overview
**Cozy, sticker-bright, sticker-soft.** A warm peach-cream surface system populated with chunky black-displayed numerals, fully-rounded pill controls, and oversized kawaii vector mascots that sit on cards like vinyl stickers. The aesthetic feels handmade and affectionate — high-saturation coral for primary action, buttery yellow for celebration, sky blue for calm — all anchored to a deep cocoa text color so nothing reads as washed out.
The mood is playful but legible: typography does the structural work (very heavy display weights, generous tracking compression on numerals), while imagery does the emotional work (rounded illustrated characters with rosy blush cheeks). It's an aesthetic that wants to make daily-use moments feel friendly without becoming childish — adjacent to greeting-card and stationery design rather than children's app design.
## Colors
The system splits into three palettes that must not bleed:
- **Surface palette** — `{colors.surface}` is the warm cream page background; `{colors.surface-alt}` is pure white, used exclusively for cards and lifted controls; `{colors.surface-muted}` is the dustier peach used for inactive toggle tracks, inactive day pills, and other "off" states.
- **Brand & action palette** — `{colors.primary}` (warm coral) is the single saturated CTA color, used for the primary button, the active toggle fill, the active day-pill, and selection borders. `{colors.secondary}` (sky blue) and `{colors.accent}` (butter yellow) appear in support roles: accent for streak/celebration moments at low alpha tints, secondary as a calm complement reserved for atmospheric or supporting contexts.
- **Text palette** — `{colors.on-surface}` is a near-black warm cocoa; `{colors.on-surface-variant}` is a dusty mauve-taupe for metadata, helper copy, and inactive labels. The `border` color is a faint peach-tan, used only when a hairline separation is necessary; most separation is achieved with shadow + white-on-cream contrast.
Illustration colors (`illus-*`) are reserved for generated character art only. Never use them as UI fills, button backgrounds, or chip colors. Conversely, the `primary` coral is for chrome only; it should not be used as a fill inside a generated illustration.
## Typography
Two families do all the work:
- **Bricolage Grotesque** at weight 900 (Black) handles every display, headline, and numeric centerpiece. Its compressed, slightly-wonky display cut is what gives the aesthetic its toy-poster character. Tracking is pulled tighter (`-0.02em` to `-0.04em`) at large sizes so numerals feel like a single sculpted block.
- **Nunito Sans** at weights 600–900 covers all body, label, and metadata copy. The very heavy weights (800/900) for short labels are a load-bearing decision — labels in this system shout politely.
Role assignments:
- `display-xl` / `display-lg` — clock-style numerals and hero counters; tracking-tight, weight 900.
- `display-md` / `headline-lg` — top-of-screen titles.
- `headline-sm` — card title inside selection tiles.
- `body-lg` — emphasized in-card primary text (e.g. row label).
- `body-md` / `body-sm` — descriptive copy and helper text.
- `label-lg` — primary button text, uppercased with `+0.05em` tracking.
- `label-md` — chip / secondary button text.
- `label-sm` — initial inside a day-pill, badge digits.
There is no italic except for a single inline-italic helper-copy gesture used to mark locked / unavailable states.
## Spacing & Layout
Generous and breathing. Screen gutters are `{spacing.gutter}` (24px). Cards stack with `{spacing.lg}` (20px) between them — this gap is intentionally a touch larger than feels efficient, because the empty cream surface between cards is part of the aesthetic. Internal card padding is `{spacing.card-padding}` (24px), giving content room around oversized numerals and stickered illustrations.
Grids of selection tiles use 2 columns with `{spacing.md}` gap. Vertical rhythm inside cards stacks at 12–16px between sub-blocks.
## Elevation & Depth
Depth is conveyed by **soft drop-shadows on white cards over a cream surface** — never by borders. The canonical shadow is `0 3px 12px rgba(0,0,0,0.06)` for resting cards. Primary buttons carry a colored shadow tinted with the button's own hue: `0 8px 30px rgba(255,126,95,0.3)` — this creates a warm "glow" beneath CTAs that reinforces the sticker / candy quality of the aesthetic.
Press states scale the element to `0.95–0.98` (no shadow change). Hover is generally a no-op on touch surfaces.
There is no glass / blur / translucency vocabulary. The system is opaque and warm.
## Shapes
Radii are large and pillow-soft:
- `{rounded.sm}` (12px) — never used on chrome; rare inline accents.
- `{rounded.md}` (18px) — inputs.
- `{rounded.lg}` (20px) — the workhorse card and list-row radius.
- `{rounded.xl}` (28px) — large hero containers.
- `{rounded.full}` — every button, every chip, every toggle, every avatar / day-pill / icon-button. **Default to `full` for any interactive control that isn't a card.**
The shape philosophy: cards are squircle-ish soft rectangles; controls are pills. There are no sharp 90° interactive elements anywhere.
## Components
### card
Resting white surface on the cream page. Soft drop-shadow, no border (selected state is the exception — see `card-selected`).
```html
<div class="bg-white rounded-[20px] p-6 shadow-[0_3px_12px_rgba(0,0,0,0.06)]">
<h3 class="text-xl font-black font-heading">[Card title]</h3>
<p class="text-sm text-[#8A756E] mt-2">[Body copy]</p>
</div>
```
### card-selected
For selection-grid tiles, selection is shown via a 4px coral border that replaces some inner padding (so layout doesn't jump). A small coral check-circle pinned top-right confirms.
```html
<div class="bg-white rounded-[20px] p-4 shadow-[0_3px_12px_rgba(0,0,0,0.06)] border-4 border-[#FF7E5F] relative">
<div class="absolute top-2 right-2 size-6 rounded-full bg-[#FF7E5F] text-white flex items-center justify-center">
<iconify-icon icon="material-symbols:check-rounded" class="size-4"></iconify-icon>
</div>
<!-- tile content -->
</div>
```
For locked / unavailable tiles in the same grid, render the tile with `grayscale opacity-60` and overlay a centered white-translucent lock badge:
```html
<div class="absolute inset-0 flex items-center justify-center z-10">
<div class="bg-white/80 p-2 rounded-full shadow-md">
<iconify-icon icon="solar:lock-bold" class="size-6"></iconify-icon>
</div>
</div>
```
### button-primary
The shouting CTA. Uppercased, heavy-tracked label; coral fill; warm coral-tinted glow shadow. Always pill-shaped.
```html
<button class="px-8 py-[22px] rounded-full bg-[#FF7E5F] text-white font-black text-base tracking-[0.05em] uppercase shadow-[0_8px_30px_rgba(255,126,95,0.3)] active:scale-95 transition-transform">
[LABEL]
</button>
```
For full-width hero CTAs, add `w-full max-w-xs`. The `text-2xl` size is used for the largest hero variant (oversized hero CTA at ~24px).
### button-secondary / button-text
Secondary is a white pill with the soft generic shadow. `button-text` is a plain bold underlined link, used for low-attention dismiss actions ("Snooze for 9m"–style negative-space CTAs):
```html
<button class="text-lg font-bold text-[#2D2320]/70 underline underline-offset-4 decoration-2 hover:text-[#2D2320]">
[Tertiary action]
</button>
```
### button-icon
Circular coral floating action button with the same coral glow as `button-primary`, used wherever a single-icon "add / new" affordance is needed.
```html
<button class="size-12 rounded-full bg-[#FF7E5F] text-white flex items-center justify-center shadow-[0_4px_16px_rgba(255,126,95,0.3)] active:scale-95">
<iconify-icon icon="material-symbols:[icon-name]-rounded" class="size-7"></iconify-icon>
</button>
```
For the soft variant (e.g. a back-arrow in the top app bar), use `button-icon-soft`: smaller size-10, white background with a subtle generic shadow, on-surface foreground.
### toggle-switch
iOS-style pill toggle. Track is `{colors.surface-muted}` when off and `{colors.primary}` when on. White thumb at 20px diameter with 6px inset.
```html
<label class="relative inline-flex items-center cursor-pointer">
<input type="checkbox" class="sr-only peer" checked />
<div class="w-14 h-8 bg-[#F0E0D6] rounded-full peer peer-checked:bg-[#FF7E5F] peer-checked:after:translate-x-6 after:content-[''] after:absolute after:top-[6px] after:left-[6px] after:bg-white after:rounded-full after:h-5 after:w-5 after:transition-all"></div>
</label>
```
### chip / chip-active
Small pill labels. The signature use is the **day-of-week pill row**: a strip of 7 size-6 circles, each containing a single bold uppercase initial in `{typography.label-sm}`. Active days fill coral with white text; inactive days fill `surface-muted` with `on-surface-variant` text. This is a composition of `chip` + `chip-active` at circular size — not a separate component.
```html
<div class="flex gap-2">
<div class="size-6 rounded-full bg-[#FF7E5F] text-white flex items-center justify-center text-[10px] font-bold">M</div>
<div class="size-6 rounded-full bg-[#F0E0D6] text-[#8A756E] flex items-center justify-center text-[10px] font-bold">T</div>
<!-- ... -->
</div>
```
### badge-pill / badge-circle
Pill badges use accent-yellow fill at full or 20% alpha; circular badges use the primary coral. The accent-tint card recipe — `bg-[#FFD23F]/20` with a `border-2 border-[#FFD23F]/30` — is the standard recipe for celebratory / streak callouts.
### list-row
Cards-as-rows. Use `{components.card}` styling but with the row's content (label left, control right). Reserve `list-row` for screens that genuinely list multiple homogeneous items; otherwise just compose with `card`.
### top-app-bar
Flat — no shadow, no fill differentiation from the cream page. Just generous top padding (`pt-16`) and a left-aligned heavy display title with an optional right-aligned `button-icon` for the primary screen action.
```html
<div class="flex items-center justify-between px-6 pt-16 pb-6">
<h1 class="text-4xl font-black font-heading tracking-tight">[Screen title]</h1>
<button class="size-12 rounded-full bg-[#FF7E5F] text-white flex items-center justify-center shadow-[0_4px_16px_rgba(255,126,95,0.3)]">
<iconify-icon icon="material-symbols:[icon-name]-rounded" class="size-7"></iconify-icon>
</button>
</div>
```
### Composition recipes (not components)
- **Hero numeral block** — render the value in `display-xl` or `display-lg` with `tracking-tighter` next to a smaller `text-xl font-bold text-muted-foreground` qualifier (e.g. unit, suffix). The qualifier baseline-aligns with the numeral via `flex items-baseline gap-2`.
- **Disabled / inactive item** — wrap the entire card in `opacity-60` and recolor the headline numeral to `on-surface-variant`; do not change the card's shadow or radius.
- **Streak / celebratory callout** — `bg-[#FFD23F]/20` fill, `border-2 border-[#FFD23F]/30`, padding `{spacing.lg}`, an accent-yellow circle holding a single emoji or icon on the left.
- **Accent-tint card** — to reserve a low-attention non-white card for special content, use any palette color at `/20` alpha background with a `border-2` of the same color at `/30` alpha. Never use full-saturation accent or primary as a card fill.
## Iconography
`material-symbols:*-rounded` is the primary chrome icon set — its softened terminals match the pillow-shaped pill controls. `solar:*-bold` and `hugeicons:*` appear for icons not available in material-symbols-rounded (lock states, directional chevrons). Stroke-weight feel is medium-heavy; never use thin / light variants. Default chrome size is 24px (`size-6`); FAB-scale icons are 28px (`size-7`); inline label icons are 16–18px.
For decorative emoji moments (e.g. a streak fire), `fluent-emoji:*` is acceptable — used sparingly inside accent-tint callouts only, never as a primary-action icon.
## Illustration & Imagery
Illustrations are the soul of this aesthetic — the chrome is plain enough that the imagery does most of the personality work. Treat them as the most carefully-styled element on the page.
- **Style / Technique**: Flat 2D vector kawaii sticker illustrations. Each character is a single rounded silhouette with a thick uniform dark-cocoa outline (`{colors.illus-cocoa}`, ~6–8% of the canvas width in stroke). Big sparkling cartoon eyes (two large dark circles, each with two white highlight dots), a tiny smiling mouth, and two blush-pink oval cheek dots. Simplified anatomy — no fingers, no toes, often no limbs at all. Sticker-style: each illustration reads as a die-cut peel-off vinyl sticker.
- **Palette**: 2–4 colors per illustration drawn from `{colors.illus-coral}`, `{colors.illus-sky}`, `{colors.illus-butter}`, `{colors.illus-mint}`, `{colors.illus-cream}`, `{colors.illus-blush}`, plus `{colors.illus-cocoa}` for the outline and facial features. Saturation is medium-soft — not pastel, not neon. Each character body is one flat dominant color with at most one secondary fill (belly, ear, accent) and the universal blush-pink cheek dots.
- **Edge treatment**: Always outlined. Uniform stroke weight, dark cocoa color, slightly rounded line-caps. Outlines are NEVER skipped, NEVER tapered, NEVER colored to match the fill. The outline IS the aesthetic.
- **Shading & light**: Flat fills with at most ONE soft tonal step (e.g. a slightly darker rim along one curve to suggest volume), and a small white specular highlight inside the eyes. No gradients, no airbrush, no cel-shaded planes.
- **Composition & framing**: Subject is centered, fills 70–85% of the canvas, faces forward (toward the viewer), and sits on a transparent background. Generous symmetrical margin around the silhouette so the sticker reads cleanly when placed over a card. Subjects are roughly square in aspect.
- **Background within the illustration**: Always transparent PNG. The character must read on any surface color in the system.
- **Container styling**: Most illustrations are placed *unframed* — directly on a card surface as a sticker. When pinned to a card corner, size is roughly 56×56px (`w-14 h-14`) with a small tilt (`rotate-[-12deg]` to `rotate-[8deg]`) to reinforce the stuck-on-by-hand sticker feeling. When used as a tile centerpiece, size is roughly 96×96px (`w-24 h-24`) with no rotation. When used as a hero (alarm-ringing-style screens), size scales up to 288×288px (`w-72 h-72`) and may sit over an atmospheric gradient backdrop.
- **CSS treatment on the `<img>` element**: `object-contain` is implicit (illustrations are square PNGs). The signature treatments are: `drop-shadow-sm` for the small sticker shadow under each character (this is what sells the sticker quality — a tiny offset shadow as if the vinyl is sitting just above the surface); for hero-scale uses, `drop-shadow-2xl` for a more dramatic floating feel. For locked / unavailable states, apply `grayscale opacity-60` (or `grayscale-[50%]` for partial) — never blur, never recolor.
- **Box-shadow on the image or its frame**: None on the container — the illustration's own `drop-shadow-sm` does the work. Containers stay flat shadow-wise; the sticker has its own micro-shadow.
- **Aspect ratio rule**: Always 1:1 square. Crop / pad the source to a square canvas before placement. Do not stretch.
- **Atmospheric / scenic imagery**: Beyond character stickers, the system also accepts soft minimal landscape backdrops — gradient sky from cream-peach (bottom) to soft sky-blue (top), with simplified rolling hills as flat shapes in 2–3 mint/sage tones, and a small cluster of rounded white clouds. No outlines on these landscapes (this is the one place the outline rule is suspended — atmospheres are flat, character stickers are outlined). Used as full-screen backgrounds on hero / full-bleed moments only.
- **Anti-references**: NOT 3D, NOT claymation, NOT photoreal, NOT pastel-washed-out, NOT line-art-only (no fills), NOT realistic anatomy, NOT detailed textures, NOT painterly, NOT pixel art, NOT chibi-anime (the proportions are rounder and simpler than anime chibi).
- **Style recipe prompt**: *Flat 2D vector kawaii sticker illustration of [SUBJECT], centered on a transparent background, square 1:1 canvas. Single rounded silhouette with a thick uniform dark cocoa-brown outline (#4A2E26) of consistent stroke weight. Big sparkling cartoon eyes (two large dark cocoa circles each with two small white highlight dots), a tiny simple smiling mouth, two soft pink-blush oval cheek dots. Body filled with a single medium-saturation color from this palette: warm coral, sky blue, butter yellow, soft mint, cream, blush pink. At most one secondary accent fill (belly, ear, tuft). Flat fills with at most one subtle tonal step for volume, no gradients, no airbrush, no cel-shaded planes. Subject fills 70–85% of canvas, faces forward, generous symmetrical margins. Reads as a die-cut vinyl peel-off sticker. NOT 3D, NOT claymation, NOT photoreal, NOT pastel-washed-out, NOT realistic anatomy, NOT pixel art, NOT anime.*
## Hierarchy & Emphasis
Weight (Bricolage Black 900) and *size* carry hierarchy more than color does. Coral is reserved — it appears at most twice on a screen (the FAB and an active toggle, or a primary CTA). Inactive / disabled states drop the entire element to `opacity-60` rather than recoloring piece by piece. Metadata always whispers in `on-surface-variant` at body-sm; never in coral.
## Distinctive Details
1. **Sticker-on-card placement**: oversized illustrated mascots pinned to card corners with a slight rotation (`rotate-[-12deg]` to `rotate-[8deg]`) and a `drop-shadow-sm`. This is the single most identifying gesture — flat cards become tactile when the sticker breaks the corner.
2. **Coral-tinted glow shadow on primary CTAs**: `0 8px 30px rgba(255,126,95,0.3)` rather than a neutral shadow. Buttons appear to *radiate* warmth.
3. **Day-of-week initial pills**: a strip of seven `size-6` circles with single bold initials, fully replacing what other systems do with checkboxes or 5-letter abbreviations. Becomes a decorative micro-pattern in itself.
## Do's and Don'ts
### Do
- Use Bricolage Grotesque Black for any number that matters; tracking-tight at large sizes.
- Default every interactive control (buttons, chips, toggles, day-pills) to fully rounded.
- Stick to the white-card-on-cream-surface contrast; let shadow do the lifting.
- Pin character stickers to card corners with a small rotation and a `drop-shadow-sm`.
- Reserve coral for primary action — at most one or two coral elements per screen.
- Use `opacity-60` (with optional `grayscale`) to communicate locked / disabled / past states.
### Don't
- Don't use coral as a card background — it's a chrome accent, never a surface.
- Don't add borders to resting cards (selected state is the only exception, with a 4px coral border).
- Don't use thin or light icon variants — chrome icons are always rounded, medium-heavy.
- Don't reach for gradient fills or glassy backdrop blurs — the system is opaque and warm.
- Don't use the illustration palette colors (`illus-*`) as UI fills; they live inside generated PNGs only.
- Don't use Playfair Display or JetBrains Mono — they're loaded historically but not part of this aesthetic's working set.
- Don't render character illustrations without their dark cocoa outline; the outline is the aesthetic.
- Don't crop a sticker tightly to its silhouette; preserve its symmetric square margin.
These files follow the Google Labs format with Sleek extensions. Learn how to load DESIGN.md in your coding agent.





