Node

A composable node component for React Flow-based canvases with Card-based styling.

The Node component provides a composable, Card-based node for React Flow canvases. It includes support for connection handles, structured layouts, and consistent styling using shadcn/ui components.

Installation

npx ai-elements@latest add node

Features

  • Built on shadcn/ui Card components for consistent styling
  • Automatic handle placement (left for target, right for source)
  • Composable sub-components (Header, Title, Description, Action, Content, Footer)
  • Semantic structure for organizing node information
  • Pre-styled sections with borders and backgrounds
  • Responsive sizing with fixed small width
  • Full TypeScript support with proper type definitions
  • Compatible with React Flow's node system

Props

<Node />

PropTypeDefaultDescription
handlesunknown-Configuration for connection handles. Target renders on the left, source on the right.
classNamestring-Additional CSS classes to apply to the node.
...propsComponentProps<typeof Card>-Any other props are spread to the underlying Card component.

<NodeHeader />

PropTypeDefaultDescription
classNamestring-Additional CSS classes to apply to the header.
...propsComponentProps<typeof CardHeader>-Any other props are spread to the underlying CardHeader component.

<NodeTitle />

PropTypeDefaultDescription
...propsComponentProps<typeof CardTitle>-Any other props are spread to the underlying CardTitle component.

<NodeDescription />

PropTypeDefaultDescription
...propsComponentProps<typeof CardDescription>-Any other props are spread to the underlying CardDescription component.

<NodeAction />

PropTypeDefaultDescription
...propsComponentProps<typeof CardAction>-Any other props are spread to the underlying CardAction component.

<NodeContent />

PropTypeDefaultDescription
classNamestring-Additional CSS classes to apply to the content.
...propsComponentProps<typeof CardContent>-Any other props are spread to the underlying CardContent component.

<NodeFooter />

PropTypeDefaultDescription
classNamestring-Additional CSS classes to apply to the footer.
...propsComponentProps<typeof CardFooter>-Any other props are spread to the underlying CardFooter component.