A flexible, native, runtime-switchable UI kit for iced that allows you to define buttons, inputs, and other widgets in a reusable way.
Unlike typical iced widgets, this library allows you to:
- Directly emit application messages (
AppMessage) from UIKit widgets. - Switch between implemented themes at runtime without incurring significant overhead.
- Cache elements for zero-overhead rendering in hot paths.
- Keep a clean, React/SolidJS-like API for building UIs declaratively.
- Generic
Kit: UIKit can be generic over your applicationMessage. - Runtime theme switching: Choose different themes at runtime using a simple strategy.
- Message passthrough: Send application-specific messages directly from UIKit buttons and widgets.
- Zero-cost caching: Use iced
Components to cache widget state and reduce layout/text shaping overhead. - Extensible: Easily implement new themes without changing your application logic.
Todo list tracks implemented components and features from a web version of AuraVibe UIKit.
- Button
- Card
- CodeComponent
- Dropdown
- Grid
- Indication
- Input
- Progress
- Section
- Separator
- Sidebar
- Spinner
- Window
- Animations
- Physically correct spring implementation
Add this crate to your Cargo.toml:
[dependencies]
iced_auravibe = { git = "https://github.com/sonata-ltd/auravibe", branch = "master" }