use crate::color::with_alpha; use crate::egui::{InnerResponse, Ui}; const FADE_DURATION: f64 = 0.6; /// Fade in some children, assuming the fading in started at [`fade_start`]. pub fn fade_in<R>( ui: &mut Ui, fade_start: f64, add_contents: impl FnOnce(&mut Ui) -> R, ) -> InnerResponse<R> { let since_transition = ui.ctx().input().time - fade_start; let alpha = (since_transition * (1.0 / FADE_DURATION)).min(1.0) as f32; if alpha < 1.0 { ui.ctx().request_repaint(); } with_alpha(ui, alpha, |ui| add_contents(ui)) }