Petal Whisper

Rounded UI for AI assistants: rose actions on cool grey-blue neutrals, red-orange errors, and short bouncy motion that keeps text readable.

All themes
Fonts
Geist
Corner radius
12 px
Made for
ai assistant, productivity, consumer apps
Mood
playful, friendly
$ npx uix-ui@latest theme petal-whisper
Light

Good morning, Mira

Here is how Shapla Tea did this week.

MR

Revenue

৳48,200

+12.5%

Orders

312

-3.1%
LiveDraft
Dark

Good morning, Mira

Here is how Shapla Tea did this week.

MR

Revenue

৳48,200

+12.5%

Orders

312

-3.1%
LiveDraft

Colours

Six ramps from light (50) to dark (950). Click a swatch to copy its hex code.

primary

secondary

neutral

success

warning

error

Type

Display · Geist

Good tea, delivered fresh

Orders, stock and payouts

Everything a small shop needs

ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz 0123456789

Body · Geist

Pay monthly, cancel any time. Your first order ships the same day.

Pay monthly, cancel any time. Your first order ships the same day.

Pay monthly, cancel any time. Your first order ships the same day.

ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz 0123456789

Contrast

The pairs you use most, measured with the WCAG formula. Normal text needs 4.5:1 to pass AA.

PairLightDark
Main text on the page
text-primary on bg-canvas
……
Secondary text on a card
text-secondary on bg-surface
……
Text on a brand button
text-on-brand on bg-brand
……
Brand-coloured text on the page
text-brand on bg-canvas
……

Use it

One command adds the theme to your project. After that, every colour, font and radius is a token you can use anywhere.

$ npx uix-ui@latest theme petal-whisper
styles.css
/* Tokens from the Petal Whisper theme */
.panel {
  background: var(--bg-surface);
  color: var(--text-primary);
  border: 1px solid var(--border-default);
  border-radius: var(--radius-lg);
  font-family: var(--font-body);
}
.panel h2 { font-family: var(--font-heading); }
.panel .cta {
  background: var(--bg-brand);
  color: var(--text-on-brand);
}
.panel .cta:hover { background: var(--bg-brand-hover); }
In dark mode the same token names carry the dark colours, so this CSS needs no changes.
esc

↑↓ to navigate · ↵ to select · esc to close