Lucent UI
AlertCardEmptyState
✦ LLM-ready

Card

molecule

Surface container with five elevation variants (ghost → combo), optional header/footer, interactive onClick/href support, status accent bars (inset box-shadow, curves with border-radius), selectable state, and hoverable prop for hover lift with neutral glow without making the card interactive. Default radius bumped to lg. Overflow visible by default (hidden only when media prop is set) so nested child shadows are never clipped. Collapsible auto-bleeds inside Card — just wrap and it works. Adapts to the active theme.

"Add an elevated Card from lucent-ui with a header, body content, and a footer with Save and Cancel buttons."

Usage

React / JSX
import { Card } from 'lucent-ui'

<Card variant="outline" padding="md" shadow="sm" radius="lg">Card</Card>

Installation

pnpm add lucent-ui

API Reference

Card props — * required

PropTypeDefaultDescription
children*React.ReactNodeCard body content.
variant"ghost" | "outline" | "filled" | "elevated" | "combo""outline"Elevation level. ghost = transparent, no border. outline = transparent with border. filled = surfaceTint background. elevated = surface with border and shadow. combo = filled wrapper with elevated body inset.
headerReact.ReactNodeContent rendered in the card header area.
footerReact.ReactNodeContent rendered in the card footer area.
mediaReact.ReactNodeFull-bleed content rendered at the top of the card before the header, with no padding.
onClick() => voidRenders the card as a <button> with hover lift, focus ring, and active press state.
hrefstringRenders the card as an <a> with hover lift, focus ring, and active press state.
hoverablebooleanfalseEnables hover lift and neutral glow shadow without making the card a button or link. Interactive cards (onClick/href) get accent-colored glow; hoverable-only cards get a neutral glow (12% text-primary). Use when the card wraps its own interactive content.
disabledbooleanfalseReduces opacity, blocks interaction, sets cursor: not-allowed.
status"success" | "warning" | "danger" | "info"Adds a 3px colored bar on the left edge as an inset box-shadow that curves with the card's border-radius.
selectedbooleanfalseApplies a unified accent-subtle background across all variants. Sets aria-pressed on interactive cards.
padding"none" | "sm" | "md" | "lg""md"Inner padding. Vertical padding is tighter than horizontal.
shadow"none" | "sm" | "md" | "lg""sm"Drop shadow.
radius"none" | "sm" | "md" | "lg""lg"Border radius.
styleReact.CSSPropertiesInline style override.