Getting Started
Components
- All Components
- Animated Arrow
- Animated Save Button
- Animated Tabs
- Animated List/Grid View
- Animated Copy Button
- Email Dock
- Animated 3D Folder
- Cursor-Tracking Glow Card
- Gradient Border Button
- Inline Edit Animation
- Animated OTP Input
- Liquid Metal Border
- Animated Password Input
- Interactive Pie Chart
- Todo List
- Typewriter
- Interactive World Map
Installation
npx shadcn@latest add https://tentui.com/r/todo-list.json
Usage
"use client";
import { TodoList } from "@/components/todo-list";
export function Tasks() {
return (
<TodoList
defaultItems={[
{ id: "1", label: "Organize a user testing session" },
{ id: "2", label: "Prepare designs for client review" },
{ id: "3", label: "15-minute meditation" }
]}
/>
);
}Click an item to mark it complete — the checkbox fills, a strikethrough draws across the label, the row nudges right, and the item glides to the bottom of the list. Click again to undo.
Props
| Prop | Type | Default | Description |
|---|---|---|---|
items | TodoItem[] | — | Controlled list items. |
defaultItems | TodoItem[] | demo items | Initial items when uncontrolled. |
onItemsChange | (items: TodoItem[]) => void | — | Fired when an item is toggled. |
className | string | — | Forwarded to the root <ul>. |
Each TodoItem has id, label, and optional completed.