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
19#![deny(unsafe_code)]
20#![allow(non_snake_case)]
21
22pub mod dynamics;
23pub mod icons;
24pub mod material;
25pub mod motion;
26pub mod theme;
27pub mod widgets;
28
29pub use dynamics::{remember_liquid_dynamics, LiquidDynamics, LiquidPose};
30pub use material::{
31    glass_light_direction, set_glass_light_direction, Glass, GlassDeformation, GlassDynamics,
32    GlassShadow, GlassVariant, LiquidModifierExt, LiquidShape,
33};
34pub use motion::{liquid_press_scale, LiquidMotion};
35pub use theme::{
36    liquid_colors, liquid_typography, LiquidColors, LiquidTheme, LiquidThemeSpec, LiquidTypography,
37    SchemeMode,
38};
39pub use widgets::*;
40
41/// Everything an app needs to build Liquid UI.
42pub mod prelude {
43    pub use crate::dynamics::{remember_liquid_dynamics, LiquidDynamics, LiquidPose};
44    pub use crate::icons;
45    pub use crate::material::{
46        Glass, GlassDeformation, GlassDynamics, GlassShadow, GlassVariant, LiquidModifierExt,
47        LiquidShape,
48    };
49    pub use crate::motion::{liquid_press_scale, LiquidMotion};
50    pub use crate::theme::{
51        liquid_colors, liquid_typography, LiquidColors, LiquidTheme, LiquidThemeSpec,
52        LiquidTypography, SchemeMode,
53    };
54    pub use crate::widgets::*;
55}