summaryrefslogtreecommitdiffstats
path: root/style
diff options
context:
space:
mode:
authorLibravatar Var Bhat <mailvarbhat@gmail.com>2024-02-04 00:07:16 +0530
committerLibravatar Héctor Ramón Jiménez <hector@hecrj.dev>2024-02-11 02:50:38 +0100
commit4503e2ba7e1c124798f36849d0f64a31b2e5c9a5 (patch)
treeb9be7b8e290d749d663746acf94b7bc50f97794f /style
parent3513a4ad5612b6659ab037b0c1b0c22e5cabc1f5 (diff)
downloadiced-4503e2ba7e1c124798f36849d0f64a31b2e5c9a5.tar.gz
iced-4503e2ba7e1c124798f36849d0f64a31b2e5c9a5.tar.bz2
iced-4503e2ba7e1c124798f36849d0f64a31b2e5c9a5.zip
add tokyo night themes and palettes
Source: https://github.com/enkia/tokyo-night-vscode-theme
Diffstat (limited to 'style')
-rw-r--r--style/src/theme.rs18
-rw-r--r--style/src/theme/palette.rs45
2 files changed, 63 insertions, 0 deletions
diff --git a/style/src/theme.rs b/style/src/theme.rs
index ad95ff0f..20ac9343 100644
--- a/style/src/theme.rs
+++ b/style/src/theme.rs
@@ -56,6 +56,12 @@ pub enum Theme {
CatppuccinMacchiato,
/// The built-in Catppuccin Mocha variant.
CatppuccinMocha,
+ /// The built-in Tokyo Night variant.
+ TokyoNight,
+ /// The built-in Tokyo Night Storm variant.
+ TokyoNightStorm,
+ /// The built-in Tokyo Night Light variant.
+ TokyoNightLight,
/// A [`Theme`] that uses a [`Custom`] palette.
Custom(Arc<Custom>),
}
@@ -75,6 +81,9 @@ impl Theme {
Self::CatppuccinFrappe,
Self::CatppuccinMacchiato,
Self::CatppuccinMocha,
+ Self::TokyoNight,
+ Self::TokyoNightStorm,
+ Self::TokyoNightLight,
];
/// Creates a new custom [`Theme`] from the given [`Palette`].
@@ -107,6 +116,9 @@ impl Theme {
Self::CatppuccinFrappe => Palette::CATPPUCCIN_FRAPPE,
Self::CatppuccinMacchiato => Palette::CATPPUCCIN_MACCHIATO,
Self::CatppuccinMocha => Palette::CATPPUCCIN_MOCHA,
+ Self::TokyoNight => Palette::TOKYO_NIGHT,
+ Self::TokyoNightStorm => Palette::TOKYO_NIGHT_STORM,
+ Self::TokyoNightLight => Palette::TOKYO_NIGHT_LIGHT,
Self::Custom(custom) => custom.palette,
}
}
@@ -128,6 +140,9 @@ impl Theme {
&palette::EXTENDED_CATPPUCCIN_MACCHIATO
}
Self::CatppuccinMocha => &palette::EXTENDED_CATPPUCCIN_MOCHA,
+ Self::TokyoNight => &palette::EXTENDED_TOKYO_NIGHT,
+ Self::TokyoNightStorm => &palette::EXTENDED_TOKYO_NIGHT_STORM,
+ Self::TokyoNightLight => &palette::EXTENDED_TOKYO_NIGHT_LIGHT,
Self::Custom(custom) => &custom.extended,
}
}
@@ -148,6 +163,9 @@ impl fmt::Display for Theme {
Self::CatppuccinFrappe => write!(f, "Catppuccin Frappé"),
Self::CatppuccinMacchiato => write!(f, "Catppuccin Macchiato"),
Self::CatppuccinMocha => write!(f, "Catppuccin Mocha"),
+ Self::TokyoNight => write!(f, "Tokyo Night"),
+ Self::TokyoNightStorm => write!(f, "Tokyo Night Storm"),
+ Self::TokyoNightLight => write!(f, "Tokyo Night Light"),
Self::Custom(custom) => custom.fmt(f),
}
}
diff --git a/style/src/theme/palette.rs b/style/src/theme/palette.rs
index cb5fc048..f2d1567e 100644
--- a/style/src/theme/palette.rs
+++ b/style/src/theme/palette.rs
@@ -177,6 +177,39 @@ impl Palette {
success: color!(0xa6e3a1), // Green
danger: color!(0xf38ba8), // Red
};
+
+ /// The built-in Tokyo Night variant of a [`Palette`].
+ ///
+ /// Source: https://github.com/enkia/tokyo-night-vscode-theme
+ pub const TOKYO_NIGHT: Self = Self {
+ background: color!(0x1a1b26), // Background (Night)
+ text: color!(0x9aa5ce), // Text
+ primary: color!(0x2ac3de), // Blue
+ success: color!(0x9ece6a), // Green
+ danger: color!(0xf7768e), // Red
+ };
+
+ /// The built-in Tokyo Night Storm variant of a [`Palette`].
+ ///
+ /// Source: https://github.com/enkia/tokyo-night-vscode-theme
+ pub const TOKYO_NIGHT_STORM: Self = Self {
+ background: color!(0x24283b), // Background (Storm)
+ text: color!(0x9aa5ce), // Text
+ primary: color!(0x2ac3de), // Blue
+ success: color!(0x9ece6a), // Green
+ danger: color!(0xf7768e), // Red
+ };
+
+ /// The built-in Tokyo Night Light variant of a [`Palette`].
+ ///
+ /// Source: https://github.com/enkia/tokyo-night-vscode-theme
+ pub const TOKYO_NIGHT_LIGHT: Self = Self {
+ background: color!(0xd5d6db), // Background
+ text: color!(0x565a6e), // Text
+ primary: color!(0x166775), // Blue
+ success: color!(0x485e30), // Green
+ danger: color!(0x8c4351), // Red
+ };
}
/// An extended set of colors generated from a [`Palette`].
@@ -244,6 +277,18 @@ pub static EXTENDED_CATPPUCCIN_MACCHIATO: Lazy<Extended> =
pub static EXTENDED_CATPPUCCIN_MOCHA: Lazy<Extended> =
Lazy::new(|| Extended::generate(Palette::CATPPUCCIN_MOCHA));
+/// The built-in Tokyo Night variant of an [`Extended`] palette.
+pub static EXTENDED_TOKYO_NIGHT: Lazy<Extended> =
+ Lazy::new(|| Extended::generate(Palette::TOKYO_NIGHT));
+
+/// The built-in Tokyo Night Storm variant of an [`Extended`] palette.
+pub static EXTENDED_TOKYO_NIGHT_STORM: Lazy<Extended> =
+ Lazy::new(|| Extended::generate(Palette::TOKYO_NIGHT_STORM));
+
+/// The built-in Tokyo Night variant of an [`Extended`] palette.
+pub static EXTENDED_TOKYO_NIGHT_LIGHT: Lazy<Extended> =
+ Lazy::new(|| Extended::generate(Palette::TOKYO_NIGHT_LIGHT));
+
impl Extended {
/// Generates an [`Extended`] palette from a simple [`Palette`].
pub fn generate(palette: Palette) -> Self {