Surfaces
Cards, Panels, Banners & Callouts
The containers that hold everything else. Glass stages, broadcast frames, on-air announcement strips, and semantic message blocks — each one built to read like a live graphics package, never a plain box.
6-8 UI
Cards
A navy stage with a teal hairline that dials up to full frosted glass, lifts with a glow, and can tilt in 3D as the pointer tracks across it.
Season Pace
Rolling 10-game average.
Possession
Frosted glass over the stage.
Roster
A quiet teal hairline frame.
Win Streak
Raised surface with a teal glow.
Live Read
Move your pointer across the surface.
Marcus Vela
LivePoint Guard — Northside Bolts
<Card variant="glass-strong" interactive glow>
<CardHeader>
<CardTitle>Marcus Vela</CardTitle>
<CardDescription>Point Guard</CardDescription>
</CardHeader>
<CardContent>{/* stats */}</CardContent>
<CardFooter>{/* actions */}</CardFooter>
</Card>| Prop | Type | Default | Description |
|---|---|---|---|
| variant | "default" | "glass" | "glass-strong" | "outline" | "elevated" | "default" | Surface treatment, from solid navy to full frosted glass. |
| glow | boolean | false | Adds an ambient teal glow around the card. |
| interactive | boolean | false | Enables a subtle pointer-tracked 3D tilt and specular sheen (respects reduced motion). |
| className | string | — | Merged last, so a caller's Tailwind class always wins a conflict. |
6-8 UI
Panels
A broadcast frame: a chrome top bar with a tracked title chip and status slot, a scanline-washed body, and HUD corner ticks.
- FG%48.2
- 3PT%39.6
- Turnovers9
Elite first step off the dribble. Closes passing lanes early and pushes tempo in transition.
| Prop | Type | Default | Description |
|---|---|---|---|
| title | React.ReactNode | — | Required. The label in the top-bar chip. |
| variant | "default" | "strong" | "solid" | "subtle" | "default" | Frame treatment, from glass to solid navy. |
| eyebrow | React.ReactNode | — | A small kicker rendered above the title. |
| status | React.ReactNode | — | A node rendered on the right of the top bar. |
| live | boolean | false | Renders a pulsing yellow LIVE indicator. |
| icon | React.ReactNode | — | An optional icon shown before the title. |
6-8 UI
Banners
Full-width, on-air announcement strips with a glowing accent rail and a collapse-on-dismiss animation.
| Prop | Type | Default | Description |
|---|---|---|---|
| variant | "teal" | "yellow" | "teal" | Accent colour. Yellow reads as live / high-priority. |
| title | React.ReactNode | — | The tracked, uppercase headline. |
| action | React.ReactNode | — | A node rendered before the dismiss control. |
| dismissible | boolean | true | Shows the dismiss control; collapses the banner on click. |
| onDismiss | () => void | — | Fired after the banner is dismissed. |
6-8 UI
Callouts
Inline, semantic message blocks in tinted glass, keyed to intent with a glowing rail and an icon chip.
| Prop | Type | Default | Description |
|---|---|---|---|
| variant | "info" | "success" | "warning" | "danger" | "info" | Semantic intent, which sets the tint, rail, and default icon. |
| title | React.ReactNode | — | The tracked, uppercase headline. |
| icon | React.ReactNode | — | Overrides the default per-variant icon. |
| children | React.ReactNode | — | The body copy of the callout. |