bearnie

Tree

A hierarchical list of items with expand/collapse functionality.

  • src

Installation

npx bearnie add tree
npx bearnie add tree

Usage

import {
Tree,
TreeItem,
TreeItemTrigger,
TreeItemContent,
TreeItemChildren,
} from "@/components/ui/tree"
<Tree>
<TreeItem>
  <TreeItemContent>
    <TreeItemTrigger />
    <span>Parent Item</span>
  </TreeItemContent>
  <TreeItemChildren>
    <TreeItem>
      <TreeItemContent class="ml-6">Child Item</TreeItemContent>
    </TreeItem>
  </TreeItemChildren>
</TreeItem>
</Tree>

Examples

Simple list

  • Documents
  • Images

Default expanded

  • Open by default

Props

Tree

Root container for the tree structure.

PropTypeDefaultDescription
classstring-Additional CSS classes

TreeItem

Individual tree node that can have children.

PropTypeDefaultDescription
defaultOpenbooleanfalseWhether children are initially visible
classstring-Additional CSS classes

TreeItemTrigger

Expand/collapse button with folder icons that change based on state.

PropTypeDefaultDescription
showFolderIconbooleantrueShow folder/folder-open icons
classstring-Additional CSS classes

TreeItemContent

The visible content/label of the tree item.

TreeItemChildren

Container for nested tree items. Renders as hidden until parent is expanded.

Keyboard navigation

  • Arrow Right: Expand collapsed item
  • Arrow Left: Collapse expanded item
  • Tab: Move focus between items