Trace
The steps an assistant takes, with status and details that unfold.
@cupertinoui/traceRegistry JSON import { CircleCheckIcon, CircleXIcon, SearchIcon } from "lucide-react"
import {
Trace,
TraceCollapsible,
TraceCollapsibleContent,
TraceCollapsibleTrigger,
TraceDescription,
TraceIcon,
TraceLine,
TraceTitle,
} from "@/components/ui/trace"
// The steps an assistant takes: done, failed and still running.
export default function TraceDemo() {
return (
<Trace className="w-full max-w-sm">
<TraceLine>
<TraceIcon>
<CircleCheckIcon className="text-mac-green" />
</TraceIcon>
<TraceTitle>Searched your Documents</TraceTitle>
<TraceDescription>0,4 s</TraceDescription>
</TraceLine>
<TraceCollapsible>
<TraceCollapsibleTrigger>
<TraceLine>
<TraceIcon>
<SearchIcon />
</TraceIcon>
<TraceTitle>Read 3 files</TraceTitle>
</TraceLine>
</TraceCollapsibleTrigger>
<TraceCollapsibleContent>Roadmap.key, Notes.txt and Budget 2027.numbers</TraceCollapsibleContent>
</TraceCollapsible>
<TraceLine status="error">
<TraceIcon>
<CircleXIcon />
</TraceIcon>
<TraceTitle>Couldn’t open Archive.zip</TraceTitle>
</TraceLine>
<TraceLine status="running">
<TraceTitle>Writing a summary…</TraceTitle>
</TraceLine>
</Trace>
)
}Installation
pnpm dlx shadcn@latest add @cupertinoui/traceThe first install also adds the macOS theme. See Installation to set up the registry.
Usage
import { Trace, TraceLine, TraceTitle } from "@/components/ui/trace"
<Trace>
<TraceLine status="running">
<TraceTitle>Writing a summary…</TraceTitle>
</TraceLine>
</Trace>API Reference
Every part forwards the props of the underlying element. The props below are the ones CupertinoUI adds or changes.
TraceLine
| Prop | Type | Description |
|---|---|---|
status | "running" | "error" | "pending" | Shimmers while running, red for errors, dimmed while pending. |
className | string | Extra classes, merged with the component's own. |
TraceIcon / TraceTitle / TraceDescription / TraceCollapsible / TraceCollapsibleTrigger / TraceCollapsibleContent
| Prop | Type | Description |
|---|---|---|
className | string | Extra classes, merged with the component's own. |