# retroglyph-ui > Immediate-mode terminal UI toolkit for retroglyph: widgets, layout, input/focus, theming, and animation **Version:** 0.0.0 **Authors:** Matan Lurey **License:** MIT **Repository:** https://github.com/crates-lurey-io/retroglyph **Keywords:** roguelike, terminal, grid, gamedev Generated: 2026-08-05 20:21:10 UTC Created by: [cargo-llms-txt](https://github.com/masinc/cargo-llms-txt) ## Core Documentation - [Complete API Documentation](llms-full.txt): Full public API documentation with detailed descriptions - [README](README.md): Project overview and getting started guide - [Cargo.toml](Cargo.toml): Project configuration and dependencies ## Table of Contents ### src/align.rs - pub use retroglyph_core::layout::HAlign as Align ### src/block.rs - pub fn join_h - pub fn join_v ### src/style.rs - pub struct Sides - impl Sides - pub struct BoxStyle - impl BoxStyle - pub struct Boxed - impl BoxStyle - impl Widget for Boxed ### src/lib.rs - pub mod align - pub mod animate - pub mod block - pub mod camera - pub mod draw - pub mod interact - pub mod layout - pub mod perf - pub mod state - pub mod style - pub mod text - pub mod theme - pub mod ui - pub mod widget - pub use align::Align - pub use animate::{Easing, Tween, oscillate, oscillate_with_phase} - pub use block::{join_h, join_v} - pub use camera::Camera - pub use draw::{fill_rect, offset_for_pos, thumb_geometry} - pub use interact::{Consumed, DEFAULT_DRAG_THRESHOLD, Density, FocusRing, HitTester, Interaction, Pointer, Response, Sense, Shortcuts} - pub use layout::{Constraint, Flex, Side, Spacing, anchored_rect, centered_rect, split_h, split_h_flex, split_h_n, split_h_n_flex, split_h_n_spaced, split_h_spaced, split_v, split_v_flex, split_v_n, split_v_n_flex, split_v_n_spaced, split_v_spaced} - pub use perf::{DEFAULT_LAYER, DefaultPerfRenderer, FRAME_HISTORY, PerfOverlayApp, PerfOverlayMode, PerfRenderer, default_is_toggle_key} - pub use retroglyph_core::surface::{Layer, StyledSurface, Surface} - pub use state::{ListState, ScrollPhysics, ScrollState, SelectionWrap, TextInputState} - pub use style::{BoxStyle, Sides} - pub use text::{draw_clipped, truncate, truncate_owned} - pub use theme::Theme - pub use ui::Ui - pub use widget::{AnimatedPerfOverlay, AnimatedWidget, BorderType, BoxBorder, Button, Gauge, HighlightSpacing, InteractiveWidget, List, ListDirection, Log, Measure, Meter, Modal, Panel, PanelTitle, Paragraph, PerfOverlay, PrintLine, ProgressBar, Scrollbar, Sparkline, StatBar, StatefulWidget, Table, Tabs, Text, TextInput, TitlePosition, Widget} ### src/animate/mod.rs - pub use easing::Easing - pub use oscillate::{oscillate, oscillate_with_phase} - pub use tween::Tween ### src/animate/easing.rs - pub enum Easing - impl Easing ### src/animate/oscillate.rs - pub fn oscillate - pub fn oscillate_with_phase ### src/animate/tween.rs - pub struct Tween - impl Tween ### src/theme.rs - pub struct Theme - impl Theme ### src/interact/mod.rs - pub use consumed::Consumed - pub use density::Density - pub use focus::FocusRing - pub use hit::HitTester - pub use pointer::Pointer - pub use response::Response - pub use sense::Sense - pub use shortcuts::Shortcuts - pub const DEFAULT_DRAG_THRESHOLD - pub const DEFAULT_DOUBLE_CLICK_WINDOW - pub struct Interaction - impl Interaction - impl Interaction - impl Default for Interaction ### src/interact/focus.rs - pub struct FocusRing - impl FocusRing - impl FocusRing - impl Default for FocusRing ### src/interact/sense.rs - pub struct Sense - impl Sense - impl BitOr for Sense - impl BitOrAssign for Sense ### src/interact/shortcuts.rs - pub struct Shortcuts - impl Shortcuts - impl Shortcuts - impl Default for Shortcuts ### src/interact/response.rs - pub struct Response - impl Default for Response - impl Response - impl Response ### src/interact/consumed.rs - pub enum Consumed - impl Consumed - impl From for Consumed ### src/interact/density.rs - pub enum Density - impl Density ### src/interact/pointer.rs - pub struct Pointer - impl Pointer ### src/interact/hit.rs - pub struct HitTester - impl HitTester - impl HitTester - impl Default for HitTester ### src/camera/mod.rs - pub struct Camera - impl Camera ### src/camera/transform.rs - impl Camera ### src/widget/paragraph.rs - pub struct Paragraph - impl Paragraph - impl Measure for Paragraph - impl Measure for Paragraph - impl Widget for Paragraph - impl Widget for Paragraph ### src/widget/table.rs - pub struct Table - impl Table - impl StatefulWidget for Table - impl Measure for Table ### src/widget/mod.rs - pub use border_type::BorderType - pub use box_border::BoxBorder - pub use button::Button - pub use gauge::Gauge - pub use highlight_spacing::HighlightSpacing - pub use list::List - pub use list_direction::ListDirection - pub use log::Log - pub use meter::Meter - pub use modal::Modal - pub use panel::{Panel, PanelTitle, TitlePosition} - pub use paragraph::Paragraph - pub use perf_overlay::{AnimatedPerfOverlay, PerfOverlay} - pub use print_line::PrintLine - pub use progress_bar::ProgressBar - pub use scrollbar::Scrollbar - pub use sparkline::Sparkline - pub use stat_bar::StatBar - pub use table::Table - pub use tabs::Tabs - pub use text::Text - pub use text_input::TextInput - pub trait Widget - pub trait StatefulWidget - pub trait Measure - pub trait AnimatedWidget - pub trait InteractiveWidget - impl InteractiveWidget for interactive_widget_tests::Dot ### src/widget/stat_bar.rs - pub struct StatBar - impl StatBar - impl Widget for StatBar ### src/widget/meter.rs - pub struct Meter - impl Meter ### src/widget/progress_bar.rs - pub struct ProgressBar - impl ProgressBar - impl Widget for ProgressBar ### src/widget/scrollbar.rs - pub struct Scrollbar - impl Scrollbar - impl Scrollbar - impl Widget for Scrollbar - impl InteractiveWidget for Scrollbar - impl AnimatedWidget for Scrollbar ### src/widget/gauge.rs - pub struct Gauge - impl Gauge - impl Widget for Gauge ### src/widget/button.rs - pub struct Button - impl Button - impl InteractiveWidget for Button - impl Widget for Button ### src/widget/print_line.rs - pub struct PrintLine - impl PrintLine - impl Widget for PrintLine ### src/widget/text_input.rs - pub struct TextInput - impl TextInput - impl Default for TextInput - impl StatefulWidget for TextInput ### src/widget/box_border.rs - pub struct BoxBorder - impl BoxBorder - impl Widget for BoxBorder ### src/widget/tabs.rs - pub struct Tabs - impl Tabs - impl Tabs - impl Widget for Tabs - impl InteractiveWidget for Tabs ### src/widget/list.rs - pub struct List - impl List - impl List - impl StatefulWidget for List - impl Measure for List - impl InteractiveWidget for List ### src/widget/bar.rs - impl ReadoutBuf - impl fmt::Write for ReadoutBuf ### src/widget/perf_overlay.rs - pub struct PerfOverlay - impl PerfOverlay - impl Widget for PerfOverlay - pub struct AnimatedPerfOverlay - impl Default for AnimatedPerfOverlay - impl AnimatedPerfOverlay - impl AnimatedWidget for AnimatedPerfOverlay ### src/widget/border_type.rs - pub enum BorderType - impl BorderType ### src/widget/panel.rs - pub enum TitlePosition - pub struct PanelTitle - pub struct Panel - impl Panel - impl Measure for Panel - impl Widget for Panel - impl TitleCursor ### src/widget/list_direction.rs - pub enum ListDirection ### src/widget/modal.rs - pub struct Modal - impl Modal ### src/widget/log.rs - pub struct Log - impl Log - impl Measure for Log - impl Widget for Log - impl Log ### src/widget/highlight_spacing.rs - pub enum HighlightSpacing ### src/widget/text.rs - pub struct Text - impl Text - impl Widget for Text ### src/widget/sparkline.rs - pub struct Sparkline - impl Sparkline - impl Widget for Sparkline ### src/draw/mod.rs - pub use primitives::fill_rect - pub use scrollbar::{offset_for_pos, thumb_geometry} ### src/draw/primitives.rs - pub fn fill_rect ### src/draw/scrollbar.rs - impl TrackMap - pub fn thumb_geometry - pub fn offset_for_pos ### src/layout.rs - pub enum Constraint - impl Constraint - impl SmallBuf - impl core::ops::Deref for SmallBuf - impl core::ops::DerefMut for SmallBuf - impl core::ops::Index for SmallBuf - impl core::ops::IndexMut for SmallBuf - pub fn split_v - pub fn split_v_n - pub fn split_h - pub fn split_h_n - pub enum Spacing - impl Spacing - impl From for Spacing - pub fn split_h_spaced - pub fn split_v_spaced - pub fn split_h_n_spaced - pub fn split_v_n_spaced - pub enum Flex - pub fn split_v_flex - pub fn split_v_n_flex - pub fn split_h_flex - pub fn split_h_n_flex - pub fn centered_rect - pub enum Side - impl Side - pub fn anchored_rect ### src/perf/app.rs - pub fn default_is_toggle_key - pub struct PerfOverlayApp - impl PerfOverlayApp - impl PerfOverlayApp - impl PerfOverlayApp - impl App for PerfOverlayApp - impl App for tests::CountingApp - impl Output for tests::NoPushEventBackend - impl Input for tests::NoPushEventBackend - impl Cursor for tests::NoPushEventBackend - impl App for tests::SeesInput ### src/perf/mod.rs - pub use app::{PerfOverlayApp, default_is_toggle_key} - pub use mode::PerfOverlayMode - pub use renderer::{DefaultPerfRenderer, PerfRenderer} - pub const FRAME_HISTORY - pub const DEFAULT_LAYER ### src/perf/renderer.rs - pub trait PerfRenderer - impl PerfRenderer for F - impl FixedBuf - impl fmt::Write for FixedBuf - pub struct DefaultPerfRenderer - impl Default for DefaultPerfRenderer - impl DefaultPerfRenderer - impl PerfRenderer for DefaultPerfRenderer ### src/perf/mode.rs - pub enum PerfOverlayMode - impl PerfOverlayMode ### src/state/mod.rs - pub use list::{ListState, SelectionWrap} - pub use scroll::{ScrollPhysics, ScrollState} - pub use text_input::TextInputState ### src/state/scroll.rs - pub struct ScrollPhysics - impl ScrollPhysics - impl Default for ScrollPhysics - pub struct ScrollState - impl Default for ScrollState - impl ScrollState ### src/state/text_input.rs - pub struct TextInputState - impl TextInputState ### src/state/list.rs - pub enum SelectionWrap - pub struct ListState - impl ListState ### src/text.rs - pub fn truncate - pub fn truncate_owned - pub fn draw_clipped ### src/ui.rs - impl Cursor - pub struct Ui - impl Ui - impl Ui - impl InteractiveWidget for tests::Dot - impl Widget for tests::Fill - impl Widget for tests::FixedHeight - impl InteractiveWidget for tests::FixedHeight - impl Measure for tests::FixedHeight --- ## README.md ### retroglyph-ui Immediate-mode terminal UI toolkit for retroglyph: widgets, layout, input/focus, theming, and animation Part of the [retroglyph](https://github.com/crates-lurey-io/retroglyph) workspace. ## Cargo.toml ```toml [package] name = "retroglyph-ui" version = "0.0.0" edition = "2024" description = "Immediate-mode terminal UI toolkit for retroglyph: widgets, layout, input/focus, theming, and animation" license = "MIT" repository = "https://github.com/crates-lurey-io/retroglyph" keywords = ["roguelike","terminal","grid","gamedev"] categories = ["game-development","graphics"] authors = ["Matan Lurey "] ```