🥰 需求描述(Description)
先把“主题”拆成两层。第一层是配色模式,保留 light / dark / system,再加一个 custom。第二层是外观包,包含背景图、遮罩、不透明度、模糊、缩放方式、强调色。
上传图片不要存数据库,存到应用数据目录里,数据库只存相对路径、尺寸、hash、更新时间。这样备份、迁移、清理都更稳。
现有 user 单表已经装着设置了,直接加字段最顺手。你现在的设置 DTO 在 E:\chengxu\ReinaManager\src-tauri\src\database\dto.rs,实体在 E:\chengxu\ReinaManager\src-tauri\src\entity\user.rs,扩展空间很够。
前端做一个全局背景层,放在最顶层 layout 下面,所有页面共用。背景图上面叠一层可调暗度的遮罩,保证库页、详情页、统计页都能看清。
设置页加一个“外观”区块,至少包含:上传图片、预览、移除、填充方式、模糊、遮罩强度、应用到浅色/深色/全部模式。
后面再补“主题包”机制。主题包可以是一个 JSON 清单 + 图片资源目录,像 Heroic / Playnite 那样让用户导入导出。
🧐 解决方案(Solution)
梳理现有主题入口、设置存储、数据库字段,确认现在的 light / dark / system 入口和落库位置。
定义新主题模型,拆成 配色模式、背景图、遮罩、模糊、缩放方式 这几项。
扩展后端设置结构和数据库迁移,把主题配置正式写进现有 settings 体系。
实现图片上传、复制到应用数据目录、删除、路径清理和格式校验。
在前端加全局主题渲染层,让背景图覆盖到整个应用,但不影响正文可读性。
做主题设置 UI,支持预览、切换、重置,并保留现在的明暗主题切换。
做跨平台和可用性验证,重点看 Windows / Linux、深色 / 浅色、无图 / 大图、低对比度场景。
Additional context/其他信息
No response
🥰 需求描述(Description)
先把“主题”拆成两层。第一层是配色模式,保留 light / dark / system,再加一个 custom。第二层是外观包,包含背景图、遮罩、不透明度、模糊、缩放方式、强调色。
上传图片不要存数据库,存到应用数据目录里,数据库只存相对路径、尺寸、hash、更新时间。这样备份、迁移、清理都更稳。
现有 user 单表已经装着设置了,直接加字段最顺手。你现在的设置 DTO 在 E:\chengxu\ReinaManager\src-tauri\src\database\dto.rs,实体在 E:\chengxu\ReinaManager\src-tauri\src\entity\user.rs,扩展空间很够。
前端做一个全局背景层,放在最顶层 layout 下面,所有页面共用。背景图上面叠一层可调暗度的遮罩,保证库页、详情页、统计页都能看清。
设置页加一个“外观”区块,至少包含:上传图片、预览、移除、填充方式、模糊、遮罩强度、应用到浅色/深色/全部模式。
后面再补“主题包”机制。主题包可以是一个 JSON 清单 + 图片资源目录,像 Heroic / Playnite 那样让用户导入导出。
🧐 解决方案(Solution)
梳理现有主题入口、设置存储、数据库字段,确认现在的 light / dark / system 入口和落库位置。
定义新主题模型,拆成 配色模式、背景图、遮罩、模糊、缩放方式 这几项。
扩展后端设置结构和数据库迁移,把主题配置正式写进现有 settings 体系。
实现图片上传、复制到应用数据目录、删除、路径清理和格式校验。
在前端加全局主题渲染层,让背景图覆盖到整个应用,但不影响正文可读性。
做主题设置 UI,支持预览、切换、重置,并保留现在的明暗主题切换。
做跨平台和可用性验证,重点看 Windows / Linux、深色 / 浅色、无图 / 大图、低对比度场景。
Additional context/其他信息
No response