feat: add new theme #61

Merged
reya merged 14 commits from new-theme into master 2026-10-10 00:30:44 +00:00
4 changed files with 9 additions and 8 deletions
Showing only changes of commit c0cfdb8996 - Show all commits
+2 -2
View File
@@ -332,8 +332,8 @@ mod tests {
} }
#[test] #[test]
fn missing_appearance_mode_falls_back_to_system() { fn missing_appearance_mode_falls_back_to_dark() {
let settings = json_with("").unwrap(); let settings = json_with("").unwrap();
assert_eq!(settings.appearance_mode, AppearanceMode::System); assert_eq!(settings.appearance_mode, AppearanceMode::Dark);
} }
} }
+5 -4
View File
@@ -12,11 +12,12 @@ use crate::{Theme, ThemeMode};
/// it wherever their settings live; this crate never touches disk. /// it wherever their settings live; this crate never touches disk.
#[derive(Debug, Clone, Copy, PartialEq, Eq, Default, Serialize, Deserialize)] #[derive(Debug, Clone, Copy, PartialEq, Eq, Default, Serialize, Deserialize)]
pub enum AppearanceMode { pub enum AppearanceMode {
/// Follow the OS. The default — matches every other native app on the /// Follow the OS — matches every other native app on the machine,
/// machine, including when the OS is set to switch at sunset. /// including when the OS is set to switch at sunset.
#[default]
System, System,
Light, Light,
/// Paint dark regardless of the OS.
#[default]
Dark, Dark,
} }
@@ -62,7 +63,7 @@ pub fn init(mode: AppearanceMode, cx: &mut App) {
Theme::change(resolve(mode, system), None, cx); Theme::change(resolve(mode, system), None, cx);
} }
/// The mode currently in effect (defaults to `System` before [`init`]). /// The mode currently in effect (defaults to `Dark` before [`init`]).
pub fn mode(cx: &App) -> AppearanceMode { pub fn mode(cx: &App) -> AppearanceMode {
cx.try_global::<AppearanceState>() cx.try_global::<AppearanceState>()
.map(|state| state.mode) .map(|state| state.mode)
+1 -1
View File
@@ -66,7 +66,7 @@ pub const TABBAR_HEIGHT: Pixels = px(36.0);
pub const SIDEBAR_WIDTH: Pixels = px(240.); pub const SIDEBAR_WIDTH: Pixels = px(240.);
pub fn init(cx: &mut App) { pub fn init(cx: &mut App) {
appearance::init(AppearanceMode::System, cx); appearance::init(AppearanceMode::default(), cx);
Theme::sync_scrollbar_appearance(cx); Theme::sync_scrollbar_appearance(cx);
} }
+1 -1
View File
@@ -5,8 +5,8 @@ use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, Copy, Default, PartialEq, PartialOrd, Eq, Hash, Deserialize, Serialize)] #[derive(Debug, Clone, Copy, Default, PartialEq, PartialOrd, Eq, Hash, Deserialize, Serialize)]
pub enum ThemeMode { pub enum ThemeMode {
#[default] #[default]
Light,
Dark, Dark,
Light,
} }
impl ThemeMode { impl ThemeMode {