runa-tui 0.5.2

A fast, keyboard-focused terminal file browser (TUI). Highly configurable and lightweight. Previously known as runner-tui.
Documentation
//! Preset themes for the runa
//!
//! This module defines several preset themes that can be used in runa.
//! Each theme is created using a specific color palette and a unique name.

use crate::config::Theme;
use crate::config::theme::{Palette, make_theme};

const TOKYO_STORM: Palette = Palette {
    base: (36, 40, 59),
    surface: (41, 46, 66),
    overlay: (86, 95, 137),
    primary: (187, 154, 247),
    secondary: (125, 207, 255),
    directory: (122, 162, 247),
};

const TOKYO_NIGHT: Palette = Palette {
    base: (26, 27, 38),
    surface: (44, 51, 78),
    overlay: (86, 95, 137),
    primary: (187, 154, 247),
    secondary: (125, 207, 255),
    directory: (122, 162, 247),
};

const TOKYO_DAY: Palette = Palette {
    base: (225, 226, 231),
    surface: (196, 199, 209),
    overlay: (168, 175, 199),
    primary: (152, 94, 171),
    secondary: (52, 90, 183),
    directory: (52, 90, 183),
};

pub fn tokyonight_storm() -> Theme {
    make_theme("tokyonight-storm", TOKYO_STORM, "")
}
pub fn tokyonight_night() -> Theme {
    make_theme("tokyonight-night", TOKYO_NIGHT, "")
}
pub fn tokyonight_day() -> Theme {
    make_theme("tokyonight-day", TOKYO_DAY, "")
}

const GRUV_DARK_HARD: Palette = Palette {
    base: (29, 32, 33),
    surface: (60, 56, 54),
    overlay: (146, 131, 116),
    primary: (211, 134, 155),
    secondary: (142, 192, 124),
    directory: (131, 165, 152),
};

const GRUV_DARK: Palette = Palette {
    base: (40, 40, 40),
    surface: (60, 56, 54),
    overlay: (146, 131, 116),
    primary: (211, 134, 155),
    secondary: (142, 192, 124),
    directory: (131, 165, 152),
};

const GRUV_LIGHT: Palette = Palette {
    base: (251, 241, 199),
    surface: (213, 196, 161),
    overlay: (124, 111, 100),
    primary: (143, 63, 113),
    secondary: (66, 123, 88),
    directory: (7, 102, 120),
};

pub fn gruvbox_dark_hard() -> Theme {
    make_theme("gruvbox-dark-hard", GRUV_DARK_HARD, "*")
}
pub fn gruvbox_dark() -> Theme {
    make_theme("gruvbox-dark", GRUV_DARK, "*")
}
pub fn gruvbox_light() -> Theme {
    make_theme("gruvbox-light", GRUV_LIGHT, "*")
}

const MOCHA: Palette = Palette {
    base: (30, 30, 46),
    surface: (49, 50, 68),
    overlay: (108, 112, 134),
    primary: (203, 166, 247),
    secondary: (148, 226, 213),
    directory: (137, 180, 250),
};

const FRAPPE: Palette = Palette {
    base: (48, 52, 70),
    surface: (65, 69, 89),
    overlay: (115, 121, 148),
    primary: (202, 158, 230),
    secondary: (129, 200, 190),
    directory: (140, 170, 238),
};

const LATTE: Palette = Palette {
    base: (239, 241, 245),
    surface: (204, 208, 218),
    overlay: (156, 160, 176),
    primary: (136, 57, 239),
    secondary: (23, 146, 153),
    directory: (30, 102, 245),
};

pub fn catppuccin_mocha() -> Theme {
    make_theme("catppuccin-mocha", MOCHA, "")
}
pub fn catppuccin_frappe() -> Theme {
    make_theme("catppuccin-frappe", FRAPPE, "")
}
pub fn catppuccin_latte() -> Theme {
    make_theme("catppuccin-latte", LATTE, "")
}

