@dr-ishaan/remake-blocks 1.2.0 → 1.3.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.
@@ -0,0 +1,610 @@
1
+ /**
2
+ * remake-blocks – Obsidian Theme
3
+ *
4
+ * Faithful Obsidian look: rounded 8px corners, pastel backgrounds,
5
+ * 3px colored left border, subtle shadow. Matches obsidian.md callout styling.
6
+ *
7
+ * Usage:
8
+ * import "@dr-ishaan/remake-blocks/theme/obsidian.css";
9
+ *
10
+ * Dark mode: triggered by `prefers-color-scheme: dark` (when no
11
+ * `data-theme="light"` is set) AND/OR `data-theme="dark"` / `data-theme="dim"`
12
+ * on <html>. Uses translucent color overlays so the dark page shows through.
13
+ */
14
+
15
+ /* ========================================================================
16
+ 1. CSS Custom Properties (Obsidian Light Mode Defaults)
17
+ ======================================================================== */
18
+
19
+ :root {
20
+ /* -- Layout (Obsidian uses slightly different spacing than GitHub) ----- */
21
+ --callout-radius: 8px;
22
+ --callout-padding-y: 10px;
23
+ --callout-padding-x: 14px;
24
+ --callout-gap: 6px;
25
+ --callout-title-font-size: 1.05em;
26
+ --callout-body-font-size: 1em;
27
+ --callout-icon-size: 18px;
28
+ --callout-shadow: 0 1px 4px rgba(0, 0, 0, 0.08);
29
+ --callout-border-width: 3px;
30
+ --callout-inline-width: 50%;
31
+
32
+ /* -- GFM (5) — softer pastels ----------------------------------------- */
33
+ --callout-note-border: #8b9bd1; --callout-note-bg: rgba(139, 155, 209, 0.1);
34
+ --callout-tip-border: #8cbf99; --callout-tip-bg: rgba(140, 191, 153, 0.1);
35
+ --callout-important-border: #c39bcc; --callout-important-bg: rgba(195, 155, 204, 0.1);
36
+ --callout-warning-border: #d4b86a; --callout-warning-bg: rgba(212, 184, 106, 0.1);
37
+ --callout-caution-border: #d9828c; --callout-caution-bg: rgba(217, 130, 140, 0.1);
38
+
39
+ /* -- Obsidian (10) ---------------------------------------------------- */
40
+ --callout-abstract-border: #8ec9d1; --callout-abstract-bg: rgba(142, 201, 209, 0.1);
41
+ --callout-info-border: #a0a8b8; --callout-info-bg: rgba(160, 168, 184, 0.1);
42
+ --callout-success-border: #8cc99b; --callout-success-bg: rgba(140, 201, 155, 0.1);
43
+ --callout-question-border: #d9a76a; --callout-question-bg: rgba(217, 167, 106, 0.1);
44
+ --callout-failure-border: #d9828c; --callout-failure-bg: rgba(217, 130, 140, 0.1);
45
+ --callout-danger-border: #d9828c; --callout-danger-bg: rgba(217, 130, 140, 0.1);
46
+ --callout-quote-border: #a0a8b8; --callout-quote-bg: rgba(160, 168, 184, 0.05);
47
+ --callout-bug-border: #d98ba6; --callout-bug-bg: rgba(217, 139, 166, 0.1);
48
+ --callout-example-border: #c39bcc; --callout-example-bg: rgba(195, 155, 204, 0.1);
49
+ --callout-todo-border: #8eb4d4; --callout-todo-bg: rgba(142, 180, 212, 0.1);
50
+
51
+ /* -- Promoted Aliases (12) -------------------------------------------- */
52
+ --callout-summary-border: #8ec9d1; --callout-summary-bg: rgba(142, 201, 209, 0.1);
53
+ --callout-tldr-border: #8ec9d1; --callout-tldr-bg: rgba(142, 201, 209, 0.1);
54
+ --callout-hint-border: #8cbf99; --callout-hint-bg: rgba(140, 191, 153, 0.1);
55
+ --callout-check-border: #8ec9ba; --callout-check-bg: rgba(142, 201, 186, 0.1);
56
+ --callout-done-border: #8cc99b; --callout-done-bg: rgba(140, 201, 155, 0.1);
57
+ --callout-help-border: #d9a76a; --callout-help-bg: rgba(217, 167, 106, 0.1);
58
+ --callout-faq-border: #d4a76a; --callout-faq-bg: rgba(212, 167, 106, 0.1);
59
+ --callout-attention-border: #d4c66a; --callout-attention-bg: rgba(212, 198, 106, 0.1);
60
+ --callout-fail-border: #d98ba6; --callout-fail-bg: rgba(217, 139, 166, 0.1);
61
+ --callout-missing-border: #c98282; --callout-missing-bg: rgba(201, 130, 130, 0.1);
62
+ --callout-error-border: #d9828c; --callout-error-bg: rgba(217, 130, 140, 0.1);
63
+ --callout-cite-border: #9ba6d4; --callout-cite-bg: rgba(155, 166, 212, 0.1);
64
+
65
+ /* -- Enhanced Blockquote ---------------------------------------------- */
66
+ --blockquote-enhanced-border: #a0a8b8;
67
+ --blockquote-enhanced-bg: rgba(160, 168, 184, 0.05);
68
+ --blockquote-enhanced-color: #57606a;
69
+ --blockquote-padding: 10px 14px;
70
+ --blockquote-margin: 12px 0;
71
+
72
+ /* -- Disclosure Widget ------------------------------------------------ */
73
+ --disclosure-border: #a0a8b8;
74
+ --disclosure-bg: transparent;
75
+ --disclosure-title-color: #24292f;
76
+ --disclosure-body-color: inherit;
77
+ --disclosure-radius: 8px;
78
+ --disclosure-padding: 10px 14px;
79
+ --disclosure-title-font-size: 1.05em;
80
+ --disclosure-body-font-size: 1em;
81
+ }
82
+
83
+ /* ========================================================================
84
+ 2. Dark Mode — prefers-color-scheme
85
+ ======================================================================== */
86
+
87
+ @media (prefers-color-scheme: dark) {
88
+ :root:not([data-theme="light"]) {
89
+ --callout-shadow: 0 2px 8px rgba(0, 0, 0, 0.4);
90
+
91
+ --callout-note-border: #6b7eb8; --callout-note-bg: rgba(107, 126, 184, 0.15);
92
+ --callout-tip-border: #6fbf7f; --callout-tip-bg: rgba(111, 191, 127, 0.15);
93
+ --callout-important-border: #b881c4; --callout-important-bg: rgba(184, 129, 196, 0.15);
94
+ --callout-warning-border: #d4b86a; --callout-warning-bg: rgba(212, 184, 106, 0.15);
95
+ --callout-caution-border: #e07a85; --callout-caution-bg: rgba(224, 122, 133, 0.15);
96
+
97
+ --callout-abstract-border: #7bc9d1; --callout-abstract-bg: rgba(123, 201, 209, 0.15);
98
+ --callout-info-border: #8a92a3; --callout-info-bg: rgba(138, 146, 163, 0.15);
99
+ --callout-success-border: #6fbf7f; --callout-success-bg: rgba(111, 191, 127, 0.15);
100
+ --callout-question-border: #d9a76a; --callout-question-bg: rgba(217, 167, 106, 0.15);
101
+ --callout-failure-border: #e07a85; --callout-failure-bg: rgba(224, 122, 133, 0.15);
102
+ --callout-danger-border: #e07a85; --callout-danger-bg: rgba(224, 122, 133, 0.15);
103
+ --callout-quote-border: #8a92a3; --callout-quote-bg: rgba(138, 146, 163, 0.08);
104
+ --callout-bug-border: #e08ba6; --callout-bug-bg: rgba(224, 139, 166, 0.15);
105
+ --callout-example-border: #b881c4; --callout-example-bg: rgba(184, 129, 196, 0.15);
106
+ --callout-todo-border: #7eb4d4; --callout-todo-bg: rgba(126, 180, 212, 0.15);
107
+
108
+ --callout-summary-border: #7bc9d1; --callout-summary-bg: rgba(123, 201, 209, 0.15);
109
+ --callout-tldr-border: #7bc9d1; --callout-tldr-bg: rgba(123, 201, 209, 0.15);
110
+ --callout-hint-border: #6fbf7f; --callout-hint-bg: rgba(111, 191, 127, 0.15);
111
+ --callout-check-border: #6bc9b0; --callout-check-bg: rgba(107, 201, 176, 0.15);
112
+ --callout-done-border: #6fbf7f; --callout-done-bg: rgba(111, 191, 127, 0.15);
113
+ --callout-help-border: #d9a76a; --callout-help-bg: rgba(217, 167, 106, 0.15);
114
+ --callout-faq-border: #d4a76a; --callout-faq-bg: rgba(212, 167, 106, 0.15);
115
+ --callout-attention-border: #d4c66a; --callout-attention-bg: rgba(212, 198, 106, 0.15);
116
+ --callout-fail-border: #e08ba6; --callout-fail-bg: rgba(224, 139, 166, 0.15);
117
+ --callout-missing-border: #d68282; --callout-missing-bg: rgba(214, 130, 130, 0.15);
118
+ --callout-error-border: #e07a85; --callout-error-bg: rgba(224, 122, 133, 0.15);
119
+ --callout-cite-border: #8b9bd4; --callout-cite-bg: rgba(139, 155, 212, 0.15);
120
+
121
+ --blockquote-enhanced-border: #5a626c;
122
+ --blockquote-enhanced-bg: rgba(138, 146, 163, 0.08);
123
+ --blockquote-enhanced-color: #c9d1d9;
124
+
125
+ --disclosure-border: #5a626c;
126
+ --disclosure-bg: rgba(138, 146, 163, 0.05);
127
+ --disclosure-title-color: #e6edf3;
128
+ }
129
+ }
130
+
131
+ /* ========================================================================
132
+ 2b. Dark Mode — manual via data-theme attribute
133
+ ======================================================================== */
134
+
135
+ [data-theme="dark"],
136
+ [data-theme="dim"] {
137
+ --callout-shadow: 0 2px 8px rgba(0, 0, 0, 0.4);
138
+
139
+ --callout-note-border: #6b7eb8; --callout-note-bg: rgba(107, 126, 184, 0.15);
140
+ --callout-tip-border: #6fbf7f; --callout-tip-bg: rgba(111, 191, 127, 0.15);
141
+ --callout-important-border: #b881c4; --callout-important-bg: rgba(184, 129, 196, 0.15);
142
+ --callout-warning-border: #d4b86a; --callout-warning-bg: rgba(212, 184, 106, 0.15);
143
+ --callout-caution-border: #e07a85; --callout-caution-bg: rgba(224, 122, 133, 0.15);
144
+
145
+ --callout-abstract-border: #7bc9d1; --callout-abstract-bg: rgba(123, 201, 209, 0.15);
146
+ --callout-info-border: #8a92a3; --callout-info-bg: rgba(138, 146, 163, 0.15);
147
+ --callout-success-border: #6fbf7f; --callout-success-bg: rgba(111, 191, 127, 0.15);
148
+ --callout-question-border: #d9a76a; --callout-question-bg: rgba(217, 167, 106, 0.15);
149
+ --callout-failure-border: #e07a85; --callout-failure-bg: rgba(224, 122, 133, 0.15);
150
+ --callout-danger-border: #e07a85; --callout-danger-bg: rgba(224, 122, 133, 0.15);
151
+ --callout-quote-border: #8a92a3; --callout-quote-bg: rgba(138, 146, 163, 0.08);
152
+ --callout-bug-border: #e08ba6; --callout-bug-bg: rgba(224, 139, 166, 0.15);
153
+ --callout-example-border: #b881c4; --callout-example-bg: rgba(184, 129, 196, 0.15);
154
+ --callout-todo-border: #7eb4d4; --callout-todo-bg: rgba(126, 180, 212, 0.15);
155
+
156
+ --callout-summary-border: #7bc9d1; --callout-summary-bg: rgba(123, 201, 209, 0.15);
157
+ --callout-tldr-border: #7bc9d1; --callout-tldr-bg: rgba(123, 201, 209, 0.15);
158
+ --callout-hint-border: #6fbf7f; --callout-hint-bg: rgba(111, 191, 127, 0.15);
159
+ --callout-check-border: #6bc9b0; --callout-check-bg: rgba(107, 201, 176, 0.15);
160
+ --callout-done-border: #6fbf7f; --callout-done-bg: rgba(111, 191, 127, 0.15);
161
+ --callout-help-border: #d9a76a; --callout-help-bg: rgba(217, 167, 106, 0.15);
162
+ --callout-faq-border: #d4a76a; --callout-faq-bg: rgba(212, 167, 106, 0.15);
163
+ --callout-attention-border: #d4c66a; --callout-attention-bg: rgba(212, 198, 106, 0.15);
164
+ --callout-fail-border: #e08ba6; --callout-fail-bg: rgba(224, 139, 166, 0.15);
165
+ --callout-missing-border: #d68282; --callout-missing-bg: rgba(214, 130, 130, 0.15);
166
+ --callout-error-border: #e07a85; --callout-error-bg: rgba(224, 122, 133, 0.15);
167
+ --callout-cite-border: #8b9bd4; --callout-cite-bg: rgba(139, 155, 212, 0.15);
168
+
169
+ --blockquote-enhanced-border: #5a626c;
170
+ --blockquote-enhanced-bg: rgba(138, 146, 163, 0.08);
171
+ --blockquote-enhanced-color: #c9d1d9;
172
+
173
+ --disclosure-border: #5a626c;
174
+ --disclosure-bg: rgba(138, 146, 163, 0.05);
175
+ --disclosure-title-color: #e6edf3;
176
+ }
177
+
178
+ /* ========================================================================
179
+ 3. Callout Container (Obsidian: 8px radius, 3px left border, shadow)
180
+ ======================================================================== */
181
+
182
+ .callout {
183
+ position: relative;
184
+ display: flex;
185
+ flex-direction: column;
186
+ gap: var(--callout-gap);
187
+ padding: var(--callout-padding-y) var(--callout-padding-x);
188
+ border-radius: var(--callout-radius);
189
+ border-left: var(--callout-border-width) solid var(--callout-color, var(--callout-note-border));
190
+ background: var(--callout-bg, transparent);
191
+ margin: 12px 0;
192
+ box-shadow: var(--callout-shadow);
193
+ overflow: hidden;
194
+ }
195
+
196
+ /* ========================================================================
197
+ 4. Callout Type Variants
198
+ ======================================================================== */
199
+
200
+ .callout-note { --callout-color: var(--callout-note-border); background: var(--callout-note-bg); }
201
+ .callout-tip { --callout-color: var(--callout-tip-border); background: var(--callout-tip-bg); }
202
+ .callout-important { --callout-color: var(--callout-important-border); background: var(--callout-important-bg); }
203
+ .callout-warning { --callout-color: var(--callout-warning-border); background: var(--callout-warning-bg); }
204
+ .callout-caution { --callout-color: var(--callout-caution-border); background: var(--callout-caution-bg); }
205
+ .callout-abstract { --callout-color: var(--callout-abstract-border); background: var(--callout-abstract-bg); }
206
+ .callout-info { --callout-color: var(--callout-info-border); background: var(--callout-info-bg); }
207
+ .callout-success { --callout-color: var(--callout-success-border); background: var(--callout-success-bg); }
208
+ .callout-question { --callout-color: var(--callout-question-border); background: var(--callout-question-bg); }
209
+ .callout-failure { --callout-color: var(--callout-failure-border); background: var(--callout-failure-bg); }
210
+ .callout-danger { --callout-color: var(--callout-danger-border); background: var(--callout-danger-bg); }
211
+ .callout-quote { --callout-color: var(--callout-quote-border); background: var(--callout-quote-bg); }
212
+ .callout-bug { --callout-color: var(--callout-bug-border); background: var(--callout-bug-bg); }
213
+ .callout-example { --callout-color: var(--callout-example-border); background: var(--callout-example-bg); }
214
+ .callout-todo { --callout-color: var(--callout-todo-border); background: var(--callout-todo-bg); }
215
+ .callout-summary { --callout-color: var(--callout-summary-border); background: var(--callout-summary-bg); }
216
+ .callout-tldr { --callout-color: var(--callout-tldr-border); background: var(--callout-tldr-bg); }
217
+ .callout-hint { --callout-color: var(--callout-hint-border); background: var(--callout-hint-bg); }
218
+ .callout-check { --callout-color: var(--callout-check-border); background: var(--callout-check-bg); }
219
+ .callout-done { --callout-color: var(--callout-done-border); background: var(--callout-done-bg); }
220
+ .callout-help { --callout-color: var(--callout-help-border); background: var(--callout-help-bg); }
221
+ .callout-faq { --callout-color: var(--callout-faq-border); background: var(--callout-faq-bg); }
222
+ .callout-attention { --callout-color: var(--callout-attention-border); background: var(--callout-attention-bg); }
223
+ .callout-fail { --callout-color: var(--callout-fail-border); background: var(--callout-fail-bg); }
224
+ .callout-missing { --callout-color: var(--callout-missing-border); background: var(--callout-missing-bg); }
225
+ .callout-error { --callout-color: var(--callout-error-border); background: var(--callout-error-bg); }
226
+ .callout-cite { --callout-color: var(--callout-cite-border); background: var(--callout-cite-bg); }
227
+
228
+ /* ========================================================================
229
+ 5. Callout Title (Obsidian: title takes the callout's color)
230
+ ======================================================================== */
231
+
232
+ .callout-title {
233
+ display: flex;
234
+ align-items: center;
235
+ gap: 6px;
236
+ font-weight: 600;
237
+ font-size: var(--callout-title-font-size);
238
+ line-height: 1.3;
239
+ color: var(--callout-color);
240
+ user-select: none;
241
+ }
242
+
243
+ .callout-icon {
244
+ display: inline-flex;
245
+ align-items: center;
246
+ justify-content: center;
247
+ flex-shrink: 0;
248
+ width: var(--callout-icon-size);
249
+ height: var(--callout-icon-size);
250
+ }
251
+
252
+ .callout-icon svg {
253
+ width: 100%;
254
+ height: 100%;
255
+ stroke-width: 2;
256
+ }
257
+
258
+ .callout-title-text {
259
+ font-weight: 600;
260
+ }
261
+
262
+ /* ========================================================================
263
+ 6. Callout Body
264
+ ======================================================================== */
265
+
266
+ .callout-body {
267
+ font-size: var(--callout-body-font-size);
268
+ line-height: 1.55;
269
+ color: inherit;
270
+ }
271
+
272
+ .callout-body > *:first-child { margin-top: 0; }
273
+ .callout-body > *:last-child { margin-bottom: 0; }
274
+ .callout-body p { margin: 0.25em 0; }
275
+
276
+ .callout-body code {
277
+ font-size: 0.9em;
278
+ padding: 0.15em 0.4em;
279
+ border-radius: 4px;
280
+ background-color: rgba(0, 0, 0, 0.06);
281
+ }
282
+
283
+ .callout-body pre {
284
+ margin: 0.4em 0;
285
+ padding: 8px 10px;
286
+ border-radius: 4px;
287
+ background-color: rgba(0, 0, 0, 0.04);
288
+ overflow-x: auto;
289
+ }
290
+
291
+ .callout-body pre code {
292
+ padding: 0;
293
+ background: none;
294
+ font-family: "SFMono-Regular", Consolas, "Liberation Mono", Menlo, monospace;
295
+ font-size: 0.9375em;
296
+ }
297
+
298
+ .callout-body ul,
299
+ .callout-body ol {
300
+ padding-left: 1.3em;
301
+ margin: 0.25em 0;
302
+ }
303
+
304
+ .callout-body li { margin: 0.1em 0; }
305
+
306
+ .callout-body a {
307
+ color: var(--callout-color);
308
+ text-decoration: underline;
309
+ text-underline-offset: 2px;
310
+ }
311
+
312
+ .callout-body a:hover { opacity: 0.85; }
313
+
314
+ /* ========================================================================
315
+ 7. Enhanced Blockquote
316
+ ======================================================================== */
317
+
318
+ .blockquote-enhanced {
319
+ margin: var(--blockquote-margin);
320
+ padding: 0;
321
+ }
322
+
323
+ .blockquote-enhanced blockquote {
324
+ position: relative;
325
+ margin: 0;
326
+ padding: var(--blockquote-padding);
327
+ border-left: 3px solid var(--blockquote-enhanced-border);
328
+ background-color: var(--blockquote-enhanced-bg);
329
+ border-radius: 0 var(--callout-radius) var(--callout-radius) 0;
330
+ color: var(--blockquote-enhanced-color);
331
+ font-style: italic;
332
+ line-height: 1.5;
333
+ }
334
+
335
+ .blockquote-enhanced blockquote > *:first-child { margin-top: 0; }
336
+ .blockquote-enhanced blockquote > *:last-child { margin-bottom: 0; }
337
+ .blockquote-enhanced blockquote p { margin: 0.2em 0; }
338
+
339
+ /* ========================================================================
340
+ 8. Collapsible Callout (<details>/<summary>)
341
+ ======================================================================== */
342
+
343
+ .callout.collapsible { cursor: pointer; }
344
+
345
+ .callout.collapsible > summary {
346
+ display: flex;
347
+ align-items: center;
348
+ gap: 6px;
349
+ font-weight: 600;
350
+ font-size: var(--callout-title-font-size);
351
+ line-height: 1.3;
352
+ color: var(--callout-color);
353
+ user-select: none;
354
+ list-style: none;
355
+ padding: 0;
356
+ }
357
+
358
+ .callout.collapsible > summary::-webkit-details-marker { display: none; }
359
+ .callout.collapsible > summary::marker { display: none; content: ""; }
360
+
361
+ .callout.collapsible > summary::after {
362
+ content: "";
363
+ margin-left: auto;
364
+ width: 6px;
365
+ height: 6px;
366
+ border-right: 1.5px solid currentColor;
367
+ border-bottom: 1.5px solid currentColor;
368
+ transform: rotate(45deg);
369
+ transition: transform 0.2s ease;
370
+ flex-shrink: 0;
371
+ }
372
+
373
+ .callout.collapsible[open] > summary::after {
374
+ transform: rotate(-135deg);
375
+ }
376
+
377
+ .callout.collapsible > .callout-body {
378
+ animation: callout-fade-in 0.15s ease-out;
379
+ }
380
+
381
+ /* ========================================================================
382
+ 9. Disclosure Widget
383
+ ======================================================================== */
384
+
385
+ .disclosure {
386
+ margin: 12px 0;
387
+ border: 1px solid var(--disclosure-border);
388
+ border-radius: var(--disclosure-radius);
389
+ background: var(--disclosure-bg);
390
+ overflow: hidden;
391
+ box-shadow: var(--callout-shadow);
392
+ }
393
+
394
+ .disclosure > summary {
395
+ display: flex;
396
+ align-items: center;
397
+ gap: 6px;
398
+ padding: var(--disclosure-padding);
399
+ font-weight: 600;
400
+ font-size: var(--disclosure-title-font-size);
401
+ line-height: 1.3;
402
+ color: var(--disclosure-title-color);
403
+ cursor: pointer;
404
+ user-select: none;
405
+ list-style: none;
406
+ transition: background-color 0.15s ease;
407
+ }
408
+
409
+ .disclosure > summary:hover {
410
+ background-color: rgba(0, 0, 0, 0.03);
411
+ }
412
+
413
+ .disclosure > summary::-webkit-details-marker { display: none; }
414
+ .disclosure > summary::marker { display: none; content: ""; }
415
+
416
+ .disclosure > summary::before {
417
+ content: "";
418
+ flex-shrink: 0;
419
+ width: 6px;
420
+ height: 6px;
421
+ border-right: 1.5px solid currentColor;
422
+ border-bottom: 1.5px solid currentColor;
423
+ transform: rotate(45deg);
424
+ transition: transform 0.2s ease;
425
+ }
426
+
427
+ .disclosure[open] > summary::before {
428
+ transform: rotate(-135deg);
429
+ }
430
+
431
+ .disclosure-title {
432
+ display: flex;
433
+ align-items: center;
434
+ gap: 6px;
435
+ padding: var(--disclosure-padding);
436
+ font-weight: 600;
437
+ font-size: var(--disclosure-title-font-size);
438
+ line-height: 1.3;
439
+ color: var(--disclosure-title-color);
440
+ user-select: none;
441
+ list-style: none;
442
+ }
443
+
444
+ .disclosure-body {
445
+ padding: 0 var(--disclosure-padding) var(--disclosure-padding);
446
+ font-size: var(--disclosure-body-font-size);
447
+ line-height: 1.5;
448
+ color: var(--disclosure-body-color);
449
+ animation: callout-fade-in 0.15s ease-out;
450
+ }
451
+
452
+ .disclosure-body > *:first-child { margin-top: 0; }
453
+ .disclosure-body > *:last-child { margin-bottom: 0; }
454
+ .disclosure-body p { margin: 0.25em 0; }
455
+
456
+ .disclosure-body code {
457
+ font-size: 0.9em;
458
+ padding: 0.15em 0.4em;
459
+ border-radius: 4px;
460
+ background-color: rgba(0, 0, 0, 0.06);
461
+ }
462
+
463
+ .disclosure-body pre {
464
+ margin: 0.4em 0;
465
+ padding: 8px 10px;
466
+ border-radius: 4px;
467
+ background-color: rgba(0, 0, 0, 0.04);
468
+ overflow-x: auto;
469
+ }
470
+
471
+ .disclosure-body pre code {
472
+ padding: 0;
473
+ background: none;
474
+ font-family: "SFMono-Regular", Consolas, "Liberation Mono", Menlo, monospace;
475
+ font-size: 0.9375em;
476
+ }
477
+
478
+ .disclosure-body ul,
479
+ .disclosure-body ol {
480
+ padding-left: 1.3em;
481
+ margin: 0.25em 0;
482
+ }
483
+
484
+ .disclosure-body li { margin: 0.1em 0; }
485
+
486
+ /* ========================================================================
487
+ 10. Accordion
488
+ ======================================================================== */
489
+
490
+ .disclosure-accordion {
491
+ margin: 12px 0;
492
+ border: 1px solid var(--disclosure-border);
493
+ border-radius: var(--disclosure-radius);
494
+ overflow: hidden;
495
+ box-shadow: var(--callout-shadow);
496
+ }
497
+
498
+ .disclosure-accordion > .disclosure {
499
+ margin: 0;
500
+ border: none;
501
+ border-radius: 0;
502
+ box-shadow: none;
503
+ }
504
+
505
+ .disclosure-accordion > .disclosure + .disclosure {
506
+ border-top: 1px solid var(--disclosure-border);
507
+ }
508
+
509
+ .disclosure-accordion > .disclosure > summary:hover {
510
+ background-color: rgba(0, 0, 0, 0.04);
511
+ }
512
+
513
+ /* ========================================================================
514
+ 11. Tree View
515
+ ======================================================================== */
516
+
517
+ .disclosure-tree {
518
+ margin-left: 16px;
519
+ border-left: 2px solid var(--disclosure-border);
520
+ border-top: none;
521
+ border-right: none;
522
+ border-bottom: none;
523
+ border-radius: 0;
524
+ }
525
+
526
+ .disclosure-tree > summary {
527
+ padding-left: calc(var(--disclosure-padding) + 4px);
528
+ }
529
+
530
+ .disclosure[data-depth="1"] { margin-left: 16px; }
531
+ .disclosure[data-depth="2"] { margin-left: 32px; }
532
+ .disclosure[data-depth="3"] { margin-left: 48px; }
533
+ .disclosure[data-depth="4"] { margin-left: 64px; }
534
+ .disclosure[data-depth="5"] { margin-left: 80px; }
535
+
536
+ .disclosure[data-depth] > summary::after {
537
+ content: "";
538
+ position: absolute;
539
+ left: -16px;
540
+ top: 50%;
541
+ width: 12px;
542
+ height: 0;
543
+ border-top: 2px solid var(--disclosure-border);
544
+ }
545
+
546
+ .disclosure[data-depth] > summary {
547
+ position: relative;
548
+ }
549
+
550
+ .disclosure-tree .disclosure-body {
551
+ border-left: 2px solid var(--disclosure-border);
552
+ margin-left: 8px;
553
+ padding-left: calc(var(--disclosure-padding) + 4px);
554
+ }
555
+
556
+ /* ========================================================================
557
+ 12. Animations
558
+ ======================================================================== */
559
+
560
+ @keyframes callout-fade-in {
561
+ from { opacity: 0; transform: translateY(4px); }
562
+ to { opacity: 1; transform: translateY(0); }
563
+ }
564
+
565
+ .callout { animation: callout-fade-in 0.25s ease-out; }
566
+
567
+ @media (prefers-reduced-motion: reduce) {
568
+ .callout { animation: none; }
569
+ .disclosure > .disclosure-body { animation: none; }
570
+ }
571
+
572
+ /* ========================================================================
573
+ 13. Print Styles
574
+ ======================================================================== */
575
+
576
+ @media print {
577
+ .callout { box-shadow: none; break-inside: avoid; }
578
+ .blockquote-enhanced blockquote { background: none; border-left-width: 2px; }
579
+ .disclosure { border-width: 1px; box-shadow: none; }
580
+ .disclosure-accordion { border-width: 1px; box-shadow: none; }
581
+ .disclosure-tree { border-left-width: 1px; }
582
+ }
583
+
584
+ /* ========================================================================
585
+ 14. Inline Callouts (v1.3.0+)
586
+ ======================================================================== */
587
+
588
+ .callout-inline {
589
+ float: left;
590
+ width: var(--callout-inline-width, 50%);
591
+ margin: 0 1em 1em 0;
592
+ clear: left;
593
+ }
594
+
595
+ .callout-inline-end {
596
+ float: right;
597
+ width: var(--callout-inline-width, 50%);
598
+ margin: 0 0 1em 1em;
599
+ clear: right;
600
+ }
601
+
602
+ @media (max-width: 768px) {
603
+ .callout-inline,
604
+ .callout-inline-end {
605
+ float: none;
606
+ width: 100%;
607
+ margin: 1em 0;
608
+ clear: both;
609
+ }
610
+ }