use crate::theme::{ColorScheme, Theme, ThemeBundle};
use crate::themes::BlincTheme;
use crate::tokens::*;
#[derive(Clone, Debug)]
pub struct WebTheme {
inner: BlincTheme,
}
impl WebTheme {
pub fn light() -> Self {
Self {
inner: BlincTheme::light(),
}
}
pub fn dark() -> Self {
Self {
inner: BlincTheme::dark(),
}
}
pub fn bundle() -> ThemeBundle {
ThemeBundle::new("Web", Self::light(), Self::dark())
}
}
impl Theme for WebTheme {
fn name(&self) -> &str {
"Web"
}
fn color_scheme(&self) -> ColorScheme {
self.inner.color_scheme()
}
fn colors(&self) -> &ColorTokens {
self.inner.colors()
}
fn typography(&self) -> &TypographyTokens {
self.inner.typography()
}
fn spacing(&self) -> &SpacingTokens {
self.inner.spacing()
}
fn radii(&self) -> &RadiusTokens {
self.inner.radii()
}
fn shadows(&self) -> &ShadowTokens {
self.inner.shadows()
}
fn animations(&self) -> &AnimationTokens {
self.inner.animations()
}
}