use pagetop::prelude::*; static_files!(bulmix); pub struct Bulmix; impl_handle!(THEME_BULMIX for Bulmix); impl ModuleTrait for Bulmix { fn theme(&self) -> Option { Some(&Bulmix) } fn configure_service(&self, scfg: &mut service::web::ServiceConfig) { service_for_static_files!(scfg, bulmix => "/bulmix"); } } impl ThemeTrait for Bulmix { fn after_prepare_body(&self, page: &mut Page) { page.alter_favicon(Some(Favicon::new().with_icon("/base/favicon.ico"))) .alter_context(ContextOp::AddStyleSheet( StyleSheet::at("/bulmix/css/bulma.min.css") .with_version("0.9.4") .with_weight(-99), )) .alter_context(ContextOp::AddBaseAssets) .alter_context(ContextOp::AddStyleSheet( StyleSheet::at("/bulmix/css/styles.css").with_version("0.0.1"), )); } fn before_prepare_component(&self, component: &mut dyn ComponentTrait, _cx: &mut Context) { match component.handle() { COMPONENT_BASE_ICON => { let i = component_as_mut::(component); match i.font_size() { FontSize::ExtraLarge => { i.alter_classes(ClassesOp::Replace(i.font_size().to_string()), "is-size-1"); } FontSize::XxLarge => { i.alter_classes(ClassesOp::Replace(i.font_size().to_string()), "is-size-2"); } FontSize::XLarge => { i.alter_classes(ClassesOp::Replace(i.font_size().to_string()), "is-size-3"); } FontSize::Large => { i.alter_classes(ClassesOp::Replace(i.font_size().to_string()), "is-size-4"); } FontSize::Medium => { i.alter_classes(ClassesOp::Replace(i.font_size().to_string()), "is-size-5"); } _ => {} }; } COMPONENT_BASE_BUTTON => { let a = component_as_mut::