Feat: refactoring codebase
This commit is contained in:
@@ -1,6 +1,8 @@
|
||||
//! Centralized color definitions for Cagire TUI.
|
||||
//! Supports multiple color schemes with runtime switching.
|
||||
|
||||
pub mod palette;
|
||||
pub mod build;
|
||||
mod catppuccin_latte;
|
||||
mod catppuccin_mocha;
|
||||
mod dracula;
|
||||
@@ -27,32 +29,32 @@ use std::cell::RefCell;
|
||||
pub struct ThemeEntry {
|
||||
pub id: &'static str,
|
||||
pub label: &'static str,
|
||||
pub colors: fn() -> ThemeColors,
|
||||
pub palette: fn() -> palette::Palette,
|
||||
}
|
||||
|
||||
pub const THEMES: &[ThemeEntry] = &[
|
||||
ThemeEntry { id: "CatppuccinMocha", label: "Catppuccin Mocha", colors: catppuccin_mocha::theme },
|
||||
ThemeEntry { id: "CatppuccinLatte", label: "Catppuccin Latte", colors: catppuccin_latte::theme },
|
||||
ThemeEntry { id: "Nord", label: "Nord", colors: nord::theme },
|
||||
ThemeEntry { id: "Dracula", label: "Dracula", colors: dracula::theme },
|
||||
ThemeEntry { id: "GruvboxDark", label: "Gruvbox Dark", colors: gruvbox_dark::theme },
|
||||
ThemeEntry { id: "Monokai", label: "Monokai", colors: monokai::theme },
|
||||
ThemeEntry { id: "MonochromeBlack", label: "Monochrome (Black)", colors: monochrome_black::theme },
|
||||
ThemeEntry { id: "MonochromeWhite", label: "Monochrome (White)", colors: monochrome_white::theme },
|
||||
ThemeEntry { id: "PitchBlack", label: "Pitch Black", colors: pitch_black::theme },
|
||||
ThemeEntry { id: "TokyoNight", label: "Tokyo Night", colors: tokyo_night::theme },
|
||||
ThemeEntry { id: "RosePine", label: "Rosé Pine", colors: rose_pine::theme },
|
||||
ThemeEntry { id: "Kanagawa", label: "Kanagawa", colors: kanagawa::theme },
|
||||
ThemeEntry { id: "Fairyfloss", label: "Fairyfloss", colors: fairyfloss::theme },
|
||||
ThemeEntry { id: "HotDogStand", label: "Hot Dog Stand", colors: hot_dog_stand::theme },
|
||||
ThemeEntry { id: "LetzLight", label: "Letz Light", colors: letz_light::theme },
|
||||
ThemeEntry { id: "Ember", label: "Ember", colors: ember::theme },
|
||||
ThemeEntry { id: "Eden", label: "Eden", colors: eden::theme },
|
||||
ThemeEntry { id: "Georges", label: "Georges", colors: georges::theme },
|
||||
ThemeEntry { id: "CatppuccinMocha", label: "Catppuccin Mocha", palette: catppuccin_mocha::palette },
|
||||
ThemeEntry { id: "CatppuccinLatte", label: "Catppuccin Latte", palette: catppuccin_latte::palette },
|
||||
ThemeEntry { id: "Nord", label: "Nord", palette: nord::palette },
|
||||
ThemeEntry { id: "Dracula", label: "Dracula", palette: dracula::palette },
|
||||
ThemeEntry { id: "GruvboxDark", label: "Gruvbox Dark", palette: gruvbox_dark::palette },
|
||||
ThemeEntry { id: "Monokai", label: "Monokai", palette: monokai::palette },
|
||||
ThemeEntry { id: "MonochromeBlack", label: "Monochrome (Black)", palette: monochrome_black::palette },
|
||||
ThemeEntry { id: "MonochromeWhite", label: "Monochrome (White)", palette: monochrome_white::palette },
|
||||
ThemeEntry { id: "PitchBlack", label: "Pitch Black", palette: pitch_black::palette },
|
||||
ThemeEntry { id: "TokyoNight", label: "Tokyo Night", palette: tokyo_night::palette },
|
||||
ThemeEntry { id: "RosePine", label: "Rosé Pine", palette: rose_pine::palette },
|
||||
ThemeEntry { id: "Kanagawa", label: "Kanagawa", palette: kanagawa::palette },
|
||||
ThemeEntry { id: "Fairyfloss", label: "Fairyfloss", palette: fairyfloss::palette },
|
||||
ThemeEntry { id: "HotDogStand", label: "Hot Dog Stand", palette: hot_dog_stand::palette },
|
||||
ThemeEntry { id: "LetzLight", label: "Letz Light", palette: letz_light::palette },
|
||||
ThemeEntry { id: "Ember", label: "Ember", palette: ember::palette },
|
||||
ThemeEntry { id: "Eden", label: "Eden", palette: eden::palette },
|
||||
ThemeEntry { id: "Georges", label: "Georges", palette: georges::palette },
|
||||
];
|
||||
|
||||
thread_local! {
|
||||
static CURRENT_THEME: RefCell<ThemeColors> = RefCell::new((THEMES[0].colors)());
|
||||
static CURRENT_THEME: RefCell<ThemeColors> = RefCell::new(build::build(&(THEMES[0].palette)()));
|
||||
}
|
||||
|
||||
pub fn get() -> ThemeColors {
|
||||
|
||||
Reference in New Issue
Block a user