Card

A composable surface with optional header, content, footer, and title actions.

Preview#

Release readiness

1 blocker
Public beta · Thursday at 10:00

Component freeze

48 components approved for release.

Ready

Accessibility audit

Keyboard and contrast checks passed.

Ready

Migration guide

Waiting for platform review.

Review

Owner · Mira Chen

Updated 4 min ago

Controls
Variant
import {
  Card,
  CardContent,
  CardDescription,
  CardFooter,
  CardHeader,
  CardLeading,
  CardTitle,
  CardTrailing,
} from "raft-ui";

<Card>
  <CardHeader>
    <CardLeading />
    <CardTitle />
    <CardTrailing />
    <CardDescription />
  </CardHeader>
  <CardContent />
  <CardFooter />
</Card>

Compose CardTitle and CardTrailing as siblings inside CardHeader, then use CardContent for supporting controls.

DMs, direct mentions, and followed thread replies

Uses web push so notifications can still arrive when the tab is in the background.

Use CardLeading when an enabling control precedes CardTitle, then reveal its configuration in CardContent.

Enable app notifications

Receive selected Raft events at a signed HTTPS webhook.

Use CardFooter for brief guidance that describes the whole setting, optionally paired with a related action or documentation link.

Security alerts

Notify workspace owners about important account activity.

New sign-ins

Alert owners when a new device accesses the workspace.

Permission changes

Report changes to owner and administrator access.

Recovery attempts

Notify owners when account recovery is requested.

Critical alerts are sent immediately.View docs

Use CardHeader alone for a compact preference, with CardTitle and CardTrailing composed as direct children.

Workspace mode
Use the Activity Bar, Sidebar, and draggable editor groups.

Place a card-level action in CardContent and align it to the lower trailing edge.

Log out

Log out of this browser. Your account and data stay; you can log back in any time.

Compose identity, profile fields, and related actions through the card parts on a full-width settings surface.

EU

Example User

@example-user

user@example.com

Verified

Use inset when a card contains a dense cluster of controls or nested components that need stronger visual separation. Prefer default for isolated cards or lower-density information.

Workspace safeguards

Apply shared defaults to links, downloads, and inactive sessions.

Require approval before opening untrusted domains.

File downloads

Block files that have not completed verification.

Inactive sessions

Archive sessions after thirty days without activity.

API#WIP

variant
"default" | "inset"
Visual surface variant; inset renders a nested content well, default a single surface.
...props
useRender.ComponentProps<"div">
Visual surface root for caller-owned content. Use inset for a nested content well; default keeps a single surface.
...props
useRender.ComponentProps<"div">
Top region that arranges an optional CardLeading, CardTitle, CardTrailing, and CardDescription.
...props
useRender.ComponentProps<"div">
Primary card heading. Use render to choose the heading level for the page context.
...props
useRender.ComponentProps<"div">
Leading header region for a caller-owned icon, avatar, switch, or action.
...props
useRender.ComponentProps<"div">
Supporting copy placed after CardTitle inside CardHeader.
...props
useRender.ComponentProps<"div">
Trailing header region for a caller-owned status, switch, or action.
...props
useRender.ComponentProps<"div">
Main content region. Forms, lists, and product sections remain explicit children.