1use crate::Palette;
2use ratatui_core::style::Color;
3use std::borrow::Cow;
4
5const 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 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}