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 (wcKSRD refraction, blur, vibrancy, and edge light),
5//! 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
19pub mod appearance;
20pub mod dynamics;
21pub mod icons;
22pub mod material;
23pub mod motion;
24pub mod theme;
25pub mod widgets;
26
27pub use appearance::{GlassTintAmount, InvalidGlassTintAmount};
28pub use dynamics::{LiquidDynamics, LiquidPose, rememberLiquidDynamics};
29pub use material::{
30    Glass, GlassDeformation, GlassDynamics, GlassFaceResponse, GlassKeyFill, GlassMorph,
31    GlassRefraction, GlassShadow, GlassSpectrum, GlassVariant, LiquidModifierExt, LiquidShape,
32    glass_light_direction, set_glass_light_direction,
33};
34pub use motion::{LiquidMotion, liquid_press_scale};
35pub use theme::{
36    LiquidColors, LiquidTheme, LiquidThemeSpec, LiquidTypography, SchemeMode, liquid_colors,
37    liquid_glass_tint_amount, liquid_typography,
38};
39pub use widgets::*;
40
41/// Everything an app needs to build Liquid UI.
42pub mod prelude {
43    pub use crate::{
44        appearance::{GlassTintAmount, InvalidGlassTintAmount},
45        dynamics::{LiquidDynamics, LiquidPose, rememberLiquidDynamics},
46        icons,
47        material::{
48            Glass, GlassDeformation, GlassDynamics, GlassFaceResponse, GlassKeyFill, GlassMorph,
49            GlassRefraction, GlassShadow, GlassSpectrum, GlassVariant, LiquidModifierExt,
50            LiquidShape,
51        },
52        motion::{LiquidMotion, liquid_press_scale},
53        theme::{
54            LiquidColors, LiquidTheme, LiquidThemeSpec, LiquidTypography, SchemeMode,
55            liquid_colors, liquid_glass_tint_amount, liquid_typography,
56        },
57        widgets::*,
58    };
59}