Consolidate desktop controls with editable holidays and a running-window tray
This commit is contained in:
1 parent
9908dde9f8
commit
326465952a
55 files changed
+4207
-450
No files matched your search
@@ -1,8 +1,8 @@
|
||||
# Ferese Graphite 视觉方案
|
||||
|
||||
- 文档版本:1.1
|
||||
- 文档版本:1.3
|
||||
- 整理日期:2026-10-28
|
||||
- 视觉基线:`1e34ec4`;本版补充内容密度、详细页分组与窗口交互规则。
|
||||
- 视觉基线:`1e34ec4`、`9908dde`;本版补充导航滚动、本地化、时间控制面板、活动窗口与可编辑祝日函数。
|
||||
- 适用范围:Ferese 设置、Shell 共享控件、锁屏与原生 Rime 候选界面的主题协同。
|
||||
|
||||
## 1. 视觉目标
|
||||
@@ -75,8 +75,9 @@
|
||||
| 分组标题,含侧栏和详细页 | 14 px | Bold |
|
||||
| 总览卡片标题 | 14 px | Regular |
|
||||
| 侧栏导航、普通字段名称 | 13 px | Regular |
|
||||
| 字段辅助说明、卡片说明 | 12 px | Regular、次级色 |
|
||||
| 保存状态与辅助提示 | 11–12 px | Regular、次级色 |
|
||||
| 字段补充说明与辅助提示 | 10.5 px | Regular、次级色,与 13 px 字段名称明确区分 |
|
||||
| 卡片说明、代码编辑器 | 11 px | Regular |
|
||||
| 保存状态 | 11 px | Regular、次级色 |
|
||||
|
||||
字段名称与短说明在同一段内自然排版,仅在可用宽度不足时换行;说明使用次级色区分,不另起固定的一行。页面标题下不重复展示泛化副标题。卡片高度跟随实际内容,适应中英文;细则与控件文字均使用标准字重。
|
||||
|
||||
@@ -115,7 +116,11 @@
|
||||
| 导航行内元素间距 | 8 px |
|
||||
| 选中指示条 | 2 × 14 px |
|
||||
| 普通输入框圆角上限 | 7 px |
|
||||
| 按钮圆角上限 | 9 px |
|
||||
| 设置按钮圆角上限 | 5 px |
|
||||
| 按钮组圆角上限 | 6 px |
|
||||
| 按钮组内边距 | 5 px |
|
||||
| 选项按钮内边距 | 上下 6 px、左右 10 px;页内标签为 8 / 14 px |
|
||||
| 导航滚动条 | 宽 4 px,与选项间隔 8 px,单独占位 |
|
||||
| 分区容器圆角上限 | 10 px |
|
||||
| 常规边界 | 1 px |
|
||||
| 键盘焦点轮廓 | 2 px |
|
||||
@@ -131,7 +136,7 @@ Appearance 作为全部设置的入口,内容按实际功能分组:
|
||||
| 快速访问 | 常规、全部配置 |
|
||||
| 桌面 | 主题、壁纸、面板与 Shell、托盘图标 |
|
||||
| 交互 | 窗口、键盘与鼠标、辅助功能 |
|
||||
| 系统 | 显示器、连接、通知、锁屏、登录启动项 |
|
||||
| 系统 | 显示器、连接、通知、日历、锁屏、登录启动项 |
|
||||
|
||||
总览使用等宽卡片,文字区域占用弹性空间,箭头在卡片末端对齐。
|
||||
|
||||
@@ -151,6 +156,7 @@ Appearance 作为全部设置的入口,内容按实际功能分组:
|
||||
| 详细页 | 主要分组 |
|
||||
| --- | --- |
|
||||
| 常规 | 界面 |
|
||||
| 日历 | 日期显示、日本祝日、自定义节假日 |
|
||||
| 窗口 | 工作区与布局、间距与圆角、焦点与窗口效果 |
|
||||
| 键盘与鼠标 | 键盘布局、按键重复、鼠标、触控板 |
|
||||
| 主题 | 配色与强调色、表面与透明度、字体与排版;自动外观按需展开 |
|
||||
@@ -197,6 +203,43 @@ Appearance 作为全部设置的入口,内容按实际功能分组:
|
||||
- 背景、边界与选中态通过共享主题保持一致。
|
||||
- 保留数字键选字以及数字行 `-`、`=` / `+` 翻页的既有行为。
|
||||
|
||||
### 7.3 导航、按钮组与本地化
|
||||
|
||||
- 导航滚动条嵌入独立通道,绘制区域和点击区域均不覆盖导航项。直接打开靠下的页面、切换页面及打开抽屉时,将当前选项完整滚入视口。
|
||||
- 按钮组与内部按钮使用保留少量圆角的矩形。组背景采用轻微表面差,扩大内边距,避免形成明显的厚重外框。
|
||||
- 标准设置名称、说明、枚举、面板项目、连接操作和提示通过统一语言目录显示。配置键、动作标识、应用名、SSID 和用户内容保留原值。
|
||||
|
||||
### 7.4 时间入口与通知标记
|
||||
|
||||
- 时间右侧紧邻通知标记,二者保持紧凑间距。标记为 **3 × 13 px**、圆角 **1.5 px** 的竖条;点击区域固定宽 **11 px**。
|
||||
- 有通知时竖条为白色,无通知时透明,状态变化不改变布局宽度。点击仍可打开通知历史。
|
||||
- 移除独立控制中心、Wi-Fi 和夜光快捷图标。旧面板配置在显示时合并时间相关入口,保留其余项目的 ID、可见性和自定义内容。
|
||||
- 点击时间打开组合组件:上方日历,下方控制中心。控制中心保留外观、网络、蓝牙、音量、亮度与电源管理,移除夜光和勿扰开关。
|
||||
- 音量区显示当前输出设备、百分比、音量滑块与明确标注的静音开关;设备暂不可用时显示简短状态。
|
||||
- 电源区按设备能力显示节能、均衡、性能模式,以及重启、关机、挂起操作。重启、关机、挂起先打开确认弹窗;取消保持当前会话。
|
||||
- 常规组合弹层宽 360 px,高度随内容变化并受可用空间限制;内容过长时可滚动。Morph 样式同步提供组合内容。
|
||||
|
||||
### 7.5 活动窗口区
|
||||
|
||||
- 活动窗口区位于面板右侧、系统托盘区左边,与工作区显示空间独立。排列所有已打开窗口,每个窗口一个应用图标,关闭窗口即移除;不保留已关闭应用的固定图标。
|
||||
- 点击图标切换到对应窗口,支持同一应用的多个窗口和跨工作区切换。以启动顺序保持稳定位置,突出当前焦点窗口。
|
||||
- 图标 18 px,按钮宽 30 px,间隔 2 px;悬停显示窗口标题,标题为空时使用应用标识。窗口过多时在分配宽度内横向滚动,默认最大宽 360 px。
|
||||
- 面板编辑器可添加、隐藏、移动“活动窗口”项目;旧预设在合并时间入口时补齐该项目,新配置中主动移除后不会自动恢复。
|
||||
|
||||
### 7.6 日历与祝日函数
|
||||
|
||||
- 每周从周日开始;星期标题随 Ferese 语言变化,中文为“日、一、二、三、四、五、六”,英文为 Sun 至 Sat。
|
||||
- 日本祝日和自定义节假日的日期使用红色粗体,悬停可查看名称;当前日期底色与节假日文字样式分别表达。
|
||||
- 默认显示相邻月份的日期,在“日历 → 日期显示”中可关闭。开关不改变本月日期的列对齐。
|
||||
- “日历 → 日本祝日”右侧仅提供代码图标作为函数编辑入口。点击展开 280 px 高的多行编辑器;未应用代码在收起、再次打开后继续保留。
|
||||
- 编辑器提供“应用函数”和“恢复内置函数”。恢复只替换编辑内容,仍需应用;语法或日期结果错误时保留草稿和诊断,当前日历继续使用已保存函数。
|
||||
- 内置源为 [japanese-holidays.rhai](../../crates/ferese-config/data/japanese-holidays.rhai),入口 `japanese_holidays(year)` 返回 `YYYY-MM-DD → 名称` 映射。辅助函数为 `date(year, month, day)`、`weekday(date)`(周日为 0)、`add_days(date, n)`、`days_in_year(year)` 和 `floor(value)`。
|
||||
- 规则包含历史制度调整、振替休日、夹在祝日间的休日、即位等特例,以及 2020 / 2021 年奥运调整。适用范围为 1955–2099 年;已与内阁府公布的 1955–2027 年全部 1067 条日期和名称核对一致。未公布年份按规则推算,春秋分日以官报公布为准。
|
||||
- 解释器离线运行,禁用导入与动态求值,并限制代码长度、运算量、调用深度和容器大小。编译结果和年度结果缓存,函数校验在后台执行。
|
||||
- 自定义节假日支持 `YYYY-MM-DD` 单次日期和 `MM-DD` 每年重复;同一天可同时显示日本祝日与个人节假日名称。
|
||||
|
||||
来源:[内阁府祝日资料](https://www8.cao.go.jp/chosei/shukujitsu/gaiyou.html)、[国立天文台春秋分日说明](https://www.nao.ac.jp/faq/a0301.html)、[Rhai 运算限制](https://rhai.rs/book/safety/max-operations.html)。官方快照作为回归校验资料,日历运行时使用可编辑函数。
|
||||
|
||||
## 8. 动效原则
|
||||
|
||||
保留现有动画与“减少动画”配置。动效服务于状态变化与空间关系,悬停和按下反馈保持简洁。
|
||||
@@ -217,6 +260,17 @@ theme {
|
||||
|
||||
将 `mode` 改为 `"light"` 可使用同一主题族的浅色外观。现有其他主题仍可从“外观与设置 → 主题”切换。
|
||||
|
||||
```kdl
|
||||
status {
|
||||
calendar {
|
||||
show-adjacent-days #true
|
||||
custom-holidays "12-24" "个人假日"
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
祝日函数通过设置编辑,保存在 `status.calendar.japanese_holiday_function`;未覆盖时使用内置函数。
|
||||
|
||||
## 10. 验收与实现索引
|
||||
|
||||
### 验收要点
|
||||
@@ -238,17 +292,22 @@ theme {
|
||||
|
||||
| 验证项 | 结果 |
|
||||
| --- | --- |
|
||||
| 设置测试 | 117 项通过,9 项可选检查默认跳过 |
|
||||
| 设置测试 | 120 项通过,9 项可选检查默认跳过 |
|
||||
| 滚动渲染专项 | 额外运行 1 项通过,覆盖 WGPU / tiny-skia 与两种主题配置 |
|
||||
| 配置测试 | 46 项单元测试及 11 项集成测试通过 |
|
||||
| 配置测试 | 51 项单元测试及 11 项集成测试通过 |
|
||||
| 共享主题 / 面板 / Shell | 33 / 69 / 253 项通过 |
|
||||
| 布局检查 | 覆盖 480–1800 px 窗口宽度 |
|
||||
| 原生预览 | 已检查深浅外观及 631 px 窄窗口 |
|
||||
| 导航居中 | 全部 15 项;包含“交互”分组和实际悬停检查 |
|
||||
| 导航居中 | 全部 16 项;包含独立滚动条通道检查 |
|
||||
| Rime | 原生输入、候选、翻页、主题变化与进程恢复通过 |
|
||||
| 边缘双击 | 原生预览内 1272 px 最大化与 631 px 还原双向切换通过,配置内容不变 |
|
||||
| 导航抽屉 | 已移除关闭按钮,外侧点击和 Esc 关闭均检查通过 |
|
||||
| 时间控制面板 | 原生预览显示真实音频输出、音量与静音控件、电源模式;关机确认后取消,会话保持运行 |
|
||||
| 活动窗口区 | 位于右侧托盘左边;三个窗口点击、相邻图标切换、跨工作区激活、关闭移除与重新打开均通过 |
|
||||
| 祝日函数 | 原生编辑并应用函数可改变日历;无限循环被拒绝且保存配置不变,恢复内置函数后配置校验通过 |
|
||||
| 通知标记 | 独立预览中创建并移除测试通知,检查白色与透明状态,点击区域宽度保持不变 |
|
||||
|
||||
共享主题 32 项、Shell 247 项的验证记录来自前版基线 `1e34ec4`。本版未改动这两部分的实现。
|
||||
滚动渲染专项、边缘双击与窄窗口抽屉的记录沿用前版 `9908dde`。本版原生检查使用独立嵌套预览,保留原预览中的应用;没有重新执行关机、挂起或切换实际桌面会话。主机显示器、默认应用关联和 GNOME 输入源配置与开始时一致。
|
||||
|
||||
### 实现位置
|
||||
|
||||
@@ -260,8 +319,13 @@ theme {
|
||||
| 页面结构与导航居中 | `shell/ferese-settings/src/pages.rs` |
|
||||
| 详细页字段分组 | `shell/ferese-settings/src/schema.rs` |
|
||||
| 行内说明与标题字重 | `shell/ferese-settings/src/form_controls.rs` |
|
||||
| 日历设置与代码编辑器 | `shell/ferese-settings/src/calendar_controls.rs` |
|
||||
| 日历日期和星期显示 | `crates/ferese-theme/src/calendar.rs` |
|
||||
| 祝日函数执行与校验 | `crates/ferese-config/src/calendar_rules.rs` |
|
||||
| 时间弹层与控制中心 | `shell/ferese-shell/src/status_ui/` |
|
||||
| 活动窗口与焦点切换 | `shell/ferese-shell/src/window_tray.rs` |
|
||||
| 总览卡片与双列布局 | `shell/ferese-settings/src/all_options.rs` |
|
||||
| 分区表面与图标 | `shell/ferese-settings/src/visuals.rs` |
|
||||
| 布局及对齐回归检查 | `shell/ferese-settings/src/scroll_tests.rs` |
|
||||
|
||||
前版参考帧及导航居中记录保存在 `.artifacts/visual-reference-20261028/`;本版详细页、导航抽屉与窗口双击记录保存在 `.artifacts/settings-density-20261028/`。这些本机验收资料不随仓库分发。
|
||||
前版记录保存在 `.artifacts/visual-reference-20261028/` 与 `.artifacts/settings-density-20261028/`;本版日历、函数编辑器和通知标记的记录保存在 `.artifacts/time-hub-20261028/`。这些本机验收资料不随仓库分发。
|
||||
Reference in new issue
Block a user