@liminis/editor 0.2.2 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (33) hide show
  1. package/LICENSE +0 -13
  2. package/README.md +158 -103
  3. package/dist/app/editor/CorrectionPanelPlugin.js +10 -11
  4. package/dist/app/editor/DragHandlePlugin.js +1 -1
  5. package/dist/app/editor/Editor.js +17 -5
  6. package/dist/app/editor/SelectionContextMenuPlugin.js +4 -4
  7. package/dist/app/editor/nodes/C4Component.js +8 -10
  8. package/dist/app/editor/nodes/C4Node.d.ts +1 -1
  9. package/dist/app/editor/nodes/DiagramContextMenu.js +5 -5
  10. package/dist/headless.d.ts +3 -5
  11. package/dist/headless.js +2 -4
  12. package/dist/index.d.ts +1 -1
  13. package/dist/styles.css +428 -325
  14. package/docs/decisions/adr-92-lexical-peer-range-policy.md +152 -0
  15. package/docs/decisions/adr-93-liminis-editor-defined-aliases.md +315 -0
  16. package/docs/decisions/adr-98-invert-token-direction.md +309 -0
  17. package/package.json +28 -27
  18. package/dist/app/editor/c4/C4InteractiveRenderer.d.ts +0 -35
  19. package/dist/app/editor/c4/C4InteractiveRenderer.js +0 -299
  20. package/dist/app/editor/c4/edge-clipping.d.ts +0 -24
  21. package/dist/app/editor/c4/edge-clipping.js +0 -139
  22. package/dist/app/editor/c4/hooks/useC4DiagramDrag.d.ts +0 -38
  23. package/dist/app/editor/c4/hooks/useC4DiagramDrag.js +0 -112
  24. package/dist/app/editor/c4/layout.d.ts +0 -25
  25. package/dist/app/editor/c4/layout.js +0 -839
  26. package/dist/app/editor/c4/parser.d.ts +0 -19
  27. package/dist/app/editor/c4/parser.js +0 -410
  28. package/dist/app/editor/c4/render-to-string.d.ts +0 -24
  29. package/dist/app/editor/c4/render-to-string.js +0 -34
  30. package/dist/app/editor/c4/renderer.d.ts +0 -64
  31. package/dist/app/editor/c4/renderer.js +0 -569
  32. package/dist/app/editor/c4/types.d.ts +0 -203
  33. package/dist/app/editor/c4/types.js +0 -43
package/dist/styles.css CHANGED
@@ -1,110 +1,207 @@
1
1
  /* Loop-inspired theme for editor with design tokens (OKLCH) */
2
+
3
+ /* ========================================
4
+ DEPRECATED SHIMS — legacy names (ADR-98)
5
+
6
+ ADR-98 (verveguy/liminis-editor#98) inverts ADR-93's direction: the real
7
+ values now live under --liminis-editor-* (below), and these legacy names
8
+ are read by nothing inside this package. These one-line shims exist only
9
+ so that a host *reading* a legacy name (e.g. --vscode-foreground) still
10
+ gets a real, current value, via ordinary cascade resolution of the
11
+ shim's own var() reference.
12
+
13
+ They do NOT preserve a host *setting* only a legacy name to theme the
14
+ package. This package's own consumption sites read
15
+ --liminis-editor-foreground directly — never --vscode-foreground — so a
16
+ host's override of --vscode-foreground changes what --vscode-foreground
17
+ itself computes to and nothing else; it never reaches the editor.
18
+ Verified in a running Electron app, not assumed — see
19
+ examples/electron/e2e/theming-aliases.spec.ts. A host that wants to theme
20
+ the package must set the --liminis-editor-* name directly; this is a
21
+ documented, intentional breaking change (see CHANGELOG's Unreleased /
22
+ Breaking changes), not a gap to work around.
23
+
24
+ Only the names a host might plausibly still set are kept: --vscode-*,
25
+ --checkbox-border and --editor-brand. --slashmd-* (upstream vocabulary;
26
+ verified zero hits across verveguy/zusammen and verveguy/liminis) is
27
+ deleted outright rather than shimmed — see ADR-98.
28
+
29
+ No .dark duplicate is needed: var(--liminis-editor-x) re-resolves against
30
+ whichever cascade value is active at the point of use, so a single
31
+ :root-scoped shim line tracks light/dark automatically.
32
+ ======================================== */
2
33
  :root {
3
- /* ========================================
4
- DESIGN TOKENS - Editor Light Theme
5
- ======================================== */
34
+ --vscode-font-family: var(--liminis-editor-font-family);
35
+ --vscode-font-size: var(--liminis-editor-font-size);
36
+ --vscode-foreground: var(--liminis-editor-foreground);
37
+ --vscode-background: var(--liminis-editor-background);
38
+ --vscode-selection: var(--liminis-editor-selection);
39
+ --vscode-border: var(--liminis-editor-border);
40
+ --vscode-link: var(--liminis-editor-link);
41
+ --vscode-external-link: var(--liminis-editor-external-link);
42
+ --vscode-code-bg: var(--liminis-editor-code-bg);
43
+ --checkbox-border: var(--liminis-editor-checkbox-border);
44
+ --editor-brand: var(--liminis-editor-primary);
45
+ --vscode-button-background: var(--liminis-editor-button-background);
46
+ --vscode-button-foreground: var(--liminis-editor-button-foreground);
47
+ --vscode-menu-background: var(--liminis-editor-menu-background);
48
+ --vscode-menu-border: var(--liminis-editor-menu-border);
49
+ --vscode-menu-foreground: var(--liminis-editor-menu-foreground);
50
+ --vscode-menu-selectionBackground: var(--liminis-editor-menu-selectionBackground);
51
+ --vscode-menu-separatorBackground: var(--liminis-editor-menu-separatorBackground);
52
+ --vscode-toolbar-hoverBackground: var(--liminis-editor-toolbar-hoverBackground);
53
+ --vscode-notificationsInfoIcon-foreground: var(--liminis-editor-notificationsInfoIcon-foreground);
54
+ --vscode-inputValidation-errorBackground: var(--liminis-editor-inputValidation-errorBackground);
55
+ --vscode-errorForeground: var(--liminis-editor-errorForeground);
56
+ --vscode-focus-border: var(--liminis-editor-focus-border);
57
+ --vscode-focusBorder: var(--liminis-editor-focusBorder);
58
+ --vscode-input-bg: var(--liminis-editor-input-bg);
59
+ --vscode-foreground-muted: var(--liminis-editor-foreground-muted);
60
+ }
6
61
 
7
- /* Brand Color - Purple theme (matches renderer) */
8
- --editor-brand: oklch(0.55 0.20 303);
62
+ /* ========================================
63
+ DESIGN TOKENS Editor Light Theme
64
+ --liminis-editor-* names carry the real values (ADR-98). Every
65
+ consumption site inside this package reads one of these directly.
66
+ ======================================== */
67
+ :root {
68
+ /* Brand color — also the source the --editor-brand shim above forwards to */
69
+ --liminis-editor-primary: oklch(0.55 0.20 303);
70
+ --liminis-editor-primary-100: oklch(0.55 0.20 303 / 0.1);
9
71
 
10
72
  /* Typography */
11
- --vscode-font-family: 'Inter Variable', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Fira Sans', 'Droid Sans', 'Helvetica Neue', sans-serif;
12
- --vscode-font-size: 16px;
73
+ --liminis-editor-font-family: 'Inter Variable', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Fira Sans', 'Droid Sans', 'Helvetica Neue', sans-serif;
74
+ --liminis-editor-font-size: 16px;
13
75
 
14
76
  /* Computed Colors (OKLCH) */
15
- --vscode-foreground: oklch(0.35 0.01 265);
16
- --vscode-background: oklch(1 0 0);
17
- --vscode-selection: oklch(0.55 0.20 303 / 0.2);
18
- --vscode-border: oklch(0.91 0.03 303);
19
- --vscode-link: oklch(0.55 0.20 303);
20
- --vscode-external-link: oklch(0.55 0.20 255); /* blue for external links */
21
- --vscode-code-bg: oklch(0.98 0.02 303);
22
- --checkbox-border: oklch(0.65 0.08 303);
77
+ --liminis-editor-foreground: oklch(0.35 0.01 265);
78
+ --liminis-editor-background: oklch(1 0 0);
79
+ --liminis-editor-selection: oklch(0.55 0.20 303 / 0.2);
80
+ --liminis-editor-border: oklch(0.91 0.03 303);
81
+ --liminis-editor-link: oklch(0.55 0.20 303);
82
+ --liminis-editor-external-link: oklch(0.55 0.20 255); /* blue for external links */
83
+ --liminis-editor-code-bg: oklch(0.98 0.02 303);
84
+ --liminis-editor-checkbox-border: oklch(0.65 0.08 303);
85
+ /* Built only from other --liminis-editor-* names (FR-001) — no legacy name ever backed these two independently. */
86
+ --liminis-editor-input-bg: var(--liminis-editor-code-bg);
87
+ --liminis-editor-foreground-muted: var(--liminis-editor-border);
23
88
 
24
89
  /* Syntax Highlighting - VitePress/Shiki inspired (OKLCH) */
25
- --slashmd-token-comment: oklch(0.70 0.03 135);
26
- --slashmd-token-punctuation: oklch(0.65 0 0);
27
- --slashmd-token-property: oklch(0.60 0.12 85);
28
- --slashmd-token-selector: oklch(0.52 0.14 145);
29
- --slashmd-token-operator: oklch(0.55 0.20 25);
30
- --slashmd-token-keyword: oklch(0.55 0.20 25);
31
- --slashmd-token-variable: oklch(0.60 0.18 50);
32
- --slashmd-token-function: oklch(0.50 0.18 303);
90
+ --liminis-editor-token-comment: oklch(0.70 0.03 135);
91
+ --liminis-editor-token-punctuation: oklch(0.65 0 0);
92
+ --liminis-editor-token-property: oklch(0.60 0.12 85);
93
+ --liminis-editor-token-selector: oklch(0.52 0.14 145);
94
+ --liminis-editor-token-operator: oklch(0.55 0.20 25);
95
+ --liminis-editor-token-keyword: oklch(0.55 0.20 25);
96
+ --liminis-editor-token-variable: oklch(0.60 0.18 50);
97
+ --liminis-editor-token-function: oklch(0.50 0.18 303);
33
98
 
34
99
  /* Typography - VitePress style (OKLCH) */
35
- --slashmd-heading-color: oklch(0.35 0.01 265);
36
- --slashmd-h1-color: oklch(0.35 0.01 265);
37
- --slashmd-h2-color: oklch(0.35 0.01 265);
38
- --slashmd-h3-color: oklch(0.35 0.01 265);
39
- --slashmd-h4-color: oklch(0.35 0.01 265);
40
- --slashmd-h5-color: oklch(0.35 0.01 265);
41
- --slashmd-h1-indent: 0;
42
- --slashmd-h2-indent: 0;
43
- --slashmd-h3-indent: 0;
44
- --slashmd-h4-indent: 0;
45
- --slashmd-h5-indent: 0;
46
- --slashmd-bold-color: inherit;
47
- --slashmd-italic-color: inherit;
100
+ --liminis-editor-h1-color: oklch(0.35 0.01 265);
101
+ --liminis-editor-h2-color: oklch(0.35 0.01 265);
102
+ --liminis-editor-h3-color: oklch(0.35 0.01 265);
103
+ --liminis-editor-h4-color: oklch(0.35 0.01 265);
104
+ --liminis-editor-h5-color: oklch(0.35 0.01 265);
105
+ --liminis-editor-h1-indent: 0;
106
+ --liminis-editor-h2-indent: 0;
107
+ --liminis-editor-h3-indent: 0;
108
+ --liminis-editor-h4-indent: 0;
109
+ --liminis-editor-h5-indent: 0;
110
+ --liminis-editor-bold-color: inherit;
111
+ --liminis-editor-italic-color: inherit;
48
112
 
49
113
  /* Callouts - Uses brand color for note type (OKLCH) */
50
- --slashmd-callout-note-bg: oklch(0.55 0.20 303 / 0.08);
51
- --slashmd-callout-note-border: oklch(0.55 0.20 303);
52
- --slashmd-callout-tip-bg: oklch(0.65 0.18 160 / 0.08);
53
- --slashmd-callout-tip-border: oklch(0.65 0.18 160);
54
- --slashmd-callout-warning-bg: oklch(0.80 0.18 85 / 0.08);
55
- --slashmd-callout-warning-border: oklch(0.80 0.18 85);
56
- --slashmd-callout-important-bg: oklch(0.58 0.22 290 / 0.08);
57
- --slashmd-callout-important-border: oklch(0.58 0.22 290);
58
- --slashmd-callout-caution-bg: oklch(0.63 0.24 27 / 0.08);
59
- --slashmd-callout-caution-border: oklch(0.63 0.24 27);
114
+ --liminis-editor-callout-note-bg: oklch(0.55 0.20 303 / 0.08);
115
+ --liminis-editor-callout-note-border: oklch(0.55 0.20 303);
116
+ --liminis-editor-callout-tip-bg: oklch(0.65 0.18 160 / 0.08);
117
+ --liminis-editor-callout-tip-border: oklch(0.65 0.18 160);
118
+ --liminis-editor-callout-warning-bg: oklch(0.80 0.18 85 / 0.08);
119
+ --liminis-editor-callout-warning-border: oklch(0.80 0.18 85);
120
+ --liminis-editor-callout-important-bg: oklch(0.58 0.22 290 / 0.08);
121
+ --liminis-editor-callout-important-border: oklch(0.58 0.22 290);
122
+ --liminis-editor-callout-caution-bg: oklch(0.63 0.24 27 / 0.08);
123
+ --liminis-editor-callout-caution-border: oklch(0.63 0.24 27);
124
+
125
+ /* Tokens with no legacy CSS custom-property backing anywhere — only an
126
+ inline literal fallback at their consumption site(s) before this
127
+ change. The literal below reproduces that existing light-mode fallback
128
+ so a host supplying nothing sees no change (FR-002). Where the same
129
+ token's literal differed by site (errorForeground, toolbar-hoverBackground),
130
+ the single canonical value ADR-93 chose is kept — see that ADR for the
131
+ two accepted visual deltas this causes at three sites. */
132
+ --liminis-editor-button-background: #007acc;
133
+ --liminis-editor-button-foreground: #ffffff;
134
+ --liminis-editor-menu-background: #ffffff;
135
+ --liminis-editor-menu-border: #d4d4d4;
136
+ --liminis-editor-menu-foreground: #333333;
137
+ --liminis-editor-menu-selectionBackground: #e8e8e8;
138
+ --liminis-editor-menu-separatorBackground: #d4d4d4;
139
+ --liminis-editor-toolbar-hoverBackground: rgba(128, 128, 128, 0.15);
140
+ --liminis-editor-notificationsInfoIcon-foreground: #3794ff;
141
+ --liminis-editor-inputValidation-errorBackground: rgba(255, 0, 0, 0.15);
142
+ --liminis-editor-errorForeground: #f14c4c;
143
+ --liminis-editor-focus-border: #007acc;
144
+ --liminis-editor-focusBorder: #007acc;
145
+
146
+ /* --liminis-editor-primary/-100 are brand-derived (see above), not
147
+ host-borrowed — ADR-98 retires the previous forward to liminis-app's own
148
+ --color-primary/-100, a token this package never defined (see ADR-98's
149
+ "defect fix" rationale). muted-foreground/-100 keep their previous
150
+ literal fallback as a real default of their own, rather than forwarding
151
+ to a --color-* token this package doesn't own. C4Component.tsx's
152
+ consumption sites read these four tokens directly, unconditionally — a
153
+ host's --color-* tokens have no effect on them (see ADR-98's amendment
154
+ removing that former exception). */
155
+ --liminis-editor-muted-foreground: #6b7280;
156
+ --liminis-editor-muted-100: rgba(128, 128, 128, 0.1);
60
157
  }
