Card

Slot-based container. Compose Header, Title, Description, Content, Footer, and Action — every slot optional, stacked on a rounded surface that inherits the project's radius token.

Composition

Header only

Just a title and description.

Header + content

Title, description, body copy.

Anything goes in the content slot — text, inputs, lists, media.

With footer

Actions anchor the bottom.

With Action slot

Unstake $BLOOM

Withdrawing resets the cooldown. You can re-stake anytime.

APR 24%

Sizes

Default size

Standard padding and gap.

Small size

Tighter padding via data-size="sm".

Login card

Sign in to bloom

Use your work email to continue.

With image

Season release

A curated pass of components, motion and token refinements.

New

Nested cards

Pass level={4} on a nested card so the hierarchy doesn't collapse. The inner card paints on the next surface step and re-provides that level — any descendant overlay (popover, dropdown) walks from there.

Outer card

Default level 3 — sits on the page.

Nested card

Level 4 — visibly raised against its parent.

Card.Root props

Sub-components (Header, Title, Description, Content, Footer, Action) each accept standard HTML div attributes plus `class`.

PropTypeDescription
'default' | 'sm'Adjusts padding and internal gap via data-size. Small is tighter for dense UIs.
3 | 4 | 5Surface elevation level. Pass 4 or 5 when nesting cards so the hierarchy reads. Re-provides the level for descendant overlays via Svelte context.
stringMerged onto the root via tailwind-merge.
HTMLDivElement | nullTwo-way-bindable element reference.