diff --git a/docs/themes.md b/docs/themes.md index 9322bd0..643cd80 100644 --- a/docs/themes.md +++ b/docs/themes.md @@ -22,6 +22,7 @@ gitlogue comes with 16 carefully crafted themes optimized for code readability a - **catppuccin** - Soothing pastel theme (Mocha variant) with soft, gentle colors. - **dracula** - Vibrant dark theme with rich purples and greens. High contrast for extended viewing. - **everforest** - Nature-inspired theme with earthy green tones. Easy on the eyes for long sessions. +- **fluorite** - Elegant dark theme with purple and pink tones. Soft and sophisticated color scheme inspired by the mineral fluorite. - **github-dark** - GitHub's official dark theme. Clean and professional for familiar coding experience. - **gruvbox** - Retro groove color scheme with warm, earthy tones. Perfect for a cozy coding atmosphere. - **material** - Google's Material Design inspired theme. Modern and vibrant color palette. diff --git a/src/theme/mod.rs b/src/theme/mod.rs index cbaf4c5..dc087c6 100644 --- a/src/theme/mod.rs +++ b/src/theme/mod.rs @@ -75,6 +75,7 @@ impl Theme { "catppuccin" => Ok(themes::catppuccin()), "dracula" => Ok(themes::dracula()), "everforest" => Ok(themes::everforest()), + "fluorite" => Ok(themes::fluorite()), "github-dark" => Ok(themes::github_dark()), "gruvbox" => Ok(themes::gruvbox()), "material" => Ok(themes::material()), @@ -88,7 +89,7 @@ impl Theme { "telemetry" => Ok(themes::telemetry()), "tokyo-night" => Ok(themes::tokyo_night()), _ => Err(anyhow::anyhow!("Unknown theme: {}", name)) - .context("Available themes: ayu-dark, catppuccin, dracula, everforest, github-dark, gruvbox, material, monokai, night-owl, nord, one-dark, rose-pine, solarized-dark, solarized-light, telemetry, tokyo-night"), + .context("Available themes: ayu-dark, catppuccin, dracula, everforest, fluorite, github-dark, gruvbox, material, monokai, night-owl, nord, one-dark, rose-pine, solarized-dark, solarized-light, telemetry, tokyo-night"), } } @@ -106,6 +107,7 @@ impl Theme { "catppuccin", "dracula", "everforest", + "fluorite", "github-dark", "gruvbox", "material", diff --git a/src/theme/themes/fluorite.rs b/src/theme/themes/fluorite.rs new file mode 100644 index 0000000..ec6d25d --- /dev/null +++ b/src/theme/themes/fluorite.rs @@ -0,0 +1,57 @@ +use super::super::Theme; +use ratatui::style::Color; + +/// Fluorite - Elegant dark theme with purple and pink tones +/// Soft and sophisticated color scheme inspired by the mineral fluorite +/// Created by Rnbsov (https://github.com/Rnbsov) +pub fn fluorite() -> Theme { + Theme { + background_left: Color::Rgb(18, 12, 23), // Sidebar (#120c17) + background_right: Color::Rgb(22, 17, 27), // Editor (#16111b) + + editor_line_number: Color::Rgb(42, 28, 54), + editor_line_number_cursor: Color::Rgb(65, 43, 84), + editor_separator: Color::Rgb(42, 28, 54), + editor_cursor_char_bg: Color::Rgb(163, 109, 207), + editor_cursor_char_fg: Color::Rgb(22, 17, 27), + editor_cursor_line_bg: Color::Rgb(25, 17, 31), + + file_tree_added: Color::Rgb(129, 184, 139), + file_tree_deleted: Color::Rgb(91, 60, 117), + file_tree_modified: Color::Rgb(136, 92, 173), + file_tree_renamed: Color::Rgb(139, 203, 255), + file_tree_directory: Color::Rgb(136, 92, 173), + file_tree_current_file_bg: Color::Rgb(25, 17, 31), + file_tree_current_file_fg: Color::Rgb(136, 92, 173), + file_tree_default: Color::Rgb(91, 60, 117), + file_tree_stats_added: Color::Rgb(129, 184, 139), + file_tree_stats_deleted: Color::Rgb(91, 60, 117), + + terminal_command: Color::Rgb(136, 92, 173), + terminal_output: Color::Rgb(110, 155, 188), + terminal_cursor_bg: Color::Rgb(163, 109, 207), + terminal_cursor_fg: Color::Rgb(22, 17, 27), + + status_hash: Color::Rgb(173, 133, 245), + status_author: Color::Rgb(139, 203, 255), + status_date: Color::Rgb(209, 123, 159), + status_message: Color::Rgb(110, 155, 188), + status_no_commit: Color::Rgb(65, 43, 84), + + separator: Color::Rgb(42, 28, 54), + + syntax_keyword: Color::Rgb(222, 127, 236), + syntax_type: Color::Rgb(173, 133, 245), + syntax_function: Color::Rgb(139, 203, 255), + syntax_variable: Color::Rgb(215, 215, 215), + syntax_string: Color::Rgb(139, 215, 137), + syntax_number: Color::Rgb(209, 123, 159), + syntax_comment: Color::Rgb(91, 60, 117), + syntax_operator: Color::Rgb(110, 155, 188), + syntax_punctuation: Color::Rgb(110, 155, 188), + syntax_constant: Color::Rgb(209, 123, 159), + syntax_parameter: Color::Rgb(173, 133, 245), + syntax_property: Color::Rgb(139, 215, 137), + syntax_label: Color::Rgb(222, 127, 236), + } +} diff --git a/src/theme/themes/mod.rs b/src/theme/themes/mod.rs index 9e4e860..f0c7d78 100644 --- a/src/theme/themes/mod.rs +++ b/src/theme/themes/mod.rs @@ -2,6 +2,7 @@ mod ayu_dark; mod catppuccin; mod dracula; mod everforest; +mod fluorite; mod github_dark; mod gruvbox; mod material; @@ -19,6 +20,7 @@ pub use ayu_dark::ayu_dark; pub use catppuccin::catppuccin; pub use dracula::dracula; pub use everforest::everforest; +pub use fluorite::fluorite; pub use github_dark::github_dark; pub use gruvbox::gruvbox; pub use material::material;