Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

A tree is a hierarchical List, allowing users to expand and collapse nodes to show or hide nested items.

...

Types

Image

Single selection

Image Removed
Image Added

Multiple selection

Image Removed
Image Added

Smart Selection

Image Removed

Image Added

Read-only

Image Added

Dependencies between nodes

Image Added

Usage & Behavior

Trees are used to navigate within hierarchical lists of objects (e.g. organizations), and then to select one or more items in order to filter content or show additional information.
They usually appear inside a Filter Pane, a Details Panel, or a Widget.

General guidelines

Structure

...

The A tree consists of :Leaf multiple nodes.

  • A leaf node is an object that contains data.

  • Each leaf node consists of:

    • a title. Long titles can be truncated and a Tooltip can be used on hover.

    • an optional icon , representing the node's type (e.g. a document). If all nodes are of the same type, the icon should not be used.

  • Where a leaf node represents an employee, an avatar image may appear instead of an icon.

...

  • .

  • Where multi-selection is used, each node will also have a Checkbox, allowing the user to select and deselect it.

  • Root, parent, and dependent parent nodes have additional features and behaviors. See below.

A root node (optional)

  • A single node that appears at the top of the tree and contains all other nodes.

  • It appears only when relevant, or when the user is allowed to select all items at once.

Standard parent nodes:

  • A container parent node is an object containing other items (e.g. a folder).

  • Each container parent node consists of:

    • a triangle toggle button, to the left of the title.

    • an icon.

    • a title.

  • Container Standard parent nodes have 2 states:

    • Collapsed, : when all child items are hidden. In this case, the triangle toggle button points towards the node title.

    • Expanded, : when all or some levels of child items are shown. In this case, the triangle toggle button points downwards.

  • Child nodes will be:

    • shown below their parent node.

    • indented relative to their parent node.

  • If the icon representing a container parent node is a folder, it may also have the 2 states, ; closed (when collapsed) and open (when expanded).

A root node (optional)

  • A single node that appears at the top of the tree and contains all other nodes.

  • It appears only when relevant, or when the user is allowed to select all items at once.

Multiple Selection

Where multi-selection is used, each node will have a Checkbox, allowing the user to select and deselect it.

Dependent parent nodes

Where a parent node depends on a child node, and is automatically selected when the child is selected, it is known as a dependent parent node. For example, in a permissions tree, enabling the child node Edit may also automatically enable the dependent parent node View.

  • The children of a dependent parent node will be:

    • shown below it.

    • indented relative to it.

    • connected to it with a line, terminating in a dot to the left of the dependent parent node.

  • Where a tree has both standard and dependent parent nodes, all standard parent nodes will be displayed in bold.

  • Note: dependent parent nodes are not collapsible and do not have a triangle toggle button.

Regular dependency indication

Hovered dependecy indication

Image Added

Image Added

Default State

  • Where a root node exists, it will be expanded by default, showing additional levels of nodes as needed.

  • Where there is no root node, the list will have at least the first node expanded. The state of other nodes will be determined as needed.

Content

  • For trees shown within a narrow panel:

    • where there is not enough space to show a full node label, it will be truncated with ellipses. The full label will be shown in a Tooltip on hover.

    • for nodes in expanded lower levels where thelabel is notvisible at all, a horizontal Scrollbar will be added to the panel.

      • Where Checkboxes are included in the tree, they will be static on the left-hand side and not disappear on scroll.

Internal logic

  • In most cases, nodes should be ordered alphabetically, to allow users locating to locate specific items quickly.

  • Other cases may include use logical, chronological, or numeric ordersordering.

States

Container Node

Leaf Node

Parent node

Standard node

Regular

Image Removed
Image Added
Image Removed
Image Added

Hover

Image Removed
Image Added
Image Removed
Image Added

Active

Image Removed
Image Added
Image Removed
Image Added

Selected

Image Removed
Image Added
Image Removed
Image Added

Disabled

NA

Image Removed
Image Added

Focused

Image Removed
Image Added
Image Removed
Image Added

Focused, Hover

Image Removed
Image Added
Image Removed
Image Added

Focused, Active

Image Removed
Image Added
Image Removed
Image Added

Focused, Disabled

NA

Image Removed
Image Added

Interaction

  • Since a tree is an instance of a list, please refer to list List interactions.

  • Hovering over a truncated node title will show a tooltip Tooltip containing the full title.

  • Clicking a standard parent node will:

    • select that node.

    • expand the node. If the node is already expanded, clicking it will not collapse back.

  • Clicking a triangle button will:

  • Where multiple selection is used:

    • Clicking clicking a checkbox will select / deselect the item, including .

    • clicking the checkbox for a standard parent node will also select/deselect all child items, if exist.

    • If if only some of the child items are selected, the parent item will be show as partially selected.

    • a “Select all” checkbox is optional.

  • For reordering items, please refer to the Drag and drop page.

  • Dependent parent nodes will automatically be selected when a relevant child node is selected.

Best practices

Use:

  • when there is a need to view or select one or more items in a hierarchical list.

...

Unless otherwise specified, see our general compliance information in Fundamentals - Accessibility.

Focus management

Keyboard

Node

Tab

  • From the previous component:

    • If no item is selected, moves focus to the first node in the tree.

    • If a node is selected, moves focus to the first selected node.

  • From the last node in the tree, navigates to the next component.

  • Where a tree contains a horizontal scrollbar, it will automatically adjust as the focus moves between components (e.g. between nodes and the expand-collapse button) to ensure that the currently-focused component is always in view.

Shift + Tab

  • From the next component:

    • If no item is selected, moves focus to the first node in the tree.

    • If a node is selected, move focus to the first selected node.

  • From the first node in the tree, navigates to the previous component.

Space

Selects or actions the item.

Enter

Selects or actions the item.

Esc

N/A

Arrows

Up/Down - Moves focus to the previous/next node accordingly. Only nodes which are visible without opening a parent node should be focused.

Right:

  • When focus is on a closed node, opens the node. Focus does not move.

  • When focus is on an open node, moves focus to the first child node.

  • When focus is on an end node, does nothing.

Left:

  • When focus is on an open node, closes the node.

  • When focus is on a child node that is also either an end node or a closed node, moves focus to its parent node.

  • When focus is on a root node that is also either an end node or a closed node, does nothing.

Home

Moves focus to the first/top node in the tree, without automatically opening or closing any nodes.

End

Moves focus to the last focusable node without expanding any closed nodes.

“*” (asterisk)

  • Expands all closed sibling nodes that are at the same level as the focused node.

  • Focus does not move.

  • See W3 for reference.

a-z, A-Z

  • Moves focus to the next node with a label starting with the typed character(s), if such an item exists.

  • Typing multiple characters in rapid succession moves the focus to the next node starting with the string of typed characters.

  • If no matching nodes are found below the focused node, the first node from the top of the tree should be focused (if exists).

  • Only nodes which are visible without opening a parent node should be focused.

  • If no node labels match the typed character(s), the focus does not move.

Design

Zeplin link

Screen thumbnail

Single Select

https://zpl.io/agwRA0a

Image Removed

Image Added

Multi Select

https://zpl.io/a8L0Exa

Image Removed
Image Added

Smart Select

https://zpl.io/VDePyea

Image Removed
Image Added

Tree - Organization

https://zpl.io/adgoJlV

Image Removed
Image Added

Code

...