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, GlassContourHighlight, GlassDeformation, GlassDynamics, GlassFaceResponse,
31    GlassFaceTone, GlassKeyFill, GlassMorph, GlassRefraction, GlassShadow, GlassSpectrum,
32    GlassSpecularHighlight, GlassVariant, LiquidModifierExt, LiquidShape, glass_light_direction,
33    set_glass_light_direction,
34};
35pub use motion::{LiquidMotion, liquid_press_scale};
36pub use theme::{
37    LiquidColors, LiquidTheme, LiquidThemeSpec, LiquidTypography, SchemeMode, liquid_colors,
38    liquid_glass_tint_amount, liquid_typography,
39};
40pub use widgets::*;
41
42/// Everything an app needs to build Liquid UI.
43pub mod prelude {
44    pub use crate::{
45        appearance::{GlassTintAmount, InvalidGlassTintAmount},
46        dynamics::{LiquidDynamics, LiquidPose, rememberLiquidDynamics},
47        icons,
48        material::{
49            Glass, GlassContourHighlight, GlassDeformation, GlassDynamics, GlassFaceResponse,
50            GlassFaceTone, GlassKeyFill, GlassMorph, GlassRefraction, GlassShadow, GlassSpectrum,
51            GlassSpecularHighlight, GlassVariant, LiquidModifierExt, LiquidShape,
52        },
53        motion::{LiquidMotion, liquid_press_scale},
54        theme::{
55            LiquidColors, LiquidTheme, LiquidThemeSpec, LiquidTypography, SchemeMode,
56            liquid_colors, liquid_glass_tint_amount, liquid_typography,
57        },
58        widgets::*,
59    };
60}