61
158
 
62
159
  /* ========================================
63
160
  DESIGN TOKENS - Editor Dark Theme
161
+ Only entries whose value differs from :root above — anything omitted here
162
+ falls through to the :root declaration by ordinary cascade order.
64
163
  ======================================== */
65
164
  .dark {
66
- /* Brand Color - Lighter for dark mode visibility */
67
- --editor-brand: oklch(0.70 0.20 303);
68
-
69
- /* Computed Colors (OKLCH) */
70
- --vscode-foreground: oklch(0.97 0.01 90 / 0.86);
71
- --vscode-background: oklch(0.17 0.01 265);
72
- --vscode-selection: oklch(0.70 0.20 303 / 0.2);
73
- --vscode-border: oklch(0.27 0.02 303);
74
- --vscode-link: oklch(0.70 0.20 303);
75
- --vscode-external-link: oklch(0.70 0.18 255); /* lighter blue for dark mode */
76
- --vscode-code-bg: oklch(0.20 0.02 303);
77
- --checkbox-border: oklch(0.55 0.06 303);
78
-
79
- /* Syntax Highlighting - Dark mode (OKLCH) */
80
- --slashmd-token-comment: oklch(0.60 0.10 140);
81
- --slashmd-token-punctuation: oklch(0.85 0 0);
82
- --slashmd-token-property: oklch(0.85 0.10 95);
83
- --slashmd-token-selector: oklch(0.60 0.10 140);
84
- --slashmd-token-operator: oklch(0.85 0 0);
85
- --slashmd-token-keyword: oklch(0.65 0.12 240);
86
- --slashmd-token-variable: oklch(0.78 0.10 220);
87
- --slashmd-token-function: oklch(0.85 0.10 95);
88
-
89
- /* Typography - Dark mode (OKLCH) */
90
- --slashmd-heading-color: oklch(0.97 0.01 90 / 0.86);
91
- --slashmd-h1-color: oklch(0.97 0.01 90 / 0.86);
92
- --slashmd-h2-color: oklch(0.97 0.01 90 / 0.86);
93
- --slashmd-h3-color: oklch(0.97 0.01 90 / 0.86);
94
- --slashmd-h4-color: oklch(0.97 0.01 90 / 0.86);
95
- --slashmd-h5-color: oklch(0.97 0.01 90 / 0.86);
96
-
97
- /* Callouts - Dark mode, uses brand color for note type (OKLCH) */
98
- --slashmd-callout-note-bg: oklch(0.70 0.20 303 / 0.1);
99
- --slashmd-callout-note-border: oklch(0.70 0.20 303);
100
- --slashmd-callout-tip-bg: oklch(0.65 0.18 160 / 0.1);
101
- --slashmd-callout-tip-border: oklch(0.65 0.18 160);
102
- --slashmd-callout-warning-bg: oklch(0.80 0.18 85 / 0.1);
103
- --slashmd-callout-warning-border: oklch(0.80 0.18 85);
104
- --slashmd-callout-important-bg: oklch(0.58 0.22 290 / 0.1);
105
- --slashmd-callout-important-border: oklch(0.58 0.22 290);
106
- --slashmd-callout-caution-bg: oklch(0.63 0.24 27 / 0.1);
107
- --slashmd-callout-caution-border: oklch(0.63 0.24 27);
165
+ --liminis-editor-primary: oklch(0.70 0.20 303);
166
+ --liminis-editor-primary-100: oklch(0.70 0.20 303 / 0.1);
167
+
168
+ --liminis-editor-foreground: oklch(0.97 0.01 90 / 0.86);
169
+ --liminis-editor-background: oklch(0.17 0.01 265);
170
+ --liminis-editor-selection: oklch(0.70 0.20 303 / 0.2);
171
+ --liminis-editor-border: oklch(0.27 0.02 303);
172
+ --liminis-editor-link: oklch(0.70 0.20 303);
173
+ --liminis-editor-external-link: oklch(0.70 0.18 255); /* lighter blue for dark mode */
174
+ --liminis-editor-code-bg: oklch(0.20 0.02 303);
175
+ --liminis-editor-checkbox-border: oklch(0.55 0.06 303);
176
+
177
+ --liminis-editor-token-comment: oklch(0.60 0.10 140);
178
+ --liminis-editor-token-punctuation: oklch(0.85 0 0);
179
+ --liminis-editor-token-property: oklch(0.85 0.10 95);
180
+ --liminis-editor-token-selector: oklch(0.60 0.10 140);
181
+ --liminis-editor-token-operator: oklch(0.85 0 0);
182
+ --liminis-editor-token-keyword: oklch(0.65 0.12 240);
183
+ --liminis-editor-token-variable: oklch(0.78 0.10 220);
184
+ --liminis-editor-token-function: oklch(0.85 0.10 95);
185
+
186
+ --liminis-editor-h1-color: oklch(0.97 0.01 90 / 0.86);
187
+ --liminis-editor-h2-color: oklch(0.97 0.01 90 / 0.86);
188
+ --liminis-editor-h3-color: oklch(0.97 0.01 90 / 0.86);
189
+ --liminis-editor-h4-color: oklch(0.97 0.01 90 / 0.86);
190
+ --liminis-editor-h5-color: oklch(0.97 0.01 90 / 0.86);
191
+
192
+ --liminis-editor-callout-note-bg: oklch(0.70 0.20 303 / 0.1);
193
+ --liminis-editor-callout-note-border: oklch(0.70 0.20 303);
194
+ --liminis-editor-callout-tip-bg: oklch(0.65 0.18 160 / 0.1);
195
+ --liminis-editor-callout-warning-bg: oklch(0.80 0.18 85 / 0.1);
196
+ --liminis-editor-callout-important-bg: oklch(0.58 0.22 290 / 0.1);
197
+ --liminis-editor-callout-caution-bg: oklch(0.63 0.24 27 / 0.1);
198
+
199
+ --liminis-editor-button-background: #0e639c;
200
+ --liminis-editor-menu-background: #252526;
201
+ --liminis-editor-menu-border: #454545;
202
+ --liminis-editor-menu-foreground: #cccccc;
203
+ --liminis-editor-menu-selectionBackground: #094771;
204
+ --liminis-editor-menu-separatorBackground: #454545;
108
205
  }
109
206
 
