Tree

Display hierarchical file and folder structures

Tree displays file and folder hierarchies with interactive expand/collapse and full keyboard navigation.

Basic Tree

package.json
<Tree>
  <TreeFolder name="src" defaultOpen>
    <TreeFile name="index.ts" />
    <TreeFile name="config.ts" />
  </TreeFolder>
  <TreeFile name="package.json" />
</Tree>

Nested Folders

Folders can be nested to any depth:

package.json
<Tree>
  <TreeFolder name="app" defaultOpen>
    <TreeFile name="layout.tsx" />
    <TreeFile name="page.tsx" />
    <TreeFolder name="api" defaultOpen>
      <TreeFolder name="auth">
        <TreeFile name="route.ts" />
      </TreeFolder>
      <TreeFile name="health.ts" />
    </TreeFolder>
    <TreeFolder name="components">
      <TreeFile name="Button.tsx" />
      <TreeFile name="Card.tsx" />
    </TreeFolder>
  </TreeFolder>
  <TreeFile name="package.json" />
</Tree>

Collapsed by Default

Folders are collapsed by default. Use defaultOpen to expand them initially:

README.md
<Tree>
  <TreeFolder name="src">
    <TreeFolder name="components">
      <TreeFile name="Header.tsx" />
      <TreeFile name="Footer.tsx" />
    </TreeFolder>
    <TreeFile name="index.ts" />
  </TreeFolder>
  <TreeFile name="README.md" />
</Tree>

Keyboard Navigation

The Tree component supports full keyboard navigation:

KeyAction
Arrow DownMove to next item
Arrow UpMove to previous item
Arrow RightExpand folder or move to first child
Arrow LeftCollapse folder or move to parent
HomeJump to first item
EndJump to last visible item
Enter / SpaceToggle folder expand/collapse
Type charactersJump to matching item

Properties

TreeFolder

stringrequired

Folder name displayed in the tree.

booleandefault: false

Start in expanded state.

booleandefault: true

Whether the folder can be toggled.

TreeFile

stringrequired

File name displayed in the tree.