rat_theme3/palettes/
base16.rs

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