@void/md 0.0.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,8 @@
1
+ //#region src/runtime/index.ts
2
+ function useFrontmatter() {
3
+ return {};
4
+ }
5
+ const FrontmatterContext = null;
6
+ function setFrontmatter(_frontmatter) {}
7
+ //#endregion
8
+ export { FrontmatterContext, setFrontmatter, useFrontmatter };
@@ -0,0 +1,188 @@
1
+ /* Void Markdown — Code Blocks */
2
+
3
+ .void-md div[class*='language-'] {
4
+ position: relative;
5
+ margin: 1em 0;
6
+ border-radius: 8px;
7
+ overflow: hidden;
8
+ background: var(--vmd-bg-soft, #f8fafc);
9
+ }
10
+
11
+ @media (prefers-color-scheme: dark) {
12
+ :root:not([data-theme='light']) .void-md div[class*='language-'] {
13
+ background: #1e293b;
14
+ }
15
+ }
16
+
17
+ :root[data-theme='dark'] .void-md div[class*='language-'] {
18
+ background: #1e293b;
19
+ }
20
+
21
+ .void-md div[class*='language-'] pre {
22
+ margin: 0;
23
+ padding: 1.25em 1.5em;
24
+ overflow-x: auto;
25
+ background: transparent;
26
+ }
27
+
28
+ .void-md div[class*='language-'] code {
29
+ font-family: var(--vmd-font-mono, ui-monospace, 'Cascadia Code', Menlo, monospace);
30
+ font-size: 0.875em;
31
+ line-height: 1.7;
32
+ display: block;
33
+ width: fit-content;
34
+ min-width: 100%;
35
+ }
36
+
37
+ /* Language label */
38
+ .void-md div[class*='language-'] .lang {
39
+ position: absolute;
40
+ top: 0.5em;
41
+ right: 3em;
42
+ font-size: 0.75em;
43
+ font-weight: 500;
44
+ color: var(--vmd-text-muted, #94a3b8);
45
+ pointer-events: none;
46
+ text-transform: uppercase;
47
+ }
48
+
49
+ /* Copy button */
50
+ .void-md div[class*='language-'] .copy {
51
+ position: absolute;
52
+ top: 0.5em;
53
+ right: 0.5em;
54
+ width: 2em;
55
+ height: 2em;
56
+ border: 1px solid var(--vmd-border, #e2e8f0);
57
+ border-radius: 4px;
58
+ background: var(--vmd-bg-soft, #f8fafc);
59
+ cursor: pointer;
60
+ opacity: 0;
61
+ transition: opacity 0.15s;
62
+ }
63
+
64
+ .void-md div[class*='language-']:hover .copy {
65
+ opacity: 1;
66
+ }
67
+
68
+ .void-md div[class*='language-'] .copy::before {
69
+ content: '';
70
+ display: block;
71
+ width: 100%;
72
+ height: 100%;
73
+ background: currentColor;
74
+ mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2'%3E%3Crect x='9' y='9' width='13' height='13' rx='2'/%3E%3Cpath d='M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1'/%3E%3C/svg%3E")
75
+ center / 60% no-repeat;
76
+ }
77
+
78
+ /* Shiki dual theme — keep inline light colors, only swap in dark mode */
79
+ .void-md pre.shiki.shiki-themes {
80
+ background-color: var(--shiki-light-bg, #fff) !important;
81
+ }
82
+
83
+ @media (prefers-color-scheme: dark) {
84
+ :root:not([data-theme='light']) .void-md pre.shiki.shiki-themes {
85
+ background-color: var(--shiki-dark-bg, #1e293b) !important;
86
+ color: var(--shiki-dark, #e1e4e8) !important;
87
+ }
88
+
89
+ :root:not([data-theme='light']) .void-md pre.shiki.shiki-themes span[style*='--shiki-dark'] {
90
+ color: var(--shiki-dark) !important;
91
+ }
92
+ }
93
+
94
+ :root[data-theme='dark'] .void-md pre.shiki.shiki-themes {
95
+ background-color: var(--shiki-dark-bg, #1e293b) !important;
96
+ color: var(--shiki-dark, #e1e4e8) !important;
97
+ }
98
+
99
+ :root[data-theme='dark'] .void-md pre.shiki.shiki-themes span[style*='--shiki-dark'] {
100
+ color: var(--shiki-dark) !important;
101
+ }
102
+
103
+ /* Shiki notation transformers */
104
+ .void-md pre .diff.add {
105
+ background: rgba(16, 185, 129, 0.14);
106
+ }
107
+
108
+ .void-md pre .diff.add::before {
109
+ content: '+';
110
+ position: absolute;
111
+ left: 0.5em;
112
+ color: #10b981;
113
+ }
114
+
115
+ .void-md pre .diff.remove {
116
+ background: rgba(239, 68, 68, 0.14);
117
+ opacity: 0.7;
118
+ }
119
+
120
+ .void-md pre .diff.remove::before {
121
+ content: '-';
122
+ position: absolute;
123
+ left: 0.5em;
124
+ color: #ef4444;
125
+ }
126
+
127
+ .void-md pre .diff {
128
+ position: relative;
129
+ padding-left: 2em;
130
+ margin: 0 -1.5em;
131
+ padding-right: 1.5em;
132
+ }
133
+
134
+ .void-md pre .highlighted {
135
+ background: rgba(99, 102, 241, 0.1);
136
+ margin: 0 -1.5em;
137
+ padding: 0 1.5em;
138
+ display: inline-block;
139
+ width: calc(100% + 3em);
140
+ }
141
+
142
+ .void-md pre .highlighted.warning {
143
+ background: rgba(234, 179, 8, 0.14);
144
+ }
145
+
146
+ .void-md pre .highlighted.error {
147
+ background: rgba(239, 68, 68, 0.14);
148
+ }
149
+
150
+ .void-md pre .has-focus .line:not(.focused) {
151
+ opacity: 0.4;
152
+ transition: opacity 0.3s;
153
+ }
154
+
155
+ .void-md pre:hover .has-focus .line:not(.focused) {
156
+ opacity: 1;
157
+ }
158
+
159
+ /* Line numbers */
160
+ .void-md div[class*='language-'].line-numbers-mode {
161
+ padding-left: 2.5em;
162
+ }
163
+
164
+ .void-md .line-numbers-wrapper {
165
+ position: absolute;
166
+ top: 0;
167
+ left: 0;
168
+ bottom: 0;
169
+ width: 2.5em;
170
+ padding: 1.25em 0;
171
+ text-align: center;
172
+ font-family: var(--vmd-font-mono, monospace);
173
+ font-size: 0.875em;
174
+ line-height: 1.7;
175
+ color: var(--vmd-text-muted, #94a3b8);
176
+ border-right: 1px solid var(--vmd-border, #e2e8f0);
177
+ background: var(--vmd-bg-soft, #f8fafc);
178
+ }
179
+
180
+ @media (prefers-color-scheme: dark) {
181
+ :root:not([data-theme='light']) .void-md .line-numbers-wrapper {
182
+ background: #1e293b;
183
+ }
184
+ }
185
+
186
+ :root[data-theme='dark'] .void-md .line-numbers-wrapper {
187
+ background: #1e293b;
188
+ }
@@ -0,0 +1,125 @@
1
+ /* Void Markdown — Containers & GitHub Alerts */
2
+
3
+ .void-md .custom-block {
4
+ margin: 1em 0;
5
+ padding: 1em 1.25em;
6
+ border-radius: 8px;
7
+ border-left: 4px solid;
8
+ }
9
+
10
+ .void-md .custom-block-title {
11
+ font-weight: 600;
12
+ margin-bottom: 0.5em;
13
+ }
14
+
15
+ .void-md .custom-block > :last-child {
16
+ margin-bottom: 0;
17
+ }
18
+
19
+ /* Tip */
20
+ .void-md .tip {
21
+ border-color: #10b981;
22
+ background: rgba(16, 185, 129, 0.08);
23
+ }
24
+
25
+ .void-md .tip .custom-block-title {
26
+ color: #10b981;
27
+ }
28
+
29
+ /* Info / Note */
30
+ .void-md .info,
31
+ .void-md .note {
32
+ border-color: #3b82f6;
33
+ background: rgba(59, 130, 246, 0.08);
34
+ }
35
+
36
+ .void-md .info .custom-block-title,
37
+ .void-md .note .custom-block-title {
38
+ color: #3b82f6;
39
+ }
40
+
41
+ /* Warning / Important */
42
+ .void-md .warning,
43
+ .void-md .important {
44
+ border-color: #eab308;
45
+ background: rgba(234, 179, 8, 0.08);
46
+ }
47
+
48
+ .void-md .warning .custom-block-title,
49
+ .void-md .important .custom-block-title {
50
+ color: #ca8a04;
51
+ }
52
+
53
+ /* Danger / Caution */
54
+ .void-md .danger,
55
+ .void-md .caution {
56
+ border-color: #ef4444;
57
+ background: rgba(239, 68, 68, 0.08);
58
+ }
59
+
60
+ .void-md .danger .custom-block-title,
61
+ .void-md .caution .custom-block-title {
62
+ color: #ef4444;
63
+ }
64
+
65
+ /* Details (collapsible) */
66
+ .void-md details.custom-block {
67
+ cursor: pointer;
68
+ }
69
+
70
+ .void-md details.custom-block summary {
71
+ font-weight: 600;
72
+ cursor: pointer;
73
+ }
74
+
75
+ .void-md details.custom-block[open] summary {
76
+ margin-bottom: 0.5em;
77
+ }
78
+
79
+ /* Dark mode adjustments */
80
+ @media (prefers-color-scheme: dark) {
81
+ :root:not([data-theme='light']) .void-md .tip {
82
+ background: rgba(16, 185, 129, 0.12);
83
+ }
84
+ :root:not([data-theme='light']) .void-md .info,
85
+ :root:not([data-theme='light']) .void-md .note {
86
+ background: rgba(59, 130, 246, 0.12);
87
+ }
88
+ :root:not([data-theme='light']) .void-md .warning,
89
+ :root:not([data-theme='light']) .void-md .important {
90
+ background: rgba(234, 179, 8, 0.12);
91
+ }
92
+ :root:not([data-theme='light']) .void-md .warning .custom-block-title,
93
+ :root:not([data-theme='light']) .void-md .important .custom-block-title {
94
+ color: #eab308;
95
+ }
96
+ :root:not([data-theme='light']) .void-md .danger,
97
+ :root:not([data-theme='light']) .void-md .caution {
98
+ background: rgba(239, 68, 68, 0.12);
99
+ }
100
+ }
101
+
102
+ :root[data-theme='dark'] .void-md .tip {
103
+ background: rgba(16, 185, 129, 0.12);
104
+ }
105
+ :root[data-theme='dark'] .void-md .info,
106
+ :root[data-theme='dark'] .void-md .note {
107
+ background: rgba(59, 130, 246, 0.12);
108
+ }
109
+ :root[data-theme='dark'] .void-md .warning,
110
+ :root[data-theme='dark'] .void-md .important {
111
+ background: rgba(234, 179, 8, 0.12);
112
+ }
113
+ :root[data-theme='dark'] .void-md .warning .custom-block-title,
114
+ :root[data-theme='dark'] .void-md .important .custom-block-title {
115
+ color: #eab308;
116
+ }
117
+ :root[data-theme='dark'] .void-md .danger,
118
+ :root[data-theme='dark'] .void-md .caution {
119
+ background: rgba(239, 68, 68, 0.12);
120
+ }
121
+
122
+ /* GitHub Alerts */
123
+ .void-md .github-alert {
124
+ border-left-width: 4px;
125
+ }
@@ -0,0 +1,4 @@
1
+ /* Void Markdown — Content Styles (scoped to .void-md) */
2
+ @import './prose.css';
3
+ @import './code.css';
4
+ @import './containers.css';
@@ -0,0 +1,7 @@
1
+ /* Void Markdown — Full Theme (reset + baseline + content)
2
+ *
3
+ * Use this entry for standalone markdown sites that need a complete stylesheet.
4
+ * For embedding markdown in an existing app, use content.css instead.
5
+ */
6
+ @import './reset.css';
7
+ @import './content.css';
@@ -0,0 +1,294 @@
1
+ /* Void Markdown — Prose Typography */
2
+
3
+ .void-md {
4
+ --vmd-font-body: system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif;
5
+ --vmd-font-mono: ui-monospace, 'Cascadia Code', 'Source Code Pro', Menlo, Consolas, monospace;
6
+ --vmd-text: #1a1a2e;
7
+ --vmd-text-muted: #64748b;
8
+ --vmd-link: #2563eb;
9
+ --vmd-link-hover: #1d4ed8;
10
+ --vmd-border: #e2e8f0;
11
+ --vmd-bg-soft: #f8fafc;
12
+ --vmd-line-height: 1.75;
13
+
14
+ font-family: var(--vmd-font-body);
15
+ color: var(--vmd-text);
16
+ line-height: var(--vmd-line-height);
17
+ word-wrap: break-word;
18
+ }
19
+
20
+ @media (prefers-color-scheme: dark) {
21
+ :root:not([data-theme='light']) .void-md {
22
+ --vmd-text: #e2e8f0;
23
+ --vmd-text-muted: #94a3b8;
24
+ --vmd-link: #60a5fa;
25
+ --vmd-link-hover: #93bbfd;
26
+ --vmd-border: #334155;
27
+ --vmd-bg-soft: #1e293b;
28
+ }
29
+ }
30
+
31
+ :root[data-theme='dark'] .void-md {
32
+ --vmd-text: #e2e8f0;
33
+ --vmd-text-muted: #94a3b8;
34
+ --vmd-link: #60a5fa;
35
+ --vmd-link-hover: #93bbfd;
36
+ --vmd-border: #334155;
37
+ --vmd-bg-soft: #1e293b;
38
+ }
39
+
40
+ /* Headings */
41
+ .void-md h1,
42
+ .void-md h2,
43
+ .void-md h3,
44
+ .void-md h4,
45
+ .void-md h5,
46
+ .void-md h6 {
47
+ font-weight: 600;
48
+ line-height: 1.3;
49
+ margin-top: 1.5em;
50
+ margin-bottom: 0.5em;
51
+ }
52
+
53
+ .void-md h1 {
54
+ font-size: 2em;
55
+ margin-top: 0;
56
+ }
57
+ .void-md h2 {
58
+ font-size: 1.5em;
59
+ padding-bottom: 0.3em;
60
+ border-bottom: 1px solid var(--vmd-border);
61
+ }
62
+ .void-md h3 {
63
+ font-size: 1.25em;
64
+ }
65
+ .void-md h4 {
66
+ font-size: 1em;
67
+ }
68
+
69
+ /* Paragraphs */
70
+ .void-md p {
71
+ margin-top: 0;
72
+ margin-bottom: 1em;
73
+ }
74
+
75
+ /* Links */
76
+ .void-md a {
77
+ color: var(--vmd-link);
78
+ text-decoration: none;
79
+ font-weight: 500;
80
+ }
81
+
82
+ .void-md a:hover {
83
+ color: var(--vmd-link-hover);
84
+ text-decoration: underline;
85
+ }
86
+
87
+ /* Lists */
88
+ .void-md ul,
89
+ .void-md ol {
90
+ padding-left: 1.5em;
91
+ margin-top: 0;
92
+ margin-bottom: 1em;
93
+ }
94
+
95
+ .void-md li {
96
+ margin-bottom: 0.25em;
97
+ }
98
+
99
+ .void-md li > p {
100
+ margin-bottom: 0.5em;
101
+ }
102
+
103
+ /* Blockquotes */
104
+ .void-md blockquote {
105
+ margin: 0 0 1em;
106
+ padding: 0.5em 1em;
107
+ border-left: 4px solid var(--vmd-border);
108
+ color: var(--vmd-text-muted);
109
+ }
110
+
111
+ .void-md blockquote > :last-child {
112
+ margin-bottom: 0;
113
+ }
114
+
115
+ /* Tables */
116
+ .void-md table {
117
+ width: 100%;
118
+ border-collapse: collapse;
119
+ margin-bottom: 1em;
120
+ display: block;
121
+ overflow-x: auto;
122
+ }
123
+
124
+ .void-md th,
125
+ .void-md td {
126
+ padding: 0.5em 1em;
127
+ border: 1px solid var(--vmd-border);
128
+ text-align: left;
129
+ }
130
+
131
+ .void-md th {
132
+ font-weight: 600;
133
+ background: var(--vmd-bg-soft);
134
+ }
135
+
136
+ /* Inline code */
137
+ .void-md :not(pre) > code {
138
+ font-family: var(--vmd-font-mono);
139
+ font-size: 0.875em;
140
+ padding: 0.15em 0.4em;
141
+ border-radius: 4px;
142
+ background: var(--vmd-bg-soft);
143
+ border: 1px solid var(--vmd-border);
144
+ }
145
+
146
+ /* Horizontal rule */
147
+ .void-md hr {
148
+ border: none;
149
+ border-top: 1px solid var(--vmd-border);
150
+ margin: 2em 0;
151
+ }
152
+
153
+ /* Images */
154
+ .void-md img {
155
+ max-width: 100%;
156
+ height: auto;
157
+ }
158
+
159
+ /* Strong / emphasis */
160
+ .void-md strong {
161
+ font-weight: 600;
162
+ }
163
+
164
+ /* Anchor links */
165
+ .void-md .header-anchor {
166
+ float: left;
167
+ margin-left: -0.87em;
168
+ padding-right: 0.23em;
169
+ font-weight: 500;
170
+ opacity: 0;
171
+ transition: opacity 0.15s;
172
+ }
173
+
174
+ .void-md h1:hover .header-anchor,
175
+ .void-md h2:hover .header-anchor,
176
+ .void-md h3:hover .header-anchor,
177
+ .void-md h4:hover .header-anchor,
178
+ .void-md h5:hover .header-anchor,
179
+ .void-md h6:hover .header-anchor {
180
+ opacity: 1;
181
+ }
182
+
183
+ /* Task lists */
184
+ .void-md ul.contains-task-list {
185
+ list-style: none;
186
+ padding-left: 0;
187
+ }
188
+
189
+ .void-md .task-list-item {
190
+ display: flex;
191
+ align-items: baseline;
192
+ gap: 0.5em;
193
+ }
194
+
195
+ .void-md .task-list-item input[type='checkbox'] {
196
+ margin: 0;
197
+ flex-shrink: 0;
198
+ }
199
+
200
+ /* Nested task lists */
201
+ .void-md .task-list-item ul.contains-task-list {
202
+ margin-top: 0.25em;
203
+ }
204
+
205
+ /* Keyboard input */
206
+ .void-md kbd {
207
+ font-family: var(--vmd-font-mono);
208
+ font-size: 0.875em;
209
+ padding: 0.1em 0.4em;
210
+ border-radius: 4px;
211
+ border: 1px solid var(--vmd-border);
212
+ box-shadow: 0 1px 0 var(--vmd-border);
213
+ background: var(--vmd-bg-soft);
214
+ }
215
+
216
+ /* Highlighted text */
217
+ .void-md mark {
218
+ background: rgba(234, 179, 8, 0.3);
219
+ padding: 0.1em 0.2em;
220
+ border-radius: 2px;
221
+ color: inherit;
222
+ }
223
+
224
+ /* Definition lists */
225
+ .void-md dl {
226
+ margin-bottom: 1em;
227
+ }
228
+
229
+ .void-md dt {
230
+ font-weight: 600;
231
+ margin-top: 0.5em;
232
+ }
233
+
234
+ .void-md dd {
235
+ margin-left: 1.5em;
236
+ margin-bottom: 0.5em;
237
+ }
238
+
239
+ /* Abbreviations */
240
+ .void-md abbr[title] {
241
+ text-decoration: underline dotted;
242
+ cursor: help;
243
+ }
244
+
245
+ /* Subscript / Superscript */
246
+ .void-md sub,
247
+ .void-md sup {
248
+ font-size: 0.75em;
249
+ line-height: 0;
250
+ position: relative;
251
+ vertical-align: baseline;
252
+ }
253
+
254
+ .void-md sup {
255
+ top: -0.5em;
256
+ }
257
+
258
+ .void-md sub {
259
+ bottom: -0.25em;
260
+ }
261
+
262
+ /* Footnotes */
263
+ .void-md section.footnotes {
264
+ margin-top: 2em;
265
+ padding-top: 1em;
266
+ border-top: 1px solid var(--vmd-border);
267
+ font-size: 0.875em;
268
+ color: var(--vmd-text-muted);
269
+ }
270
+
271
+ .void-md .footnote-ref a {
272
+ font-size: 0.75em;
273
+ vertical-align: super;
274
+ line-height: 0;
275
+ margin-left: 0.1em;
276
+ }
277
+
278
+ .void-md .footnote-backref {
279
+ font-family: initial;
280
+ }
281
+
282
+ /* Table of contents */
283
+ .void-md .table-of-contents {
284
+ margin-bottom: 1em;
285
+ }
286
+
287
+ .void-md .table-of-contents ul {
288
+ list-style: none;
289
+ padding-left: 1em;
290
+ }
291
+
292
+ .void-md .table-of-contents > ul {
293
+ padding-left: 0;
294
+ }