Frame Design System

Cards

MetricCard

#MasterUsed in: Wingman 0 · WorkPal 2

Large centered number with title and subtitle. Used in stat dashboards.

Emotional value
10
/10
Time gained
+2h
this week
API spend
$1.02
under budget

InsightCard

#MasterUsed in: Wingman 0 · WorkPal 1

AI-generated summary card. Sparkle icon + body + action buttons.

INSIGHT

Your focus time dropped 40% this week. Want me to protect morning blocks?

TaskProgressCard

#MasterUsed in: Wingman 0 · WorkPal 1

Clickable card showing current step + elapsed time. Expands to show full step list.

ReviewItemCard

#MasterUsed in: Wingman 0 · WorkPal 5

Presentational review-result row with type, time and completed state; does not implement a review workflow.

View source

Requires React 19, ReactDOM 19, TypeScript and lucide-react 1.14.0. Import frame.css once and use a frame-root wrapper; set its background to var(--color-bg-page) and color to var(--color-text-primary), or supply a matching host surface; add dark to an ancestor for dark mode.

Passive row with type icon, title and type/time metadata. Enable the chevron only inside a button or link that owns a real action.

UX meeting summary — 6 action items
Document · 3 min ago
Weekly stakeholder email draft
Email · 2h ago
Bug triage tickets
Tickets · yesterday

ConnectorCard

#MasterUsed in: Wingman 0 · WorkPal 4

Compact row card for an integration. Logo slot + name + Connect / Connected pill (with optional Disconnect dropdown).

G
Gmail
S
Slack
Codex

Reads the published agreement and sends anything that needs you into Needs You.

ArtifactCard

#MasterUsed in: Wingman 0 · WorkPal 2

Compact file card with icon derived from fileType. Click-to-open via onClick or external link via href.

report.html

deck.pptx

photo.png

ChoiceCard

#MasterUsed in: Wingman 5 · WorkPal 0

Selectable title and description card for choosing a prompt or workflow option.

View source

Requires React 19, ReactDOM 19, TypeScript and lucide-react 1.14.0. Import frame.css once and use a frame-root wrapper; set its background to var(--color-bg-page) and color to var(--color-text-primary), or supply a matching host surface; add dark to an ancestor for dark mode.

Selectable card with icon + title + description. Radio-style selection — one active at a time.