const CARBON: Palette = Palette {
    base: (22, 22, 22),
    surface: (42, 42, 42),
    overlay: (82, 82, 82),
    primary: (190, 149, 233),
    secondary: (61, 187, 199),
    directory: (120, 169, 235),
};

const NIGHTFOX: Palette = Palette {
    base: (25, 30, 36),
    surface: (43, 51, 63),
    overlay: (87, 91, 112),
    primary: (195, 157, 239),
    secondary: (99, 199, 209),
    directory: (113, 161, 236),
};

pub fn carbonfox() -> Theme {
    make_theme("carbonfox", CARBON, "")
}
pub fn nightfox() -> Theme {
    make_theme("nightfox", NIGHTFOX, "")
}

const FOREST: Palette = Palette {
    base: (43, 51, 57),
    surface: (74, 82, 88),
    overlay: (133, 146, 137),
    primary: (167, 192, 128),
    secondary: (230, 126, 128),
    directory: (127, 187, 179),
};

const ROSE_PINE: Palette = Palette {
    base: (25, 23, 36),
    surface: (31, 29, 46),
    overlay: (110, 106, 134),
    primary: (196, 167, 231),
    secondary: (235, 188, 186),
    directory: (49, 116, 143),
};

pub fn everforest() -> Theme {
    make_theme("everforest", FOREST, "*")
}
pub fn rose_pine() -> Theme {
    make_theme("rose_pine", ROSE_PINE, "*")
}

const NORD: Palette = Palette {
    base: (46, 52, 64),
    surface: (67, 76, 94),
    overlay: (94, 129, 172),
    primary: (163, 190, 140),
    secondary: (191, 97, 106),
    directory: (129, 161, 193),
};

pub fn nord() -> Theme {
    make_theme("nord", NORD, "*")
}

const TWO_DARK: Palette = Palette {
    base: (40, 44, 52),
    surface: (33, 37, 43),
    overlay: (92, 99, 112),
    primary: (97, 175, 239),
    secondary: (198, 120, 221),
    directory: (229, 192, 123),
};

pub fn two_dark() -> Theme {
    make_theme("two-dark", TWO_DARK, "*")
}

const ONE_DARK: Palette = Palette {
    base: (40, 44, 52),
    surface: (56, 60, 69),
    overlay: (97, 102, 117),
    primary: (97, 175, 239),
    secondary: (198, 120, 221),
    directory: (229, 192, 123),
};

pub fn one_dark() -> Theme {
    make_theme("one-dark", ONE_DARK, "*")
}

const SOLARIZED_DARK: Palette = Palette {
    base: (0, 43, 54),
    surface: (7, 54, 66),
    overlay: (101, 123, 131),
    primary: (38, 139, 210),
    secondary: (211, 54, 130),
    directory: (42, 161, 152),
};

const SOLARIZED_LIGHT: Palette = Palette {
    base: (253, 246, 227),
    surface: (238, 232, 213),
    overlay: (101, 123, 131),
    primary: (38, 139, 210),
    secondary: (211, 54, 130),
    directory: (42, 161, 152),
};

pub fn solarized_dark() -> Theme {
    make_theme("solarized-dark", SOLARIZED_DARK, "*")
}

pub fn solarized_light() -> Theme {
    make_theme("solarized-light", SOLARIZED_LIGHT, "*")
}

const DRACULA: Palette = Palette {
    base: (40, 42, 54),
    surface: (68, 71, 90),
    overlay: (139, 233, 253),
    primary: (255, 121, 198),
    secondary: (80, 250, 123),
    directory: (189, 147, 249),
};

pub fn dracula() -> Theme {
    make_theme("dracula", DRACULA, "")
}

const MONOKAI: Palette = Palette {
    base: (39, 40, 34),
    surface: (49, 51, 43),
    overlay: (117, 113, 94),
    primary: (249, 38, 114),
    secondary: (166, 226, 46),
    directory: (102, 217, 239),
};

pub fn monokai() -> Theme {
    make_theme("monokai", MONOKAI, "")
}