astro-accelerator 0.0.2 → 0.0.4

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,18 @@
1
+ import remarkDirective from 'remark-directive';
2
+ import { defineConfig } from 'astro/config';
3
+ import { attributeMarkdown, wrapTables } from '/src/themes/accelerator/utilities/custom-markdown.mjs';
4
+
5
+ // https://astro.build/config
6
+ export default defineConfig({
7
+ site: 'https://astro.stevefenton.co.uk',
8
+ markdown: {
9
+ remarkPlugins: [
10
+ remarkDirective,
11
+ attributeMarkdown,
12
+ wrapTables
13
+ ],
14
+ extendDefaultPlugins: true,
15
+ trailingSlash: 'always',
16
+ server: { port: 3000, host: true},
17
+ },
18
+ });
package/package.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "0.0.2",
2
+ "version": "0.0.4",
3
3
  "author": "Steve Fenton",
4
4
  "name": "astro-accelerator",
5
5
  "description": "A super-lightweight, accessible, SEO-friendly starter project for Astro",
@@ -12,6 +12,7 @@
12
12
  "bugs": "https://github.com/Steve-Fenton/astro-accelerator/issues",
13
13
  "license": "(Apache-2.0)",
14
14
  "files": [
15
+ "astro.config.mjs",
15
16
  "src/config.ts",
16
17
  "src/pages/authors/[author]/[page].astro",
17
18
  "src/pages/articles/[page].astro",
@@ -24,6 +25,7 @@
24
25
  "src/layouts/*",
25
26
  "src/themes/**/*",
26
27
  "src/data/*",
28
+ "public/css/**/*",
27
29
  "public/js/**/*"
28
30
  ],
