Skip to main content

Crate photon_ui

Crate photon_ui 

Source
Expand description

photon-ui — Blazing fast minimal TUI

This crate provides a lightweight, high-performance terminal UI framework built on top of crossterm. It features a custom differential renderer, ANSI-aware text wrapping, OSC 8 hyperlink support, and a component-based architecture.

§Quick start

use photon_ui::{
    Component,
    RenderError,
    Rendered,
    TUI,
    TestTerminal,
    components::Text,
};

let mut tui = TUI::new(Box::new(TestTerminal::new(80, 24)));
tui.mount(Box::new(Text::new("Hello, world!", 0, 0)));
tui.render_frame().unwrap();

Re-exports§

pub use events::Event;
pub use events::Key;
pub use events::Modifiers;
pub use events::matches_key;
pub use keybindings::KeybindingsManager;
pub use keybindings::default_bindings;
pub use renderer::InputResult;
pub use renderer::RenderError;
pub use renderer::RenderStrategy;
pub use renderer::Rendered;
pub use renderer::Renderer;
pub use terminal::Terminal;
pub use terminal::TestTerminal;
pub use tui::Anchor;
pub use tui::Overlay;
pub use tui::OverlayConstraints;
pub use tui::OverlayPosition;
pub use tui::TUI;

Modules§

autocomplete
components
events
fuzzy
image
keybindings
kill_ring
layout
renderer
terminal
theme
The Beam Design Language theme system for photon-ui.
tui
undo_stack
utils
word_navigation

Structs§

KeyEvent
Represents a key event.

Traits§

Component
A UI element that can be rendered and respond to input.
Focusable
Extension of Component for elements that can receive keyboard focus.