SOC 2 · opens Aug 12
The page's headline content gets the gold treatment — the boldest card in the set, for the one thing on the page that should grab you first.
A flat, friendly surface with a soft warm shadow. The canonical content container — every contained piece of content in the system (a recommendation, a readiness panel, a metric block, an evidence draft) is a Card. Same flat-and-solid vocabulary as Button and future Input; the three sit together without seams because they share the same flat, opaque register. (No glass here — glass-in-frame is the proposed system's metaphor.)
Three tier variants by accent color. The guiding idea is emphasis — how loudly the card should speak on the eggshell page. Gold is loudest, silver-blue is everyday, bronze is supporting: primary (gold) is for the headline content, secondary (silver-blue, default) is the everyday workhorse panel, tertiary (bronze) is for supporting detail. Plus two semantic variants on a separate axis — caution (warning colors) for review-then-proceed moments and critical (danger colors) for destructive confirmations. Title is display type, body is plain — the title speaks in the system's slab-serif voice with the variant's accent color; the body is your data in friendly body type on a flat, opaque surface. (Engraving belongs to the proposed system — here, type is just type.)
And one plane variant — an overlay is a surface, just not a primary one: sheet is the overlay-plane surface for floating panels (sheets, drawers, dialogs, the command palette). A solid, opaque surface with the deepest shadow in the set — in this system, overlays cover what's underneath rather than blurring it (the frosted-glass read belongs to the proposed system). The consumer owns the positioning, scrim, and slide.
The page's headline content gets the gold treatment — the boldest card in the set, for the one thing on the page that should grab you first.
↑ +8 since last quarter. Across 14 systems and 6 vendors.
Window opens
Aug 12, 2026
Lead auditor
R. Okafor
Last sync
12 min ago
This will lock all CC6.x evidence for the quarter. Make sure outstanding items are cleared before continuing.
This will sign the user out of every device. They'll need to re-authenticate. This action cannot be undone.
An overlay is a surface — just not a primary one. A solid, opaque panel with the deepest shadow in the set, so it clearly floats above the page; the scrim behind it does the dimming. The home for sheets, drawers, dialogs, and the command palette (which uses it as a slide-up sheet on mobile). The consumer owns the positioning, scrim, and slide; the variant owns the surface. (The frosted-glass version of this idea lives in the proposed system.)
Card is a compound component. Each part is optional; the variant propagates via context so the title picks up the right accent color without callers threading it.
articleThe flat card surface with its soft shadow. Defaults to <article> semantic element; override with `as` for <section>, <div>, or <li>.
headerTop section with bottom hairline. Holds Card.Eyebrow + Card.Title; right-aligned children become the badge / plaque slot.
pSmall uppercase category label with leading hairline bar. Composes Text variant=overline.
h3Slab-serif display title in the variant's accent color. Override the heading level with `as`.
divMain content area in friendly body type on the flat surface.
footerAction row with top hairline. Right-aligned by default.
Skip whichever parts aren't needed. A common case is a body-only card — just the surface, no header or footer.
A body-only card. Just the flat surface and its soft shadow — for cases where the content speaks for itself and a header would only add noise.
The footer slot holds action buttons aligned right. Compose canonical Button variants — primary for the committing action, secondary for the alternative.
Re-collect their attestation before May 31 to keep CC9.2 passing.
Pick the tier variant by how much attention the card should ask for. Gold shouts (one per view, ideally), silver-blue talks, bronze whispers. The semantic variants sit on their own axis. (The proximity-to-background ladder is the proposed system's framing — here it's simply emphasis.)
Tier — emphasis
Semantic — separate axis
import { Card, Button } from '@halo-compliance/ui'
<Card variant="primary">
<Card.Header>
<div>
<Card.Eyebrow>Halo recommends</Card.Eyebrow>
<Card.Title>Re-test CC6.1 before audit</Card.Title>
</div>
</Card.Header>
<Card.Body>
{/* body content — body register */}
</Card.Body>
<Card.Footer>
<Button variant="primary" icon={Send}>Run check</Button>
</Card.Footer>
</Card><Card variant="critical">
<Card.Header>
<div>
<Card.Eyebrow>Confirm</Card.Eyebrow>
<Card.Title>Revoke session?</Card.Title>
</div>
</Card.Header>
<Card.Body>This action cannot be undone.</Card.Body>
<Card.Footer>
<Button variant="secondary" icon={X}>Cancel</Button>
<Button variant="critical" icon={Trash}>Revoke</Button>
</Card.Footer>
</Card>