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),
|
|||
|
|
};
|