# Textual Official Guide Index High-level index of every guide from the official Textual documentation. Use `web_fetch` to retrieve full content on-demand when needed. ## Getting Started ### Installation **URL:** https://textual.textualize.io/getting_started/ **Topics:** Installing Textual, requirements, first app **When to fetch:** User asks about installation, setup, or getting started ### Tutorial **URL:** https://textual.textualize.io/tutorial/ **Topics:** Building a stopwatch app, complete walkthrough, reactive attributes, widgets **When to fetch:** User wants step-by-step tutorial or building their first app ## Core Concepts ### App Basics **URL:** https://textual.textualize.io/guide/app/ **Topics:** Creating apps, running apps, compose method, mounting widgets, app lifecycle, application mode, inline mode, suspending apps **When to fetch:** Questions about app structure, lifecycle, or basic app operations ### Widgets **URL:** https://textual.textualize.io/guide/widgets/ **Topics:** Creating custom widgets, widget communication, compound widgets, render method, line API, renderables, uni-directional data flow, widget design patterns **When to fetch:** Creating custom widgets, widget architecture, or advanced widget patterns ### Layout **URL:** https://textual.textualize.io/guide/layout/ **Topics:** Vertical layout, horizontal layout, grid layout, dock layout, layers, FR units, container layouts, grid-size, grid-columns, grid-rows, row-span, column-span **When to fetch:** Layout questions, arranging widgets, grid systems, positioning ### CSS & Styling **URL:** https://textual.textualize.io/guide/CSS/ **Topics:** Textual CSS basics, selectors (type, ID, class, universal), pseudo-classes, CSS_PATH, live editing, combinator selectors **When to fetch:** CSS syntax, selectors, styling fundamentals ### Styles **URL:** https://textual.textualize.io/guide/styles/ **Topics:** Style properties, colors (hex, RGB, HSL), units (%, fr, vw, vh, w, h), box model, box-sizing, dimensions, spacing **When to fetch:** Specific style properties, units, colors, dimensions ### Design System / Themes **URL:** https://textual.textualize.io/guide/design/ **Topics:** Theme system, built-in themes, creating custom themes, color variables, semantic colors, $text variables, theme switching, design tokens **When to fetch:** Theming, color systems, design tokens, theme customization ## Interaction & Events ### Input **URL:** https://textual.textualize.io/guide/input/ **Topics:** Keyboard input, mouse input, focus, key events, mouse events, input handling **When to fetch:** Handling keyboard/mouse input, focus management, input events ### Events **URL:** https://textual.textualize.io/guide/events/ **Topics:** Event system, message handlers, event bubbling, preventing events, custom events, event lifecycle **When to fetch:** Event handling, custom events, event propagation ### Actions **URL:** https://textual.textualize.io/guide/actions/ **Topics:** Action system, key bindings, BINDINGS, action_* methods, built-in actions, custom actions **When to fetch:** Keyboard shortcuts, actions, key bindings ### Reactivity **URL:** https://textual.textualize.io/guide/reactivity/ **Topics:** Reactive attributes, watch methods, compute methods, reactive decorators, smart refresh, recompose, data binding **When to fetch:** Reactive programming, automatic updates, computed values, watchers ## Advanced Features ### Screens **URL:** https://textual.textualize.io/guide/screens/ **Topics:** Screen stack, push_screen, pop_screen, ModalScreen, screen navigation, installed screens, SCREENS, screen opacity **When to fetch:** Multi-screen apps, navigation, modal dialogs, screen management ### Query **URL:** https://textual.textualize.io/guide/queries/ **Topics:** Querying widgets, query_one, query, set methods, DOM traversal, selectors in queries **When to fetch:** Finding widgets, DOM navigation, bulk operations ### Workers **URL:** https://textual.textualize.io/guide/workers/ **Topics:** Background tasks, @work decorator, run_worker, thread workers, async workers, worker lifecycle, cancellation **When to fetch:** Background processing, async operations, threading, long-running tasks ### Animation **URL:** https://textual.textualize.io/guide/animation/ **Topics:** Animating styles, animate method, easing functions, duration, transitions, animation callbacks **When to fetch:** Animations, transitions, easing, style animations ### Command Palette **URL:** https://textual.textualize.io/guide/command_palette/ **Topics:** Built-in command palette, Provider class, fuzzy matching, custom commands, command discovery **When to fetch:** Command palette, custom commands, keyboard-driven interfaces ## Content & Display ### Content / Markup **URL:** https://textual.textualize.io/guide/content/ **Topics:** Content markup, Rich renderables, styling text, markup tags, links, clickable actions, content objects **When to fetch:** Text formatting, markup syntax, Rich renderables, styled text ### Rich Content **URL:** https://textual.textualize.io/guide/rich/ **Topics:** Using Rich library, Rich renderables, tables, syntax highlighting, panels, progress bars **When to fetch:** Rich library integration, advanced text formatting, Rich features ## Development & Debugging ### Devtools **URL:** https://textual.textualize.io/guide/devtools/ **Topics:** textual command, console, run command, live CSS editing, --dev mode, debugging, logging **When to fetch:** Development workflow, debugging, console logging, dev tools ### Testing **URL:** https://textual.textualize.io/guide/testing/ **Topics:** Testing apps, Pilot API, run_test, simulating input, snapshots, unit testing **When to fetch:** Testing, unit tests, test automation, Pilot ### Performance **URL:** https://textual.textualize.io/guide/performance/ **Topics:** Performance optimization, profiling, rendering performance, widget efficiency, best practices **When to fetch:** Performance issues, optimization, profiling ## Reference Documentation ### Widgets Reference **URL:** https://textual.textualize.io/widgets/ **Topics:** Complete widget reference, all built-in widgets with examples **When to fetch:** Looking for specific widget documentation, widget API details ### Styles Reference **URL:** https://textual.textualize.io/styles/ **Topics:** Complete CSS properties reference, all style properties **When to fetch:** Specific style property details, CSS reference ### API Reference **URL:** https://textual.textualize.io/api/ **Topics:** Complete Python API reference **When to fetch:** API details, method signatures, class documentation ## Specialized Topics ### Scrolling **URL:** https://textual.textualize.io/guide/scrolling/ **Topics:** Scroll views, ScrollableContainer, scrolling behavior, scroll_visible, programmatic scrolling **When to fetch:** Scrolling issues, scroll containers, programmatic scrolling ### Tooltips **URL:** https://textual.textualize.io/guide/tooltips/ **Topics:** Adding tooltips, tooltip property, tooltip customization **When to fetch:** Tooltips, hover help text ### Notifications **URL:** https://textual.textualize.io/guide/notifications/ **Topics:** Toast notifications, notify method, notification severity, notification styling **When to fetch:** Notifications, alerts, toasts ### Input Validation **URL:** https://textual.textualize.io/guide/input_validation/ **Topics:** Validating input, Validator class, built-in validators, custom validators **When to fetch:** Form validation, input validation, validators ### Timers **URL:** https://textual.textualize.io/guide/timers/ **Topics:** Scheduling tasks, set_timer, set_interval, timer callbacks, timer management **When to fetch:** Scheduled tasks, periodic updates, timers ### Paths **URL:** https://textual.textualize.io/guide/paths/ **Topics:** File paths, resource paths, CSS_PATH, path resolution **When to fetch:** File loading, resource paths, path management ## Additional Topics ### FAQ **URL:** https://textual.textualize.io/FAQ/ **Topics:** Common questions, troubleshooting, best practices **When to fetch:** Common issues, general questions, troubleshooting ### Why Textual? **URL:** https://textual.textualize.io/guide/why/ **Topics:** Benefits of Textual, use cases, comparison with alternatives **When to fetch:** Understanding Textual benefits, when to use Textual ## Usage Guidelines ### When to Fetch Guides 1. **Don't fetch unless needed**: The skill already covers fundamentals. Only fetch when: - User asks about a specific topic not covered in skill - Need detailed API information - Complex examples required - Latest updates needed (docs may be newer than skill) 2. **Fetch specific sections**: Use targeted URLs for relevant topics 3. **Combine with skill knowledge**: Use fetched content to supplement, not replace, skill knowledge ### Example Fetch Patterns ```python # User asks about command palette web_fetch("https://textual.textualize.io/guide/command_palette/") # User needs animation details web_fetch("https://textual.textualize.io/guide/animation/") # User wants testing info web_fetch("https://textual.textualize.io/guide/testing/") # Need widget reference web_fetch("https://textual.textualize.io/widgets/data_table/") ``` ## Quick Reference by Topic ### Need information about... **App Structure** → App Basics guide **Layout & Positioning** → Layout guide **Styling & CSS** → CSS guide, Styles guide, Design guide **User Input** → Input guide, Events guide, Actions guide **Custom Widgets** → Widgets guide **Navigation** → Screens guide **Async Tasks** → Workers guide **Animations** → Animation guide **Commands** → Command Palette guide **Testing** → Testing guide **Development** → Devtools guide **Rich Integration** → Rich Content guide **Form Validation** → Input Validation guide **Auto-Updates** → Reactivity guide ## Widget-Specific Documentation All built-in widgets have dedicated documentation at: `https://textual.textualize.io/widgets/{widget_name}/` Common widget docs: - **Button**: https://textual.textualize.io/widgets/button/ - **Input**: https://textual.textualize.io/widgets/input/ - **DataTable**: https://textual.textualize.io/widgets/data_table/ - **Tree**: https://textual.textualize.io/widgets/tree/ - **Select**: https://textual.textualize.io/widgets/select/ - **TextArea**: https://textual.textualize.io/widgets/text_area/ - **ListView**: https://textual.textualize.io/widgets/list_view/ - **ProgressBar**: https://textual.textualize.io/widgets/progress_bar/ - **Markdown**: https://textual.textualize.io/widgets/markdown/ - **MarkdownViewer**: https://textual.textualize.io/widgets/markdown_viewer/ - **DirectoryTree**: https://textual.textualize.io/widgets/directory_tree/ - **Header**: https://textual.textualize.io/widgets/header/ - **Footer**: https://textual.textualize.io/widgets/footer/ - **Label**: https://textual.textualize.io/widgets/label/ - **Static**: https://textual.textualize.io/widgets/static/ - **Log**: https://textual.textualize.io/widgets/log/ - **RichLog**: https://textual.textualize.io/widgets/rich_log/ - **Sparkline**: https://textual.textualize.io/widgets/sparkline/ - **Switch**: https://textual.textualize.io/widgets/switch/ - **Checkbox**: https://textual.textualize.io/widgets/checkbox/ - **RadioButton**: https://textual.textualize.io/widgets/radio_button/ - **RadioSet**: https://textual.textualize.io/widgets/radio_set/ - **TabbedContent**: https://textual.textualize.io/widgets/tabbed_content/ - **ContentSwitcher**: https://textual.textualize.io/widgets/content_switcher/ - **LoadingIndicator**: https://textual.textualize.io/widgets/loading_indicator/ ## Container Widget Documentation - **Container**: https://textual.textualize.io/widgets/container/ - **Horizontal**: https://textual.textualize.io/widgets/horizontal/ - **Vertical**: https://textual.textualize.io/widgets/vertical/ - **Grid**: https://textual.textualize.io/widgets/grid/ - **ScrollableContainer**: https://textual.textualize.io/widgets/scrollable_container/ - **VerticalScroll**: https://textual.textualize.io/widgets/vertical_scroll/ - **HorizontalScroll**: https://textual.textualize.io/widgets/horizontal_scroll/ ## Notes - All URLs follow pattern: `https://textual.textualize.io/{section}/{topic}/` - Official docs are actively maintained and may have updates not in this skill - Use web_fetch with specific URLs when detailed or latest information needed - Combine official docs with skill knowledge for best results