Tree

Display hierarchical data in a tree structure with expandable/collapsible nodes.

Installation

Import
import { Tree } from '@svelte-atoms/core/tree';

Preset Configuration

Customize the tree appearance using presets

You can customize the default styles for Tree components by defining presets in your configuration:

Examples

Explore different tree variations

Basic Tree

Collapsible tree structure

Documents
Resume.pdf
CoverLetter.docx
Code
<script lang="ts">
  import { Tree } from '@svelte-atoms/core/tree';
</script>

<Tree.Root open>
  <Tree.Header>Documents</Tree.Header>
  <Tree.Body>
    <div>Resume.pdf</div>
    <div>CoverLetter.docx</div>
  </Tree.Body>
</Tree.Root>

Nested Tree

Multiple levels of nesting with expandable sections

src
components
Button.svelte
Input.svelte
Card.svelte
utils
helpers.ts
validators.ts
app.ts
Code
<script lang="ts">
  import { Tree } from '@svelte-atoms/core/tree';
</script>

<Tree.Root open>
  <Tree.Header>src</Tree.Header>
  <Tree.Body>
    <Tree.Root open>
      <Tree.Header>components</Tree.Header>
      <Tree.Body>
        <div>Button.svelte</div>
        <div>Input.svelte</div>
      </Tree.Body>
    </Tree.Root>
    <Tree.Root open>
      <Tree.Header>utils</Tree.Header>
      <Tree.Body>
        <div>helpers.ts</div>
        <div>validators.ts</div>
      </Tree.Body>
    </Tree.Root>
    <div>app.ts</div>
  </Tree.Body>
</Tree.Root>

API Reference

Tree.Root Props

Prop
Type
Default
Description
open
boolean
false
Controls whether the tree is expanded (bindable)
disabled
boolean
false
Whether the tree is disabled
class
string
''
Additional CSS classes
children
Snippet
-
Tree content (Header and Body components)

Tree.Header Props

Prop
Type
Default
Description
class
string
''
Additional CSS classes
children
Snippet
-
Header content (clickable label)
onpointerdown
function
-
Pointer down event handler

Tree.Body Props

Prop
Type
Default
Description
class
string
''
Additional CSS classes
children
Snippet
-
Body content (nested trees or items)

Accessibility

Built-in Accessibility Features

  • • ARIA tree role
  • • Keyboard navigation (Arrow keys)
  • • aria-expanded state
  • • Focus management
  • • Screen reader friendly