主题配色与样式隔离
适用范围:当前适配 Halo 2.26.0 及以上版本的言答Issue。旧版插件的界面与构建方式可能不同。
本次前台使用 shadcn/ui 的中性配色与语义组件规则。下载的官方规则、来源版本与本项目约定见 设计规范。
CSS 构建会把 Tailwind preflight、工具类、Markdown 和 CodeMirror 样式限制在 .piw-app 中;动画名也加 piw- 前缀。插件不重置主题的 html/body,不全局隐藏滚动条。弹窗会 teleport 到 body,同时保留 .piw-app 样式作用域,使用原生 <dialog> 管理焦点与 Esc 关闭。
可以在主题样式中覆盖这些变量。建议放在 :root 或 .piw-app,使弹窗也能继承:
:root {
--piw-max-width: 1200px;
--piw-radius: 10px;
--piw-primary: #18181b;
--piw-primary-foreground: #fafafa;
--piw-accent: #18181b;
--piw-ring: #a1a1aa;
--piw-surface: #ffffff;
--piw-muted: #f4f4f5;
--piw-text: #18181b;
--piw-muted-text: #71717a;
--piw-border: #e4e4e7;
}
html.dark {
--piw-primary: #fafafa;
--piw-primary-foreground: #18181b;
--piw-accent: #fafafa;
--piw-ring: #71717a;
--piw-surface: #09090b;
--piw-muted: #18181b;
--piw-text: #fafafa;
--piw-muted-text: #a1a1aa;
--piw-border: #27272a;
}
未覆盖变量时使用插件默认值。默认识别祖先的 .dark、[data-theme="dark"]、[data-color-scheme="dark"]。建议把暗色标记放在 html/body,保证 body 下弹窗同步。若主题使用其他暗色标记,在自己的 CSS 中映射上述变量即可。插件跟随主题,不自动切换全站颜色。状态标签、操作按钮保留独立语义色。