DISPLAY · COMPONENT

Card

Compose a project summary from a header, content and actions.

@raydenui/ui 0.10.1React + TypeScript
Documentation ↗
Loading the real component…
"use client";
import { useState } from "react";
import { Card, CardHeader, CardBody, CardFooter, Badge, Button, ProgressBar, type CardVariant } from "@raydenui/ui";
import "@raydenui/ui/styles.css";
export default function Example({ state = "default" }: { state?: string }) {
  const [progress, setProgress] = useState(60);
  const [saved, setSaved] = useState(false);
  return <div style={{ width: "min(100%, 440px)" }}><Card variant={state as CardVariant}><CardHeader title="A place for the next idea." subtitle="Northline · demo project" bordered actions={<Badge color={progress === 100 ? "success" : "warning"}>{progress === 100 ? "Ready" : "In progress"}</Badge>} /><CardBody><p style={{ marginBottom: 24 }}>A considered identity, built one small decision at a time.</p><ProgressBar label="Project checklist" value={progress} showPercentage /></CardBody><CardFooter bordered align="between"><Button disabled={progress === 100} onClick={() => setProgress(Math.min(100, progress + 20))}>Complete a step</Button><Button variant="text" onClick={() => setSaved(!saved)}>{saved ? "Saved" : "Save project"}</Button></CardFooter></Card><p role="status" style={{ marginTop: 20 }}>{progress}% complete. {saved ? "Project saved locally in this demo." : "Changes stay in the preview."}</p></div>;
}
Live library components · illustrative demo data · no remote submissionsReset returns to the initial example.

Made for real interfaces.

Card primitives combine a project header, status badge, progress indicator and working footer actions. The example keeps project progress and saved state local.

Try it

Complete the checklist, save the demo project, and compare outlined, elevated and ghost surfaces.

Built with