armas_basic/lib.rs
1//! # Armas Basic
2//!
3//! Core component library for egui, inspired by [shadcn/ui](https://ui.shadcn.com).
4//!
5//! Provides 40+ styled components with a serializable theme system.
6//! Components get the theme internally — no `&Theme` parameter needed.
7//!
8//! ## Example
9//!
10//! ```rust,no_run
11//! # use egui::Ui;
12//! # fn example(ui: &mut Ui) {
13//! use armas_basic::prelude::*;
14//!
15//! if Button::new("Click me")
16//! .variant(ButtonVariant::Default)
17//! .show(ui)
18//! .clicked()
19//! {
20//! // Handle click
21//! }
22//! # }
23//! ```
24
25#![warn(missing_docs)]
26
27/// Animation utilities and easing functions
28pub mod animation;
29/// Color manipulation utilities
30pub mod color;
31/// UI components
32pub mod components;
33/// Extension traits for egui types
34pub mod ext;
35/// Font utilities
36pub mod fonts;
37/// Icon rendering
38pub mod icon;
39/// Layout components
40pub mod layout;
41/// Theme system
42pub mod theme;
43
44// Prelude module for convenient imports
45pub mod prelude;
46
47// Re-exports for convenience
48pub use animation::{
49 Animation, AnimationSequence, AnimationState, EasingFunction, LoopMode, LoopingAnimation,
50 SpringAnimation, StaggeredAnimation,
51};
52pub use color::{
53 blend, lerp_color, saturate, with_alpha, BlendMode, ColorStop, Gradient, NeonPalette,
54};
55pub use components::*;
56pub use ext::{
57 ArmasContextExt, {neon_circle, neon_line, PainterExt},
58};
59pub use fonts::{FontFamilyBuilder, FontWeight};
60pub use layout::*;
61pub use theme::Theme;