Skip to content

取色器:设置页与连接对话框里挑颜色不再手敲色值 - #542

Merged
joesdu merged 3 commits into
mainfrom
dev
Oct 1, 2026
Merged

joesdu merged 3 commits into
mainfrom
dev

Conversation

@joesdu

@joesdu joesdu commented Oct 1, 2026 •

Copy link
Copy Markdown
Owner

主要改动

要人挑颜色的六个地方 —— 设置 → 外观的强调色、终端前景 / 背景 / 光标 / 选区,新建 / 编辑连接「终端」页的标签颜色 —— 原先都是「色块 + 手敲 #RRGGBB 的输入框」:想要一个颜色得先去别处查色号;敲错了,终端四色整套落回出厂色,强调色直接不生效。现在一律是取色器。

  • 控件库(VelaShell.Controls):ColorSpectrumPad(饱和度 / 明度面板)与 HueStrip(色相条)两个绘制控件,拖动只改值、松手才发 Committed,方向键可调(Shift 十倍);ColorHex 解析 #RGB / #RRGGBB / #AARRGGBB(不认颜色名),写出一律大写 #RRGGBB。HSV 换算用 Avalonia 自带的 HsvColor。
  • 宿主 Controls/ColorPickerField:字段长得像输入框(色块 + 色值 + 箭头,没有颜色时空框加一行说明);点开是浮层 —— 面板、色相条、新旧对比色块 + 十六进制框、色板、可选的清除。
    • 松手才写回,拖动中只刷浮层预览:强调色一改就要重派生全套主题令牌,终端颜色一改就要重刷所有终端。十六进制框认不出的值不写进设置。
    • 色板:终端四色给当前配色方案的 ANSI 16 色(SettingsViewModel.TerminalSchemeSwatches),其余默认用当前主题色板(新增 ConnectionAccent.PaletteColors())。与当前颜色相同的一格加粗描边。
    • 清除只在值允许为空时给(标签颜色的「自动配色」);强调色清回跟随仍走行首的「跟随主题」按钮;终端四色必填,不给。
    • 状态按 H / S / V 三个数保存:HsvColor 会把色相 360 折回 0,色相条拖到最右一松手会跳回最左。
  • 替换:外观页五个输入框换成取色器;连接对话框的标签颜色换成取色器,Profile_OverrideTabColorPlaceholder 删除。新增 4 个文案键(ColorPicker_Tip、ColorPicker_ThemePalette、ColorPicker_SchemeColors、Profile_TabColorAuto),五份 resx 齐。ANSI 16 色在外观页上仍是只读色块(既有设计),不在此列。

测试

  • VelaShell.Controls.Tests 新增 ColorPickerPartsTests(18 例):各种色值写法、拒绝颜色名与残缺值、格式化丢 alpha、面板四角与越界换算、色相条两端的半径余量、属性钳制。
  • VelaShell.Tests 新增 ColorPickerFieldUiTests(11 例):字段回显与空态、浮层从当前值起步、点色板写回并标出当前格、没给色板时用主题色板、十六进制框写回 / 回退、键盘调面板写回、拖动只在松手时提交一次(真实鼠标事件)、清除按钮的显隐与清空、连接对话框与外观页确实用上并双向绑定、方案色板随调色板发通知。
  • 变异:拖动过程中也发 Committed → 拖动那条变红。
  • headless 截图在深 / 浅两套主题下核对了外观页、连接对话框与浮层。

编译 0 警告。VelaShell.Controls.Tests 31 通过;VelaShell.Tests 1657 通过 / 8 跳过(含无障碍名字、设置页输入框扫描、颜色字面量、文案键几道门)。

文档

涉及文档修改。

joesdu added 2 commits October 1, 2026 20:48
- 控件库新增 ColorSpectrumPad(饱和度 / 明度面板)、HueStrip(色相条)与 ColorHex(解析 / 格式化)
- 宿主新增 ColorPickerField:像输入框的色块字段,点开是面板 + 色相条 + 新旧对比 + 十六进制框 + 色板 + 可选清除;
  松手才写回,写出一律大写 #RRGGBB,认不出的十六进制不写进设置
- 外观页的强调色与终端前景 / 背景 / 光标 / 选区、连接对话框的标签颜色换成取色器;
  终端四色的色板是当前方案的 ANSI 16 色,其余默认用主题色板
- 新增 4 个文案键,删除 Profile_OverrideTabColorPlaceholder;DESIGN.md §5.2 与两个 README 补上
joesdu added a commit to VelaShellLabs/velashell-docs that referenced this pull request Oct 1, 2026
docs(host): 取色器,设置页与连接对话框里挑颜色不再手敲色值(joesdu/VelaShell#542)
@joesdu
joesdu merged commit ff1be5e into main Oct 1, 2026
4 of 5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant