Charming Documentation
Use this index to navigate the Charming docs by what you are trying to do.
Reading Paths
New users:
App builders:
UI builders:
Maintainers:
Guides
| Guide | Purpose |
|---|---|
| Getting Started | Build and run a generated Charming app. |
| Core Concepts | App architecture, runtime flow, ephemeral controllers, and state. |
| Routing | root, screen, dynamic params, route titles, and route order. |
| Controllers & Views | Actions, render :show, render_template, key bindings, commands, timers, and tasks. |
| Layouts | Template layouts, yield_content, split panes, overlays, responsive layouts, and styles. |
| State | ApplicationState, typed attributes, validations, and session-backed state. |
| Database | Environments, Active Record models, migrations, and the full db command suite. |
| Components | Built-in components, custom components, text capture, and interaction return values. |
| Themes | Theme registration, derived themes, color capability, and runtime switching. |
| Logging | Application and controller logging without corrupting TUI output. |
| API Reference | Compact public API reference. |
| Testing | TestHelper, journey specs, and controller/component/runtime tests. |
| Example App: Journal | A complete demo app exercising every framework feature. |
These docs contain detailed explanations and examples for Charming.