diff --git a/core/src/theme.rs b/core/src/theme.rs index 21ba2a3748..948aaf83a2 100644 --- a/core/src/theme.rs +++ b/core/src/theme.rs @@ -52,6 +52,8 @@ pub enum Theme { Nightfly, /// The built-in Oxocarbon variant. Oxocarbon, + /// The built-in Ferra variant: + Ferra, /// A [`Theme`] that uses a [`Custom`] palette. Custom(Arc), } @@ -80,6 +82,7 @@ impl Theme { Self::Moonfly, Self::Nightfly, Self::Oxocarbon, + Self::Ferra, ]; /// Creates a new custom [`Theme`] from the given [`Palette`]. @@ -121,6 +124,7 @@ impl Theme { Self::Moonfly => Palette::MOONFLY, Self::Nightfly => Palette::NIGHTFLY, Self::Oxocarbon => Palette::OXOCARBON, + Self::Ferra => Palette::FERRA, Self::Custom(custom) => custom.palette, } } @@ -151,6 +155,7 @@ impl Theme { Self::Moonfly => &palette::EXTENDED_MOONFLY, Self::Nightfly => &palette::EXTENDED_NIGHTFLY, Self::Oxocarbon => &palette::EXTENDED_OXOCARBON, + Self::Ferra => &palette::EXTENDED_FERRA, Self::Custom(custom) => &custom.extended, } } @@ -180,6 +185,7 @@ impl fmt::Display for Theme { Self::Moonfly => write!(f, "Moonfly"), Self::Nightfly => write!(f, "Nightfly"), Self::Oxocarbon => write!(f, "Oxocarbon"), + Self::Ferra => write!(f, "Ferra"), Self::Custom(custom) => custom.fmt(f), } } diff --git a/core/src/theme/palette.rs b/core/src/theme/palette.rs index 985a54a872..ca91c24821 100644 --- a/core/src/theme/palette.rs +++ b/core/src/theme/palette.rs @@ -276,6 +276,17 @@ impl Palette { success: color!(0x00c15a), danger: color!(0xf62d0f), }; + + /// The built-in [Ferra] variant of a [`Palette`]. + /// + /// [Ferra]: https://github.com/casperstorm/ferra + pub const FERRA: Self = Self { + background: color!(0x2b292d), + text: color!(0xfecdb2), + primary: color!(0xd1d1e0), + success: color!(0xb1b695), + danger: color!(0xe06b75), + }; } /// An extended set of colors generated from a [`Palette`]. @@ -379,6 +390,10 @@ pub static EXTENDED_NIGHTFLY: Lazy = pub static EXTENDED_OXOCARBON: Lazy = Lazy::new(|| Extended::generate(Palette::OXOCARBON)); +/// The built-in Ferra variant of an [`Extended`] palette. +pub static EXTENDED_FERRA: Lazy = + Lazy::new(|| Extended::generate(Palette::FERRA)); + impl Extended { /// Generates an [`Extended`] palette from a simple [`Palette`]. pub fn generate(palette: Palette) -> Self {