aura-gui 0.2.2

UI nativa acelerada por GPU para escritorio, Android e iOS, en un solo crate: estilo tipo Tailwind, componentes, sombras, animaciones y agentes de IA. Reposo a cero. Licencia AGPL-3.0 o comercial.
//! Utilidades de filtros de Tailwind: `blur_md`, `backdrop_blur_lg`. Los radios son los de Tailwind (px de desviación):
//! sm 4, por defecto 8, md 12, lg 16, xl 24, 2xl 40, 3xl 64. Se expande dentro de `Styled`.
//!
//! `backdrop_blur_*` difumina lo que hay detrás del elemento (cristal esmerilado). `blur_*` difumina el elemento y
//! lo que lleve dentro, pero se aplica sobre toda su caja, así que también suaviza el fondo que tenga debajo.

/// `blur-*` y `backdrop-blur-*`: un método por tamaño y el de la variante sin sufijo.
macro_rules! blurs {
    ($method:ident, $field:ident; ($default:expr), $(($suffix:ident, $sigma:expr)),*) => {
        paste::paste! {
            fn $method(mut self) -> Self {
                self.style().extra_mut().filter.$field = Some($default);
                self
            }
            $(
                fn [<$method $suffix>](mut self) -> Self {
                    self.style().extra_mut().filter.$field = Some($sigma);
                    self
                }
            )*
        }
    };
}

macro_rules! filter_utilities {
    () => {
        blurs! { blur, blur; (8.0), (_none, 0.0), (_sm, 4.0), (_md, 12.0), (_lg, 16.0), (_xl, 24.0), (_2xl, 40.0), (_3xl, 64.0) }
        blurs! {
            backdrop_blur, backdrop_blur; (8.0), (_none, 0.0), (_sm, 4.0), (_md, 12.0), (_lg, 16.0), (_xl, 24.0),
            (_2xl, 40.0), (_3xl, 64.0)
        }

        /// `blur-[3px]`: desviación en px lógicos.
        fn blur_px(mut self, sigma: f32) -> Self {
            self.style().extra_mut().filter.blur = Some(sigma);
            self
        }

        /// `backdrop-blur-[3px]`.
        fn backdrop_blur_px(mut self, sigma: f32) -> Self {
            self.style().extra_mut().filter.backdrop_blur = Some(sigma);
            self
        }
    };
}

pub(crate) use {blurs, filter_utilities};