Start at Getting Started if you're new; jump to a Component or Hook reference for API details.
docs/
├── README.md
├── AGENTS.md
├── troubleshooting.md
├── faq.md
├── changelog.md
├── getting-started/
│ ├── install.md
│ ├── your-first-app.md
│ └── project-structure.md
├── concepts/
│ ├── layout.md
│ ├── rendering.md
│ ├── events.md
│ ├── mouse.md
│ ├── keyboard.md
│ ├── focus.md
│ ├── text.md
│ ├── colors.md
│ ├── selection.md
│ ├── scrolling.md
│ ├── state.md
│ ├── performance.md
│ └── terminals.md
├── components/
│ ├── box.md
│ ├── text.md
│ ├── scrollbox.md
│ ├── alternate-screen.md
│ ├── link.md
│ ├── button.md
│ ├── raw-ansi.md
│ ├── no-select.md
│ ├── error-overview.md
│ ├── draggable.md
│ ├── drop-target.md
│ ├── resizable.md
│ ├── focus-group.md
│ ├── focus-ring.md
│ └── text-input.md
├── hooks/
│ ├── use-input.md
│ ├── use-app.md
│ ├── use-stdin.md
│ ├── use-terminal-viewport.md
│ ├── use-terminal-focus.md
│ ├── use-focus.md
│ ├── use-focus-manager.md
│ ├── use-interval.md
│ ├── use-animation-frame.md
│ ├── use-selection.md
│ ├── use-search-highlight.md
│ ├── use-tab-status.md
│ ├── use-declared-cursor.md
│ └── use-terminal-title.md
├── patterns/
│ ├── keyboard-menu.md
│ ├── sortable-list.md
│ ├── kanban-board.md
│ ├── modal.md
│ ├── resizable-panes.md
│ ├── autocomplete.md
│ ├── table.md
│ ├── file-tree.md
│ ├── log-viewer.md
│ ├── chat-ui.md
│ ├── confirmation-dialog.md
│ └── indicators.md
├── guides/
│ ├── migration-from-ink.md
│ ├── testing.md
│ ├── debugging.md
│ ├── accessibility.md
│ ├── streaming-content.md
│ └── error-handling.md
├── reference/
│ ├── types.md
│ ├── styles.md
│ ├── events.md
│ └── cli.md
└── internals/
├── architecture.md
├── reconciler.md
├── yoga-port.md
├── render-pipeline.md
├── selection-state-machine.md
├── drag-registry.md
└── focus-manager.md
- Layout
- Rendering
- Events
- Mouse
- Keyboard
- Focus
- Text
- Colors
- Selection
- Scrolling
- State
- Performance
- Terminals
- Box
- Text
- ScrollBox
- AlternateScreen
- Link
- Button
- RawAnsi
- NoSelect
- ErrorOverview
- Draggable
- DropTarget
- Resizable
- FocusGroup
- FocusRing
- Checkbox
- Radio
- TextInput
- useInput
- useApp
- useStdin
- useTerminalViewport
- useTerminalFocus
- useFocus
- useFocusManager
- useInterval
- useAnimationFrame
- useSelection
- useSearchHighlight
- useTabStatus
- useDeclaredCursor
- useTerminalTitle
- Keyboard menu
- Sortable list
- Kanban board
- Modal
- Resizable panes
- Autocomplete
- Table
- File tree
- Log viewer
- Chat UI
- Confirmation dialog
- Indicators (spinners + progress bars)
For contributors to yokai itself, and consumers reasoning about renderer behavior.
- Architecture
- Reconciler
- Yoga port
- Render pipeline
- Selection state machine
- Drag registry
- Focus manager
- AGENTS.md — guide for AI assistants writing code that uses yokai
- Troubleshooting — runtime failures and fixes
- FAQ — frequently asked questions
- Changelog — versioned release notes