Tree

Tree renders nested disclosure rows from one items prop. Use it when rows need compact Density button styling without a full application treeview model.

import { Tree } from "density-base-ui";

export default function TreeExample() {
  return (
    <Tree
      items={[
        { id: "readme", label: "README.md" },
        { id: "package", label: "package.json" },
      ]}
    />
  );
}

Props

Prop Attribute Values Default
items None Nested { id, label, active?, children? }[] Required
rowStyle None CSS properties None
panelStyle None CSS properties None
active on item data-selected true, false false
emphasis data-dn-emphasis primary, secondary, outline, ghost ghost
size data-dn-size 2xs, xs, sm, md, lg, xl, 2xl, 3xl sm

Row style

import { Tree } from "density-base-ui";
const items = [
  { id: "src", label: "src" },
  { id: "docs", label: "docs" },
];
export default function TreeRowStyleExample() {
  return <Tree items={items} rowStyle={{ paddingBlock: "0.25rem" }} />;
}

Panel style

import { Tree } from "density-base-ui";
const items = [
  { id: "src", label: "src", children: [{ id: "index", label: "index.ts" }] },
];
export default function TreePanelStyleExample() {
  return <Tree items={items} value={["src"]} panelStyle={{ gap: "0.25rem" }} />;
}

Emphasis

import { Tree } from "density-base-ui";
export default function TreeEmphasisExample() {
  return (
    <div style={{ display: "grid", gap: "0.5rem" }}>
      <Tree emphasis="primary" items={[{ id: "primary", label: "Primary" }]} />
      <Tree
        emphasis="secondary"
        items={[{ id: "secondary", label: "Secondary" }]}
      />
      <Tree emphasis="outline" items={[{ id: "outline", label: "Outline" }]} />
      <Tree emphasis="ghost" items={[{ id: "ghost", label: "Ghost" }]} />
    </div>
  );
}

Size

import { Tree } from "density-base-ui";
export default function TreeSizeExample() {
  return (
    <div style={{ display: "grid", gap: "0.5rem" }}>
      <Tree size="2xs" items={[{ id: "2xs", label: "2xs" }]} />
      <Tree size="xs" items={[{ id: "xs", label: "xs" }]} />
      <Tree size="sm" items={[{ id: "sm", label: "sm" }]} />
      <Tree size="md" items={[{ id: "md", label: "md" }]} />
      <Tree size="lg" items={[{ id: "lg", label: "lg" }]} />
      <Tree size="xl" items={[{ id: "xl", label: "xl" }]} />
      <Tree size="2xl" items={[{ id: "2xl", label: "2xl" }]} />
      <Tree size="3xl" items={[{ id: "3xl", label: "3xl" }]} />
    </div>
  );
}