Card
Composable card with Card, CardHeader, and CardBody sub-components. Uses `mdn-card` CSS classes for consistent dashboard panel styling.
<Card><CardHeader>Overview</CardHeader><CardBody>Content here</CardBody></Card><Card><CardBody>Simple card with body only</CardBody></Card>
<Card><CardHeader>Monthly report</CardHeader><CardBody>Revenue is up 12%.</CardBody></Card>
import type * as React from 'react'
import { cn } from '@/lib/utils'
interface CardProps {
children: React.ReactNode
className?: string
}
interface CardHeaderProps {
children: React.ReactNode
className?: string
}
interface CardBodyProps {
children: React.ReactNode
className?: string
}
export function Card({ children, className }: CardProps): React.JSX.Element {
return (
<div className={cn('mdn-card', className)}>
{children}
</div>
)
}
export function CardHeader({ children, className }: CardHeaderProps): React.JSX.Element {
return (
<div className={cn('mdn-card-header', className)}>
{children}
</div>
)
}
export function CardBody({ children, className }: CardBodyProps): React.JSX.Element {
return (
<div className={cn('mdn-card-body', className)}>
{children}
</div>
)
}
Button
Dashboard button with primary (solid), secondary (outline), and ghost variants in three sizes. Renders as a Next.js Link when an href is provided.
Badge
Status badge with six color variants: ice, green, amber, red, violet, and surface. Designed for dashboard labels, status indicators, and category tags.
Text
Polymorphic text primitive with body, caption, label, code, and mono variants. Renders as any block or inline HTML tag via the `as` prop.
StatusPill
Compact status indicator with five semantic states: ok, warn, err, idle, and info. Each state maps to a default label (Healthy, Degraded, Down, Idle, Info) that can be overridden via the label prop.