用途:本技能面向在 Obsidian 应用内部加载的 CSS,包括 .obsidian/snippets/ 中的 CSS 片段、应用主题及其 theme.css,以及核心视图、编辑器、移动端和社区插件的外观呈现。托管的 Obsidian Publish 属于不同 DOM 与运行时,应交给 obsidian-publish-customize 处理。
主要能力:修改前先检查,读取仓库或主题仓库说明、相关片段和当前 .obsidian/appearance.json,并查看所选主题的 theme.css 与目标插件样式表;对未文档化的选择器或存在争议的计算值,在 Electron DevTools 中检查实时元素,必要时以已安装的 app.css 作为次要来源。检查完成的标志是每个被修改的选择器和变量都有明确归属:Obsidian、所选主题、插件、CodeMirror 或片段自身。
使用方式:按必须一起变化的界面组织片段,而非按模糊意图,例如 Core - Typography、Core - Markdown、Core - Workspace、Core - Components、Core - Interaction、Mobile - …、Plugin - <name>、Palette - <name>、Theme - <name> - <concern>。选择器稳定性从高到低为:文档化的 Obsidian CSS 变量、高层 body/平台/状态类或视图属性、稳定的核心/主题/插件类、短后代选择器、深层 DOM 路径或 CodeMirror 实现类。仅在上一层无法表达行为时才下移,并在依赖私有主题变量、位置结构、:has()、nth-* 或 CodeMirror 内部实现时加注释。仅在现有层叠无法用变量或同等作用域选择器跨越时使用 !important,并在旁注明原因。
适用场景:整理本地覆盖规则、审计层叠冲突、检查多主题与明暗模式、桌面与移动端响应式规则。
限制:Obsidian 内部 DOM 并非稳定的公共接口,应优先使用受支持的变量和高层选择器,并针对已安装版本验证深层选择器。已安装主题没有可靠的类名标识当前主题,Theme - 片段需手动激活;不要从 .mod-macos 等平台类推断所选主题。字母顺序不代表样式表注入顺序,需检查 <head> 或计算样式。编辑后应使用项目 linter 解析,确认每个启用的 basename 对应一个根级 .css 文件,并在实时应用中验证受影响界面;静态检查与实时视觉验证需分开报告。资料未提供具体安装命令或代码示例。