ZIm/crates/theme2/src/default.rs
2023-10-30 16:21:59 -04:00

101 lines
2.4 KiB
Rust

use std::collections::HashMap;
use gpui2::Rgba;
use crate::scale::{ColorScaleName, ColorScaleSet, ColorScales};
struct DefaultColorScaleSet {
scale: ColorScaleName,
light: [&'static str; 12],
light_alpha: [&'static str; 12],
dark: [&'static str; 12],
dark_alpha: [&'static str; 12],
}
impl From<DefaultColorScaleSet> for ColorScaleSet {
fn from(default: DefaultColorScaleSet) -> Self {
Self::new(
default.scale,
default
.light
.map(|color| Rgba::try_from(color).unwrap().into()),
default
.light_alpha
.map(|color| Rgba::try_from(color).unwrap().into()),
default
.dark
.map(|color| Rgba::try_from(color).unwrap().into()),
default
.dark_alpha
.map(|color| Rgba::try_from(color).unwrap().into()),
)
}
}
pub fn default_color_scales() -> ColorScales {
use ColorScaleName::*;
HashMap::from_iter([(Red, red().into())])
}
fn red() -> DefaultColorScaleSet {
DefaultColorScaleSet {
scale: ColorScaleName::Red,
light: [
"#fffcfc00",
"#fff7f700",
"#feebec00",
"#ffdbdc00",
"#ffcdce00",
"#fdbdbe00",
"#f4a9aa00",
"#eb8e9000",
"#e5484d00",
"#dc3e4200",
"#ce2c3100",
"#64172300",
],
light_alpha: [
"#ff000003",
"#ff000008",
"#f3000d14",
"#ff000824",
"#ff000632",
"#f8000442",
"#df000356",
"#d2000571",
"#db0007b7",
"#d10005c1",
"#c40006d3",
"#55000de8",
],
dark: [
"#19111100",
"#20131400",
"#3b121900",
"#500f1c00",
"#61162300",
"#72232d00",
"#8c333a00",
"#b5454800",
"#e5484d00",
"#ec5d5e00",
"#ff959200",
"#ffd1d900",
],
dark_alpha: [
"#f4121209",
"#f22f3e11",
"#ff173f2d",
"#fe0a3b44",
"#ff204756",
"#ff3e5668",
"#ff536184",
"#ff5d61b0",
"#fe4e54e4",
"#ff6465eb",
"#ff959200",
"#ffd1d900",
],
}
}