Resolve light, dark and automatic appearance centrally and publish live theme snapshots to native surfaces and the appearance portal. Add paired preset families, custom theme imports, accessibility transforms and contrast-safe transitions. Refine the Settings gallery and Auto controls, move overrides under advanced customization, and share palette-aware switches and circular slider thumbs. Document configuration and include theme licenses and integration coverage.
240 lines
6.3 KiB
Rust
240 lines
6.3 KiB
Rust
use crate::theme::Appearance;
|
|
|
|
pub struct Preset {
|
|
pub id: &'static str,
|
|
pub appearance: Appearance,
|
|
pub name: &'static str,
|
|
pub description: &'static str,
|
|
pub base: &'static str,
|
|
pub raised: &'static str,
|
|
pub application_background: &'static str,
|
|
pub text: &'static str,
|
|
pub muted: &'static str,
|
|
pub accent: &'static str,
|
|
pub border: &'static str,
|
|
pub gradient_end: &'static str,
|
|
pub opacity: f64,
|
|
pub blur_radius: f64,
|
|
pub tint_strength: f64,
|
|
pub shadow_opacity: f64,
|
|
}
|
|
|
|
pub const PRESETS: [Preset; 12] = [
|
|
Preset {
|
|
appearance: Appearance::Dark,
|
|
id: "ferese-blue",
|
|
name: "Ferese Blue",
|
|
description: "Default",
|
|
base: "#111821",
|
|
raised: "#1E2530",
|
|
application_background: "#171E27",
|
|
text: "#F4F7FB",
|
|
muted: "#8793A2",
|
|
accent: "#3D7BE6",
|
|
border: "#FFFFFF18",
|
|
gradient_end: "#3D7BE6",
|
|
opacity: 0.78,
|
|
blur_radius: 12.0,
|
|
tint_strength: 0.5,
|
|
shadow_opacity: 0.2,
|
|
},
|
|
Preset {
|
|
appearance: Appearance::Dark,
|
|
id: "catppuccin-mocha",
|
|
name: "Catppuccin",
|
|
description: "Mocha",
|
|
base: "#1E1E2E",
|
|
raised: "#313244",
|
|
application_background: "#1E1E2E",
|
|
text: "#CDD6F4",
|
|
muted: "#A6ADC8",
|
|
accent: "#CBA6F7",
|
|
border: "#45475A88",
|
|
gradient_end: "#B4BEFE",
|
|
opacity: 0.84,
|
|
blur_radius: 18.0,
|
|
tint_strength: 0.62,
|
|
shadow_opacity: 0.2,
|
|
},
|
|
Preset {
|
|
appearance: Appearance::Dark,
|
|
id: "gruvbox",
|
|
name: "Gruvbox",
|
|
description: "Dark",
|
|
base: "#282828",
|
|
raised: "#3C3836",
|
|
application_background: "#282828",
|
|
text: "#EBDBB2",
|
|
muted: "#BDAE93",
|
|
accent: "#FE8019",
|
|
border: "#50494588",
|
|
gradient_end: "#FABD2F",
|
|
opacity: 0.86,
|
|
blur_radius: 14.0,
|
|
tint_strength: 0.66,
|
|
shadow_opacity: 0.22,
|
|
},
|
|
Preset {
|
|
appearance: Appearance::Dark,
|
|
id: "rose-pine-moon",
|
|
name: "Rosé Pine",
|
|
description: "Moon",
|
|
base: "#232136",
|
|
raised: "#2A273F",
|
|
application_background: "#232136",
|
|
text: "#E0DEF4",
|
|
muted: "#918DAA",
|
|
accent: "#EA9A97",
|
|
border: "#56526E88",
|
|
gradient_end: "#C4A7E7",
|
|
opacity: 0.88,
|
|
blur_radius: 18.0,
|
|
tint_strength: 0.7,
|
|
shadow_opacity: 0.18,
|
|
},
|
|
Preset {
|
|
appearance: Appearance::Dark,
|
|
id: "tokyo-night",
|
|
name: "Tokyo Night",
|
|
description: "Night",
|
|
base: "#1A1B26",
|
|
raised: "#292E42",
|
|
application_background: "#1A1B26",
|
|
text: "#C0CAF5",
|
|
muted: "#A9B1D6",
|
|
accent: "#7AA2F7",
|
|
border: "#41486888",
|
|
gradient_end: "#BB9AF7",
|
|
opacity: 0.85,
|
|
blur_radius: 20.0,
|
|
tint_strength: 0.66,
|
|
shadow_opacity: 0.22,
|
|
},
|
|
Preset {
|
|
appearance: Appearance::Dark,
|
|
id: "everforest-dark",
|
|
name: "Everforest",
|
|
description: "Dark · hard",
|
|
base: "#272E33",
|
|
raised: "#2E383C",
|
|
application_background: "#272E33",
|
|
text: "#D3C6AA",
|
|
muted: "#9DA9A0",
|
|
accent: "#A7C080",
|
|
border: "#49535B88",
|
|
gradient_end: "#83C092",
|
|
opacity: 0.9,
|
|
blur_radius: 14.0,
|
|
tint_strength: 0.7,
|
|
shadow_opacity: 0.18,
|
|
},
|
|
Preset {
|
|
appearance: Appearance::Light,
|
|
id: "ferese-blue-light",
|
|
name: "Ferese Blue",
|
|
description: "Default",
|
|
base: "#F5F7FB",
|
|
raised: "#E7E9ED",
|
|
application_background: "#EFF1F5",
|
|
text: "#182234",
|
|
muted: "#586579",
|
|
accent: "#3D7BE6",
|
|
border: "#18223430",
|
|
gradient_end: "#3D7BE6",
|
|
opacity: 0.94,
|
|
blur_radius: 10.0,
|
|
tint_strength: 1.0,
|
|
shadow_opacity: 0.1,
|
|
},
|
|
Preset {
|
|
appearance: Appearance::Light,
|
|
id: "catppuccin-latte",
|
|
name: "Catppuccin",
|
|
description: "Latte",
|
|
base: "#EFF1F5",
|
|
raised: "#E6E9EF",
|
|
application_background: "#EFF1F5",
|
|
text: "#4C4F69",
|
|
muted: "#5C5F77",
|
|
accent: "#8839EF",
|
|
border: "#9CA0B066",
|
|
gradient_end: "#7287FD",
|
|
opacity: 0.95,
|
|
blur_radius: 12.0,
|
|
tint_strength: 1.0,
|
|
shadow_opacity: 0.08,
|
|
},
|
|
Preset {
|
|
appearance: Appearance::Light,
|
|
id: "gruvbox-light",
|
|
name: "Gruvbox",
|
|
description: "Light",
|
|
base: "#FBF1C7",
|
|
raised: "#F2E5BC",
|
|
application_background: "#FBF1C7",
|
|
text: "#3C3836",
|
|
muted: "#665C54",
|
|
accent: "#AF3A03",
|
|
border: "#92837466",
|
|
gradient_end: "#B57614",
|
|
opacity: 0.96,
|
|
blur_radius: 9.0,
|
|
tint_strength: 1.0,
|
|
shadow_opacity: 0.11,
|
|
},
|
|
Preset {
|
|
appearance: Appearance::Light,
|
|
id: "rose-pine-dawn",
|
|
name: "Rosé Pine",
|
|
description: "Dawn",
|
|
base: "#FAF4ED",
|
|
raised: "#FFFAF3",
|
|
application_background: "#FAF4ED",
|
|
text: "#464261",
|
|
muted: "#716D89",
|
|
accent: "#B4637A",
|
|
border: "#CECACD66",
|
|
gradient_end: "#907AA9",
|
|
opacity: 0.96,
|
|
blur_radius: 12.0,
|
|
tint_strength: 1.0,
|
|
shadow_opacity: 0.07,
|
|
},
|
|
Preset {
|
|
appearance: Appearance::Light,
|
|
id: "tokyo-night-day",
|
|
name: "Tokyo Night",
|
|
description: "Day",
|
|
base: "#E1E2E7",
|
|
raised: "#D0D5E3",
|
|
application_background: "#E1E2E7",
|
|
text: "#3358B0",
|
|
muted: "#4D5A8C",
|
|
accent: "#2C76DD",
|
|
border: "#8990B366",
|
|
gradient_end: "#9854F1",
|
|
opacity: 0.96,
|
|
blur_radius: 10.0,
|
|
tint_strength: 1.0,
|
|
shadow_opacity: 0.1,
|
|
},
|
|
Preset {
|
|
appearance: Appearance::Light,
|
|
id: "everforest-light",
|
|
name: "Everforest",
|
|
description: "Light · hard",
|
|
base: "#FFFBEF",
|
|
raised: "#F8F5E4",
|
|
application_background: "#FFFBEF",
|
|
text: "#5C6A72",
|
|
muted: "#677367",
|
|
accent: "#849601",
|
|
border: "#939F9166",
|
|
gradient_end: "#35A77C",
|
|
opacity: 0.96,
|
|
blur_radius: 8.0,
|
|
tint_strength: 1.0,
|
|
shadow_opacity: 0.08,
|
|
},
|
|
];
|