# Docs - [Introduction](/docs): One codebase, runs on terminal and web. - Getting Started: undefined - [Installation](/docs/getting-started/installation): Scaffold a new Gridland project or add Gridland to an existing app - [Next.js](/docs/getting-started/nextjs): Use Gridland with Next.js - [Vite](/docs/getting-started/vite): Use Gridland with Vite - [Manual Installation](/docs/getting-started/manual-installation): Install @gridland/web and wire it into your bundler by hand - Core Concepts: undefined - [Rendering](/docs/core-concepts/rendering): How Gridland components become pixels in a browser canvas or in an actual terminal - [Cells and Layout](/docs/core-concepts/cells-and-layout): Gridland measures everything in character cells, not pixels. Understanding the cell grid is the difference between fighting the layout system and using it. - [Intrinsic Elements](/docs/core-concepts/intrinsic-elements): The built-in JSX tags box, text, input, select that Gridland renders to a cell grid instead of the DOM - Theming: undefined - [Colors](/docs/theming/colors): Customize colors across your Gridland UI components with built-in themes or your own custom theme. - [Text Style](/docs/theming/text-style): Helper function for applying colors and text decorations to terminal elements. - [Breakpoints](/docs/theming/breakpoints): Responsive layout utilities for adapting to different terminal widths. - Interaction: undefined - [Focus](/docs/interaction/focus): Focus management, keyboard routing, and selection - [Pointer Events](/docs/interaction/pointer-events): Mouse and click handling on Gridland intrinsic elements - [Cursor Highlight](/docs/interaction/cursor-highlight): Highlight the terminal cell under the mouse cursor - Components: undefined - [Ascii](/docs/components/ascii): ASCII art text rendering with multiple font styles - [Chain of Thought](/docs/components/chain-of-thought): A collapsible component that visualizes AI reasoning steps with animated progress indicators - [Gradient](/docs/components/gradient): Apply color gradients to text characters - [Link](/docs/components/link): A clickable hyperlink with configurable underline style - [Message](/docs/components/message): An SDK-agnostic chat message with role-based styling and streaming support - [Modal](/docs/components/modal): A bordered overlay container with title and Escape key handling - [MultiSelect](/docs/components/multi-select): A multi-selection list with checkboxes, groups, and a submit row - [PromptInput](/docs/components/prompt-input): A chat input bar with slash commands, file mentions, and AI SDK integration - [SelectInput](/docs/components/select-input): A single-selection list with radio indicators and groups - [SideNav](/docs/components/side-nav): A sidebar navigation layout with keyboard-driven focus and a main content panel - [Spinner](/docs/components/spinner): An animated loading indicator with 5 built-in variants - [StatusBar](/docs/components/status-bar): A horizontal bar displaying keybinding hints - [Table](/docs/components/table): A data table with automatic column sizing and compound sub-components - [Tabs](/docs/components/tabs): A compound tab component with triggers and content panels - [TerminalWindow](/docs/components/terminal-window): A decorative terminal-style window chrome container - [TextInput](/docs/components/text-input): A single-line text input with label, prompt, and validation - Blocks: undefined - [AI Chat Interface](/docs/blocks/ai-chat-interface): Full-featured AI chat with SideNav, conversation history, model switching, and streaming - Guides: undefined - [Compile to Binary](/docs/guides/compile-binary): Distribute your Gridland CLI as a standalone executable with Bun - [Sandboxing](/docs/guides/sandboxing): Run CLI apps in isolated Docker containers with zero trust - [SSR for Agents](/docs/guides/ssr-for-agents): Render Gridland components to plain text for AI agents, crawlers, and screen readers - [Testing](/docs/guides/testing): Test Gridland components with @gridland/testing - Hooks: undefined - [useFileDrop](/docs/hooks/use-file-drop): Listen for file drops onto the canvas - [useInteractive](/docs/hooks/use-interactive): Compose focus registration, selection-scoped keyboard routing, and shortcut hints in one hook - [useKeyboard](/docs/hooks/use-keyboard): Subscribe to keyboard events - [usePaste](/docs/hooks/use-paste): Listen for paste events on the canvas - [useShortcuts](/docs/hooks/use-shortcuts): Register and read keyboard shortcut hints for StatusBar integration - [useTerminalDimensions](/docs/hooks/use-terminal-dimensions): Get the current terminal dimensions - API Reference: undefined - [@gridland/bun](/docs/api/gridland-bun): Bun-native runtime for Gridland CLI apps - [@gridland/testing](/docs/api/gridland-testing): Testing utilities API reference - [@gridland/ui](/docs/api/gridland-ui): UI component library API reference - [@gridland/utils](/docs/api/gridland-utils): Portable hooks and utilities — works in browser and CLI - [@gridland/web](/docs/api/gridland-web): Core package API reference