joshua-walls_trailmark-theme/OBSIDIAN_COMPLIANCE_AUDIT.md
2026-07-06 12:44:44 -04:00

6.7 KiB

Obsidian Official-First Compliance Audit

Status: local working file only.

Baseline: official Obsidian Developer Documentation CSS variable pages are the first source of truth. Structural selectors stay only when an official variable cannot express the Trailmark behavior and the override is explicitly approved.

Audit Snapshot

  • Official CSS variable docs checked: 63 pages.
  • Official variables extracted: 678.
  • Trailmark CSS variables assigned: 125.
  • Official documented variables assigned in theme.css: 58.
  • Trailmark/Forge custom variables assigned: 38.
  • Non-doc or legacy variables assigned: 29.

Official-First Refactors

These should move to documented variables before structural selectors are kept.

ID Area Current Pattern Official First Path Status
RF-01 Fonts --font-family-editor, --font-family-preview, --font-family-interface, --font-family-monospace --font-text-theme, --font-interface-theme, --font-monospace-theme Pending
RF-02 Bold and italic --strong-color, --em-color, strong, em, .cm-strong, .cm-em --bold-color, --italic-color, --bold-weight, --bold-modifier Pending
RF-03 Code --inline-code, --code-block, --pre-code, code, pre, .cm-inline-code --code-background, --code-normal, syntax --code-* variables Pending
RF-04 Blockquotes --blockquote-border, blockquote, .HyperMD-quote, .cm-quote --blockquote-border-color, --blockquote-border-thickness, --blockquote-color, --blockquote-background-color Pending
RF-05 Links a, .internal-link, .cm-link, .external-link, .cm-url --link-color, --link-color-hover, --link-external-*, --link-unresolved-* Pending
RF-06 Tags .cm-hashtag, a.tag, metadata tag pills --tag-* variables Pending
RF-07 Tables table, th, tr, td, Dataview table base selectors --table-* variables for native tables; plugin selectors need separate approval Pending
RF-08 Metadata .metadata-container, .metadata-properties, .metadata-property --metadata-* variables Pending
RF-09 Tabs .workspace-tab-header*, .workspace-tabs* --tab-* variables Pending
RF-10 Status bar .status-bar --status-bar-* variables Pending
RF-11 Titlebar and ribbon .titlebar*, .workspace-ribbon* --titlebar-*, --ribbon-* variables Pending
RF-12 Modals/settings basics .modal, .prompt, .setting-item --modal-*, button/input/dropdown variables first Pending
RF-13 Buttons and inputs button, .clickable-icon, input, textarea, select, .dropdown, .checkbox-container --button-radius, --input-*, --dropdown-*, --checkbox-*, interactive colors Pending
RF-14 Embeds .markdown-embed, .file-embed --embed-* variables Pending
RF-15 Graph .graph-view.color-* --graph-* variables Completed locally in current working tree
RF-16 Callout aliases partial callout alias coverage official callout type alias table Completed locally in current working tree

Override Approval Matrix

Each override below requires explicit approval before it is kept or expanded during the refactor.

Override ID Area Why Official Vars Are Insufficient Current Selectors / Behavior Approval
OV-01 File explorer route cues --nav-* covers colors, spacing, weights, guides, but not Trailmark route markers, folder-depth color cycles, or active edge bars. .nav-*, .tree-item-*, folder depth rails, active file/folder bars. Approved for light-mode sidebar explorer tuning
OV-02 Mobile drawer and bottom picker Published docs do not expose enough mobile drawer/picker variables for the screenshots' legibility fixes. .workspace-drawer*, .mobile-navbar, .mobile-toolbar, .mobile-tab-switcher. Pending
OV-03 Mermaid SVG internals No currently published Mermaid CSS variable page was found in the official docs cache. .mermaid .node, .edgePath, .flowchart-link, labels, arrows. Pending
OV-04 Forge plugin styling Forge is plugin-owned, not covered by Obsidian core CSS variable docs. .forge-*, data-status, data-current-note-status, data-forge-current-note-status. Pending
OV-05 Dataview styling Dataview is plugin-owned, not covered by Obsidian core CSS variable docs. .dataview*, .table-view-table, card-table layouts. Pending
OV-06 Inline title waypoint treatment --inline-title-* covers text attributes only, not Trailmark border, gradient, or status signal. .inline-title, .markdown-source-view.mod-cm6 .inline-title, status-hook title selectors. Pending
OV-07 Heading decorative treatment --h* variables cover text attributes, not Trailmark trailhead underlines or source-mode cleanup. h1-h6, .cm-header-*, .HyperMD-header-* decoration selectors. Pending
OV-08 Callout structural polish --callout-* covers core callout layout and colors, not title tabs, nested gradients, collapsed markers, or Live Preview gutter classes. .callout .callout-title::*, nested .callout .callout, .HyperMD-callout source gutters. Pending
OV-09 Settings modal reshaping --modal-*, --button-*, and --input-* cover basics, not the full map-like settings shell. .modal.mod-settings, .vertical-tab-content, .setting-item, settings controls. Pending
OV-10 Active workspace leaf route edge Workspace docs currently expose only --workspace-background-translucent; no active-pane edge variable. .workspace-leaf.mod-active, active view header edge/shadow. Pending
OV-11 Hover popover framing --popover-* covers sizing/font, not Trailmark left-edge frame/preview surface treatment. .popover.hover-popover, nested preview content. Pending
OV-12 Search/backlink/outgoing result markers Search docs cover limited variables; not result waypoint ticks/framing. .search-result-*, .backlink-pane, .outgoing-link-pane. Pending
OV-13 Image shape utility No official variable governs custom image shape opt-in via alt/src fragment. img[alt*="#circle"], img[src*="#circle"]. Pending

Validation Commands

rg -n "!important|:has\\(" theme.css
rg -n -- "graph-view\\.color|Reference/CSS\\+variables/Editor/Mermaid" theme.css AGENTS.md

Official Docs Scope

Fetched from the official Obsidian Developer Documentation Publish cache:

  • Reference/CSS variables/**
  • Relevant pages include colors, typography, buttons, inputs, navigation, file explorer, graph, callouts, inline title, properties, tables, tags, embeds, tabs, modals, popovers, ribbon, status bar, titlebar, and workspace.