29
31
  "repository": {
@@ -0,0 +1,971 @@
1
+ html {
2
+ box-sizing: border-box;
3
+ }
4
+
5
+ *,
6
+ *::before,
7
+ *::after {
8
+ border: 0 none;
9
+ font-weight: inherit;
10
+ font-family: inherit;
11
+ font-style: inherit;
12
+ font-size: 100%;
13
+ margin: 0;
14
+ outline: 0;
15
+ padding: 0;
16
+ vertical-align: baseline;
17
+ }
18
+
19
+ html {
20
+ scroll-padding-top: 5em;
21
+ }
22
+
23
+ body {
24
+ background-color: var(--aft);
25
+ color: var(--fore);
26
+ font-size: 17px;
27
+ line-height: 1.8em;
28
+ letter-spacing: 0.016em;
29
+ font-family: var(--content-font);
30
+ }
31
+
32
+ a, summary {
33
+ color: var(--fore-link);
34
+ text-decoration: underline;
35
+ cursor: pointer;
36
+ border-radius: var(--block-radius);
37
+ }
38
+
39
+ a:hover,
40
+ a:focus,
41
+ summary:hover,
42
+ summary:focus {
43
+ color: var(--fore-link-alt);
44
+ background-color: var(--aft-link-alt);
45
+ }
46
+
47
+ :focus {
48
+ outline: 2px dashed var(--fore-link-alt);
49
+ border-radius: 5px;
50
+ }
51
+
52
+ blockquote {
53
+ color: var(--fore-block);
54
+ background-color: var(--aft-block);
55
+ font-size: 1.3rem;
56
+ font-style: italic;
57
+ padding: 0.1px 1.2em;
58
+ position: relative;
59
+ box-shadow: var(--box-shadow);
60
+ margin: var(--paragraph-margin) 0;
61
+ border-radius: var(--block-radius);
62
+ }
63
+
64
+ blockquote::after {
65
+ content: '“';
66
+ color: var(--icon-block);
67
+ font-size: 5em;
68
+ position: absolute;
69
+ font-family: var(--heading-font);
70
+ transform: translate(-50%, -50%);
71
+ top: 3.4rem;
72
+ }
73
+
74
+ blockquote > *:first-child {
75
+ text-indent: 2em;
76
+ }
77
+
78
+ blockquote cite {
79
+ font-style: initial;
80
+ font-weight: bold;
81
+ display: block;
82
+ margin-top: 1em;
83
+ text-align: right;
84
+ }
85
+
86
+ blockquote cite::before {
87
+ content: ' ―';
88
+ padding-right: 0.5em;
89
+ }
90
+
91
+ em {
92
+ font-style: italic;
93
+ }
94
+
95
+ h1, h2, h3, h4, h5, h6 {
96
+ font-family: var(--heading-font);
97
+ margin: 1.5em 0 0.6em 0;
98
+ color: var(--fore-headings);
99
+ line-height: 1em;
100
+ }
101
+
102
+ h1 {
103
+ font-size: 3rem;
104
+ font-size: clamp(2rem, 6vw, 3rem);
105
+ }
106
+
107
+ h2 {
108
+ font-size: 2.6em;
109
+ font-size: clamp(1.8em, 3.5vw, 2.6em);
110
+ }
111
+
112
+ h3 {
113
+ font-size: 2.3em;
114
+ font-size: clamp(1.6em, 3vw, 2.3em);
115
+ }
116
+
117
+ h4, h5, h6 {
118
+ font-size: 2em;
119
+ font-size: clamp(1.4em, 2.5vw, 2em);
120
+ }
121
+
122
+ hr {
123
+ border: 0.5px dashed var(--fore);
124
+ opacity: 0.5;
125
+ width: 80%;
126
+ margin: var(--paragraph-margin) auto;
127
+ }
128
+
129
+ figure {
130
+ border-top: 1px solid var(--icon-block);
131
+ border-bottom: 1px solid var(--icon-block);
132
+ background-color: var(--aft-block);
133
+ padding: 0 1rem;
134
+ }
135
+
136
+ figcaption {
137
+ font-style: italic;
138
+ text-align: center;
139
+ font-size: 0.8em;
140
+ }
141
+
142
+ img {
143
+ max-width: 100%;
144
+ }
145
+
146
+ img.resp-img {
147
+ width: 100%;
148
+ height: auto;
149
+ }
150
+
151
+ figure img {
152
+ box-shadow: var(--box-shadow);
153
+ }
154
+
155
+ li::marker {
156
+ color: var(--fore-headings);
157
+ }
158
+
159
+ .page-content ul, .page-content ol {
160
+ margin: var(--paragraph-margin) 0 var(--paragraph-margin) 1.2rem;
161
+ }
162
+
163
+ .page-content > h2:nth-child(1) {
164
+ margin-top: 0;
165
+ }
166
+
167
+ p {
168
+ margin: var(--paragraph-margin) 0;
169
+ }
170
+
171
+ strong {
172
+ font-weight: bold;
173
+ }
174
+
175
+ .table-wrap {
176
+ overflow: auto;
177
+ max-width: 100%;
178
+ }
179
+
180
+ table {
181
+ border-collapse: collapse;
182
+ border: 0.5px solid var(--fore);
183
+ width: 100%;
184
+ border-radius: var(--block-radius);
185
+ }
186
+
187
+ thead tr {
188
+ background-color: var(--aft-table-head);
189
+ color: var(--fore-table-head);
190
+ }
191
+
192
+ th, td {
193
+ border: 0.5px solid var(--fore);
194
+ padding: 0.2em 0.3em;
195
+ }
196
+
197
+ tbody tr {
198
+ background-color: var(--aft-table-row-even);
199
+ color: var(--fore-table-row-even);
200
+ }
201
+
202
+ tbody tr:nth-child(odd) {
203
+ background-color: var(--aft-table-row-odd);
204
+ color: var(--fore-table-row-odd);
205
+ }
206
+
207
+ /* Skip Links */
208
+ nav.skip-links {
209
+ position: absolute;
210
+ }
211
+
212
+ nav.skip-links a {
213
+ clip: rect(0 0 0 0);
214
+ background-color: var(--aft);
215
+ min-width: 20vw;
216
+ overflow: hidden;
217
+ padding: 1rem;
218
+ position: absolute;
219
+ z-index: 15;
220
+ text-align: center;
221
+ display: inline-block;
222
+ height: 1px;
223
+ margin: -1px;
224
+ width: 1px;
225
+ }
226
+
227
+ nav.skip-links a:focus {
228
+ clip: auto;
229
+ height: auto;
230
+ margin: 0.2em;
231
+ overflow: visible;
232
+ width: auto;
233
+ }
234
+
235
+ /* Breadcrumbs */
236
+
237
+ .site-breadcrumbs ol {
238
+ font-size: 0.8rem;
239
+ background-color: var(--aft-breadcrumb);
240
+ color: var(--fore-breadcrumb);
241
+ padding: 0 1em;
242
+ }
243
+
244
+ .site-breadcrumbs li {
245
+ display: inline;
246
+ padding: 0.2em;
247
+ }
248
+
249
+ .site-breadcrumbs li::before {
250
+ content: '>'
251
+ }
252
+
253
+ .site-breadcrumbs li:first-child::before {
254
+ content: ''
255
+ }
256
+
257
+ .site-breadcrumbs a[aria-current] {
258
+ color: var(--fore);
259
+ text-decoration: none;
260
+ }
261
+
262
+ @media (max-width: 860px) {
263
+ .site-breadcrumbs ol {
264
+ text-align: center;
265
+ }
266
+ }
267
+
268
+ /* Header */
269
+ .site-header {
270
+ color: var(--fore-head);
271
+ background-color: var(--aft-head);
272
+ text-align: center;
273
+ font-size: 2rem;
274
+ font-size: clamp(1.2em, 4vw, 2em);
275
+ padding: 1rem;
276
+ position: sticky;
277
+ top: 0;
278
+ z-index: 10;
279
+ }
280
+
281
+ .site-header a {
282
+ color: var(--link-head);
283
+ text-decoration: none;
284
+ }
285
+
286
+ .site-header a:hover,
287
+ .site-header a:focus {
288
+ color: var(--link-alt-head);
289
+ background-color: unset;
290
+ }
291
+
292
+ .site-header .site-title {
293
+ letter-spacing: -1px;
294
+ text-transform: uppercase;
295
+ margin: 0 30px;
296
+ display: block;
297
+ }
298
+
299
+ .site-header .navigation-icon {
300
+ display: none;
301
+ position: fixed;
302
+ top: 10px;
303
+ left: 10px;
304
+ stroke: var(--link-head);
305
+ }
306
+
307
+ .site-header .search-icon {
308
+ position: fixed;
309
+ top: 10px;
310
+ right: 10px;
311
+ stroke: var(--link-head);
312
+ }
313
+
314
+ @media (max-width: 860px) {
315
+ .site-header .navigation-icon {
316
+ display: block;
317
+ }
318
+ }
319
+
320
+ /* Navigation */
321
+
322
+ nav.site-nav.sticky {
323
+ align-self: start;
324
+ position: sticky;
325
+ }
326
+
327
+ nav.site-nav h2 {
328
+ margin-top: 0.1em;
329
+ display: none;
330
+ }
331
+
332
+ @media (max-width: 860px) {
333
+ nav.site-nav h2 {
334
+ display: block;
335
+ }
336
+
337
+ nav.site-nav {
338
+ grid-row: 2;
339
+ }
340
+ }
341
+
342
+ .site-nav li {
343
+ list-style: none;
344
+ }
345
+
346
+ .site-nav a {
347
+ text-indent: var(--marker-size);
348
+ width: calc(100% - 2rem);
349
+ display: inline-block;
350
+ padding: 0.5rem 1rem;
351
+ }
352
+
353
+ .site-nav li.has-children summary span {
354
+ text-indent: 0;
355
+ width: calc(100% - 2rem - var(--marker-size));
356
+ display: inline-block;
357
+ padding: 0.5rem 1rem;
358
+ text-decoration: underline;
359
+ }
360
+
361
+ .site-nav li.has-children ul a {
362
+ width: calc(100% - 2rem);
363
+ text-indent: calc(var(--marker-size) * 2);
364
+ }
365
+
366
+ .site-nav a[aria-current] {
367
+ font-weight: bold;
368
+ }
369
+
370
+ .site-nav details summary {
371
+ cursor: pointer;
372
+ }
373
+
374
+ .site-nav details summary::-webkit-details-marker,
375
+ .site-nav details summary::marker {
376
+ font-size: var(--marker-size);
377
+ width: 1em;
378
+ }
379
+
380
+ /* Alternative navigation example */
381
+
382
+ .site-nav-bar {
383
+ position: sticky;
384
+ top: 62px;
385
+ background-color: var(--aft-breadcrumb);
386
+ z-index: 10;
387
+ box-shadow: var(--box-shadow);
388
+ }
389
+
390
+ .site-nav-bar h2 {
391
+ display: none;
392
+ }
393
+
394
+ @media (max-width: 860px) {
395
+ .site-nav-bar h2 {
396
+ display: block;
397
+ }
398
+
399
+ .site-nav-bar {
400
+ display: none;
401
+ }
402
+ }
403
+
404
+ .site-nav-bar ul {
405
+ list-style: none;
406
+ text-align: center;
407
+ }
408
+
409
+ .site-nav-bar ul li {
410
+ display: inline-block;
411
+ margin: 0 1rem;
412
+ }
413
+
414
+ .site-nav-bar ul li a {
415
+ display: block;
416
+ padding: 0.3rem 0.5rem;
417
+ }
418
+
419
+ .overlay-menu .site-nav-bar li {
420
+ display: block;
421
+ margin: 0.3rem;
422
+ }
423
+
424
+ .overlay-menu .site-nav-bar {
425
+ display: block;
426
+ }
427
+
428
+ .overlay-menu a, .overlay-menu summary {
429
+ border-bottom: 1px solid var(--fore-link);
430
+ border-radius: var(--block-radius) var(--block-radius) 0 0;
431
+ }
432
+
433
+ /* Main content group */
434
+
435
+ .content-group {
436
+ display: grid;
437
+ grid-template-columns: var(--navigation-width) auto;
438
+ grid-template-rows: auto 1fr;
439
+ gap: var(--grid-gap);
440
+ grid-template-areas:
441
+ "top top"
442
+ "menu content";
443
+ max-width: var(--grid-max-width);
444
+ justify-items: center;
445
+ margin: 0 auto;
446
+ }
447
+
448
+ .content-group header {
449
+ grid-area: top;
450
+ text-align: center;
451
+ padding-bottom: var(--block-gap);
452
+ }
453
+
454
+ .content-group header p {
455
+ width: 60%;
456
+ margin: 0 auto;
457
+ font-size: 2em;
458
+ color: var(--fore-headings);
459
+ }
460
+
461
+ .content-group nav {
462
+ grid-area: menu;
463
+ width: 100%;
464
+ }
465
+
466
+ .content-group main,
467
+ .content-group article {
468
+ display: contents;
469
+ }
470
+
471
+ .content-group article > .page-content {
472
+ grid-area: content;
473
+ margin: 0;
474
+ max-width: calc(var(--grid-max-width) - var(--grid-gap) - var(--navigation-width));
475
+ }
476
+
477
+ @media (max-width: 860px) {
478
+ .content-group {
479
+ grid-template-columns: auto;
480
+ grid-template-rows: repeat(auto);
481
+ gap: var(--grid-gap);
482
+ grid-template-areas:
483
+ "top"
484
+ "content"
485
+ "menu";
486
+ }
487
+ }
488
+
489
+ /* Table of Contents (TOC) */
490
+
491
+ .page-toc {
492
+ background-color: var(--aft-block);
493
+ padding: 0 1rem;
494
+ margin: 0 0 var(--block-gap) 0;
495
+ border-radius: var(--block-radius);
496
+ }
497
+
498
+ .page-toc summary {
499
+ text-align: center;
500
+ }
501
+
502
+ .page-toc ol {
503
+ list-style: none;
504
+ padding-bottom: var(--block-gap);
505
+ margin: 1rem;
506
+ }
507
+
508
+ .page-toc li a {
509
+ display: block;
510
+ padding: 0.5rem 1rem;
511
+ }
512
+
513
+ .page-toc li.toc-lev-2 {
514
+ padding-left: 1rem;
515
+ }
516
+
517
+ .page-toc li.toc-lev-3 a {
518
+ padding-left: 2rem;
519
+ }
520
+
521
+ .page-toc li.toc-lev-4 a {
522
+ padding-left: 3rem;
523
+ }
524
+
525
+ .page-toc li.toc-lev-5 a {
526
+ padding-left: 4rem;
527
+ }
528
+
529
+ .page-toc li.toc-lev-6 a {
530
+ padding-left: 5rem;
531
+ }
532
+
533
+ /* Footer */
534
+
535
+ .site-footer {
536
+ text-align: center;
537
+ padding: 0.5rem 0;
538
+ width: 100%;
539
+ color: var(--fore-head);
540
+ background-color: var(--aft-head);
541
+ }
542
+
543
+ .site-footer a {
544
+ display: block;
545
+ padding: 0.5rem 1rem;
546
+ }
547
+
548
+ /* Footer columns */
549
+
550
+ .footer-columns {
551
+ display: grid;
552
+ grid-template-columns: repeat(auto-fit, minmax(18rem, 22rem));;
553
+ justify-content: center;
554
+ gap: var(--block-gap);
555
+ }
556
+
557
+ .footer-columns h2 {
558
+ margin: var(--paragraph-margin) auto;
559
+ }
560
+
561
+ .footer-columns ul {
562
+ list-style: none;
563
+ margin: var(--paragraph-margin) 0;
564
+ }
565
+
566
+ @media (max-width: 680px) {
567
+ .footer-columns {
568
+ display: block;
569
+ }
570
+ }
571
+
572
+ /* Overlay (Mobile Navigation, Search) */
573
+
574
+ .overlay {
575
+ position: fixed;
576
+ top: 0;
577
+ width: calc(100% - 2em);
578
+ height: calc(100% - 7rem);
579
+ max-height: 100vh;
580
+ background-color: var(--aft);
581
+ padding : 5rem 1em 2rem 1em;
582
+ overflow-y: auto;
583
+ z-index: 1;
584
+ }
585
+
586
+ /* Site Search */
587
+
588
+ form.site-search {
589
+ padding: 1em;
590
+ }
591
+
592
+ form.site-search div {
593
+ display: grid;
594
+ grid-template-columns: repeat(3, auto);
595
+ gap: 1em;
596
+ }
597
+
598
+ form.site-search label > * {
599
+ padding: 0.2em;
600
+ }
601
+
602
+ form.site-search button {
603
+ display: none;
604
+ }
605
+
606
+ .site-search-results {
607
+ font-size: 1.3rem;
608
+ }
609
+
610
+ .site-search-results a {
611
+ display: block;
612
+ padding: 0.2em;
613
+ }
614
+
615
+ .site-search-results .result-text {
616
+ font-size: 1rem;
617
+ }
618
+
619
+ .site-search-results .result-path {
620
+ font-size: 1rem;
621
+ font-family: var(--code-font);
622
+ }
623
+
624
+ @media (max-width: 860px) {
625
+ form.site-search div {
626
+ grid-template-columns: repeat(1, auto);
627
+ }
628
+ }
629
+
630
+ /* Articles */
631
+
632
+ .post-list {
633
+ margin: 0;
634
+ }
635
+
636
+ .post-list .list-item {
637
+ list-style: none;
638
+ color: var(--fore-block);
639
+ background-color: var(--aft-block);
640
+ position: relative;
641
+ box-shadow: var(--box-shadow);
642
+ margin-bottom: 1.5rem;
643
+ }
644
+
645
+ .post-list .list-item[data-image='true'] > article {
646
+ display: grid;
647
+ grid-template-columns: 1fr 1fr;
648
+ }
649
+
650
+ .post-list .list-item[data-image='false'] > article {
651
+ text-align: center ;
652
+ }
653
+
654
+ .post-list .list-item-content {
655
+ padding: 1rem;
656
+ display: grid;
657
+ grid-template-rows: auto 50px;
658
+ grid-gap: 1rem;
659
+ }
660
+
661
+ .post-list .list-item-content .post-meta {
662
+ font-size: 0.8rem;
663
+ text-align: left;
664
+ }
665
+
666
+ .post-list .list-item-content h2,
667
+ .post-list .list-item-content h3 {
668
+ margin: 0.5rem 0;
669
+ }
670
+
671
+ .post-list .list-item-image img {
672
+ width: 100%;
673
+ height: 100%;
674
+ object-fit: cover;
675
+ }
676
+
677
+ @media (max-width: 680px) {
678
+ /* This is deliberately 680, not 860 */
679
+ .post-list .list-item[data-image='true'] > article {
680
+ display: unset;
681
+ grid-template-columns: unset;
682
+ }
683
+
684
+ .post-list .list-item img {
685
+ max-height: 120px
686
+ }
687
+ }
688
+
689
+ /* Paging */
690
+
691
+ .post-paging {
692
+ margin-top: 2rem;
693
+ text-align: center;
694
+ }
695
+
696
+ .post-paging > * {
697
+ display: inline-block;
698
+ padding: 0.3rem;
699
+ }
700
+
701
+ .post-paging a[aria-current] {
702
+ text-decoration: none;
703
+ color: var(--fore);
704
+ }
705
+
706
+ .paging-collapse-before:before,
707
+ .paging-collapse-after:after {
708
+ top: 0.2em;
709
+ content: '...';
710
+ text-decoration: none;
711
+ color: var(--fore);
712
+ display: inline-block;
713
+ position: relative;
714
+ }
715
+
716
+ .paging-collapse-before:before {
717
+ padding-right: 0.6rem;
718
+ }
719
+
720
+ .paging-collapse-after:after {
721
+ padding-left: 0.6rem;
722
+ }
723
+
724
+ .post-meta {
725
+ display: flex;
726
+ align-items: center;
727
+ }
728
+
729
+ .post-meta .author-image {
730
+ width: 50px;
731
+ margin-right: 1rem;
732
+ aspect-ratio: 1/1;
733
+ object-fit: cover;
734
+ }
735
+
736
+ .post-meta > .author-info {
737
+ display: flex;
738
+ align-items: center;
739
+ }
740
+
741
+ .post-meta time[itemprop="datePublished"] {
742
+ display: inline-block;
743
+ }
744
+
745
+ .post-meta time[itemprop="dateModified"] {
746
+ font-style: italic;
747
+ display: block;
748
+ }
749
+
750
+ .post-taxonomy {
751
+ padding: 1rem 0;
752
+ margin: 1.5rem 0;
753
+ border-top: 1px dashed var(--fore);
754
+ text-align: right;
755
+ }
756
+
757
+ .post-taxonomy > div {
758
+ margin: 1rem 0;
759
+ }
760
+
761
+ .post-taxonomy h2 {
762
+ font-size: 1rem;
763
+ font-family: var(--content-font);
764
+ display: inline;
765
+ }
766
+
767
+ .post-taxonomy ul {
768
+ display: inline;
769
+ margin: 1rem 0;
770
+ list-style: none;
771
+ }
772
+
773
+ .post-taxonomy li {
774
+ display: inline;
775
+ margin-inline-end: 0.3em;
776
+ }
777
+
778
+ .post-taxonomy a {
779
+ display: inline-block;
780
+ color: var(--link-head);
781
+ background-color: var(--aft-head);
782
+ padding: 0.1em 0.7em;
783
+ }
784
+
785
+ .post-taxonomy a:hover,
786
+ .post-taxonomy a:focus {
787
+ background-color: var(--fore-link-alt);
788
+ color: var(--aft);
789
+ }
790
+
791
+ /* Authors */
792
+
793
+ .author-image {
794
+ border-radius: 50%;
795
+ aspect-ratio: 1/1;
796
+ object-fit: cover;
797
+ max-width: 150px;
798
+ float: right
799
+ }
800
+
801
+ /* Video */
802
+
803
+ .yt-video {
804
+ aspect-ratio: 4/3;
805
+ display: grid;
806
+ grid-template-rows: 3fr 1fr;
807
+ }
808
+
809
+ .yt-video > * {
810
+ align-items: center;
811
+ display: flex;
812
+ height: 100%;
813
+ justify-content: center;
814
+ width: 100%;
815
+ }
816
+
817
+ .yt-video .play-icon {
818
+ background-image: url(https://img.youtube.com/vi/VOWnhMxJMMk/0.jpg);
819
+ background-position: center;
820
+ background-size: cover;
821
+ border-radius: var(--block-radius);
822
+ box-shadow: var(--box-shadow);
823
+ color: var(--fore-link);
824
+ font-size: 5em;
825
+ }
826
+
827
+ .yt-video:hover .title, .yt-video:focus .title {
828
+ background-color: var(--funk);
829
+ }
830
+
831
+ .yt-iframe {
832
+ max-width: 100%;
833
+ margin: 0 auto;
834
+ display: block;
835
+ }
836
+
837
+ a[data-youtube] {
838
+ text-decoration: none;
839
+ }
840
+
841
+ /* Code Block */
842
+
843
+ code {
844
+ background-color: var(--aft-block);
845
+ font-family: var(--code-font);
846
+ font-weight: bold;
847
+ }
848
+
849
+ pre.astro-code {
850
+ border-left: 5px solid var(--fore-link-alt);
851
+ border-radius: var(--block-radius);
852
+ font-family: var(--code-font);
853
+ margin: 1em 0;
854
+ overflow: auto;
855
+ padding: 1rem;
856
+ }
857
+
858
+ pre.astro-code code {
859
+ font-weight: unset;
860
+ background-color: unset;
861
+ }
862
+
863
+ /* Helper icons */
864
+
865
+ .copy-container {
866
+ max-height: 0px;
867
+ margin: 0;
868
+ width: 100%;
869
+ text-align: right;
870
+ z-index: 1;
871
+ position: relative;
872
+ }
873
+
874
+ .copy-button {
875
+ border-radius: 0.2rem;
876
+ stroke: var(--aft);
877
+ fill: var(--fore-link-alt);
878
+ background-color: transparent;
879
+ }
880
+
881
+ .copy-button:hover,
882
+ .copy-button:focus {
883
+ fill: var(--fore-link);
884
+ transform: rotate(4deg);
885
+ }
886
+
887
+
888
+ .magnify-container {
889
+ max-height: 0px;
890
+ margin: 0;
891
+ width: 100%;
892
+ text-align: right;
893
+ z-index: 1;
894
+ position: relative;
895
+ top: -1rem;
896
+ }
897
+
898
+ .magnify-icon {
899
+ border-radius: 0.2rem;
900
+ stroke: var(--fore-link-alt);
901
+ fill: var(--aft);
902
+ background-color: transparent;
903
+ opacity: 0;
904
+ }
905
+
906
+ figure:hover .magnify-icon,
907
+ figure:focus .magnify-icon {
908
+ opacity: 1;
909
+ }
910
+
911
+ .magnify-icon:hover,
912
+ .magnify-icon:focus,
913
+ .magnify-icon:focus-within {
914
+ stroke: var(--fore-link);
915
+ transform: rotate(4deg);
916
+ opacity: 1;
917
+ }
918
+
919
+ @media (max-width: 860px) {
920
+ .magnify-icon {
921
+ opacity: 1;
922
+ }
923
+ }
924
+
925
+ /* Custom Divisions */
926
+
927
+ .note {
928
+ color: var(--fore-block);
929
+ background-color: var(--aft-block);
930
+ font-size: 1.3rem;
931
+ padding: 0.1px 1.2em;
932
+ position: relative;
933
+ box-shadow: var(--box-shadow);
934
+ }
935
+
936
+ .simple-grid {
937
+ display: grid;
938
+ grid-template-columns: 1fr 1fr;
939
+ grid-gap: 1rem;
940
+ }
941
+
942
+ .simple-grid > * > * {
943
+ width: 100%;
944
+ }
945
+
946
+ @media (max-width: 680px) {
947
+ .simple-grid {
948
+ display: block;
949
+ }
950
+ }
951
+
952
+ /* Animation */
953
+
954
+ @media (prefers-reduced-motion: no-preference) {
955
+ body, html {
956
+ scroll-behavior: smooth;
957
+ }
958
+
959
+ a {
960
+ transition: all 200ms ease-in-out;
961
+ }
962
+
963
+ .magnify-icon,
964
+ .copy-button,
965
+ .anim-show-parent > *,
966
+ .anim-show-parent img {
967
+ transition: all 0.3s ease-in;
968
+ transition-delay: 0.1s;
969
+ opacity: var(--shown, 1);
970
+ }
971
+ }
@@ -0,0 +1,84 @@
1
+ /* Recommended Tools
2
+ Check accessibility for colour combinations
3
+ https://toolness.github.io/accessible-color-matrix/
4
+ */
5
+
6
+ :root {
7
+ --fore: #333;
8
+ --fore-headings: #225;
9
+ --aft: #FBFBFC;
10
+
11
+ --fore-link: #2d4295;
12
+ --fore-link-alt: #4D71FF;
13
+ --aft-link-alt: #F3F5FF;
14
+
15
+ --fore-head: #333;
16
+ --aft-head: #E6E8F1;
17
+
18
+ --fore-breadcrumb: #333;
19
+ --aft-breadcrumb: #F3F5FF;
20
+
21
+ --link-head: #2d4295;
22
+ --link-alt-head: #2a4dd8;
23
+
24
+ --fore-block: #333;
25
+ --aft-block: #F3F5FF;
26
+ --icon-block: #4D71FF;
27
+
28
+ --fore-table-head: #FDFDFE;
29
+ --aft-table-head: #2F3141;
30
+ --fore-table-row-odd: #333;
31
+ --aft-table-row-odd: #FDFDFE;
32
+ --fore-table-row-even: #333;
33
+ --aft-table-row-even: #F3F5FF;
34
+
35
+ --heading-font: Georgia, 'Times New Roman', Times, serif;
36
+ --content-font: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
37
+ --code-font: Consolas, 'Courier New', Courier, monospace;
38
+
39
+ --block-gap: 2rem;
40
+ --block-radius: 0.3rem;
41
+
42
+ --marker-size: 1.2rem;
43
+ --paragraph-margin: 1.2rem;
44
+
45
+ --box-shadow: 0 12px 24px -12px rgb(0 0 0 / 80%);
46
+ --box-shadow-slight: 0 6px 12px -6px rgb(0 0 0 / 40%);
47
+
48
+ --navigation-width: 260px;
49
+ --grid-gap: 1rem;
50
+ --grid-max-width: 60rem;
51
+ --grid-width: 90vw;
52
+ }
53
+
54
+ @media (prefers-color-scheme: dark) {
55
+ :root {
56
+ --fore: #CCC;
57
+ --fore-headings: #CCE;
58
+ --aft: #333;
59
+
60
+ --fore-link: #abb9ef;
61
+ --fore-link-alt: #abb9ef;
62
+ --aft-link-alt: #232323;
63
+
64
+ --fore-head: #CCC;
65
+ --aft-head: #222;
66
+
67
+ --fore-breadcrumb: #CCC;
68
+ --aft-breadcrumb: #2C2C2C;
69
+
70
+ --link-head: #abb9ef;
71
+ --link-alt-head: #6580ed;
72
+
73
+ --fore-block: #CCC;
74
+ --aft-block: #111;
75
+ --icon-block: #abb9ef;
76
+
77
+ --fore-table-head: #CCC;
78
+ --aft-table-head: #222;
79
+ --fore-table-row-odd: #CCC;
80
+ --aft-table-row-odd: #333;
81
+ --fore-table-row-even: #CCC;
82
+ --aft-table-row-even: #444;
83
+ }
84
+ }