sdocs-dev 1.3.0 → 1.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.
@@ -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-2);
387
- }
388
- #statusbar .dot {
389
- width: 6px; height: 6px;
390
- border-radius: 50%;
391
- background: #22C55E;
392
- flex-shrink: 0;
393
- }