Skip to main content

cranpose_liquid/
lib.rs

1//! Liquid UI — cranpose's first-party component library.
2//!
3//! An iOS-26-style "Liquid Glass" design system: translucent lens materials
4//! over live backdrop (refraction, blur, vibrancy, chromatic aberration,
5//! specular rims), semantic theming with automatic light/dark, and
6//! spring-physics motion. Pure UI code — no platform dependencies; runs on
7//! every cranpose target.
8//!
9//! ```ignore
10//! use cranpose::liquid::prelude::*;
11//!
12//! LiquidTheme(LiquidThemeSpec::default(), || {
13//!     GlassButton(Modifier::empty(), GlassButtonSpec::prominent(), on_click, || {
14//!         GlassButtonLabel("Add");
15//!     });
16//! });
17//! ```
18
19#![deny(unsafe_code)]
20#![allow(non_snake_case)]
21
22pub mod icons;
23pub mod material;
24pub mod motion;
25pub mod theme;
26pub mod widgets;
27
28pub use material::{Glass, GlassDynamics, GlassVariant, LiquidModifierExt, LiquidShape};
29pub use motion::{liquid_press_scale, LiquidMotion};
30pub use theme::{
31    liquid_colors, liquid_typography, LiquidColors, LiquidTheme, LiquidThemeSpec, LiquidTypography,
32    SchemeMode,
33};
34pub use widgets::*;
35
36/// Everything an app needs to build Liquid UI.
37pub mod prelude {
38    pub use crate::icons;
39    pub use crate::material::{Glass, GlassDynamics, GlassVariant, LiquidModifierExt, LiquidShape};
40    pub use crate::motion::{liquid_press_scale, LiquidMotion};
41    pub use crate::theme::{
42        liquid_colors, liquid_typography, LiquidColors, LiquidTheme, LiquidThemeSpec,
43        LiquidTypography, SchemeMode,
44    };
45    pub use crate::widgets::*;
46}