Add AppearanceSettings to ely_domain

Introduces a small persistent appearance contract: WallpaperTheme
(Dawn/Violet/Mint/Slate), ThemeMode (System/Light/Dark), reduce_motion.
Defaults to Dawn + System + motion-on. Field accessors and setters live
on the struct so the core can mutate without exposing internals; serde
support uses kebab-case so the on-disk form matches the design CSS
naming.

Tests cover defaults, mutation independence, and a JSON round-trip with
the kebab-case names. serde_json is added as a dev-dependency only —
the production crate does not depend on it.
This commit is contained in:
2026-05-09 18:46:58 -04:00
parent db70ca142c
commit 71088bccb0
4 changed files with 111 additions and 0 deletions
+2
View File
@@ -1,3 +1,4 @@
mod appearance;
mod archive;
mod bookmark;
mod command;
@@ -23,6 +24,7 @@ mod tab_group;
mod update;
mod url_text;
pub use appearance::{AppearanceSettings, ThemeMode, WallpaperTheme};
pub use archive::{ArchiveSource, ArchivedTab};
pub use bookmark::BookmarkEntry;
pub use command::{CommandIntent, CommandScope};