AnyBot/src/theme.rs

69 lines
2.5 KiB
Rust
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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