liblitho 0.2.0

cli tool to flash/clone the images to storage devices
Documentation
//! Default visual palette for litho-tui.
//!
//! Single fixed theme — not user-configurable. Tuned for a vivid midnight +
//! neon-accent look that stays readable in truecolor terminals.

use ratatui::style::{Color, Modifier, Style};

// --- Surfaces (deep navy, not flat zinc grey) ---
pub const BG: Color = Color::Rgb(8, 12, 28); // near-black navy
pub const CARD_BG: Color = Color::Rgb(14, 22, 48); // elevated panel
pub const INPUT_BG: Color = Color::Rgb(20, 30, 58); // wells / fields
pub const MODE_IDLE_BG: Color = Color::Rgb(16, 24, 48);
pub const MODE_ACTIVE_BG: Color = Color::Rgb(18, 36, 78); // blue lift when selected

// --- Borders ---
pub const BORDER: Color = Color::Rgb(56, 78, 128); // visible blue-steel
pub const BORDER_SOFT: Color = Color::Rgb(40, 55, 95);

// --- Text hierarchy ---
pub const TEXT: Color = Color::Rgb(241, 245, 255); // bright cool white
pub const MUTED: Color = Color::Rgb(148, 174, 220); // readable secondary
pub const HINT: Color = Color::Rgb(100, 128, 180); // shortcuts / captions
pub const TITLE: Color = Color::Rgb(255, 255, 255);

// --- Accents (vivid) ---
pub const ACCENT: Color = Color::Rgb(56, 189, 248); // sky-400
pub const CYAN: Color = Color::Rgb(34, 211, 238); // focus ring
pub const VIOLET: Color = Color::Rgb(167, 139, 250); // brand accent

// --- Semantic ---
pub const EMERALD: Color = Color::Rgb(52, 211, 153); // success / removable
pub const AMBER: Color = Color::Rgb(251, 191, 36); // warning / in-progress
pub const ORANGE: Color = Color::Rgb(251, 146, 60); // cancelled
pub const RED: Color = Color::Rgb(248, 113, 113); // error
pub const RED_DEEP: Color = Color::Rgb(185, 28, 28); // cancel border idle

// --- Controls ---
pub const BUTTON_PRIMARY_BG: Color = Color::Rgb(37, 99, 235); // blue-600
pub const BUTTON_PRIMARY_BG_HOT: Color = Color::Rgb(59, 130, 246); // blue-500 focus
pub const PROGRESS_TRACK: Color = Color::Rgb(30, 45, 85);
pub const STATUS_DETAIL: Color = Color::Rgb(165, 190, 235);

pub fn focused_text(active: bool) -> Style {
    if active {
        Style::default().fg(ACCENT).add_modifier(Modifier::BOLD)
    } else {
        Style::default().fg(TEXT)
    }
}

pub fn section_label_style() -> Style {
    Style::default()
        .fg(MUTED)
        .add_modifier(Modifier::BOLD)
}

pub fn border_style(focused: bool) -> Style {
    Style::default().fg(if focused { CYAN } else { BORDER })
}