chromakopia 0.1.0

Beautiful terminal string gradients and animations for Rust
Documentation
//! Built-in gradient presets matching gradient-string's named gradients.

use crate::color::Color;
use crate::gradient::Gradient;

fn g(colors: &[(u8, u8, u8)]) -> Gradient {
    Gradient::new(colors.iter().map(|&(r, g, b)| Color::new(r, g, b)).collect())
}

pub fn atlas() -> Gradient {
    g(&[(0xfe, 0xac, 0x5e), (0xc7, 0x79, 0xd0), (0x4b, 0xc0, 0xc8)])
}

pub fn cristal() -> Gradient {
    g(&[(0xbd, 0xff, 0xf3), (0x4a, 0xc2, 0x9a)])
}

pub fn teen() -> Gradient {
    g(&[(0x77, 0xa1, 0xd3), (0x79, 0xcb, 0xca), (0xe6, 0x84, 0xae)])
}

pub fn mind() -> Gradient {
    g(&[(0x47, 0x3b, 0x7b), (0x35, 0x84, 0xa7), (0x30, 0xd2, 0xbe)])
}

pub fn morning() -> Gradient {
    g(&[(0xff, 0x5f, 0x6d), (0xff, 0xc3, 0x71)]).hsv()
}

pub fn vice() -> Gradient {
    g(&[(0x5e, 0xe7, 0xdf), (0xb4, 0x90, 0xca)]).hsv()
}

pub fn passion() -> Gradient {
    g(&[(0xf4, 0x3b, 0x47), (0x45, 0x3a, 0x94)])
}

pub fn fruit() -> Gradient {
    g(&[(0xff, 0x4e, 0x50), (0xf9, 0xd4, 0x23)])
}

pub fn instagram() -> Gradient {
    g(&[(0x83, 0x3a, 0xb4), (0xfd, 0x1d, 0x1d), (0xfc, 0xb0, 0x45)])
}

pub fn retro() -> Gradient {
    g(&[
        (0x3f, 0x51, 0xb1),
        (0x5a, 0x55, 0xae),
        (0x7b, 0x5f, 0xa7),
        (0x8b, 0x6d, 0x9c),
        (0x9b, 0x7a, 0x8e),
        (0xa2, 0x83, 0x87),
        (0xa9, 0x8d, 0x7f),
        (0xba, 0xa5, 0x8d),
        (0xf7, 0xc9, 0x78),
    ])
}

pub fn summer() -> Gradient {
    g(&[(0xfd, 0xbb, 0x2d), (0x22, 0xc1, 0xc3)])
}

pub fn rainbow() -> Gradient {
    g(&[(0xff, 0x00, 0x00), (0xff, 0x01, 0x00)]).long()
}

pub fn pastel() -> Gradient {
    g(&[(0x74, 0xeb, 0xd5), (0x74, 0xec, 0xd5)]).long()
}

/// Warm orange to deep brown — like the cocktail.
pub fn dark_n_stormy() -> Gradient {
    g(&[(0xff, 0x9a, 0x3c), (0xc8, 0x6e, 0x2a), (0x6b, 0x3a, 0x12)])
}

/// Cool blue-white fog fading into deep pine green.
pub fn mist() -> Gradient {
    g(&[(0xe0, 0xf0, 0xf8), (0x8f, 0xcd, 0xdb), (0x5d, 0x8a, 0x9e), (0x2f, 0x4f, 0x4f)])
}

/// Deep blacks, dusty gold, and oxblood — candlelit medieval.
pub fn relic() -> Gradient {
    g(&[(0x1a, 0x12, 0x0e), (0x6b, 0x35, 0x1e), (0xc4, 0x9a, 0x5a), (0x6b, 0x35, 0x1e), (0x1a, 0x12, 0x0e)])
}

/// Bright amber to warm gold — airport departure board.
pub fn flughafen() -> Gradient {
    g(&[(0xff, 0xcc, 0x00), (0xff, 0xa5, 0x00), (0x99, 0x7a, 0x00)])
}