summaryrefslogtreecommitdiff
path: root/src/custom.css
diff options
context:
space:
mode:
authorLibravatar Martin Michalec <martin@michalec.dev>2026-02-11 04:35:07 +0000
committerLibravatar Martin Michalec <martin@michalec.dev>2026-02-11 04:47:46 +0000
commit0c2af7aac72c74fb2cad8f9e57ccce1e728835e0 (patch)
treee93513d5f53b6e94f9e643505069c1f44fd179dc /src/custom.css
parentadd .gitignore (diff)
downloadmichalec-dev-0c2af7aac72c74fb2cad8f9e57ccce1e728835e0.tar.gz
add initial sources
Diffstat (limited to 'src/custom.css')
-rw-r--r--src/custom.css599
1 files changed, 599 insertions, 0 deletions
diff --git a/src/custom.css b/src/custom.css
new file mode 100644
index 0000000..45d33e5
--- /dev/null
+++ b/src/custom.css
@@ -0,0 +1,599 @@
1@charset "utf-8";
2
3
4/* Fonts */
5
6@font-face {
7 font-family: "Aporetic Serif Mono";
8 font-display: swap;
9 font-weight: 700;
10 font-stretch: normal;
11 font-style: normal;
12 src: url('/fonts/aporetic-serif-mono-normalbolditalic.woff2') format('woff2');
13}
14
15@font-face {
16 font-family: "Aporetic Serif Mono";
17 font-display: swap;
18 font-weight: 700;
19 font-stretch: normal;
20 font-style: normal;
21 src: url('/fonts/aporetic-serif-mono-normalboldupright.woff2') format('woff2');
22}
23
24@font-face {
25 font-family: "Aporetic Serif Mono";
26 font-display: swap;
27 font-weight: 400;
28 font-stretch: normal;
29 font-style: normal;
30 src: url('/fonts/aporetic-serif-mono-normalregularitalic.woff2') format('woff2');
31}
32
33@font-face {
34 font-family: "Aporetic Serif Mono";
35 font-display: swap;
36 font-weight: 400;
37 font-stretch: normal;
38 font-style: normal;
39 src: url('/fonts/aporetic-serif-mono-normalregularupright.woff2') format('woff2');
40}
41
42@font-face {
43 font-family: "Aporetic Serif";
44 font-display: swap;
45 font-weight: 700;
46 font-stretch: normal;
47 font-style: normal;
48 src: url('/fonts/aporetic-serif-normalbolditalic.woff2') format('woff2');
49}
50
51@font-face {
52 font-family: "Aporetic Serif";
53 font-display: swap;
54 font-weight: 700;
55 font-stretch: normal;
56 font-style: normal;
57 src: url('/fonts/aporetic-serif-normalboldupright.woff2') format('woff2');
58}
59
60@font-face {
61 font-family: "Aporetic Serif";
62 font-display: swap;
63 font-weight: 400;
64 font-stretch: normal;
65 font-style: normal;
66 src: url('/fonts/aporetic-serif-normalregularitalic.woff2') format('woff2');
67}
68
69@font-face {
70 font-family: "Aporetic Serif";
71 font-display: swap;
72 font-weight: 400;
73 font-stretch: normal;
74 font-style: normal;
75 src: url('/fonts/aporetic-serif-normalregularupright.woff2') format('woff2');
76}
77
78
79/* Variables */
80
81:root {
82 --font-serif-regular: "Aporetic Serif", serif;
83 --font-serif-mono: "Aporetic Serif Mono", monospace;
84 --font-sans-regular: "Aporetic Sans", sans-serif;
85 --font-sans-mono: "Aporetic Sans Mono", monospace;
86
87 --default-fg: black;
88 --default-bg: white;
89 --default-family: var(--font-sans-regular);
90 --default-size: 14pt;
91
92 --header-family: var(--font-serif-regular);
93
94 --link-fg: #3548cf;
95
96 --body-margin: 0px;
97
98 --divider-color: #9f9f9f; /* window-divider */
99
100 --content-border: 2px solid var(--divider-color);
101 --content-padding: 10px;
102
103 --nav-height: 125px;
104 --toc-nav-vspacing: 20px;
105 --toc-base-padding: 5px;
106 --toc-ul-padding-left: 20px;
107 --toc-local-padding: 5px;
108 --toc-extra-padding-x: 4px;
109
110 --tbl-border-color: #193668; /* org-table */
111 --tbl-border-size: 1px;
112
113 --code-fg: #005f5f;
114 --code-family: var(--font-serif-mono);
115 --code-size: var(--default-size);
116
117 --example-family: var(--default-serif-mono);
118 --example-size: var(--default-size);
119
120 --src-bg: #fbf9e7;
121 --src-border-color: #7f7f7f;
122 --src-border: 1px solid var(--src-border-color);
123 --src-family: var(--default-serif-mono);
124
125 --src-label-fg: var(--src-border-color);
126
127 --src-builtin-fg: #8f0075;
128 --src-builtin-weight: bold;
129
130 --src-keyword-fg: #531ab6;
131 --src-keyword-weight: bold;
132
133 --src-variable-name-fg: #005e8b;
134
135 --src-string-fg: #3548cf;
136
137 --src-constant-fg: #0000b0;
138
139 --src-function-name-fg: #721045;
140
141 --src-comment-fg: #595959;
142 --src-comment-style: italic;
143
144 --src-comment-delimiter-fg: var(--src-comment-fg);
145 --src-comment-delimiter-style: italic;
146
147 --src-regexp-grouping-backslash-fg: var(--src-function-name-fg);
148 --src-regexp-grouping-backslash-weight: bold;
149
150 --src-regexp-grouping-construct-fg: #00663f;
151 --src-regexp-grouping-construct-weight: bold;
152
153 --src-doc-fg: #2a5045;
154 --src-doc-style: italic;
155
156 --src-type-fg: #005f5f;
157 --src-type-weight: bold;
158}
159
160
161/* Dark overrides */
162
163@media (prefers-color-scheme: dark) {
164 :root {
165 color-scheme: dark;
166
167 --scrollbar-track-color: #303030;
168 --scrollbar-thumb-color: #808080;
169 --scrollbar-thumb-hover-color: #505050;
170 --scrollbar-corner-color: #404040;
171
172 --default-fg: white;
173 --default-bg: black;
174
175 --link-fg: #79a8ff;
176
177 --divider-color: #646464;
178
179 --tbl-border-color: #c6daff;
180
181 --src-bg: #1e1e1e;
182
183 --src-builtin-fg: #f78fe7;
184 --src-keyword-fg: #b6a0ff;
185 --src-variable-name-fg: #00d3d0;
186 --src-string-fg: #79a8ff;
187 --src-constant-fg: #00bcff;
188 --src-function-name-fg: #feacd0;
189
190 --src-comment-fg: #989898;
191
192 --src-regexp-grouping-construct-fg: #00c06f;
193
194 --src-doc-fg: #9ac8e0;
195 --src-type-fg: #6ae4b9;
196
197 --code-fg: #6ae4b9;
198 }
199}
200
201
202/* Responsive variables */
203
204/* Large screens */
205@media (min-width: 1024px) {
206 :root {
207 --side-width: 250px;
208 --content-width: calc(92% - var(--side-width));
209 --nav-base-font-size: 80%;
210 --nav-padding: 14px 16px;
211 --toc-base-font-size: 70%;
212 --toc-ul-font-size: 150%;
213 --toc-ul-local-font-size: 130%;
214 --toc-ul-2-font-size: 80%;
215 --toc-ul-3-font-size: 80%;
216 --src-size: 14pt;
217 --rss-padding: 0 0 0 25px;
218 --rss-size: 25px 25px;
219 --rss-pos: 50%;
220 }
221}
222
223/* Medium screens */
224@media (min-width: 600px) and (max-width: 1024px) {
225 :root {
226 --side-width: 175px;
227 --content-width: calc(92% - var(--side-width));
228 --nav-base-font-size: 70%;
229 --nav-padding: 5px 6px;
230 --toc-base-font-size: 70%;
231 --toc-ul-font-size: 130%;
232 --toc-ul-local-font-size: 130%;
233 --toc-ul-2-font-size: 80%;
234 --src-size: 14pt;
235 --rss-padding: 0 0 19px 9px;
236 --rss-size: 10px 10px;
237 --rss-pos: 25%;
238 }
239}
240
241/* Small screens */
242@media (max-width: 600px) {
243 :root {
244 --content-width: 100%;
245 --nav-base-font-size: 80%;
246 --nav-padding: 5px 6px;
247 --toc-base-font-size: 80%;
248 --toc-ul-font-size: 120%;
249 --toc-ul-local-font-size: 130%;
250 --toc-ul-2-font-size: 80%;
251 --src-size: 14pt;
252 }
253}
254
255
256/* Immutable */
257
258/* Body */
259body {
260 color: var(--default-fg);
261 background-color: var(--default-bg);
262 font-family: var(--default-family);
263 font-size: var(--default-size);
264
265 margin: 0;
266}
267
268/* Headers */
269h1, h2, h3, h4, h5, h6 {
270 font-family: var(--header-family);
271}
272
273/* Scroll bars */
274/* ::-webkit-scrollbar { */
275/* width: 12px; */
276/* height: 12px; */
277/* } */
278
279/* ::-webkit-scrollbar-track { */
280/* background: var(--scrollbar-track-color); */
281/* border-radius: 10px; */
282/* } */
283
284/* ::-webkit-scrollbar-thumb { */
285/* background: var(--scrollbar-thumb-color); */
286/* border-radius: 10px; */
287/* } */
288
289/* ::-webkit-scrollbar-thumb:hover { */
290/* background: var(--scrollbar-thumb-hover-color); */
291/* } */
292
293/* ::-webkit-scrollbar-corner { */
294/* background: var(--scrollbar-corner-color); */
295/* } */
296
297/* Links */
298a {
299 color: var(--link-fg);
300}
301
302/* Content */
303#content {
304 width: var(--content-width);
305 padding: 0 var(--content-padding);
306}
307
308@media (min-width: 600px) {
309 #content {
310 margin-left: calc(var(--side-width) + var(--body-margin) + 2*var(--content-padding));
311 margin-right: var(--body-margin);
312 border-left: var(--content-border);
313 }
314}
315
316@media (max-width: 600px) {
317 #content {
318 margin-left: 0;
319 margin-right: 0;
320 }
321}
322
323@media (min-width: 600px) {
324 nav {
325 left: var(--content-padding);
326 position: fixed;
327 width: var(--side-width);
328 }
329
330 nav > ul {
331 padding: 0;
332 margin: 0;
333 list-style-type: none;
334 display: block;
335 }
336
337 nav > ul > li {
338 padding: var(--toc-base-padding) 0;
339 }
340
341 nav > ul > li:not(:last-of-type) {
342 border-bottom: 1px solid var(--divider-color);
343 }
344
345 nav > ul > li > ul {
346 padding: 0;
347 text-align: center;
348 overflow-x: auto;
349 white-space: nowrap;
350 -ms-overflow-style: none; /* Internet Explorer 10+ */
351 scrollbar-width: none; /* Firefox */
352 }
353 nav > ul > li > ul::-webkit-scrollbar {
354 display: none; /* Safari and Chrome */
355 }
356
357 nav > ul > li > ul > li {
358 display: inline-block;
359 }
360}
361
362html {
363}
364
365@media (max-width: 600px) {
366 nav {
367 border-bottom: 2px solid var(--divider-color);
368 }
369
370 nav > ul {
371 padding: 0;
372 margin: 0 8px;
373 list-style-type: none;
374 display: block;
375 }
376
377 nav > ul > li {
378 padding: var(--toc-base-padding) 0;
379 }
380
381 nav > ul > li:not(:last-of-type) {
382 border-bottom: 1px solid var(--divider-color);
383 }
384
385 nav > ul > li > ul {
386 padding: 0;
387 text-align: center;
388 overflow-x: auto;
389 }
390
391 nav > ul > li > ul > li {
392 display: inline-block;
393 }
394}
395
396nav > ul > li > span {
397 display: none;
398}
399
400code {
401 color: var(--code-fg);
402 font-family: var(--code-family);
403 font-size: var(--code-size);
404}
405
406pre.example {
407 font-family: var(--example-family);
408 font-size: var(--example-size);
409}
410
411hr {
412 border: 1px solid var(--divider-color);
413 /* border-bottom: 1px solid var(--divider-color); */
414}
415
416.org-src-container {
417 border: var(--src-border);
418 background-color: var(--src-bg);
419 font-family: var(--src-family);
420 font-size: var(--src-size);
421 margin: 10px;
422}
423
424.src-label {
425 top: 0;
426 left: 0;
427 color: var(--src-label-fg);
428 border-bottom: var(--src-border);
429 padding: 2px;
430 padding-left: 4px;
431 display: flex;
432 justify-content: space-between
433}
434
435pre.src {
436 max-height: 50ex;
437 overflow-x: auto;
438 overflow-y: auto;
439 line-height: 2.5ex;
440 margin: 0px;
441 padding: 4px;
442}
443
444.org-builtin {
445 color: var(--src-builtin-fg);
446 weight: var(--src-builtin-weight);
447}
448
449.org-keyword {
450 color: var(--src-keyword-fg);
451 weight: var(--src-keyword-weight);
452}
453
454.org-variable-name {
455 color: var(--src-variable-name-fg);
456}
457
458.org-string {
459 color: var(--src-string-fg);
460}
461
462.org-constant {
463 color: var(--src-constant-fg);
464}
465
466.org-comment {
467 color: var(--src-comment-fg);
468 font-style: var(--src-comment-style);
469}
470
471.org-comment-delimiter {
472 color: var(--src-comment-delimiter-fg);
473 font-style: var(--src-comment-delimiter-style);
474}
475
476.org-function-name {
477 color: var(--src-function-name-fg);
478}
479
480.org-regexp-grouping-backslash {
481 color: var(--src-regexp-grouping-backslash-fg);
482 font-style: var(--src-regexp-grouping-backslash-style);
483}
484
485.org-regexp-grouping-construct {
486 color: var(--src-regexp-grouping-construct-fg);
487 font-style: var(--src-regexp-grouping-construct-style);
488}
489
490.org-doc {
491 color: var(--src-doc-fg);
492 font-style: var(--src-doc-style);
493}
494
495.org-type {
496 color: var(--src-type-fg);
497 weight: var(--src-type-weight);
498}
499
500/* Basic styling (color, font, shadow) common to global and local TOC */
501#table-of-contents, .org-info-js_local-toc {
502 font-size: var(--toc-base-font-size);
503}
504
505#org-div-home-and-up {
506 width: var(--side-width);
507 border-right: var(--toc-border-right);
508 justify-content: center;
509}
510
511/* Size (global TOC only) */
512#table-of-contents {
513 width: calc(var(--side-width) - 2*var(--toc-base-padding));
514}
515
516/* Fixed vertical table of content */
517@media screen and (min-width: 600px) {
518 #org-div-home-and-up {
519 position: fixed;
520 left: var(--content-padding);
521 overflow: auto;
522 padding: var(--toc-base-padding);
523 }
524 #table-of-contents {
525 position: fixed;
526 left: var(--content-padding);
527 top: var(--nav-height);
528 bottom: 0;
529 padding: 0 var(--toc-base-padding);
530 overflow: auto;
531 border-top: 2px solid var(--divider-color);
532 -ms-overflow-style: none; /* Internet Explorer 10+ */
533 scrollbar-width: none; /* Firefox */
534 }
535 #table-of-contents::-webkit-scrollbar {
536 display: none; /* Safari and Chrome */
537 }
538}
539
540@media screen and (min-width: 600px) and (max-width: 1024px) {
541 #table-of-contents > div > ul > li > ul > li > ul {
542 display: none;
543 }
544}
545
546@media screen and (max-width: 600px) {
547 #table-of-contents {
548 position: relative;
549 width: 90%;
550 margin: auto;
551 }
552}
553
554#table-of-contents ul, .org-info-js_local-toc ul {
555 list-style-type: none;
556 margin: 0;
557 padding-left: var(--toc-ul-padding-left);
558}
559
560#table-of-contents ul {
561 font-size: var(--toc-ul-font-size);
562}
563
564.org-info-js_local-toc ul {
565 font-size: var(--toc-ul-local-font-size);
566}
567
568#table-of-contents > div > ul, .org-info-js_local-toc > div > ul {
569 list-style-type: none;
570 margin: 0;
571 padding-left: var(--toc-extra-padding-x);
572}
573
574#table-of-contents > div > ul > li > ul {
575 font-size: var(--toc-ul-2-font-size);
576 vertical-align: middle;
577}
578
579#table-of-contents > div > ul > li > ul > li > ul {
580 font-size: var(--toc-ul-3-font-size);
581 vertical-align: middle;
582}
583
584ul {
585 list-style-type: '- ';
586}
587
588table, td, th {
589 text-align: left;
590}
591
592table {
593 border-collapse: collapse;
594 width: 100%;
595}
596
597th, td {
598 padding: 3px;
599}