dsh-liya-ui
其他 活跃维护

dsh-liya-ui

feverZHONG/dsh-liya-ui

注入CSS统一调整DSH界面视觉圆角,v0.3.0起支持在插件配置项中自定义4-48范围的圆角数值,修改保存后即时生效且配置会持久化存储。

0
Stars 标星
0
Forks 分支
0
Watchers 关注
0
Open Issues
JavaScript
主要语言
None
开源协议
9 KB
仓库大小
1 个月前
最后推送
一键安装扩展 / 插件指令
dsh plugin --profile web add github:feverZHONG/dsh-liya-ui
git clone https://github.com/feverZHONG/dsh-liya-ui.git
git clone git@github.com:feverZHONG/dsh-liya-ui.git
README.md main

dsh-liya-ui-plugin · 莉娅 DSH UI 润色插件

tapIndex 注入 CSS 统一加大圆角,让界面更圆润。v0.3.0 起 radius 可配置:
设置 → 插件 → 插件配置dsh-liya-ui-plugin 卡可编辑基础圆角(4-48),保存即时生效(host 持久化)。

v0.3.1(2026-08-17)修了两处「配置不生效」的实锤坑:

  1. settingsScope 重复 bindsettingsScope.bind() 每次调用都新建 controller(初始 status='loading'
    load 异步),旧代码每次读取都 bind → 永远读不到 ready → 用户配置永不生效。
    修法:apply 期 bind 一次、复用同一 controller(官方 ui-theme 同款姿势)。
  2. 层叠顺序:host 默认样式(:root{--liya-radius:16px})注入在 <body> 开头,晚于 head 里的
    覆盖样式,同特异性按文档顺序后者赢 → 覆盖被默认值压掉。修法:覆盖声明加 !important
    改完刷新 WebUI 页面即生效(client bundle no-cache 实时读文件)。

改了什么

表面 圆角
输入框 / 搜索框(textarea、text/search/email/url) 基础值 + 2px
对话框 [role="dialog"] 基础值 + 6px
菜单 / 下拉 / 提示 [role="menu"/"listbox"/"tooltip"/"combobox"] 基础值

基础值 = settings 配置 radius(默认 16),走 --liya-radius 变量。

原理

  • host 半 webServer.tapIndex() 往 index.html 的 <body> 后注入 <style>(官方 ui-theme bootTheme 同款 seam),
    radius 用 config.radius(cordis.patch.yml,默认 16)作为启动兜底
  • host 半 ctx.settings.register('liya-ui', Schema.object({radius})) 注册配置 namespace
  • client 半订阅 settingsScope:用户配置存在时注入 :root{--liya-radius:Xpx} 覆盖 host 默认(保存即时生效);
    未配置/重置时移除覆盖,沿用 host 默认
  • 选择器全部走语义 role / 标签,不碰 DSH 的 hash 类名(升级不失效);!important 才能压过组件内联样式

安装 / 打包

# 安装(装完重启 WebUI 生效)
dsh plugin --profile web add <插件目录>

# 打包归档(产物输出到你的 dist 目录)
pnpm pack --pack-destination <你的插件分发目录>

# 卸载
dsh plugin --profile web remove dsh-liya-ui-plugin

dsh 请替换为阁下 DSH 安装对应的 CLI 调用方式。

装完重启 WebUI 生效(改过 manifest/client 后必须重启)。

调圆角大小

推荐:设置 → 插件 → 插件配置 → dsh-liya-ui-plugin → 改 radius(4-48)→ 保存,即时生效。
兜底默认值在 cordis.patch.ymlconfig.radius。想细化某个表面,改 index.jsradiusCss() 里对应行的系数。

已知边界

  • 只覆盖语义 role / 标签选择器能命中的表面;个别组件用了非常规 role 会漏
  • !important 覆盖组件内联圆角——如果某处原设计就是刻意的小圆角(如小徽章),会被统一拉大
  • 想加更多表面(如卡片/面板):往 radiusCss() 里加一行选择器,但别用 * 全量(会把圆形元素压扁)