--- title: Navigation Panels description: Build page and layer sidebars with PageListRoot, LayerTreeRoot, and selection state. --- # Navigation Panels OpenPencil sidebars usually combine two concerns: - page navigation - layer navigation The Vue SDK provides headless primitives for both. ## Page navigation Use `PageListRoot` or `usePageList()`. ```vue
``` ## Layer navigation Use `LayerTreeRoot` when you want SDK-managed tree structure but app-owned presentation. ```vue ``` ## Practical pattern A common layout is: - pages at the top of the sidebar - layers below - details or inline rename controls embedded in your row components ## Related APIs - [usePageList](../api/composables/use-page-list) - [PageListRoot](../api/components/page-list-root) - [LayerTreeRoot](../api/components/layer-tree-root) - [useSelectionState](../api/composables/use-selection-state)