sdocs-dev 1.2.0 → 1.3.1

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.
@@ -1,393 +0,0 @@
1
- /* ═══════════════════════════════════════════════════
2
- RIGHT PANEL
3
- ═══════════════════════════════════════════════════ */
4
- #right {
5
- width: 0;
6
- opacity: 0;
7
- overflow: hidden;
8
- flex-shrink: 0;
9
- display: flex;
10
- flex-direction: column;
11
- background: var(--bg-panel);
12
- scrollbar-width: thin;
13
- scrollbar-color: var(--border) transparent;
14
- transition: width .32s cubic-bezier(.4,0,.2,1),
15
- opacity .25s ease;
16
- }
17
- body.style-mode #right {
18
- width: 335px;
19
- opacity: 1;
20
- overflow-y: auto;
21
- overflow-x: hidden;
22
- }
23
- #right::-webkit-scrollbar { width: 5px; }
24
- #right::-webkit-scrollbar-track { background: transparent; }
25
- #right::-webkit-scrollbar-thumb { background: var(--border); border-radius: 10px; }
26
-
27
- #right-header {
28
- display: flex;
29
- align-items: center;
30
- min-height: 40px;
31
- padding: 0 12px;
32
- font-size: 12px;
33
- font-weight: 600;
34
- letter-spacing: -0.005em;
35
- color: var(--text-2);
36
- border-bottom: 1px solid var(--border);
37
- background: var(--bg-panel);
38
- flex-shrink: 0;
39
- }
40
-
41
- /* ── Theme tabs ── */
42
- #theme-tabs {
43
- margin-bottom: 10px;
44
- }
45
- #theme-tabs .toggle-group {
46
- display: flex;
47
- width: 100%;
48
- gap: 0;
49
- background: var(--bg-surface);
50
- border: 1px solid var(--border);
51
- border-radius: var(--radius);
52
- overflow: hidden;
53
- }
54
- #theme-tabs .btn {
55
- flex: 1;
56
- display: flex;
57
- align-items: center;
58
- justify-content: center;
59
- gap: 4px;
60
- padding: 5px 0;
61
- border: none;
62
- background: none;
63
- font-family: var(--font-ui);
64
- font-size: 11.5px;
65
- font-weight: 500;
66
- color: var(--text-3);
67
- cursor: pointer;
68
- transition: background .12s, color .12s;
69
- }
70
- #theme-tabs .btn:hover {
71
- background: var(--bg-hover);
72
- color: var(--text-2);
73
- }
74
- #theme-tabs .btn.active {
75
- background: var(--bg-panel);
76
- color: var(--text);
77
- font-weight: 600;
78
- box-shadow: var(--shadow-sm);
79
- }
80
- #theme-tabs .btn svg {
81
- width: 13px;
82
- height: 13px;
83
- flex-shrink: 0;
84
- }
85
-
86
- /* ── Panel sections ── */
87
- .panel-section { border-bottom: 1px solid var(--border-subtle); }
88
-
89
- .panel-header {
90
- display: flex;
91
- align-items: center;
92
- gap: 7px;
93
- padding: 9px 12px;
94
- cursor: pointer;
95
- user-select: none;
96
- font-size: 12px;
97
- font-weight: 600;
98
- color: var(--text-2);
99
- transition: background .1s;
100
- }
101
- .panel-header:hover { background: var(--bg-hover); }
102
- .panel-header .arrow {
103
- display: inline-flex;
104
- align-items: center;
105
- justify-content: center;
106
- width: 14px;
107
- height: 14px;
108
- color: var(--text-3);
109
- transition: transform .18s cubic-bezier(.4,0,.2,1);
110
- flex-shrink: 0;
111
- }
112
- .panel-header.open .arrow { transform: rotate(90deg); }
113
- .panel-header .section-icon {
114
- width: 16px;
115
- height: 16px;
116
- border-radius: 3px;
117
- display: inline-flex;
118
- align-items: center;
119
- justify-content: center;
120
- flex-shrink: 0;
121
- font-size: 9px;
122
- }
123
-
124
- .panel-body { display: none; padding: 10px 12px 12px; }
125
- .panel-body.open { display: block; }
126
-
127
- /* Sub-sections */
128
- .sub-section { margin-top: 6px; }
129
- .sub-header {
130
- display: flex;
131
- align-items: center;
132
- gap: 5px;
133
- padding: 5px 8px;
134
- cursor: pointer;
135
- font-size: 11px;
136
- font-weight: 600;
137
- color: var(--text-2);
138
- background: var(--bg-surface);
139
- border: 1px solid var(--border-subtle);
140
- border-radius: var(--radius);
141
- user-select: none;
142
- transition: background .1s, border-color .1s;
143
- }
144
- .sub-header:hover { background: var(--bg-hover); border-color: var(--border); }
145
- .sub-header .arrow {
146
- font-size: 9px;
147
- color: var(--text-3);
148
- transition: transform .18s cubic-bezier(.4,0,.2,1);
149
- }
150
- .sub-header.open .arrow { transform: rotate(90deg); }
151
- .sub-header .tag {
152
- margin-left: auto;
153
- font-size: 9.5px;
154
- font-weight: 500;
155
- color: var(--text-3);
156
- background: var(--bg-panel-deep);
157
- border: 1px solid var(--border);
158
- border-radius: 3px;
159
- padding: 1px 5px;
160
- font-family: 'JetBrains Mono', monospace;
161
- }
162
- .sub-body { display: none; padding: 8px 2px 2px; }
163
- .sub-body.open { display: block; }
164
-
165
- /* ── Controls ── */
166
- .control-row {
167
- display: flex;
168
- align-items: center;
169
- justify-content: space-between;
170
- margin-bottom: 7px;
171
- gap: 6px;
172
- min-height: 26px;
173
- }
174
- .control-row label {
175
- font-size: 11.5px;
176
- color: var(--text-2);
177
- flex-shrink: 0;
178
- min-width: 80px;
179
- font-weight: 400;
180
- }
181
- .control-row input[type=range] {
182
- flex: 1;
183
- height: 4px;
184
- accent-color: var(--accent);
185
- cursor: pointer;
186
- }
187
- .control-row input[type=number] {
188
- width: 48px;
189
- flex-shrink: 0;
190
- padding: 3px 5px;
191
- background: var(--bg-input);
192
- border: 1px solid var(--border);
193
- border-radius: var(--radius-sm);
194
- color: var(--text);
195
- font-size: 11.5px;
196
- font-family: var(--font-ui);
197
- text-align: right;
198
- transition: border-color .12s;
199
- }
200
- .control-row input[type=number]:focus {
201
- outline: none;
202
- border-color: var(--accent);
203
- box-shadow: 0 0 0 2px rgba(37,99,235,.12);
204
- }
205
- .control-row input[type=color] {
206
- width: 28px;
207
- height: 22px;
208
- border: 1px solid var(--border);
209
- border-radius: var(--radius-sm);
210
- background: var(--bg-input);
211
- cursor: pointer;
212
- padding: 1px;
213
- box-shadow: var(--shadow-sm);
214
- }
215
- .control-row select {
216
- flex: 1;
217
- padding: 4px 7px;
218
- background: var(--bg-input);
219
- border: 1px solid var(--border);
220
- border-radius: var(--radius-sm);
221
- color: var(--text);
222
- font-size: 11.5px;
223
- font-family: var(--font-ui);
224
- cursor: pointer;
225
- transition: border-color .12s;
226
- -webkit-appearance: none;
227
- background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' fill='none'%3E%3Cpath d='M1 1l4 4 4-4' stroke='%23A8A29E' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
228
- background-repeat: no-repeat;
229
- background-position: right 8px center;
230
- padding-right: 24px;
231
- }
232
- .control-row select:focus {
233
- outline: none;
234
- border-color: var(--accent);
235
- box-shadow: 0 0 0 2px rgba(37,99,235,.12);
236
- }
237
- .unit {
238
- font-size: 10.5px;
239
- color: var(--text-3);
240
- flex-shrink: 0;
241
- min-width: 14px;
242
- }
243
-
244
- .reset-btn {
245
- display: inline-flex;
246
- align-items: center;
247
- justify-content: center;
248
- width: 20px;
249
- height: 20px;
250
- flex-shrink: 0;
251
- border: none;
252
- background: none;
253
- color: var(--text-3);
254
- cursor: pointer;
255
- border-radius: var(--radius-sm);
256
- font-size: 13px;
257
- line-height: 1;
258
- transition: color .12s, background .12s;
259
- padding: 0;
260
- }
261
- .reset-btn:hover {
262
- color: var(--text-2);
263
- background: var(--bg-hover);
264
- }
265
- .reset-btn title { display: none; }
266
-
267
- .color-pair {
268
- display: flex;
269
- align-items: center;
270
- gap: 4px;
271
- }
272
-
273
- .factory-reset-btn {
274
- display: block;
275
- width: 100%;
276
- margin-top: 8px;
277
- padding: 5px 0;
278
- border: 1px solid var(--border);
279
- border-radius: var(--radius-sm);
280
- background: none;
281
- color: var(--text-3);
282
- font-size: 11px;
283
- cursor: pointer;
284
- transition: color .12s, background .12s, border-color .12s;
285
- }
286
- .factory-reset-btn:hover {
287
- color: var(--text-1);
288
- background: var(--bg-hover);
289
- border-color: var(--text-3);
290
- }
291
-
292
- /* Color row: swatch + label combo */
293
- .color-preview {
294
- width: 14px;
295
- height: 14px;
296
- border-radius: 3px;
297
- border: 1px solid var(--border);
298
- flex-shrink: 0;
299
- pointer-events: none;
300
- }
301
-
302
- /* ═══════════════════════════════════════════════════
303
- EXPORT PANEL
304
- ═══════════════════════════════════════════════════ */
305
- #export-panel {
306
- width: 0;
307
- opacity: 0;
308
- overflow: hidden;
309
- flex-shrink: 0;
310
- display: flex;
311
- flex-direction: column;
312
- background: var(--bg-panel);
313
- transition: width .32s cubic-bezier(.4,0,.2,1),
314
- opacity .25s ease;
315
- }
316
- body.export-mode #export-panel {
317
- width: 335px;
318
- opacity: 1;
319
- overflow-y: auto;
320
- }
321
-
322
- #export-panel-header {
323
- display: flex;
324
- align-items: center;
325
- min-height: 40px;
326
- padding: 0 12px;
327
- font-size: 12px;
328
- font-weight: 600;
329
- letter-spacing: -0.005em;
330
- color: var(--text-2);
331
- border-bottom: 1px solid var(--border);
332
- background: var(--bg-panel);
333
- flex-shrink: 0;
334
- }
335
-
336
- .export-option {
337
- display: flex;
338
- align-items: center;
339
- gap: 12px;
340
- width: 100%;
341
- padding: 14px 16px;
342
- background: none;
343
- border: none;
344
- border-bottom: 1px solid var(--border-subtle);
345
- font-family: var(--font-ui);
346
- color: var(--text);
347
- text-align: left;
348
- cursor: pointer;
349
- transition: background .12s;
350
- }
351
- .export-option:hover { background: var(--bg-hover); }
352
- .export-option:active { background: var(--bg-active); }
353
- .export-option svg {
354
- flex-shrink: 0;
355
- color: var(--text-2);
356
- }
357
- .export-option-text {
358
- display: flex;
359
- flex-direction: column;
360
- gap: 2px;
361
- }
362
- .export-option-title {
363
- font-size: 13px;
364
- font-weight: 500;
365
- }
366
- .export-option-desc {
367
- font-size: 11px;
368
- color: var(--text-3);
369
- }
370
-
371
- /* ═══════════════════════════════════════════════════
372
- FOOTER / STATUS
373
- ═══════════════════════════════════════════════════ */
374
- #statusbar {
375
- height: 24px;
376
- display: flex;
377
- align-items: center;
378
- gap: 12px;
379
- padding: 0 14px;
380
- background: var(--bg);
381
- border-top: 1px solid var(--border-subtle);
382
- flex-shrink: 0;
383
- }
384
- #statusbar span {
385
- font-size: 11px;
386
- color: var(--text-3);
387
- }
388
- #statusbar .dot {
389
- width: 6px; height: 6px;
390
- border-radius: 50%;
391
- background: #22C55E;
392
- flex-shrink: 0;
393
- }
@@ -1,295 +0,0 @@
1
- /* ═══════════════════════════════════════════════════
2
- RENDERED MARKDOWN
3
- ═══════════════════════════════════════════════════ */
4
- :is(#rendered, #write) {
5
- padding: 40px 48px 60px;
6
- max-width: 760px;
7
- margin: 0 auto;
8
-
9
- --md-bg: #FFFFFF;
10
- --md-font-family: 'Inter', system-ui, sans-serif;
11
- --md-base-size: 16px;
12
- --md-line-height: 1.75;
13
- --md-color: #1C1917;
14
- --md-h-font-family: inherit;
15
- --md-h-scale: 1;
16
- --md-h-margin-bottom: 0.4em;
17
- --md-h-color: var(--md-color);
18
- --md-h1-size: 2.1em;
19
- --md-h1-color: var(--md-h-color);
20
- --md-h1-margin: 0 0 0.3em;
21
- --md-h1-weight: 700;
22
- --md-h2-size: 1.55em;
23
- --md-h2-color: var(--md-h-color);
24
- --md-h2-margin: 1.4em 0 0.3em;
25
- --md-h2-weight: 600;
26
- --md-h3-size: 1.2em;
27
- --md-h3-color: var(--md-h-color);
28
- --md-h3-margin: 1.2em 0 0.3em;
29
- --md-h3-weight: 600;
30
- --md-h4-size: 1.0em;
31
- --md-h4-color: var(--md-h-color);
32
- --md-h4-margin: 1.0em 0 0.25em;
33
- --md-h4-weight: 600;
34
- --md-p-color: var(--md-color);
35
- --md-list-color: var(--md-p-color);
36
- --md-list-spacing: 0.3em;
37
- --md-list-indent: 1.6em;
38
- --md-p-line-height: var(--md-line-height);
39
- --md-p-margin: 0 0 1.1em;
40
- --md-link-color: #2563EB;
41
- --md-link-decoration: underline;
42
- --md-code-bg: #F4F1ED;
43
- --md-code-color: #6B21A8;
44
- --md-code-padding: 0.15em 0.45em;
45
- --md-code-radius: 4px;
46
- --md-code-font: 'JetBrains Mono', 'Fira Mono', monospace;
47
- --md-pre-bg: #F4F1ED;
48
- --md-pre-padding: 1.1em 1.25em;
49
- --md-bq-border: 3px solid #2563EB;
50
- --md-bq-size: 1em;
51
- --md-bq-color: #6B6560;
52
- --md-bq-padding: 0.5em 1em;
53
- --md-bq-margin: 1.2em 0;
54
-
55
- font-family: var(--md-font-family);
56
- font-size: var(--md-base-size);
57
- color: var(--md-color);
58
- line-height: var(--md-line-height);
59
- background-color: var(--md-bg);
60
- }
61
- :is(#rendered, #write) h1 {
62
- font-family: var(--md-h-font-family);
63
- font-size: calc(var(--md-h1-size) * var(--md-h-scale));
64
- color: var(--md-h1-color);
65
- margin: var(--md-h1-margin);
66
- font-weight: var(--md-h1-weight);
67
- letter-spacing: -0.02em;
68
- line-height: 1.2;
69
- }
70
- :is(#rendered, #write) h2 {
71
- font-family: var(--md-h-font-family);
72
- font-size: calc(var(--md-h2-size) * var(--md-h-scale));
73
- color: var(--md-h2-color);
74
- margin: var(--md-h2-margin);
75
- font-weight: var(--md-h2-weight);
76
- letter-spacing: -0.015em;
77
- line-height: 1.3;
78
- padding-bottom: 0.3em;
79
- border-bottom: 1px solid var(--md-h2-border);
80
- }
81
- :is(#rendered, #write) h3 {
82
- font-family: var(--md-h-font-family);
83
- font-size: calc(var(--md-h3-size) * var(--md-h-scale));
84
- color: var(--md-h3-color);
85
- margin: var(--md-h3-margin);
86
- font-weight: var(--md-h3-weight);
87
- letter-spacing: -0.01em;
88
- line-height: 1.4;
89
- }
90
- :is(#rendered, #write) h4 {
91
- font-family: var(--md-h-font-family);
92
- font-size: calc(var(--md-h4-size) * var(--md-h-scale));
93
- color: var(--md-h4-color);
94
- margin: var(--md-h4-margin);
95
- font-weight: var(--md-h4-weight);
96
- line-height: 1.5;
97
- }
98
- :is(#rendered, #write) p {
99
- color: var(--md-p-color);
100
- line-height: var(--md-p-line-height);
101
- margin: var(--md-p-margin);
102
- }
103
- :is(#rendered, #write) a {
104
- color: var(--md-link-color);
105
- text-decoration: var(--md-link-decoration);
106
- text-underline-offset: 2px;
107
- }
108
- :is(#rendered, #write) a:hover { opacity: .8; }
109
-
110
- /* ── Collapsible heading sections ── */
111
- #rendered .md-section > h2,
112
- #rendered .md-section > h3,
113
- #rendered .md-section > h4 {
114
- cursor: pointer;
115
- }
116
- #rendered .section-toggle {
117
- display: inline-flex;
118
- align-items: center;
119
- justify-content: center;
120
- width: 16px;
121
- height: 16px;
122
- color: var(--text-3);
123
- cursor: pointer;
124
- margin-right: 4px;
125
- vertical-align: middle;
126
- transition: transform .18s cubic-bezier(.4,0,.2,1), color .12s;
127
- transform: rotate(0deg);
128
- }
129
- #rendered .section-toggle.open {
130
- transform: rotate(90deg);
131
- }
132
- #rendered .section-toggle:hover {
133
- color: var(--text-2);
134
- }
135
- #rendered .md-section-body:not(.open):not(:has(.md-section-body.open)) > :not(.md-section) {
136
- display: none;
137
- }
138
- #rendered .md-section-body:not(.open):not(:has(.md-section-body.open)):has(> :not(.md-section)):has(> .md-section)::before {
139
- content: "\2026";
140
- display: block;
141
- opacity: 1;
142
- font-weight: bold;
143
- padding-left: calc(1.2em + 20px);
144
- font-size: 1rem;
145
- color: var(--text-3);
146
- padding-bottom: 10px;
147
- line-height: 0.1;
148
- }
149
- #rendered .md-section-body:not(.open):has(.md-section-body.open) > :not(.md-section) {
150
- opacity: 0.55;
151
- padding-left: calc(1.2em + 20px);
152
- }
153
- #rendered .md-section-body:not(.open) > .md-section:not(:has(> .md-section-body.open)) {
154
- padding-left: 1.2em;
155
- }
156
- #rendered .md-section-body:not(.open) > .md-section:not(:has(> .md-section-body.open)) > h2,
157
- #rendered .md-section-body:not(.open) > .md-section:not(:has(> .md-section-body.open)) > h3,
158
- #rendered .md-section-body:not(.open) > .md-section:not(:has(> .md-section-body.open)) > h4 {
159
- margin-top: 0.15em;
160
- margin-bottom: 0.1em;
161
- padding-bottom: 0;
162
- border-bottom: none;
163
- opacity: 0.55;
164
- }
165
-
166
- /* ── Header anchor links ── */
167
- #rendered h1, #rendered h2, #rendered h3, #rendered h4 { position: relative; }
168
- #rendered .header-anchor {
169
- display: inline-flex;
170
- align-items: center;
171
- margin-left: 6px;
172
- opacity: 0.5;
173
- transition: opacity 0.15s;
174
- color: var(--md-link-color, #2563eb);
175
- cursor: pointer;
176
- vertical-align: middle;
177
- }
178
- #rendered .header-anchor:hover { opacity: 1; }
179
- #rendered .header-copy-btn {
180
- display: inline-flex;
181
- align-items: center;
182
- margin-left: 4px;
183
- opacity: 0.5;
184
- transition: opacity 0.15s;
185
- color: var(--md-link-color, #2563eb);
186
- cursor: pointer;
187
- vertical-align: middle;
188
- background: none;
189
- border: none;
190
- padding: 0;
191
- font: inherit;
192
- line-height: 1;
193
- }
194
- #rendered .header-copy-btn:hover { opacity: 1; }
195
-
196
- /* ── Scroll padding for anchor jumps ── */
197
- #content-area { scroll-padding-top: 24px; }
198
-
199
- :is(#rendered, #write) code {
200
- background: var(--md-code-bg);
201
- color: var(--md-code-color);
202
- padding: var(--md-code-padding);
203
- border-radius: var(--md-code-radius);
204
- font-family: var(--md-code-font);
205
- font-size: 0.85em;
206
- overflow-wrap: anywhere;
207
- }
208
- #rendered .pre-wrapper {
209
- position: relative;
210
- margin: 1.2em 0;
211
- }
212
- :is(#rendered, #write) pre {
213
- background: var(--md-pre-bg);
214
- padding: var(--md-pre-padding);
215
- border-radius: var(--radius-md);
216
- overflow-x: auto;
217
- overscroll-behavior-x: contain;
218
- white-space: pre;
219
- word-wrap: normal;
220
- margin: 1.2em 0;
221
- border: 1px solid var(--md-pre-border);
222
- }
223
- #rendered pre {
224
- padding-top: 26px;
225
- margin: 0;
226
- }
227
- #rendered .pre-wrapper .copy-btn {
228
- position: absolute;
229
- top: 6px;
230
- right: 6px;
231
- background: var(--md-pre-bg);
232
- border: 1px solid var(--md-copy-btn-border);
233
- border-radius: 4px;
234
- padding: 3px 5px;
235
- cursor: pointer;
236
- opacity: 0.7;
237
- transition: opacity 0.15s;
238
- color: var(--md-code-color, #6B21A8);
239
- font-size: 12px;
240
- line-height: 1;
241
- display: flex;
242
- align-items: center;
243
- gap: 3px;
244
- z-index: 1;
245
- }
246
- #rendered .pre-wrapper .copy-btn:hover { opacity: 1; background: var(--md-copy-btn-hover); }
247
- :is(#rendered, #write) pre code {
248
- background: none;
249
- padding: 0;
250
- color: var(--md-code-color);
251
- font-family: var(--md-code-font);
252
- font-size: 0.88em;
253
- overflow: visible;
254
- white-space: pre;
255
- word-break: normal;
256
- }
257
- :is(#rendered, #write) blockquote {
258
- border-left: var(--md-bq-border);
259
- font-size: var(--md-bq-size);
260
- color: var(--md-bq-color);
261
- padding: var(--md-bq-padding);
262
- margin: var(--md-bq-margin);
263
- background: var(--md-bq-bg);
264
- border-radius: 0 var(--radius) var(--radius) 0;
265
- }
266
- :is(#rendered, #write) blockquote p { margin: 0; color: inherit; }
267
- :is(#rendered, #write) ul, :is(#rendered, #write) ol {
268
- padding-left: var(--md-list-indent);
269
- margin: 0.5em 0 1.1em;
270
- }
271
- :is(#rendered, #write) li { margin-bottom: var(--md-list-spacing); color: var(--md-list-color); }
272
- :is(#rendered, #write) li::marker { color: var(--md-list-color); }
273
- :is(#rendered, #write) hr {
274
- border: none;
275
- border-top: 1px solid var(--md-hr-border);
276
- margin: 2em 0;
277
- }
278
- :is(#rendered, #write) table {
279
- border-collapse: collapse;
280
- width: 100%;
281
- margin: 1.2em 0;
282
- font-size: 0.92em;
283
- }
284
- :is(#rendered, #write) th, :is(#rendered, #write) td {
285
- border: 1px solid var(--md-table-border);
286
- padding: 7px 12px;
287
- text-align: left;
288
- }
289
- :is(#rendered, #write) th {
290
- background: var(--md-table-header-bg);
291
- font-weight: 600;
292
- color: var(--text);
293
- }
294
- :is(#rendered, #write) tr:nth-child(even) td { background: var(--md-table-even-bg); }
295
- :is(#rendered, #write) img { max-width: 100%; border-radius: var(--radius-md); }