Guides
Each guide teaches one job, and most include examples that run in the page. New to Fleury? Start with Getting started and the tutorial. To look up a single widget, use the widget reference.
Build the UI
Layout Compose responsive terminal interfaces from rows, columns, flexible space, and local constraints.
Lists & scrolling Select list items, scroll content, and move between panes.
Forms & validation Collect input, guide users through corrections, and save their changes with useful feedback.
Theming Theme an app, style individual widgets, and customize interactive feedback.
Animation Add state-driven motion, effects, chained animation, and authored frames to Fleury apps.
State, data & navigation
State management Keep state with the code that owns it, share it with the widgets that need it, and dispose it at the right time.
Loading data Render a request's result or a stream of updates, refresh it, and recover from failures with FutureBuilder and StreamBuilder.
Navigation & dialogs Move between screens, present dialogs, and return results without losing state or focus.
Input, focus & commands
Input & gestures Choose controls for actions, translate gestures into app behavior, and combine input in nested widgets.
Key handling Add keyboard commands, make them discoverable, and build advanced real-time controls.
Focus management Let users move through your interface, direct focus, and keep it where it belongs.
Commands & shortcuts Define an application action once and expose it wherever users work.
Terminal apps
Full-screen & inline UIs Choose how your UI fits into a terminal session, understand the buffers it uses, and return cleanly to the shell.
Shutdown & signals Finish a terminal UI, clean up your command, and handle interrupts without losing their exit status.
Terminal capabilities Diagnose a terminal session, understand Fleury’s fallbacks, and fix differences in color, text, images, and input.
Deployment & distribution Ship a Fleury app as a terminal binary or in-browser bundle, and preview native apps with the local serve bridge.
Develop & debug
Testing Test buttons, forms, asynchronous work, and animations with small running examples.
Hot reload Save a file and the running terminal app updates in place — state, focus, and scroll intact. Use the dev supervisor on macOS or Linux, or your editor's Dart debugger.
Debugging Trace slow frames, unexpected rebuilds, and runtime errors with the debug shell, and step through your code under a debugger.
Driving with an agent (MCP) Connect an MCP host to a normal Fleury app, complete a real workflow, and make dynamic controls easy to target safely.