Components
- Accordion
- Alert
- Alert Dialog
- Ask User Questions
- Aspect Ratio
- Autocomplete
- Avatar
- Badge
- Bar List
- Breadcrumb
- Button
- Button Group
- Calendar
- Card
- Carousel
- Chat Message
- Checkbox
- Checkbox Group
- Circular Progress
- Collapsible
- Combobox
- Command
- Context Menu
- Copy Button
- Currency Input
- Data Table
- Date Picker
- Dialog
- Drawer
- Dropdown Menu
- Empty
- Field
- Hover Card
- Input
- Input Group
- Input Message
- Input OTP
- Item
- Kbd
- Label
- Menubar
- Meter
- Multi Combobox
- Native Select
- Navigation Menu
- Number Field
- Pagination
- Phone Input
- Popover
- Progress
- Progress List
- Prompt
- Radio Group
- Resizable
- Scroll Area
- Select
- Separator
- Sheet
- Sidebar
- Skeleton
- Slider
- Sonner
- Spinner
- Stat
- Switch
- Table
- Tabs
- Textarea
- Thinking Indicator
- Thinking Steps
- Toggle
- Toggle Group
- Tooltip
- Typography
Loading...
import { CheckIcon, GlobeIcon, SearchIcon } from "blode-icons-react";
import {
ThinkingStep,
ThinkingStepDetails,
ThinkingSteps,
ThinkingStepsContent,
ThinkingStepsHeader,
} from "@/components/ui/thinking-steps";
export function ThinkingStepsDemo() {
return (
<ThinkingSteps>
<ThinkingStepsHeader>Thinking</ThinkingStepsHeader>
<ThinkingStepsContent>
<ThinkingStep icon={SearchIcon} label="Searched the web" />
<ThinkingStep icon={GlobeIcon} label="Read 3 sources">
<ThinkingStepDetails
details={["Compared three approaches", "Weighed latency against accuracy"]}
summary="Explored 6 files"
/>
</ThinkingStep>
<ThinkingStep icon={CheckIcon} isLast label="Done" />
</ThinkingStepsContent>
</ThinkingSteps>
);
}Installation
npx shadcn@latest add "https://ui.blode.co/r/styles/default/thinking-steps"
Usage
import {
ThinkingStep,
ThinkingSteps,
ThinkingStepsContent,
ThinkingStepsHeader,
} from "@/components/ui/thinking-steps";<ThinkingSteps>
<ThinkingStepsHeader>Thinking</ThinkingStepsHeader>
<ThinkingStepsContent>
<ThinkingStep icon={SearchIcon} label="Searched the web" />
<ThinkingStep icon={GlobeIcon} label="Read 3 sources" />
<ThinkingStep icon={CheckIcon} label="Done" isLast />
</ThinkingStepsContent>
</ThinkingSteps>Composition
Use the following composition to build a ThinkingSteps block:
ThinkingSteps
├── ThinkingStepsHeader
└── ThinkingStepsContent
├── ThinkingStep
├── ThinkingStep
│ └── ThinkingStepSources
│ └── ThinkingStepSource
└── ThinkingStep
└── ThinkingStepDetailsThe status prop on ThinkingStep (complete, active, or pending) drives the shimmer on the
active step; pending steps render nothing. Pass any blode-icons-react icon to icon.