# @devtools-ds/tree
A versatile expanding `Tree` component, with full keyboard navigation following the [Tree View Design Pattern](https://www.w3.org/TR/wai-aria-practices/examples/treeview/treeview-2/treeview-2a.html).
## Installation
```sh
npm i @devtools-ds/tree
# or with yarn
yarn add @devtools-ds/tree
```
Then to use the component in your code just import it!
```js
import { Tree } from "@devtools-ds/tree";
```
## Accessibility Approach
This component follows the DOM structure and interaction guidelines outlined in the [Tree View Design Pattern](https://www.w3.org/TR/wai-aria-practices/examples/treeview/treeview-2/treeview-2a.html).
Some of these resources were helpful for following the `tree` view interaction best practices.
- [W3 Tree View](https://www.w3.org/TR/wai-aria-practices/examples/treeview/treeview-2/treeview-2a.html)
- [Deque Tree View Reference](https://dequeuniversity.com/library/aria/tabpanels-accordions/sf-tree-view)
- [MDN Keyboard Widgets](https://developer.mozilla.org/en-US/docs/Web/Accessibility/Keyboard-navigable_JavaScript_widgets)
- [MDN TabIndex Usage](https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/tabindex#Tabindex_Accessibility)
## Usage
The label can be a string or a React component.
```jsx
Tyler Krupicka 💻 📖 🎨 🚇 💡 ⚠️ |
Adam Dierkens 📖 💡 ⚠️ 💻 |
Andrew Lisowski 📖 💡 💻 |