cranpose-liquid 0.1.79

Liquid UI — cranpose's first-party glass component library (iOS-26-style materials, spring motion)
Documentation
//! The primitive glass container.

use crate::material::{Glass, LiquidModifierExt};
use cranpose_macros::composable;
use cranpose_ui::widgets::{Box, BoxSpec};
use cranpose_ui::Modifier;
use cranpose_ui_layout::Alignment;

/// A container rendered on the Liquid Glass material: its backdrop is
/// refracted/blurred behind `content`, clipped to `glass.shape`.
///
/// ```ignore
/// GlassSurface(Modifier::empty().padding(12.0), Glass::regular(), || {
///     Text("On glass", Modifier::empty(), body_style);
/// });
/// ```
#[composable]
#[allow(non_snake_case)]
pub fn GlassSurface(modifier: Modifier, glass: Glass, content: impl FnMut() + 'static) {
    let modifier = Modifier::empty().glass_effect(glass).then(modifier);
    Box(
        modifier,
        BoxSpec::default().content_alignment(Alignment::CENTER),
        content,
    );
}