Feat: add hidden mode and new documentation

This commit is contained in:
2026-02-26 12:31:56 +01:00
parent e1cf57918e
commit 70032acc75
95 changed files with 1055 additions and 286 deletions

View File

@@ -1,7 +1,11 @@
//! Palette definition and color mixing utilities.
use ratatui::style::Color;
/// RGB color triple.
pub type Rgb = (u8, u8, u8);
/// Base color palette that themes are derived from.
pub struct Palette {
// Core
pub bg: Rgb,
@@ -33,10 +37,12 @@ pub struct Palette {
pub meter: [Rgb; 3],
}
/// Convert an RGB triple to a ratatui [`Color`].
pub fn rgb(c: Rgb) -> Color {
Color::Rgb(c.0, c.1, c.2)
}
/// Blend `bg` toward `accent` by `amount` (0.01.0).
pub fn tint(bg: Rgb, accent: Rgb, amount: f32) -> Rgb {
let mix = |b: u8, a: u8| -> u8 {
let v = b as f32 + (a as f32 - b as f32) * amount;
@@ -45,10 +51,12 @@ pub fn tint(bg: Rgb, accent: Rgb, amount: f32) -> Rgb {
(mix(bg.0, accent.0), mix(bg.1, accent.1), mix(bg.2, accent.2))
}
/// Linearly interpolate between two colors.
pub fn mid(a: Rgb, b: Rgb, t: f32) -> Rgb {
tint(a, b, t)
}
/// Darken a color by reducing brightness.
pub fn darken(c: Rgb, amount: f32) -> Rgb {
let d = |v: u8| -> u8 { (v as f32 * (1.0 - amount)).clamp(0.0, 255.0) as u8 };
(d(c.0), d(c.1), d(c.2))