110
207
  * {
@@ -114,10 +211,10 @@
114
211
  body {
115
212
  margin: 0;
116
213
  padding: 0;
117
- font-family: var(--liminis-editor-font-family, var(--vscode-font-family));
118
- font-size: var(--liminis-editor-font-size, var(--vscode-font-size));
119
- color: var(--liminis-editor-foreground, var(--vscode-foreground));
120
- background: var(--liminis-editor-background, var(--vscode-background));
214
+ font-family: var(--liminis-editor-font-family);
215
+ font-size: var(--liminis-editor-font-size);
216
+ color: var(--liminis-editor-foreground);
217
+ background: var(--liminis-editor-background);
121
218
  line-height: 1.8; /* Slightly more generous line height like Loop */
122
219
  -webkit-font-smoothing: antialiased;
123
220
  -moz-osx-font-smoothing: grayscale;
@@ -127,8 +224,8 @@ body {
127
224
  .loading-spinner {
128
225
  width: 20px;
129
226
  height: 20px;
130
- border: 2px solid var(--liminis-editor-border, var(--vscode-border));
131
- border-top-color: var(--liminis-editor-link, var(--vscode-link));
227
+ border: 2px solid var(--liminis-editor-border);
228
+ border-top-color: var(--liminis-editor-link);
132
229
  border-radius: 50%;
133
230
  animation: spin 1s linear infinite;
134
231
  }
@@ -146,7 +243,7 @@ body {
146
243
  justify-content: center;
147
244
  gap: 0.75rem;
148
245
  min-height: 100vh;
149
- color: var(--liminis-editor-foreground, var(--vscode-foreground));
246
+ color: var(--liminis-editor-foreground);
150
247
  opacity: 0.7;
151
248
  }
152
249
 
@@ -195,7 +292,7 @@ body {
195
292
  position: absolute;
196
293
  top: 16px;
197
294
  left: 16px;
198
- color: var(--liminis-editor-foreground, var(--vscode-foreground));
295
+ color: var(--liminis-editor-foreground);
199
296
  opacity: 0.5;
200
297
  pointer-events: none;
201
298
  user-select: none;
@@ -211,8 +308,8 @@ body {
211
308
  font-weight: 700;
212
309
  margin: 32px 0 24px 0; /* More generous margins */
213
310
  line-height: 1.2;
214
- color: var(--liminis-editor-h1-color, var(--slashmd-h1-color));
215
- margin-left: var(--liminis-editor-h1-indent, var(--slashmd-h1-indent));
311
+ color: var(--liminis-editor-h1-color);
312
+ margin-left: var(--liminis-editor-h1-indent);
216
313
  }
217
314
 
218
315
  .editor-heading-h2 {
@@ -220,8 +317,8 @@ body {
220
317
  font-weight: 600;
221
318
  margin: 28px 0 16px 0; /* More generous margins */
222
319
  line-height: 1.3;
223
- color: var(--liminis-editor-h2-color, var(--slashmd-h2-color));
224
- margin-left: var(--liminis-editor-h2-indent, var(--slashmd-h2-indent));
320
+ color: var(--liminis-editor-h2-color);
321
+ margin-left: var(--liminis-editor-h2-indent);
225
322
  }
226
323
 
227
324
  .editor-heading-h3 {
@@ -229,8 +326,8 @@ body {
229
326
  font-weight: 600;
230
327
  margin: 24px 0 12px 0; /* More generous margins */
231
328
  line-height: 1.4;
232
- color: var(--liminis-editor-h3-color, var(--slashmd-h3-color));
233
- margin-left: var(--liminis-editor-h3-indent, var(--slashmd-h3-indent));
329
+ color: var(--liminis-editor-h3-color);
330
+ margin-left: var(--liminis-editor-h3-indent);
234
331
  }
235
332
 
236
333
  .editor-heading-h4 {
@@ -238,8 +335,8 @@ body {
238
335
  font-weight: 600;
239
336
  margin: 20px 0 10px 0; /* More generous margins */
240
337
  line-height: 1.4;
241
- color: var(--liminis-editor-h4-color, var(--slashmd-h4-color));
242
- margin-left: var(--liminis-editor-h4-indent, var(--slashmd-h4-indent));
338
+ color: var(--liminis-editor-h4-color);
339
+ margin-left: var(--liminis-editor-h4-indent);
243
340
  }
244
341
 
245
342
  .editor-heading-h5 {
@@ -247,8 +344,8 @@ body {
247
344
  font-weight: 600;
248
345
  margin: 16px 0 8px 0; /* More generous margins */
249
346
  line-height: 1.4;
250
- color: var(--liminis-editor-h5-color, var(--slashmd-h5-color));
251
- margin-left: var(--liminis-editor-h5-indent, var(--slashmd-h5-indent));
347
+ color: var(--liminis-editor-h5-color);
348
+ margin-left: var(--liminis-editor-h5-indent);
252
349
  }
253
350
 
254
351
  /* Lists - Loop-inspired spacing */
@@ -284,14 +381,14 @@ body {
284
381
  top: 4px;
285
382
  width: 16px;
286
383
  height: 16px;
287
- border: 2px solid var(--liminis-editor-checkbox-border, var(--checkbox-border));
384
+ border: 2px solid var(--liminis-editor-checkbox-border);
288
385
  border-radius: 3px;
289
386
  cursor: pointer;
290
387
  }
291
388
 
292
389
  .editor-listitem-checked::before {
293
- background: var(--liminis-editor-link, var(--vscode-link));
294
- border-color: var(--liminis-editor-link, var(--vscode-link));
390
+ background: var(--liminis-editor-link);
391
+ border-color: var(--liminis-editor-link);
295
392
  }
296
393
 
297
394
  .editor-listitem-checked::after {
@@ -326,14 +423,14 @@ body {
326
423
  top: 4px;
327
424
  width: 16px;
328
425
  height: 16px;
329
- border: 2px solid var(--liminis-editor-checkbox-border, var(--checkbox-border));
426
+ border: 2px solid var(--liminis-editor-checkbox-border);
330
427
  border-radius: 3px;
331
428
  cursor: pointer;
332
429
  }
333
430
 
334
431
  .editor-listitem-ordered-checked::before {
335
- background: var(--liminis-editor-link, var(--vscode-link));
336
- border-color: var(--liminis-editor-link, var(--vscode-link));
432
+ background: var(--liminis-editor-link);
433
+ border-color: var(--liminis-editor-link);
337
434
  }
338
435
 
339
436
  .editor-listitem-ordered-checked::after {
@@ -353,8 +450,8 @@ body {
353
450
  .editor-quote {
354
451
  margin: 20px 0; /* More generous margins */
355
452
  padding: 12px 20px; /* More padding */
356
- border-left: 4px solid var(--liminis-editor-border, var(--vscode-border));
357
- background: var(--liminis-editor-code-bg, var(--vscode-code-bg));
453
+ border-left: 4px solid var(--liminis-editor-border);
454
+ background: var(--liminis-editor-code-bg);
358
455
  font-style: italic;
359
456
  }
360
457
 
@@ -364,7 +461,7 @@ body {
364
461
  position: relative;
365
462
  margin: 20px 0; /* More generous margins */
366
463
  padding: 16px 20px; /* More padding */
367
- background: var(--liminis-editor-code-bg, var(--vscode-code-bg));
464
+ background: var(--liminis-editor-code-bg);
368
465
  border-radius: 10px; /* Friendlier rounded corners */
369
466
  font-family: 'Fira Code', 'Consolas', monospace;
370
467
  font-size: 0.9em;
@@ -385,10 +482,10 @@ body {
385
482
  .code-language-button {
386
483
  padding: 2px 8px;
387
484
  font-size: 11px;
388
- font-family: var(--liminis-editor-font-family, var(--vscode-font-family));
389
- color: var(--liminis-editor-foreground, var(--vscode-foreground));
390
- background: var(--liminis-editor-code-bg, var(--vscode-code-bg));
391
- border: 1px solid var(--liminis-editor-border, var(--vscode-border));
485
+ font-family: var(--liminis-editor-font-family);
486
+ color: var(--liminis-editor-foreground);
487
+ background: var(--liminis-editor-code-bg);
488
+ border: 1px solid var(--liminis-editor-border);
392
489
  border-radius: 4px;
393
490
  cursor: pointer;
394
491
  opacity: 0.7;
@@ -397,7 +494,7 @@ body {
397
494
 
398
495
  .code-language-button:hover {
399
496
  opacity: 1;
400
- background: var(--liminis-editor-toolbar-hoverBackground, var(--vscode-toolbar-hoverBackground, rgba(128, 128, 128, 0.15)));
497
+ background: var(--liminis-editor-toolbar-hoverBackground);
401
498
  }
402
499
 
403
500
  /* Code Copy Button */
@@ -408,9 +505,9 @@ body {
408
505
  width: 24px;
409
506
  height: 20px;
410
507
  padding: 0;
411
- color: var(--liminis-editor-foreground, var(--vscode-foreground));
412
- background: var(--liminis-editor-code-bg, var(--vscode-code-bg));
413
- border: 1px solid var(--liminis-editor-border, var(--vscode-border));
508
+ color: var(--liminis-editor-foreground);
509
+ background: var(--liminis-editor-code-bg);
510
+ border: 1px solid var(--liminis-editor-border);
414
511
  border-radius: 4px;
415
512
  cursor: pointer;
416
513
  opacity: 0.7;
@@ -419,12 +516,12 @@ body {
419
516
 
420
517
  .code-copy-button:hover {
421
518
  opacity: 1;
422
- background: var(--liminis-editor-toolbar-hoverBackground, var(--vscode-toolbar-hoverBackground, rgba(128, 128, 128, 0.15)));
519
+ background: var(--liminis-editor-toolbar-hoverBackground);
423
520
  }
424
521
 
425
522
  .code-copy-button.copied {
426
523
  opacity: 1;
427
- color: var(--liminis-editor-notificationsInfoIcon-foreground, var(--vscode-notificationsInfoIcon-foreground, #3794ff));
524
+ color: var(--liminis-editor-notificationsInfoIcon-foreground);
428
525
  }
429
526
 
430
527
  /* Code Language Selector Menu */
@@ -433,8 +530,8 @@ body {
433
530
  max-height: 320px;
434
531
  display: flex;
435
532
  flex-direction: column;
436
- background: var(--liminis-editor-background, var(--vscode-background));
437
- border: 1px solid var(--liminis-editor-border, var(--vscode-border));
533
+ background: var(--liminis-editor-background);
534
+ border: 1px solid var(--liminis-editor-border);
438
535
  border-radius: 12px; /* Friendlier rounded corners */
439
536
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.15); /* Softer shadow */
440
537
  z-index: 300;
@@ -445,16 +542,16 @@ body {
445
542
  margin: 8px;
446
543
  padding: 6px 10px;
447
544
  font-size: 13px;
448
- font-family: var(--liminis-editor-font-family, var(--vscode-font-family));
449
- color: var(--liminis-editor-foreground, var(--vscode-foreground));
450
- background: var(--liminis-editor-code-bg, var(--vscode-code-bg));
451
- border: 1px solid var(--liminis-editor-border, var(--vscode-border));
545
+ font-family: var(--liminis-editor-font-family);
546
+ color: var(--liminis-editor-foreground);
547
+ background: var(--liminis-editor-code-bg);
548
+ border: 1px solid var(--liminis-editor-border);
452
549
  border-radius: 4px;
453
550
  outline: none;
454
551
  }
455
552
 
456
553
  .code-language-search:focus {
457
- border-color: var(--liminis-editor-link, var(--vscode-link));
554
+ border-color: var(--liminis-editor-link);
458
555
  }
459
556
 
460
557
  .code-language-list {
@@ -470,8 +567,8 @@ body {
470
567
  width: 100%;
471
568
  padding: 6px 12px;
472
569
  font-size: 13px;
473
- font-family: var(--liminis-editor-font-family, var(--vscode-font-family));
474
- color: var(--liminis-editor-foreground, var(--vscode-foreground));
570
+ font-family: var(--liminis-editor-font-family);
571
+ color: var(--liminis-editor-foreground);
475
572
  background: transparent;
476
573
  border: none;
477
574
  text-align: left;
@@ -479,7 +576,7 @@ body {
479
576
  }
480
577
 
481
578
  .code-language-item:hover {
482
- background: var(--liminis-editor-selection, var(--vscode-selection));
579
+ background: var(--liminis-editor-selection);
483
580
  }
484
581
 
485
582
  .code-language-item.current {
@@ -487,14 +584,14 @@ body {
487
584
  }
488
585
 
489
586
  .code-language-check {
490
- color: var(--liminis-editor-link, var(--vscode-link));
587
+ color: var(--liminis-editor-link);
491
588
  font-size: 12px;
492
589
  }
493
590
 
494
591
  .code-language-empty {
495
592
  padding: 12px;
496
593
  text-align: center;
497
- color: var(--liminis-editor-foreground, var(--vscode-foreground));
594
+ color: var(--liminis-editor-foreground);
498
595
  opacity: 0.6;
499
596
  font-size: 13px;
500
597
  }
@@ -502,12 +599,12 @@ body {
502
599
  /* Inline text formatting */
503
600
  .editor-text-bold {
504
601
  font-weight: 700;
505
- color: var(--liminis-editor-bold-color, var(--slashmd-bold-color));
602
+ color: var(--liminis-editor-bold-color);
506
603
  }
507
604
 
508
605
  .editor-text-italic {
509
606
  font-style: italic;
510
- color: var(--liminis-editor-italic-color, var(--slashmd-italic-color));
607
+ color: var(--liminis-editor-italic-color);
511
608
  }
512
609
 
513
610
  .editor-text-strikethrough {
@@ -520,7 +617,7 @@ body {
520
617
 
521
618
  .editor-text-code {
522
619
  font-family: 'Fira Code', 'Consolas', monospace;
523
- background: var(--liminis-editor-code-bg, var(--vscode-code-bg));
620
+ background: var(--liminis-editor-code-bg);
524
621
  padding: 2px 6px;
525
622
  border-radius: 6px; /* Friendlier rounded corners */
526
623
  font-size: 0.9em;
@@ -528,7 +625,7 @@ body {
528
625
 
529
626
  /* Links */
530
627
  .editor-link {
531
- color: var(--liminis-editor-link, var(--vscode-link));
628
+ color: var(--liminis-editor-link);
532
629
  text-decoration: none;
533
630
  cursor: text; /* Normal text cursor for editing */
534
631
  }
@@ -539,7 +636,7 @@ body {
539
636
 
540
637
  /* External links (http/https/mailto) - blue color to differentiate from wiki-links */
541
638
  .editor-link-external {
542
- color: var(--liminis-editor-external-link, var(--vscode-external-link));
639
+ color: var(--liminis-editor-external-link);
543
640
  }
544
641
 
545
642
  /* When Cmd/Ctrl is held, show pointer cursor on links to indicate they can be opened */
@@ -564,11 +661,11 @@ body {
564
661
 
565
662
  /* Broken wiki links - links to non-existent files */
566
663
  .editor-link-broken {
567
- color: var(--liminis-editor-errorForeground, var(--vscode-errorForeground, #f14c4c)) !important;
664
+ color: var(--liminis-editor-errorForeground) !important;
568
665
  }
569
666
 
570
667
  .editor-link-broken:hover {
571
- color: var(--liminis-editor-errorForeground, var(--vscode-errorForeground, #f14c4c)) !important;
668
+ color: var(--liminis-editor-errorForeground) !important;
572
669
  opacity: 0.8;
573
670
  }
574
671
 
@@ -584,13 +681,13 @@ body {
584
681
 
585
682
  .editor-table-cell,
586
683
  .editor-table-cell-header {
587
- border: 1px solid var(--liminis-editor-border, var(--vscode-border));
684
+ border: 1px solid var(--liminis-editor-border);
588
685
  padding: 8px 12px;
589
686
  text-align: left;
590
687
  }
591
688
 
592
689
  .editor-table-cell-header {
593
- background: var(--liminis-editor-code-bg, var(--vscode-code-bg));
690
+ background: var(--liminis-editor-code-bg);
594
691
  font-weight: 600;
595
692
  }
596
693
 
@@ -610,7 +707,7 @@ body {
610
707
  left: 0;
611
708
  right: 0;
612
709
  height: 1px;
613
- background: var(--liminis-editor-border, var(--vscode-border));
710
+ background: var(--liminis-editor-border);
614
711
  }
615
712
 
616
713
  /* Image */
@@ -644,7 +741,7 @@ body {
644
741
  }
645
742
 
646
743
  .image-wrapper.selected img {
647
- outline: 2px solid var(--liminis-editor-link, var(--vscode-link));
744
+ outline: 2px solid var(--liminis-editor-link);
648
745
  outline-offset: 2px;
649
746
  }
650
747
 
@@ -657,8 +754,8 @@ body {
657
754
  position: absolute;
658
755
  width: 12px;
659
756
  height: 12px;
660
- background: var(--liminis-editor-link, var(--vscode-link));
661
- border: 2px solid var(--liminis-editor-background, var(--vscode-background));
757
+ background: var(--liminis-editor-link);
758
+ border: 2px solid var(--liminis-editor-background);
662
759
  border-radius: 2px;
663
760
  z-index: 10;
664
761
  }
@@ -715,28 +812,28 @@ body {
715
812
  }
716
813
 
717
814
  .callout-note {
718
- background: var(--liminis-editor-callout-note-bg, var(--slashmd-callout-note-bg));
719
- border-left-color: var(--liminis-editor-callout-note-border, var(--slashmd-callout-note-border));
815
+ background: var(--liminis-editor-callout-note-bg);
816
+ border-left-color: var(--liminis-editor-callout-note-border);
720
817
  }
721
818
 
722
819
  .callout-tip {
723
- background: var(--liminis-editor-callout-tip-bg, var(--slashmd-callout-tip-bg));
724
- border-left-color: var(--liminis-editor-callout-tip-border, var(--slashmd-callout-tip-border));
820
+ background: var(--liminis-editor-callout-tip-bg);
821
+ border-left-color: var(--liminis-editor-callout-tip-border);
725
822
  }
726
823
 
727
824
  .callout-warning {
728
- background: var(--liminis-editor-callout-warning-bg, var(--slashmd-callout-warning-bg));
729
- border-left-color: var(--liminis-editor-callout-warning-border, var(--slashmd-callout-warning-border));
825
+ background: var(--liminis-editor-callout-warning-bg);
826
+ border-left-color: var(--liminis-editor-callout-warning-border);
730
827
  }
731
828
 
732
829
  .callout-important {
733
- background: var(--liminis-editor-callout-important-bg, var(--slashmd-callout-important-bg));
734
- border-left-color: var(--liminis-editor-callout-important-border, var(--slashmd-callout-important-border));
830
+ background: var(--liminis-editor-callout-important-bg);
831
+ border-left-color: var(--liminis-editor-callout-important-border);
735
832
  }
736
833
 
737
834
  .callout-caution {
738
- background: var(--liminis-editor-callout-caution-bg, var(--slashmd-callout-caution-bg));
739
- border-left-color: var(--liminis-editor-callout-caution-border, var(--slashmd-callout-caution-border));
835
+ background: var(--liminis-editor-callout-caution-bg);
836
+ border-left-color: var(--liminis-editor-callout-caution-border);
740
837
  }
741
838
 
742
839
  /* Remove bottom margin from last paragraph in callout */
@@ -747,7 +844,7 @@ body {
747
844
  /* Toggle - New ElementNode-based structure */
748
845
  .toggle-container {
749
846
  margin: 8px 0;
750
- border: 1px solid var(--liminis-editor-border, var(--vscode-border));
847
+ border: 1px solid var(--liminis-editor-border);
751
848
  border-radius: 10px; /* Friendlier rounded corners */
752
849
  overflow: hidden;
753
850
  }
@@ -757,7 +854,7 @@ body {
757
854
  align-items: center;
758
855
  padding: 10px 14px;
759
856
  padding-left: 32px;
760
- background: var(--liminis-editor-code-bg, var(--vscode-code-bg));
857
+ background: var(--liminis-editor-code-bg);
761
858
  position: relative;
762
859
  min-height: 24px;
763
860
  }
@@ -770,7 +867,7 @@ body {
770
867
  top: 50%;
771
868
  transform: translateY(-50%);
772
869
  font-size: 10px;
773
- color: var(--liminis-editor-foreground, var(--vscode-foreground));
870
+ color: var(--liminis-editor-foreground);
774
871
  opacity: 0.7;
775
872
  transition: transform 0.2s;
776
873
  cursor: pointer;
@@ -792,7 +889,7 @@ body {
792
889
  }
793
890
 
794
891
  .toggle-title:hover {
795
- background: var(--liminis-editor-selection, var(--vscode-selection));
892
+ background: var(--liminis-editor-selection);
796
893
  }
797
894
 
798
895
  /* The paragraph inside the title */
@@ -806,7 +903,7 @@ body {
806
903
  .toggle-content-area {
807
904
  display: none;
808
905
  padding: 12px 14px;
809
- border-top: 1px solid var(--liminis-editor-border, var(--vscode-border));
906
+ border-top: 1px solid var(--liminis-editor-border);
810
907
  }
811
908
 
812
909
  .toggle-container--open .toggle-content-area {
@@ -835,7 +932,7 @@ body {
835
932
  /* Empty content placeholder */
836
933
  .toggle-content-area:empty::before {
837
934
  content: 'Type content here...';
838
- color: var(--liminis-editor-foreground, var(--vscode-foreground));
935
+ color: var(--liminis-editor-foreground);
839
936
  opacity: 0.4;
840
937
  }
841
938
 
@@ -845,7 +942,7 @@ body {
845
942
  }
846
943
 
847
944
  .toggle-block {
848
- border: 1px solid var(--liminis-editor-border, var(--vscode-border));
945
+ border: 1px solid var(--liminis-editor-border);
849
946
  border-radius: 6px;
850
947
  overflow: hidden;
851
948
  }
@@ -856,8 +953,8 @@ body {
856
953
  align-items: center;
857
954
  gap: 4px;
858
955
  padding: 8px;
859
- background: var(--liminis-editor-background, var(--vscode-background));
860
- border: 1px solid var(--liminis-editor-border, var(--vscode-border));
956
+ background: var(--liminis-editor-background);
957
+ border: 1px solid var(--liminis-editor-border);
861
958
  border-radius: 10px; /* Friendlier rounded corners */
862
959
  box-shadow: 0 2px 12px rgba(0, 0, 0, 0.1); /* Softer shadow */
863
960
  z-index: 100;
@@ -873,22 +970,22 @@ body {
873
970
  background: transparent;
874
971
  border-radius: 4px;
875
972
  cursor: pointer;
876
- color: var(--liminis-editor-foreground, var(--vscode-foreground));
973
+ color: var(--liminis-editor-foreground);
877
974
  font-size: 14px;
878
975
  }
879
976
 
880
977
  .toolbar-button:hover {
881
- background: var(--liminis-editor-code-bg, var(--vscode-code-bg));
978
+ background: var(--liminis-editor-code-bg);
882
979
  }
883
980
 
884
981
  .toolbar-button.active {
885
- background: var(--liminis-editor-selection, var(--vscode-selection));
982
+ background: var(--liminis-editor-selection);
886
983
  }
887
984
 
888
985
  .toolbar-divider {
889
986
  width: 1px;
890
987
  height: 20px;
891
- background: var(--liminis-editor-border, var(--vscode-border));
988
+ background: var(--liminis-editor-border);
892
989
  margin: 0 4px;
893
990
  }
894
991
 
@@ -899,8 +996,8 @@ body {
899
996
  transform: translateX(-50%);
900
997
  margin-top: 4px;
901
998
  padding: 8px;
902
- background: var(--liminis-editor-background, var(--vscode-background));
903
- border: 1px solid var(--liminis-editor-border, var(--vscode-border));
999
+ background: var(--liminis-editor-background);
1000
+ border: 1px solid var(--liminis-editor-border);
904
1001
  border-radius: 6px;
905
1002
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.2);
906
1003
  }
@@ -909,15 +1006,15 @@ body {
909
1006
  width: 220px;
910
1007
  padding: 6px 10px;
911
1008
  font-size: 13px;
912
- color: var(--liminis-editor-foreground, var(--vscode-foreground));
913
- background: var(--liminis-editor-input-bg, var(--vscode-input-bg, var(--liminis-editor-code-bg, var(--vscode-code-bg))));
914
- border: 1px solid var(--liminis-editor-border, var(--vscode-border));
1009
+ color: var(--liminis-editor-foreground);
1010
+ background: var(--liminis-editor-input-bg);
1011
+ border: 1px solid var(--liminis-editor-border);
915
1012
  border-radius: 4px;
916
1013
  outline: none;
917
1014
  }
918
1015
 
919
1016
  .toolbar-link-input input:focus {
920
- border-color: var(--liminis-editor-focus-border, var(--vscode-focus-border, #007acc));
1017
+ border-color: var(--liminis-editor-focus-border);
921
1018
  }
922
1019
 
923
1020
  /* Slash Menu */
@@ -927,8 +1024,8 @@ body {
927
1024
  max-height: 320px;
928
1025
  display: flex;
929
1026
  flex-direction: column;
930
- background: var(--liminis-editor-background, var(--vscode-background));
931
- border: 1px solid var(--liminis-editor-border, var(--vscode-border));
1027
+ background: var(--liminis-editor-background);
1028
+ border: 1px solid var(--liminis-editor-border);
932
1029
  border-radius: 12px; /* Friendlier rounded corners */
933
1030
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.15); /* Softer shadow */
934
1031
  z-index: 200;
@@ -939,9 +1036,9 @@ body {
939
1036
  font-size: 11px;
940
1037
  font-weight: 600;
941
1038
  text-transform: uppercase;
942
- color: var(--liminis-editor-foreground, var(--vscode-foreground));
1039
+ color: var(--liminis-editor-foreground);
943
1040
  opacity: 0.6;
944
- border-bottom: 1px solid var(--liminis-editor-border, var(--vscode-border));
1041
+ border-bottom: 1px solid var(--liminis-editor-border);
945
1042
  flex-shrink: 0;
946
1043
  }
947
1044
 
@@ -963,7 +1060,7 @@ body {
963
1060
 
964
1061
  .slash-menu-item:hover,
965
1062
  .slash-menu-item.selected {
966
- background: var(--liminis-editor-selection, var(--vscode-selection));
1063
+ background: var(--liminis-editor-selection);
967
1064
  }
968
1065
 
969
1066
  .slash-menu-icon {
@@ -972,7 +1069,7 @@ body {
972
1069
  justify-content: center;
973
1070
  width: 32px;
974
1071
  height: 32px;
975
- background: var(--liminis-editor-code-bg, var(--vscode-code-bg));
1072
+ background: var(--liminis-editor-code-bg);
976
1073
  border-radius: 4px;
977
1074
  font-size: 14px;
978
1075
  }
@@ -994,7 +1091,7 @@ body {
994
1091
  .slash-menu-empty {
995
1092
  padding: 16px;
996
1093
  text-align: center;
997
- color: var(--liminis-editor-foreground, var(--vscode-foreground));
1094
+ color: var(--liminis-editor-foreground);
998
1095
  opacity: 0.6;
999
1096
  }
1000
1097
 
@@ -1032,13 +1129,14 @@ body {
1032
1129
  height: 20px;
1033
1130
  font-size: 14px;
1034
1131
  letter-spacing: -3px;
1035
- color: var(--liminis-editor-foreground, var(--vscode-foreground));
1132
+ color: var(--liminis-editor-foreground);
1036
1133
  user-select: none;
1037
1134
  border-radius: 4px;
1038
1135
  }
1039
1136
 
1040
1137
  .drag-handle:hover .drag-handle-icon {
1041
- background: var(--liminis-editor-toolbar-hoverBackground, var(--vscode-toolbar-hoverBackground, rgba(128, 128, 128, 0.1)));
1138
+ /* Superseded by --liminis-editor-toolbar-hoverBackground's canonical 0.15-alpha default (ADR-93) */
1139
+ background: var(--liminis-editor-toolbar-hoverBackground);
1042
1140
  }
1043
1141
 
1044
1142
  /* Block Delete Button */
@@ -1070,47 +1168,48 @@ body {
1070
1168
  width: 20px;
1071
1169
  height: 20px;
1072
1170
  font-size: 16px;
1073
- color: var(--liminis-editor-foreground, var(--vscode-foreground));
1171
+ color: var(--liminis-editor-foreground);
1074
1172
  user-select: none;
1075
1173
  border-radius: 4px;
1076
1174
  }
1077
1175
 
1078
1176
  .block-delete-button:hover .block-delete-icon {
1079
- background: var(--liminis-editor-inputValidation-errorBackground, var(--vscode-inputValidation-errorBackground, rgba(255, 0, 0, 0.15)));
1080
- color: var(--liminis-editor-errorForeground, var(--vscode-errorForeground, #f44336));
1177
+ background: var(--liminis-editor-inputValidation-errorBackground);
1178
+ /* Superseded by --liminis-editor-errorForeground's canonical #f14c4c default (ADR-93) */
1179
+ color: var(--liminis-editor-errorForeground);
1081
1180
  }
1082
1181
 
1083
1182
  /* Code syntax highlighting */
1084
1183
  .editor-tokenComment {
1085
- color: var(--liminis-editor-token-comment, var(--slashmd-token-comment));
1184
+ color: var(--liminis-editor-token-comment);
1086
1185
  }
1087
1186
 
1088
1187
  .editor-tokenPunctuation {
1089
- color: var(--liminis-editor-token-punctuation, var(--slashmd-token-punctuation));
1188
+ color: var(--liminis-editor-token-punctuation);
1090
1189
  }
1091
1190
 
1092
1191
  .editor-tokenProperty {
1093
- color: var(--liminis-editor-token-property, var(--slashmd-token-property));
1192
+ color: var(--liminis-editor-token-property);
1094
1193
  }
1095
1194
 
1096
1195
  .editor-tokenSelector {
1097
- color: var(--liminis-editor-token-selector, var(--slashmd-token-selector));
1196
+ color: var(--liminis-editor-token-selector);
1098
1197
  }
1099
1198
 
1100
1199
  .editor-tokenOperator {
1101
- color: var(--liminis-editor-token-operator, var(--slashmd-token-operator));
1200
+ color: var(--liminis-editor-token-operator);
1102
1201
  }
1103
1202
 
1104
1203
  .editor-tokenAttr {
1105
- color: var(--liminis-editor-token-keyword, var(--slashmd-token-keyword));
1204
+ color: var(--liminis-editor-token-keyword);
1106
1205
  }
1107
1206
 
1108
1207
  .editor-tokenVariable {
1109
- color: var(--liminis-editor-token-variable, var(--slashmd-token-variable));
1208
+ color: var(--liminis-editor-token-variable);
1110
1209
  }
1111
1210
 
1112
1211
  .editor-tokenFunction {
1113
- color: var(--liminis-editor-token-function, var(--slashmd-token-function));
1212
+ color: var(--liminis-editor-token-function);
1114
1213
  }
1115
1214
 
1116
1215
  /* Scrollbar - auto-hides on macOS, styled when visible */
@@ -1148,7 +1247,7 @@ body {
1148
1247
 
1149
1248
  /* Focus styles for accessibility */
1150
1249
  *:focus-visible {
1151
- outline: 2px solid var(--liminis-editor-link, var(--vscode-link));
1250
+ outline: 2px solid var(--liminis-editor-link);
1152
1251
  outline-offset: 2px;
1153
1252
  }
1154
1253
 
@@ -1160,14 +1259,14 @@ body {
1160
1259
 
1161
1260
  /* Selection */
1162
1261
  ::selection {
1163
- background: var(--liminis-editor-selection, var(--vscode-selection));
1262
+ background: var(--liminis-editor-selection);
1164
1263
  }
1165
1264
 
1166
1265
  /* Table Actions Menu */
1167
1266
  .table-actions-menu {
1168
1267
  min-width: 200px;
1169
- background: var(--liminis-editor-background, var(--vscode-background));
1170
- border: 1px solid var(--liminis-editor-border, var(--vscode-border));
1268
+ background: var(--liminis-editor-background);
1269
+ border: 1px solid var(--liminis-editor-border);
1171
1270
  border-radius: 12px; /* Friendlier rounded corners */
1172
1271
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.15); /* Softer shadow */
1173
1272
  z-index: 300;
@@ -1183,7 +1282,7 @@ body {
1183
1282
  font-size: 11px;
1184
1283
  font-weight: 600;
1185
1284
  text-transform: uppercase;
1186
- color: var(--liminis-editor-foreground, var(--vscode-foreground));
1285
+ color: var(--liminis-editor-foreground);
1187
1286
  opacity: 0.6;
1188
1287
  }
1189
1288
 
@@ -1195,14 +1294,14 @@ body {
1195
1294
  padding: 8px 12px;
1196
1295
  border: none;
1197
1296
  background: transparent;
1198
- color: var(--liminis-editor-foreground, var(--vscode-foreground));
1297
+ color: var(--liminis-editor-foreground);
1199
1298
  font-size: 13px;
1200
1299
  text-align: left;
1201
1300
  cursor: pointer;
1202
1301
  }
1203
1302
 
1204
1303
  .table-actions-button:hover {
1205
- background: var(--liminis-editor-selection, var(--vscode-selection));
1304
+ background: var(--liminis-editor-selection);
1206
1305
  }
1207
1306
 
1208
1307
  .table-actions-button.table-actions-danger {
@@ -1223,7 +1322,7 @@ body {
1223
1322
 
1224
1323
  .table-actions-divider {
1225
1324
  height: 1px;
1226
- background: var(--liminis-editor-border, var(--vscode-border));
1325
+ background: var(--liminis-editor-border);
1227
1326
  margin: 4px 0;
1228
1327
  }
1229
1328
 
@@ -1232,7 +1331,7 @@ body {
1232
1331
  .editor-table th:focus,
1233
1332
  .editor-table-cell:focus,
1234
1333
  .editor-table-cell-header:focus {
1235
- outline: 2px solid var(--liminis-editor-link, var(--vscode-link));
1334
+ outline: 2px solid var(--liminis-editor-link);
1236
1335
  outline-offset: -2px;
1237
1336
  }
1238
1337
 
@@ -1272,8 +1371,8 @@ body {
1272
1371
  width: 480px;
1273
1372
  max-width: 90vw;
1274
1373
  max-height: 90vh;
1275
- background: var(--liminis-editor-background, var(--vscode-background));
1276
- border: 1px solid var(--liminis-editor-border, var(--vscode-border));
1374
+ background: var(--liminis-editor-background);
1375
+ border: 1px solid var(--liminis-editor-border);
1277
1376
  border-radius: 16px; /* Friendlier rounded corners */
1278
1377
  box-shadow: 0 8px 32px rgba(0, 0, 0, 0.2); /* Softer shadow */
1279
1378
  display: flex;
@@ -1286,7 +1385,7 @@ body {
1286
1385
  align-items: center;
1287
1386
  justify-content: space-between;
1288
1387
  padding: 16px;
1289
- border-bottom: 1px solid var(--liminis-editor-border, var(--vscode-border));
1388
+ border-bottom: 1px solid var(--liminis-editor-border);
1290
1389
  }
1291
1390
 
1292
1391
  .image-modal-header h3 {
@@ -1306,18 +1405,18 @@ body {
1306
1405
  border-radius: 4px;
1307
1406
  cursor: pointer;
1308
1407
  font-size: 20px;
1309
- color: var(--liminis-editor-foreground, var(--vscode-foreground));
1408
+ color: var(--liminis-editor-foreground);
1310
1409
  opacity: 0.7;
1311
1410
  }
1312
1411
 
1313
1412
  .image-modal-close:hover {
1314
1413
  opacity: 1;
1315
- background: var(--liminis-editor-code-bg, var(--vscode-code-bg));
1414
+ background: var(--liminis-editor-code-bg);
1316
1415
  }
1317
1416
 
1318
1417
  .image-modal-tabs {
1319
1418
  display: flex;
1320
- border-bottom: 1px solid var(--liminis-editor-border, var(--vscode-border));
1419
+ border-bottom: 1px solid var(--liminis-editor-border);
1321
1420
  }
1322
1421
 
1323
1422
  .image-modal-tab {
@@ -1325,7 +1424,7 @@ body {
1325
1424
  padding: 12px 16px;
1326
1425
  border: none;
1327
1426
  background: transparent;
1328
- color: var(--liminis-editor-foreground, var(--vscode-foreground));
1427
+ color: var(--liminis-editor-foreground);
1329
1428
  font-size: 14px;
1330
1429
  cursor: pointer;
1331
1430
  opacity: 0.7;
@@ -1334,12 +1433,12 @@ body {
1334
1433
 
1335
1434
  .image-modal-tab:hover {
1336
1435
  opacity: 1;
1337
- background: var(--liminis-editor-code-bg, var(--vscode-code-bg));
1436
+ background: var(--liminis-editor-code-bg);
1338
1437
  }
1339
1438
 
1340
1439
  .image-modal-tab.active {
1341
1440
  opacity: 1;
1342
- border-bottom: 2px solid var(--liminis-editor-link, var(--vscode-link));
1441
+ border-bottom: 2px solid var(--liminis-editor-link);
1343
1442
  margin-bottom: -1px;
1344
1443
  }
1345
1444
 
@@ -1354,25 +1453,25 @@ body {
1354
1453
  align-items: center;
1355
1454
  justify-content: center;
1356
1455
  min-height: 160px;
1357
- border: 2px dashed var(--liminis-editor-border, var(--vscode-border));
1456
+ border: 2px dashed var(--liminis-editor-border);
1358
1457
  border-radius: 8px;
1359
1458
  cursor: pointer;
1360
1459
  transition: border-color 0.15s, background 0.15s;
1361
1460
  }
1362
1461
 
1363
1462
  .image-modal-dropzone:hover {
1364
- border-color: var(--liminis-editor-link, var(--vscode-link));
1463
+ border-color: var(--liminis-editor-link);
1365
1464
  background: rgba(0, 102, 204, 0.05);
1366
1465
  }
1367
1466
 
1368
1467
  .image-modal-dropzone.drag-over {
1369
- border-color: var(--liminis-editor-link, var(--vscode-link));
1468
+ border-color: var(--liminis-editor-link);
1370
1469
  background: rgba(0, 102, 204, 0.1);
1371
1470
  }
1372
1471
 
1373
1472
  .image-modal-dropzone.has-preview {
1374
1473
  border-style: solid;
1375
- border-color: var(--liminis-editor-border, var(--vscode-border));
1474
+ border-color: var(--liminis-editor-border);
1376
1475
  padding: 8px;
1377
1476
  }
1378
1477
 
@@ -1381,7 +1480,7 @@ body {
1381
1480
  flex-direction: column;
1382
1481
  align-items: center;
1383
1482
  gap: 8px;
1384
- color: var(--liminis-editor-foreground, var(--vscode-foreground));
1483
+ color: var(--liminis-editor-foreground);
1385
1484
  opacity: 0.7;
1386
1485
  }
1387
1486
 
@@ -1406,9 +1505,9 @@ body {
1406
1505
  display: flex;
1407
1506
  justify-content: center;
1408
1507
  padding: 8px;
1409
- border: 1px solid var(--liminis-editor-border, var(--vscode-border));
1508
+ border: 1px solid var(--liminis-editor-border);
1410
1509
  border-radius: 8px;
1411
- background: var(--liminis-editor-code-bg, var(--vscode-code-bg));
1510
+ background: var(--liminis-editor-code-bg);
1412
1511
  }
1413
1512
 
1414
1513
  .image-modal-alt-section {
@@ -1419,7 +1518,7 @@ body {
1419
1518
  display: block;
1420
1519
  margin-bottom: 6px;
1421
1520
  font-size: 13px;
1422
- color: var(--liminis-editor-foreground, var(--vscode-foreground));
1521
+ color: var(--liminis-editor-foreground);
1423
1522
  opacity: 0.8;
1424
1523
  }
1425
1524
 
@@ -1427,20 +1526,20 @@ body {
1427
1526
  width: 100%;
1428
1527
  padding: 10px 12px;
1429
1528
  font-size: 14px;
1430
- font-family: var(--liminis-editor-font-family, var(--vscode-font-family));
1431
- color: var(--liminis-editor-foreground, var(--vscode-foreground));
1432
- background: var(--liminis-editor-code-bg, var(--vscode-code-bg));
1433
- border: 1px solid var(--liminis-editor-border, var(--vscode-border));
1529
+ font-family: var(--liminis-editor-font-family);
1530
+ color: var(--liminis-editor-foreground);
1531
+ background: var(--liminis-editor-code-bg);
1532
+ border: 1px solid var(--liminis-editor-border);
1434
1533
  border-radius: 6px;
1435
1534
  outline: none;
1436
1535
  }
1437
1536
 
1438
1537
  .image-modal-input:focus {
1439
- border-color: var(--liminis-editor-link, var(--vscode-link));
1538
+ border-color: var(--liminis-editor-link);
1440
1539
  }
1441
1540
 
1442
1541
  .image-modal-input::placeholder {
1443
- color: var(--liminis-editor-foreground, var(--vscode-foreground));
1542
+ color: var(--liminis-editor-foreground);
1444
1543
  opacity: 0.5;
1445
1544
  }
1446
1545
 
@@ -1459,13 +1558,13 @@ body {
1459
1558
  justify-content: flex-end;
1460
1559
  gap: 8px;
1461
1560
  padding: 16px;
1462
- border-top: 1px solid var(--liminis-editor-border, var(--vscode-border));
1561
+ border-top: 1px solid var(--liminis-editor-border);
1463
1562
  }
1464
1563
 
1465
1564
  .image-modal-button {
1466
1565
  padding: 8px 16px;
1467
1566
  font-size: 14px;
1468
- font-family: var(--liminis-editor-font-family, var(--vscode-font-family));
1567
+ font-family: var(--liminis-editor-font-family);
1469
1568
  border: none;
1470
1569
  border-radius: 6px;
1471
1570
  cursor: pointer;
@@ -1473,17 +1572,17 @@ body {
1473
1572
  }
1474
1573
 
1475
1574
  .image-modal-button.secondary {
1476
- color: var(--liminis-editor-foreground, var(--vscode-foreground));
1477
- background: var(--liminis-editor-code-bg, var(--vscode-code-bg));
1575
+ color: var(--liminis-editor-foreground);
1576
+ background: var(--liminis-editor-code-bg);
1478
1577
  }
1479
1578
 
1480
1579
  .image-modal-button.secondary:hover {
1481
- background: var(--liminis-editor-selection, var(--vscode-selection));
1580
+ background: var(--liminis-editor-selection);
1482
1581
  }
1483
1582
 
1484
1583
  .image-modal-button.primary {
1485
1584
  color: white;
1486
- background: var(--liminis-editor-link, var(--vscode-link));
1585
+ background: var(--liminis-editor-link);
1487
1586
  }
1488
1587
 
1489
1588
  .image-modal-button.primary:hover {
@@ -1499,8 +1598,8 @@ body {
1499
1598
  align-items: center;
1500
1599
  gap: 8px;
1501
1600
  padding: 8px 12px;
1502
- background: var(--liminis-editor-background, var(--vscode-background));
1503
- border: 1px solid var(--liminis-editor-border, var(--vscode-border));
1601
+ background: var(--liminis-editor-background);
1602
+ border: 1px solid var(--liminis-editor-border);
1504
1603
  border-radius: 12px; /* Friendlier rounded corners */
1505
1604
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.12); /* Softer shadow */
1506
1605
  z-index: 500;
@@ -1510,8 +1609,8 @@ body {
1510
1609
  display: flex;
1511
1610
  align-items: center;
1512
1611
  gap: 8px;
1513
- background: var(--liminis-editor-code-bg, var(--vscode-code-bg));
1514
- border: 1px solid var(--liminis-editor-border, var(--vscode-border));
1612
+ background: var(--liminis-editor-code-bg);
1613
+ border: 1px solid var(--liminis-editor-border);
1515
1614
  border-radius: 6px;
1516
1615
  padding: 4px 8px;
1517
1616
  }
@@ -1527,7 +1626,7 @@ body {
1527
1626
 
1528
1627
  .search-icon {
1529
1628
  flex-shrink: 0;
1530
- color: var(--liminis-editor-foreground, var(--vscode-foreground));
1629
+ color: var(--liminis-editor-foreground);
1531
1630
  opacity: 0.5;
1532
1631
  }
1533
1632
 
@@ -1535,9 +1634,9 @@ body {
1535
1634
  width: 200px;
1536
1635
  border: none;
1537
1636
  background: transparent;
1538
- color: var(--liminis-editor-foreground, var(--vscode-foreground));
1637
+ color: var(--liminis-editor-foreground);
1539
1638
  font-size: 14px;
1540
- font-family: var(--liminis-editor-font-family, var(--vscode-font-family));
1639
+ font-family: var(--liminis-editor-font-family);
1541
1640
  outline: none !important;
1542
1641
  }
1543
1642
 
@@ -1548,14 +1647,14 @@ body {
1548
1647
  }
1549
1648
 
1550
1649
  .search-input::placeholder {
1551
- color: var(--liminis-editor-foreground, var(--vscode-foreground));
1650
+ color: var(--liminis-editor-foreground);
1552
1651
  opacity: 0.5;
1553
1652
  }
1554
1653
 
1555
1654
  .search-count {
1556
1655
  flex-shrink: 0;
1557
1656
  font-size: 12px;
1558
- color: var(--liminis-editor-foreground, var(--vscode-foreground));
1657
+ color: var(--liminis-editor-foreground);
1559
1658
  opacity: 0.7;
1560
1659
  white-space: nowrap;
1561
1660
  }
@@ -1577,13 +1676,13 @@ body {
1577
1676
  background: transparent;
1578
1677
  border-radius: 4px;
1579
1678
  cursor: pointer;
1580
- color: var(--liminis-editor-foreground, var(--vscode-foreground));
1679
+ color: var(--liminis-editor-foreground);
1581
1680
  transition: background 0.15s;
1582
1681
  }
1583
1682
 
1584
1683
  .search-nav-button:hover:not(:disabled),
1585
1684
  .search-close-button:hover {
1586
- background: var(--liminis-editor-code-bg, var(--vscode-code-bg));
1685
+ background: var(--liminis-editor-code-bg);
1587
1686
  }
1588
1687
 
1589
1688
  .search-nav-button:disabled {
@@ -1592,7 +1691,8 @@ body {
1592
1691
  }
1593
1692
 
1594
1693
  .search-close-button:hover {
1595
- color: var(--liminis-editor-errorForeground, var(--vscode-errorForeground, #f44336));
1694
+ /* Superseded by --liminis-editor-errorForeground's canonical #f14c4c default (ADR-93) */
1695
+ color: var(--liminis-editor-errorForeground);
1596
1696
  }
1597
1697
 
1598
1698
  /* Search Highlight Layer */
@@ -1660,7 +1760,7 @@ body {
1660
1760
 
1661
1761
  /* Equation Editor Styles */
1662
1762
  .equation-editor-background {
1663
- background-color: var(--liminis-editor-code-bg, var(--vscode-code-bg));
1763
+ background-color: var(--liminis-editor-code-bg);
1664
1764
  padding: 4px 8px;
1665
1765
  border-radius: 4px;
1666
1766
  display: inline-flex;
@@ -1669,7 +1769,7 @@ body {
1669
1769
  }
1670
1770
 
1671
1771
  .equation-dollar-sign {
1672
- color: var(--liminis-editor-foreground, var(--vscode-foreground));
1772
+ color: var(--liminis-editor-foreground);
1673
1773
  opacity: 0.5;
1674
1774
  font-family: monospace;
1675
1775
  white-space: pre;
@@ -1733,13 +1833,13 @@ body {
1733
1833
  .mermaid-loading {
1734
1834
  padding: 2rem;
1735
1835
  text-align: center;
1736
- color: var(--liminis-editor-foreground, var(--vscode-foreground));
1836
+ color: var(--liminis-editor-foreground);
1737
1837
  opacity: 0.7;
1738
1838
  }
1739
1839
 
1740
1840
  /* Mermaid Editor Styles */
1741
1841
  .mermaid-editor-container {
1742
- background: var(--liminis-editor-code-bg, var(--vscode-code-bg));
1842
+ background: var(--liminis-editor-code-bg);
1743
1843
  border-radius: 8px;
1744
1844
  overflow: hidden;
1745
1845
  margin: 1em 0;
@@ -1757,14 +1857,14 @@ body {
1757
1857
  .mermaid-editor-label {
1758
1858
  font-family: monospace;
1759
1859
  font-size: 12px;
1760
- color: var(--liminis-editor-foreground, var(--vscode-foreground));
1860
+ color: var(--liminis-editor-foreground);
1761
1861
  opacity: 0.7;
1762
1862
  }
1763
1863
 
1764
1864
  .mermaid-editor-close {
1765
1865
  background: transparent;
1766
1866
  border: none;
1767
- color: var(--liminis-editor-foreground, var(--vscode-foreground));
1867
+ color: var(--liminis-editor-foreground);
1768
1868
  cursor: pointer;
1769
1869
  padding: 4px 8px;
1770
1870
  border-radius: 4px;
@@ -1784,7 +1884,7 @@ body {
1784
1884
  padding: 12px;
1785
1885
  border: none;
1786
1886
  background: transparent;
1787
- color: var(--liminis-editor-foreground, var(--vscode-foreground));
1887
+ color: var(--liminis-editor-foreground);
1788
1888
  font-family: monospace;
1789
1889
  font-size: 14px;
1790
1890
  line-height: 1.5;
@@ -1793,7 +1893,7 @@ body {
1793
1893
  }
1794
1894
 
1795
1895
  .mermaid-editor-textarea::placeholder {
1796
- color: var(--liminis-editor-foreground, var(--vscode-foreground));
1896
+ color: var(--liminis-editor-foreground);
1797
1897
  opacity: 0.5;
1798
1898
  }
1799
1899
 
@@ -1820,13 +1920,13 @@ body {
1820
1920
  .c4-loading {
1821
1921
  padding: 2rem;
1822
1922
  text-align: center;
1823
- color: var(--liminis-editor-foreground, var(--vscode-foreground));
1923
+ color: var(--liminis-editor-foreground);
1824
1924
  opacity: 0.7;
1825
1925
  }
1826
1926
 
1827
1927
  /* C4 Editor Styles */
1828
1928
  .c4-editor-container {
1829
- background: var(--liminis-editor-code-bg, var(--vscode-code-bg));
1929
+ background: var(--liminis-editor-code-bg);
1830
1930
  border-radius: 8px;
1831
1931
  overflow: hidden;
1832
1932
  margin: 1em 0;
@@ -1844,14 +1944,14 @@ body {
1844
1944
  .c4-editor-label {
1845
1945
  font-family: monospace;
1846
1946
  font-size: 12px;
1847
- color: var(--liminis-editor-foreground, var(--vscode-foreground));
1947
+ color: var(--liminis-editor-foreground);
1848
1948
  opacity: 0.7;
1849
1949
  }
1850
1950
 
1851
1951
  .c4-editor-close {
1852
1952
  background: transparent;
1853
1953
  border: none;
1854
- color: var(--liminis-editor-foreground, var(--vscode-foreground));
1954
+ color: var(--liminis-editor-foreground);
1855
1955
  cursor: pointer;
1856
1956
  padding: 4px 8px;
1857
1957
  border-radius: 4px;
@@ -1871,7 +1971,7 @@ body {
1871
1971
  padding: 12px;
1872
1972
  border: none;
1873
1973
  background: transparent;
1874
- color: var(--liminis-editor-foreground, var(--vscode-foreground));
1974
+ color: var(--liminis-editor-foreground);
1875
1975
  font-family: monospace;
1876
1976
  font-size: 14px;
1877
1977
  line-height: 1.5;
@@ -1880,7 +1980,7 @@ body {
1880
1980
  }
1881
1981
 
1882
1982
  .c4-editor-textarea::placeholder {
1883
- color: var(--liminis-editor-foreground, var(--vscode-foreground));
1983
+ color: var(--liminis-editor-foreground);
1884
1984
  opacity: 0.5;
1885
1985
  }
1886
1986
 
@@ -1903,10 +2003,10 @@ body {
1903
2003
  width: 32px;
1904
2004
  height: 32px;
1905
2005
  padding: 0;
1906
- border: 1px solid var(--liminis-editor-border, var(--vscode-border));
2006
+ border: 1px solid var(--liminis-editor-border);
1907
2007
  border-radius: 6px;
1908
- background: var(--liminis-editor-background, var(--vscode-background));
1909
- color: var(--liminis-editor-foreground, var(--vscode-foreground));
2008
+ background: var(--liminis-editor-background);
2009
+ color: var(--liminis-editor-foreground);
1910
2010
  cursor: pointer;
1911
2011
  opacity: 0.7;
1912
2012
  transition: opacity 0.15s, background-color 0.15s, border-color 0.15s;
@@ -1914,13 +2014,13 @@ body {
1914
2014
 
1915
2015
  .frontmatter-toggle-button:hover {
1916
2016
  opacity: 1;
1917
- background: var(--liminis-editor-code-bg, var(--vscode-code-bg));
2017
+ background: var(--liminis-editor-code-bg);
1918
2018
  }
1919
2019
 
1920
2020
  .frontmatter-toggle-button.frontmatter-toggle-active {
1921
2021
  opacity: 1;
1922
- background: var(--liminis-editor-link, var(--vscode-link));
1923
- border-color: var(--liminis-editor-link, var(--vscode-link));
2022
+ background: var(--liminis-editor-link);
2023
+ border-color: var(--liminis-editor-link);
1924
2024
  color: #ffffff;
1925
2025
  }
1926
2026
 
@@ -1931,8 +2031,8 @@ body {
1931
2031
  left: 0;
1932
2032
  right: 0;
1933
2033
  z-index: 5;
1934
- background: var(--liminis-editor-background, var(--vscode-background));
1935
- border-bottom: 1px solid var(--liminis-editor-border, var(--vscode-border));
2034
+ background: var(--liminis-editor-background);
2035
+ border-bottom: 1px solid var(--liminis-editor-border);
1936
2036
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
1937
2037
  transform: translateY(-100%);
1938
2038
  opacity: 0;
@@ -1955,14 +2055,14 @@ body {
1955
2055
  align-items: center;
1956
2056
  justify-content: space-between;
1957
2057
  padding: 8px 12px;
1958
- border-bottom: 1px solid var(--liminis-editor-border, var(--vscode-border));
1959
- background: var(--liminis-editor-code-bg, var(--vscode-code-bg));
2058
+ border-bottom: 1px solid var(--liminis-editor-border);
2059
+ background: var(--liminis-editor-code-bg);
1960
2060
  }
1961
2061
 
1962
2062
  .frontmatter-tray-title {
1963
2063
  font-size: 12px;
1964
2064
  font-weight: 600;
1965
- color: var(--liminis-editor-foreground, var(--vscode-foreground));
2065
+ color: var(--liminis-editor-foreground);
1966
2066
  text-transform: uppercase;
1967
2067
  letter-spacing: 0.5px;
1968
2068
  }
@@ -1977,7 +2077,7 @@ body {
1977
2077
  border: none;
1978
2078
  border-radius: 4px;
1979
2079
  background: transparent;
1980
- color: var(--liminis-editor-foreground, var(--vscode-foreground));
2080
+ color: var(--liminis-editor-foreground);
1981
2081
  cursor: pointer;
1982
2082
  opacity: 0.7;
1983
2083
  transition: opacity 0.15s, background-color 0.15s;
@@ -1985,7 +2085,7 @@ body {
1985
2085
 
1986
2086
  .frontmatter-tray-close:hover {
1987
2087
  opacity: 1;
1988
- background: var(--liminis-editor-border, var(--vscode-border));
2088
+ background: var(--liminis-editor-border);
1989
2089
  }
1990
2090
 
1991
2091
  .frontmatter-tray-content {
@@ -1997,10 +2097,10 @@ body {
1997
2097
  min-height: 80px;
1998
2098
  max-height: 300px;
1999
2099
  padding: 12px;
2000
- border: 1px solid var(--liminis-editor-border, var(--vscode-border));
2100
+ border: 1px solid var(--liminis-editor-border);
2001
2101
  border-radius: 4px;
2002
- background: var(--liminis-editor-code-bg, var(--vscode-code-bg));
2003
- color: var(--liminis-editor-foreground, var(--vscode-foreground));
2102
+ background: var(--liminis-editor-code-bg);
2103
+ color: var(--liminis-editor-foreground);
2004
2104
  font-family: 'Menlo', 'Monaco', 'Courier New', monospace;
2005
2105
  font-size: 13px;
2006
2106
  line-height: 1.5;
@@ -2010,11 +2110,11 @@ body {
2010
2110
 
2011
2111
  .frontmatter-tray-textarea:focus {
2012
2112
  outline: none;
2013
- border-color: var(--liminis-editor-link, var(--vscode-link));
2113
+ border-color: var(--liminis-editor-link);
2014
2114
  }
2015
2115
 
2016
2116
  .frontmatter-tray-textarea::placeholder {
2017
- color: var(--liminis-editor-foreground, var(--vscode-foreground));
2117
+ color: var(--liminis-editor-foreground);
2018
2118
  opacity: 0.5;
2019
2119
  }
2020
2120
 
@@ -2027,10 +2127,10 @@ body {
2027
2127
 
2028
2128
  .frontmatter-tray-toggle-raw {
2029
2129
  padding: 4px 8px;
2030
- border: 1px solid var(--liminis-editor-border, var(--vscode-border));
2130
+ border: 1px solid var(--liminis-editor-border);
2031
2131
  border-radius: 4px;
2032
2132
  background: transparent;
2033
- color: var(--liminis-editor-foreground, var(--vscode-foreground));
2133
+ color: var(--liminis-editor-foreground);
2034
2134
  font-size: 11px;
2035
2135
  font-weight: 500;
2036
2136
  cursor: pointer;
@@ -2038,8 +2138,8 @@ body {
2038
2138
  }
2039
2139
 
2040
2140
  .frontmatter-tray-toggle-raw:hover {
2041
- background: var(--liminis-editor-border, var(--vscode-border));
2042
- border-color: var(--liminis-editor-foreground-muted, var(--vscode-foreground-muted, var(--liminis-editor-border, var(--vscode-border))));
2141
+ background: var(--liminis-editor-border);
2142
+ border-color: var(--liminis-editor-foreground-muted);
2043
2143
  }
2044
2144
 
2045
2145
  /* MDC Form Styles */
@@ -2061,7 +2161,7 @@ body {
2061
2161
  gap: 6px;
2062
2162
  font-size: 12px;
2063
2163
  font-weight: 600;
2064
- color: var(--liminis-editor-foreground, var(--vscode-foreground));
2164
+ color: var(--liminis-editor-foreground);
2065
2165
  text-transform: uppercase;
2066
2166
  letter-spacing: 0.3px;
2067
2167
  }
@@ -2080,42 +2180,42 @@ body {
2080
2180
 
2081
2181
  .mdc-form-input {
2082
2182
  padding: 8px 12px;
2083
- border: 1px solid var(--liminis-editor-border, var(--vscode-border));
2183
+ border: 1px solid var(--liminis-editor-border);
2084
2184
  border-radius: 4px;
2085
- background: var(--liminis-editor-code-bg, var(--vscode-code-bg));
2086
- color: var(--liminis-editor-foreground, var(--vscode-foreground));
2185
+ background: var(--liminis-editor-code-bg);
2186
+ color: var(--liminis-editor-foreground);
2087
2187
  font-size: 14px;
2088
2188
  line-height: 1.4;
2089
2189
  }
2090
2190
 
2091
2191
  .mdc-form-input:focus {
2092
2192
  outline: none;
2093
- border-color: var(--liminis-editor-link, var(--vscode-link));
2193
+ border-color: var(--liminis-editor-link);
2094
2194
  }
2095
2195
 
2096
2196
  .mdc-form-input::placeholder {
2097
- color: var(--liminis-editor-foreground, var(--vscode-foreground));
2197
+ color: var(--liminis-editor-foreground);
2098
2198
  opacity: 0.5;
2099
2199
  }
2100
2200
 
2101
2201
  .mdc-form-select {
2102
2202
  padding: 8px 12px;
2103
- border: 1px solid var(--liminis-editor-border, var(--vscode-border));
2203
+ border: 1px solid var(--liminis-editor-border);
2104
2204
  border-radius: 4px;
2105
- background: var(--liminis-editor-code-bg, var(--vscode-code-bg));
2106
- color: var(--liminis-editor-foreground, var(--vscode-foreground));
2205
+ background: var(--liminis-editor-code-bg);
2206
+ color: var(--liminis-editor-foreground);
2107
2207
  font-size: 14px;
2108
2208
  cursor: pointer;
2109
2209
  }
2110
2210
 
2111
2211
  .mdc-form-select:focus {
2112
2212
  outline: none;
2113
- border-color: var(--liminis-editor-link, var(--vscode-link));
2213
+ border-color: var(--liminis-editor-link);
2114
2214
  }
2115
2215
 
2116
2216
  .mdc-form-hint {
2117
2217
  font-size: 11px;
2118
- color: var(--liminis-editor-foreground, var(--vscode-foreground));
2218
+ color: var(--liminis-editor-foreground);
2119
2219
  opacity: 0.7;
2120
2220
  line-height: 1.4;
2121
2221
  }
@@ -2125,7 +2225,7 @@ body {
2125
2225
  background: rgba(6, 150, 215, 0.08);
2126
2226
  border-radius: 4px;
2127
2227
  opacity: 1;
2128
- color: var(--liminis-editor-link, var(--vscode-link));
2228
+ color: var(--liminis-editor-link);
2129
2229
  }
2130
2230
 
2131
2231
  .dark .mdc-form-hint-info {
@@ -2158,15 +2258,15 @@ body {
2158
2258
  align-items: center;
2159
2259
  justify-content: space-between;
2160
2260
  padding: 6px 10px;
2161
- background: var(--liminis-editor-code-bg, var(--vscode-code-bg));
2162
- border: 1px solid var(--liminis-editor-border, var(--vscode-border));
2261
+ background: var(--liminis-editor-code-bg);
2262
+ border: 1px solid var(--liminis-editor-border);
2163
2263
  border-radius: 4px;
2164
2264
  }
2165
2265
 
2166
2266
  .mdc-glob-pattern {
2167
2267
  font-family: 'Menlo', 'Monaco', 'Courier New', monospace;
2168
2268
  font-size: 13px;
2169
- color: var(--liminis-editor-link, var(--vscode-link));
2269
+ color: var(--liminis-editor-link);
2170
2270
  }
2171
2271
 
2172
2272
  .mdc-glob-remove {
@@ -2179,7 +2279,7 @@ body {
2179
2279
  border: none;
2180
2280
  border-radius: 4px;
2181
2281
  background: transparent;
2182
- color: var(--liminis-editor-foreground, var(--vscode-foreground));
2282
+ color: var(--liminis-editor-foreground);
2183
2283
  cursor: pointer;
2184
2284
  opacity: 0.5;
2185
2285
  transition: opacity 0.15s, background-color 0.15s;
@@ -2202,10 +2302,10 @@ body {
2202
2302
 
2203
2303
  .mdc-glob-add-btn {
2204
2304
  padding: 8px 16px;
2205
- border: 1px solid var(--liminis-editor-link, var(--vscode-link));
2305
+ border: 1px solid var(--liminis-editor-link);
2206
2306
  border-radius: 4px;
2207
2307
  background: transparent;
2208
- color: var(--liminis-editor-link, var(--vscode-link));
2308
+ color: var(--liminis-editor-link);
2209
2309
  font-size: 13px;
2210
2310
  font-weight: 500;
2211
2311
  cursor: pointer;
@@ -2213,7 +2313,7 @@ body {
2213
2313
  }
2214
2314
 
2215
2315
  .mdc-glob-add-btn:hover:not(:disabled) {
2216
- background: var(--liminis-editor-link, var(--vscode-link));
2316
+ background: var(--liminis-editor-link);
2217
2317
  color: #ffffff;
2218
2318
  }
2219
2319
 
@@ -2226,13 +2326,13 @@ body {
2226
2326
  .mdc-other-yaml {
2227
2327
  margin: 0;
2228
2328
  padding: 10px 12px;
2229
- background: var(--liminis-editor-code-bg, var(--vscode-code-bg));
2230
- border: 1px solid var(--liminis-editor-border, var(--vscode-border));
2329
+ background: var(--liminis-editor-code-bg);
2330
+ border: 1px solid var(--liminis-editor-border);
2231
2331
  border-radius: 4px;
2232
2332
  font-family: 'Menlo', 'Monaco', 'Courier New', monospace;
2233
2333
  font-size: 12px;
2234
2334
  line-height: 1.5;
2235
- color: var(--liminis-editor-foreground, var(--vscode-foreground));
2335
+ color: var(--liminis-editor-foreground);
2236
2336
  opacity: 0.8;
2237
2337
  white-space: pre-wrap;
2238
2338
  overflow-x: auto;
@@ -2285,7 +2385,7 @@ body {
2285
2385
  focusable, so they are reachable by Tab. */
2286
2386
  .annotation-mark-highlight:focus-visible,
2287
2387
  .annotation-mark-squiggle:focus-visible {
2288
- outline: 2px solid var(--liminis-editor-link, var(--vscode-link));
2388
+ outline: 2px solid var(--liminis-editor-link);
2289
2389
  outline-offset: 1px;
2290
2390
  }
2291
2391
 
@@ -2369,7 +2469,7 @@ body {
2369
2469
  padding: 4px 8px;
2370
2470
  border: none;
2371
2471
  background: transparent;
2372
- color: var(--liminis-editor-foreground, var(--vscode-foreground));
2472
+ color: var(--liminis-editor-foreground);
2373
2473
  opacity: 0.7;
2374
2474
  text-align: left;
2375
2475
  cursor: pointer;
@@ -2378,12 +2478,12 @@ body {
2378
2478
 
2379
2479
  .editor-outline-item-button:hover {
2380
2480
  opacity: 1;
2381
- background: var(--liminis-editor-code-bg, var(--vscode-code-bg));
2481
+ background: var(--liminis-editor-code-bg);
2382
2482
  }
2383
2483
 
2384
2484
  .editor-outline-item-active .editor-outline-item-button {
2385
2485
  opacity: 1;
2386
- color: var(--liminis-editor-link, var(--vscode-link));
2486
+ color: var(--liminis-editor-link);
2387
2487
  }
2388
2488
 
2389
2489
  .editor-outline-indicator {
@@ -2395,7 +2495,7 @@ body {
2395
2495
  }
2396
2496
 
2397
2497
  .editor-outline-item-active .editor-outline-indicator {
2398
- background: var(--liminis-editor-link, var(--vscode-link));
2498
+ background: var(--liminis-editor-link);
2399
2499
  }
2400
2500
 
2401
2501
  .editor-outline-item-text {
@@ -2435,21 +2535,24 @@ body {
2435
2535
  Ensures the editor content prints cleanly with proper formatting.
2436
2536
  */
2437
2537
  @media print {
2438
- /* Reset editor colors for print */
2538
+ /* Reset editor colors for print. This is an internal consumer, not a
2539
+ host — it overrides --liminis-editor-* directly (ADR-98) rather than a
2540
+ legacy name a host might also be setting. --slashmd-heading-color had
2541
+ no --liminis-editor-* counterpart (unconsumed, no dark override either)
2542
+ and is dropped rather than invented (ADR-98). */
2439
2543
  :root,
2440
2544
  .dark {
2441
- --vscode-foreground: #000000;
2442
- --vscode-background: #ffffff;
2443
- --vscode-code-bg: #f5f5f5;
2444
- --vscode-border: #cccccc;
2445
- --checkbox-border: #666666;
2446
- --vscode-link: #0066cc;
2447
- --slashmd-heading-color: #000000;
2448
- --slashmd-h1-color: #000000;
2449
- --slashmd-h2-color: #000000;
2450
- --slashmd-h3-color: #000000;
2451
- --slashmd-h4-color: #000000;
2452
- --slashmd-h5-color: #000000;
2545
+ --liminis-editor-foreground: #000000;
2546
+ --liminis-editor-background: #ffffff;
2547
+ --liminis-editor-code-bg: #f5f5f5;
2548
+ --liminis-editor-border: #cccccc;
2549
+ --liminis-editor-checkbox-border: #666666;
2550
+ --liminis-editor-link: #0066cc;
2551
+ --liminis-editor-h1-color: #000000;
2552
+ --liminis-editor-h2-color: #000000;
2553
+ --liminis-editor-h3-color: #000000;
2554
+ --liminis-editor-h4-color: #000000;
2555
+ --liminis-editor-h5-color: #000000;
2453
2556
  }
2454
2557
 
2455
2558
  body {