rat_theme2/palettes/
base16.rs

1use crate::Palette;
2use ratatui::style::Color;
3
4/// Base 16
5///
6/// Uses the classic 16 vga colors.
7/// No gradients.
8const DARKNESS: u8 = 63;
9
10pub const BASE16: Palette = Palette {
11    primary: fillin(0x00aa00, DARKNESS),
12    secondary: fillin(0x00aaaa, DARKNESS),
13
14    white: [
15        Color::Rgb(0xaa, 0xaa, 0xaa),
16        Color::Rgb(0xaa, 0xaa, 0xaa),
17        Color::Rgb(0xff, 0xff, 0xff),
18        Color::Rgb(0xff, 0xff, 0xff),
19        Color::Rgb(0xaa, 0xaa, 0xaa),
20        Color::Rgb(0xaa, 0xaa, 0xaa),
21        Color::Rgb(0xff, 0xff, 0xff),
22        Color::Rgb(0xff, 0xff, 0xff),
23    ],
24    gray: [
25        Color::Rgb(0x55, 0x55, 0x55),
26        Color::Rgb(0x55, 0x55, 0x55),
27        Color::Rgb(0xaa, 0xaa, 0xaa),
28        Color::Rgb(0xaa, 0xaa, 0xaa),
29        Color::Rgb(0x55, 0x55, 0x55),
30        Color::Rgb(0x55, 0x55, 0x55),
31        Color::Rgb(0xaa, 0xaa, 0xaa),
32        Color::Rgb(0xaa, 0xaa, 0xaa),
33    ],
34    black: [
35        Color::Rgb(0x00, 0x00, 0x00),
36        Color::Rgb(0x00, 0x00, 0x00),
37        Color::Rgb(0x55, 0x55, 0x55),
38        Color::Rgb(0x55, 0x55, 0x55),
39        Color::Rgb(0x00, 0x00, 0x00),
40        Color::Rgb(0x00, 0x00, 0x00),
41        Color::Rgb(0x55, 0x55, 0x55),
42        Color::Rgb(0x55, 0x55, 0x55),
43    ],
44
45    red: fillin(0xaa0000, DARKNESS),
46    orange: fillin(0xaa5500, DARKNESS),
47    yellow: fillin(0xffff55, DARKNESS),
48    limegreen: fillin(0x55ff55, DARKNESS),
49    green: fillin(0x00aa00, DARKNESS),
50    bluegreen: fillin(0x55ffff, DARKNESS),
51    cyan: fillin(0x00aaaa, DARKNESS),
52    blue: fillin(0x5555ff, DARKNESS),
53    deepblue: fillin(0x0000af, DARKNESS),
54    purple: fillin(0xaa00aa, DARKNESS),
55    magenta: fillin(0xff55ff, DARKNESS),
56    redpink: fillin(0xff5555, DARKNESS),
57};
58
59const fn fillin(c0: u32, dark_scale_to: u8) -> [Color; 8] {
60    let r0 = (c0 >> 16) as u8;
61    let g0 = (c0 >> 8) as u8;
62    let b0 = c0 as u8;
63
64    // dark
65    let r4 = Palette::scale_to(r0, dark_scale_to);
66    let g4 = Palette::scale_to(g0, dark_scale_to);
67    let b4 = Palette::scale_to(b0, dark_scale_to);
68
69    [
70        Color::Rgb(r0, g0, b0),
71        Color::Rgb(r0, g0, b0),
72        Color::Rgb(r0, g0, b0),
73        Color::Rgb(r0, g0, b0),
74        Color::Rgb(r4, g4, b4),
75        Color::Rgb(r4, g4, b4),
76        Color::Rgb(r4, g4, b4),
77        Color::Rgb(r4, g4, b4),
78    ]
79}