69 lines
2.5 KiB
Rust
69 lines
2.5 KiB
Rust
// Colours. Light values come from the original's stylesheet
|
||
// (index CSS, ":root,.sand-1vbcnu7" block). Dark values come from the renderer's appearance primitives.
|
||
|
||
use eframe::egui::Color32;
|
||
|
||
#[derive(Clone, Copy)]
|
||
pub struct Palette {
|
||
pub pane: Color32,
|
||
pub sidebar: Color32,
|
||
pub elevated: Color32,
|
||
pub hover: Color32,
|
||
pub active: Color32,
|
||
pub primary: Color32,
|
||
pub text: Color32,
|
||
pub text2: Color32,
|
||
pub text3: Color32,
|
||
pub on_primary: Color32,
|
||
pub bubble_user: Color32,
|
||
pub border: Color32,
|
||
pub focus: Color32,
|
||
pub accent: Color32,
|
||
pub danger: Color32,
|
||
}
|
||
|
||
const fn hexa(r: u8, g: u8, b: u8, a: u8) -> Color32 {
|
||
Color32::from_rgba_unmultiplied_const(r, g, b, a)
|
||
}
|
||
|
||
pub const LIGHT: Palette = Palette {
|
||
pane: hexa(0xff, 0xff, 0xff, 0xff),
|
||
sidebar: hexa(0xf5, 0xf5, 0xf5, 0xff),
|
||
elevated: hexa(0xff, 0xff, 0xff, 0xff),
|
||
hover: hexa(0x1c, 0x1c, 0x1c, 0x0f),
|
||
active: hexa(0x1c, 0x1c, 0x1c, 0x14),
|
||
primary: hexa(0x1c, 0x1c, 0x1c, 0xff),
|
||
text: hexa(0x1c, 0x1c, 0x1c, 0xff),
|
||
text2: hexa(0x1c, 0x1c, 0x1c, 0xad),
|
||
text3: hexa(0x1c, 0x1c, 0x1c, 0x8f),
|
||
on_primary: hexa(0xff, 0xff, 0xff, 0xff),
|
||
bubble_user: hexa(0x1c, 0x1c, 0x1c, 0xff),
|
||
border: hexa(0x1c, 0x1c, 0x1c, 0x1f),
|
||
focus: hexa(0x1e, 0x86, 0xfc, 0xff),
|
||
accent: hexa(0x16, 0x80, 0xf3, 0xff),
|
||
danger: hexa(0xcd, 0x28, 0x34, 0xff),
|
||
};
|
||
|
||
// From the original's renderer (index.eager-common: appearance primitives dark neutral/0..6 and the
|
||
// g_ alpha table): pane #1f1f1f, elevated #161616, chrome #121212, sidebar #0e0e0e, ink #f5f5f5,
|
||
// primary hover #dbdbdb; translucent tokens are the ink at hover 6%, active 8%, agent bubble 4%,
|
||
// user bubble 18%, text 66/54%, border 10%. Accent blue/0 #1884fc, danger red/0 #fc2c3e.
|
||
// Measured from the original's dark window: chat rgb 19, sidebar 16, bubbles/cards 31–33.
|
||
pub const DARK: Palette = Palette {
|
||
pane: hexa(0x13, 0x13, 0x13, 0xff),
|
||
sidebar: hexa(0x10, 0x10, 0x10, 0xff),
|
||
elevated: hexa(0x1f, 0x1f, 0x1f, 0xff),
|
||
hover: hexa(0xf5, 0xf5, 0xf5, 0x0f),
|
||
active: hexa(0xf5, 0xf5, 0xf5, 0x14),
|
||
primary: hexa(0xf5, 0xf5, 0xf5, 0xff),
|
||
text: hexa(0xf5, 0xf5, 0xf5, 0xff),
|
||
text2: hexa(0xf5, 0xf5, 0xf5, 0xa8),
|
||
text3: hexa(0xf5, 0xf5, 0xf5, 0x8a),
|
||
on_primary: hexa(0x1f, 0x1f, 0x1f, 0xff),
|
||
bubble_user: hexa(0xf5, 0xf5, 0xf5, 0x2e),
|
||
border: hexa(0xf5, 0xf5, 0xf5, 0x1a),
|
||
focus: hexa(0x18, 0x84, 0xfc, 0xff),
|
||
accent: hexa(0x18, 0x84, 0xfc, 0xff),
|
||
danger: hexa(0xfc, 0x2c, 0x3e, 0xff),
|
||
};
|