• Blog
  • Docs
  • Pricing
  • We’re hiring!
Log inSign up
drewmcdonald

drewmcdonald

promptCompare

Public
Like
promptCompare
Home
Code
11
.claude
3
.zed
1
backend
3
docs
5
frontend
4
shared
1
.gitignore
.mcp.json
.vtignore
CLAUDE.md
deno.json
Environment variables
2
Branches
1
Pull requests
Remixes
History
Val Town is a collaborative website to build and scale JavaScript apps.
Deploy APIs, crons, & store data – all from the browser, and deployed in milliseconds.
Sign up now
Code
/
.claude
/
skills
/
ai-elements
/
references
/
plan.md
Code
/
.claude
/
skills
/
ai-elements
/
references
/
plan.md
Search
…
plan.md

Plan

A collapsible plan component for displaying AI-generated execution plans with streaming support and shimmer animations.

The Plan component provides a flexible system for displaying AI-generated execution plans with collapsible content. Perfect for showing multi-step workflows, task breakdowns, and implementation strategies with support for streaming content and loading states.

See scripts/plan.tsx for this example.

Installation

npx ai-elements@latest add plan

Features

  • Collapsible content with smooth animations
  • Streaming support with shimmer loading states
  • Built on shadcn/ui Card and Collapsible components
  • TypeScript support with comprehensive type definitions
  • Customizable styling with Tailwind CSS
  • Responsive design with mobile-friendly interactions
  • Keyboard navigation and accessibility support
  • Theme-aware with automatic dark mode support
  • Context-based state management for streaming

Props

<Plan />

PropTypeDefaultDescription
isStreamingbooleanfalseWhether content is currently streaming. Enables shimmer animations on title and description.
defaultOpenboolean-Whether the plan is expanded by default.
...propsReact.ComponentProps<typeof Collapsible>-Any other props are spread to the Collapsible component.

<PlanHeader />

PropTypeDefaultDescription
...propsReact.ComponentProps<typeof CardHeader>-Any other props are spread to the CardHeader component.

<PlanTitle />

PropTypeDefaultDescription
childrenstring-The title text. Displays with shimmer animation when isStreaming is true.
...propsOmit<React.ComponentProps<typeof CardTitle>,-Any other props (except children) are spread to the CardTitle component.

<PlanDescription />

PropTypeDefaultDescription
childrenstring-The description text. Displays with shimmer animation when isStreaming is true.
...propsOmit<React.ComponentProps<typeof CardDescription>,-Any other props (except children) are spread to the CardDescription component.

<PlanTrigger />

PropTypeDefaultDescription
...propsReact.ComponentProps<typeof CollapsibleTrigger>-Any other props are spread to the CollapsibleTrigger component. Renders as a Button with chevron icon.

<PlanContent />

PropTypeDefaultDescription
...propsReact.ComponentProps<typeof CardContent>-Any other props are spread to the CardContent component.

<PlanFooter />

PropTypeDefaultDescription
...propsReact.ComponentProps<-Any other props are spread to the div element.

<PlanAction />

PropTypeDefaultDescription
...propsReact.ComponentProps<typeof CardAction>-Any other props are spread to the CardAction component.
FeaturesVersion controlCode intelligenceCLIMCP
Use cases
TeamsAI agentsSlackGTM
DocsShowcaseTemplatesNewestTrendingAPI examplesNPM packages
PricingNewsletterBlogAboutCareers
We’re hiring!
Brandhi@val.townStatus
X (Twitter)
Discord community
GitHub discussions
YouTube channel
Bluesky
Open Source Pledge
Terms of usePrivacy policyAbuse contact
© 2026 Val Town, Inc.