Skip to main content

Crate mkui

Crate mkui 

Source
Expand description

mkui - A minimalist, typography-driven TUI library with Kitty graphics support

A custom UI framework optimized for audio/music applications with:

  • Native Kitty graphics protocol integration
  • Immediate mode rendering with retained component structure
  • Typography-first visual hierarchy
  • Flex-based layout system
  • Vim-like modal editing support

Re-exports§

pub use component::Component;
pub use components::Animation;
pub use components::CommandExecutor;
pub use components::CommandMode;
pub use components::CommandPalette;
pub use components::CommandResult;
pub use components::ConfirmPopup;
pub use components::Image;
pub use components::ImageData;
pub use components::List;
pub use components::Pane;
pub use components::Popup;
pub use components::PopupBorderStyle;
pub use components::PopupPosition;
pub use components::PopupResult;
pub use components::ScrollableView;
pub use components::SelectionMode;
pub use components::SplitDirection;
pub use components::SplitView;
pub use components::TextInput;
pub use context::RenderContext;
pub use context::UseAccessibility;
pub use context::UseLocale;
pub use context::UseTheme;
pub use event::Event;
pub use event::EventHandler;
pub use event::Key;
pub use focus::ComponentId;
pub use focus::FocusDirection;
pub use focus::FocusManager;
pub use focus::FocusableInfo;
pub use graphics::GraphicsBackend;
pub use i18n::AccessibilityRole;
pub use i18n::AccessibilitySettings;
pub use i18n::Locale;
pub use i18n::TextDirection;
pub use layout::Rect;
pub use modal::KeyResult;
pub use modal::ModalHandler;
pub use modal::ModalState;
pub use modal::Mode;
pub use modal::Motion;
pub use modal::Operator;
pub use modal::SearchDirection;
pub use modal::VisualMode;
pub use render::DirtyRegion;
pub use render::Renderer;
pub use slots::header_slots;
pub use slots::priority;
pub use slots::status_slots;
pub use slots::RegionSlots;
pub use slots::SlotContent;
pub use slots::Slots;
pub use slots::UseSlots;
pub use style::Selector;
pub use style::Style;
pub use style::StyleProperty;
pub use style::StyleRule;
pub use style::StyleSheet;
pub use style::Styleable;
pub use terminal::TerminalCapabilities;
pub use terminal::TerminalContext;
pub use terminal::TerminalGeometry;
pub use terminal::TmuxPaneInfo;
pub use theme::BorderChars;
pub use theme::BorderStyle;
pub use theme::Color;
pub use theme::Theme;

Modules§

component
Component system - trait and lifecycle for UI elements
components
Built-in UI components
context
Rendering context - provides theme, locale, accessibility, and slots to components
event
Event system - keyboard, mouse, and terminal events
focus
Focus management system for component navigation
graphics
Graphics backend abstraction - supports multiple rendering methods
i18n
Internationalization and localization support
layout
Layout system - flex-based positioning and sizing
modal
Modal state machine - Vim-like modal editing support
render
Rendering backend - terminal output, multi-backend graphics, and cursor management
slots
Slot system - React-like context for registering content to named slots
style
Type-safe style system for components
terminal
Terminal abstraction - geometry, capabilities, and context
theme
Theming system with automatic color degradation