# Overview > Live keyboard navigation examples for lists, grids, trees, menus and listboxes, each a working demo with the code that runs it. Start with the [basic list](/docs/examples/basic). On every page, Tab into the demo or click it, then try the keys listed with it. ## Lists - [Basic list](/docs/examples/basic) — arrows, Home, End and the page keys on a plain list. - [Looping lists](/docs/examples/looping-lists) — wrap from the last item to the first, and back. - [Horizontal lists](/docs/examples/horizontal-lists) — ←/→ for toolbars and tab rows, following the text direction. - [Custom keys](/docs/examples/custom-keys) — rebind a move, add modifiers, or switch a binding off. ## Grids - [Grid](/docs/examples/grid) — move by cell, row, row ends, grid ends or pages. - [Responsive grid](/docs/examples/responsive-grid) — read the column count from CSS on every keypress. ## Tab stops and focus - [Roving tabindex](/docs/examples/roving-tabindex) — one tab stop per group, following focus. - [Skipped items](/docs/examples/skipped-items) — pass over headings and disabled items. - [Nested roots](/docs/examples/nested-roots) — inner groups with their own keys, and a way back out. - [Focus keys](/docs/examples/focus-keys) — shortcuts that focus an item or panel from anywhere under the listener. - [Editable targets](/docs/examples/editable-targets) — text fields and sliders keep their own keys. ## Widgets - [Typeahead](/docs/examples/typeahead) — focus an item by typing its label. - [Tree view](/docs/examples/tree-view) — navigate visible rows while your code opens and closes branches. - [Options in JavaScript](/docs/examples/javascript-options) — a menu configured without changing its markup. - [Listbox](/docs/examples/listbox) — navigation, typeahead, roving tabindex and selection in one widget.