linus 1.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,265 @@
1
+ /* Quotes */
2
+ q {
3
+ quotes: "“" "”" "‘" "’";
4
+ }
5
+
6
+ blockquote {
7
+ padding-inline-start: 1lh;
8
+ border-left: 1px solid var(--color-border);
9
+ }
10
+
11
+ blockquote > *:not(:last-child) {
12
+ margin-bottom: var(--spacing);
13
+ }
14
+
15
+ cite {
16
+ font-style: italic;
17
+ }
18
+
19
+ /* Lists */
20
+
21
+ li {
22
+ margin-block: calc(var(--spacing) / 2)
23
+ }
24
+
25
+ ol ol {
26
+ list-style: lower-alpha;
27
+ }
28
+
29
+ .task-list {
30
+ list-style: none;
31
+ padding-inline-start: 0;
32
+ }
33
+
34
+ .task-list .task-list-item-checkbox {
35
+ margin-right: 0.5lh;
36
+ }
37
+
38
+ dl {
39
+ margin
40
+ }
41
+
42
+ dt {
43
+ font-weight: 700;
44
+ }
45
+
46
+ dd + dt {
47
+ margin-top: calc(var(--spacing) / 2);
48
+ }
49
+
50
+ /* Links */
51
+
52
+ a {
53
+ color: var(--color-link);
54
+ text-decoration-color: transparent;
55
+ transition-property: color, text-decoration-color, text-decoration-style;
56
+ transition-duration: var(--transition-duration);
57
+ transition-timing-function: ease;
58
+ }
59
+
60
+ a:hover,
61
+ a:focus {
62
+ color: var(--color-link-hover);
63
+ text-decoration: underline;
64
+ text-underline-offset: 0.2rem;
65
+ text-decoration-color: color-mix(in srgb, currentcolor, transparent 75%);
66
+ }
67
+
68
+ a:active {
69
+ text-decoration-thickness: 1px;
70
+ text-decoration-style: wavy;
71
+ }
72
+
73
+
74
+ /* Headings */
75
+
76
+ h1, h2, h3, h4, h5, h6 {
77
+ font-family: var(--font-headings);
78
+ font-weight: 400;
79
+ }
80
+
81
+ h1 {
82
+ font-size: 2em;
83
+ }
84
+
85
+ h2 {
86
+ font-size: 1.75em;
87
+ }
88
+
89
+ h3 {
90
+ font-size: 1.5em;
91
+ }
92
+
93
+ h4 {
94
+ font-size: 1.25em;
95
+ }
96
+
97
+ h5 {
98
+ font-size: 1em;
99
+ }
100
+
101
+ h6 {
102
+ font-size: .75em;
103
+ }
104
+
105
+ /* Inputs */
106
+
107
+ input[type="checkbox"],
108
+ inpit[type="radio"] {
109
+ accent-color: var(--color-support);
110
+ }
111
+
112
+ /* Buttons */
113
+ button,
114
+ input[type="button"],
115
+ input[type="reset"],
116
+ input[type="submit"],
117
+ .as-button {
118
+ display: inline-block;
119
+ padding: calc(var(--spacing) / 4) calc(var(--spacing) / 2);
120
+ background-color: var(--color-support);
121
+ border: 2px solid var(--color-border);
122
+ box-shadow: 5px 2px 0 var(--color-shadows);
123
+ color: var(--color-background) !important;
124
+ font-weight: 700;
125
+ text-decoration: none !important;
126
+ transition-property: background-color, box-shadow;
127
+ transition-duration: var(--transition-duration);
128
+ transition-timing-function: ease;
129
+
130
+ &:hover {
131
+ box-shadow: 4px 2px 0 var(--color-shadows-hover);
132
+ }
133
+
134
+ &:active {
135
+ box-shadow: 2px 2px 0 var(--color-shadows-hover);
136
+ }
137
+
138
+ ~ & {
139
+ border-collapse: collapse;
140
+ border-left: 0;
141
+ }
142
+
143
+ &:first-of-type {
144
+ border-top-left-radius: var(--spacing);
145
+ border-bottom-left-radius: var(--spacing);
146
+ }
147
+
148
+ &:last-of-type {
149
+ border-top-right-radius: var(--spacing);
150
+ border-bottom-right-radius: var(--spacing);
151
+ }
152
+ }
153
+
154
+ /* Misc elements */
155
+
156
+ abbr {
157
+ cursor: help;
158
+ text-decoration: underline;
159
+ text-decoration-style: dotted;
160
+ text-underline-offset: 0.2rem;
161
+ }
162
+
163
+ mark {
164
+ background-color: var(--color-support);
165
+ color: var(--color-background);
166
+ }
167
+
168
+ del, ins {
169
+ text-decoration-style: wavy;
170
+ text-decoration-color: var(--color-support);
171
+ }
172
+
173
+ /* Details */
174
+
175
+ details {
176
+ border: 1px solid var(--color-border);
177
+ border-radius: .3rem;
178
+ padding: calc(var(--spacing) / 2);
179
+ box-shadow: 1rem .5rem 0 var(--color-shadows);
180
+
181
+ summary + * {
182
+ border-top: 1px solid var(--color-border);
183
+ margin-top: calc(var(--spacing) / 2);
184
+ padding-top: calc(var(--spacing) / 2);
185
+ }
186
+ }
187
+
188
+ summary {
189
+ cursor: pointer;
190
+ font-weight: 700;
191
+ }
192
+
193
+ /* Media */
194
+
195
+ img, video, audio, iframe {
196
+ border-radius: .3rem;
197
+ box-shadow: 1rem .5rem 0 var(--color-shadows);
198
+ }
199
+
200
+ video, audio, iframe {
201
+ display: block;
202
+ }
203
+
204
+ iframe[src*="youtube"],
205
+ iframe[src*="vimeo"],
206
+ iframe[src*="twitch"] {
207
+ height: auto;
208
+ aspect-ratio: 16 / 9;
209
+ }
210
+
211
+ img + em,
212
+ figcaption {
213
+ display: block;
214
+ padding-inline-start: 0.5lh;
215
+ color: var(--color-shadows-hover);
216
+ font-size: 1.2rem;
217
+ }
218
+
219
+ /* Tables */
220
+
221
+ table {
222
+ border: 1px solid var(--color-shadows);
223
+ border-radius: .3rem;
224
+ border-collapse: collapse;
225
+ border-spacing: 0;
226
+ box-shadow: 1rem .5rem 0 var(--color-shadows);
227
+
228
+ td, th {
229
+ padding-block: calc(var(--spacing) / 2);
230
+ padding-inline: calc(var(--spacing) / 2);
231
+ }
232
+ }
233
+
234
+ /* Horizontal rule */
235
+ hr {
236
+ margin-block: calc(var(--spacing) * 2);
237
+ background: var(--color-border);
238
+ border: none;
239
+ height: 1px;
240
+ }
241
+
242
+ /* Footnotes */
243
+
244
+ .footnotes {
245
+ padding-top: var(--spacing);
246
+ margin-top: calc(var(--spacing) * 2);
247
+ border-top: 1px solid var(--color-shadows);
248
+ font-size: 1.2rem;
249
+ }
250
+
251
+ /* Pre-formatted text and code */
252
+
253
+ :not(pre) > code {
254
+ background-color: var(--color-shadows);
255
+ padding: .3rem;
256
+ border-radius: .3rem;
257
+ font-size: 1.2rem;
258
+ }
259
+
260
+ pre {
261
+ font-size: 1.2rem;
262
+ padding: calc(var(--spacing) / 2);
263
+ border-radius: .3rem;
264
+ box-shadow: 1rem .5rem 0 var(--color-shadows);
265
+ }
@@ -0,0 +1,35 @@
1
+ /*
2
+ You can add your custom fonts by replacing this file in your own website.
3
+ */
4
+
5
+ @font-face {
6
+ font-family: 'Atkinson Hyperlegible Next';
7
+ font-style: italic;
8
+ font-weight: 200 800;
9
+ font-display: swap;
10
+ src: url('/assets/fonts/next.woff2') format('woff2');
11
+ }
12
+
13
+ @font-face {
14
+ font-family: 'Atkinson Hyperlegible Next';
15
+ font-style: normal;
16
+ font-weight: 200 800;
17
+ font-display: swap;
18
+ src: url('/assets/fonts/next.woff2') format('woff2');
19
+ }
20
+
21
+ @font-face {
22
+ font-family: 'Atkinson Hyperlegible Mono';
23
+ font-style: italic;
24
+ font-weight: 200 800;
25
+ font-display: swap;
26
+ src: url('/assets/fonts/mono.woff2') format('woff2');
27
+ }
28
+
29
+ @font-face {
30
+ font-family: 'Atkinson Hyperlegible Mono';
31
+ font-style: normal;
32
+ font-weight: 200 800;
33
+ font-display: swap;
34
+ src: url('/assets/fonts/mono.woff2') format('woff2');
35
+ }
@@ -0,0 +1,360 @@
1
+
2
+
3
+ @layer reset {
4
+ /*
5
+ Theme Defaults
6
+ */
7
+ :root {
8
+ --font-headings: ui-serif, serif;
9
+ --font-body: ui-sans-serif, sans-serif;
10
+ --font-code: ui-monospace, monospace;
11
+
12
+ --text-size: 1.4rem;
13
+ --text-line-height: 1.65;
14
+ --spacing: 2rem;
15
+
16
+ --transition-duration: 250ms;
17
+
18
+ --site-width: 700px;
19
+ --content-width: 420px;
20
+ --headings-width: 480px;
21
+
22
+ --color-background: #F5EDD8;
23
+ --color-text: #3B2A1A;
24
+ --color-link: #2D5438;
25
+ --color-link-hover: #1E3826;
26
+ --color-support: #D9634E;
27
+ --color-shadows: color-mix(in srgb, var(--color-text), transparent 75%);
28
+ --color-shadows-hover: color-mix(in srgb, var(--color-text), transparent 50%);
29
+ --color-border: color-mix(in srgb, currentcolor, transparent 50%);
30
+ }
31
+
32
+ @media (prefers-color-scheme: dark) {
33
+ :root {
34
+ --color-background: #3B2A1A;
35
+ --color-text: #F5EDD8;
36
+ --color-link: #E8A054;
37
+ --color-link-hover: #F5C880;
38
+ --color-support: #D9634E;
39
+ }
40
+ }
41
+
42
+ html {
43
+ box-sizing: border-box;
44
+ color-scheme: light dark;
45
+ -webkit-font-smoothing: antialiased;
46
+ -webkit-text-size-adjust: 100%;
47
+ -webkit-font-feature-settings: "kern" 1;
48
+ -moz-font-feature-settings: "kern" 1;
49
+ -o-font-feature-settings: "kern" 1;
50
+ font-feature-settings: "kern" 1;
51
+ text-size-adjust: none;
52
+ hanging-punctuation: first allow-end last;
53
+ }
54
+
55
+ *,
56
+ *::before,
57
+ *::after {
58
+ box-sizing: inherit;
59
+ }
60
+
61
+ body, h1, h2, h3, h4, h5, h6,
62
+ p, blockquote, pre, hr,
63
+ dl, dd, ol, ul,
64
+ figure, picture, audio, video,
65
+ table, iframe {
66
+ margin: 0;
67
+ padding: 0;
68
+ }
69
+
70
+ img, video, audio, figure, picture,
71
+ table {
72
+ max-width: 100%;
73
+ }
74
+
75
+ iframe {
76
+ display: block;
77
+ }
78
+
79
+ h1,
80
+ h2,
81
+ h3,
82
+ h4,
83
+ h5,
84
+ h6 {
85
+ text-wrap: balance;
86
+ }
87
+
88
+ p {
89
+ text-wrap: pretty;
90
+ }
91
+
92
+ ul,
93
+ ol {
94
+ list-style-position: outside;
95
+ padding-inline-start: 1lh;
96
+ }
97
+
98
+ @media (prefers-reduced-motion) {
99
+ :root {
100
+ --transition-duration: 0 !important;
101
+ }
102
+ }
103
+
104
+
105
+ @media (prefers-reduced-motion: no-preference) {
106
+ html {
107
+ interpolate-size: allow-keywords;
108
+ }
109
+ }
110
+
111
+ input, button,
112
+ textarea, select {
113
+ font-family: inherit;
114
+ font-size: inherit;
115
+ }
116
+
117
+ :target {
118
+ scroll-margin-block: 5ex;
119
+ }
120
+ }
121
+
122
+
123
+ html {
124
+ font: 62.5%/100% var(--font-body);
125
+ }
126
+
127
+ body {
128
+ padding-inline: 5vw;
129
+ background-color: var(--color-background);
130
+ color: var(--color-text);
131
+ font-size: var(--text-size);
132
+ line-height: 1.5;
133
+ }
134
+
135
+ .site {
136
+ display: flex;
137
+ flex-flow: column nowrap;
138
+ max-width: var(--site-width);
139
+ margin-block: calc(var(--spacing) * 2);
140
+ margin-inline: auto;
141
+ }
142
+
143
+ /*
144
+ Site Header
145
+ */
146
+
147
+ .site-header {
148
+ display: flex;
149
+ flex-flow: row wrap;
150
+ align-items: center;
151
+ gap: var(--spacing);
152
+ margin-bottom: calc(var(--spacing) * 2);
153
+
154
+ .site-branding {
155
+ display: inline-flex;
156
+ flex-flow: row nowrap;
157
+ align-items: center;
158
+ gap: calc(var(--spacing) / 2);
159
+ line-height: 100%;
160
+ }
161
+
162
+ .site-logo {
163
+ max-height: 2.5rem;
164
+ width: auto;
165
+ border-radius: 100%;
166
+ box-shadow: none;
167
+ }
168
+
169
+ .site-name {
170
+ font-family: var(--font-headings);
171
+ font-weight: bolder;
172
+ font-style: italic;
173
+ }
174
+
175
+ .site-title {
176
+ display: block;
177
+ font-size: 2.5rem;
178
+ line-height: 1;
179
+ }
180
+ }
181
+
182
+ .site-menu {
183
+ display: inline-flex;
184
+ flex-flow: row wrap;
185
+ justify-items: flex-end;
186
+ gap: var(--spacing);
187
+ margin-left: auto;
188
+ }
189
+
190
+ .site-menu .menu-item {
191
+ flex-shrink: 0;
192
+ }
193
+
194
+ /*
195
+ Content
196
+ */
197
+
198
+ /* Categories */
199
+ .category {
200
+ display: inline-flex;
201
+ padding-inline: 8px;
202
+ border-radius: 3px;
203
+ box-shadow: 0.5rem 0.2rem 0 var(--color-shadows);
204
+ color: var(--color-text) !important;
205
+ font-size: var(--text-size);
206
+ line-height: 1.85;
207
+ text-decoration: none !important;
208
+ transition: box-shadow var(--transition-duration) ease;
209
+ }
210
+
211
+ @media (prefers-color-scheme: dark) {
212
+ .category {
213
+ color: var(--color-background) !important;
214
+ }
215
+ }
216
+
217
+ .category:hover,
218
+ .category:focus {
219
+ box-shadow: 0.4rem 0.2rem 0 var(--color-shadows-hover);
220
+ }
221
+
222
+ .category:active {
223
+ box-shadow: 0.1rem 0.1rem 0 var(--color-shadows-hover);
224
+ }
225
+
226
+ .blog-categories {
227
+ margin-bottom: calc(var(--spacing) * 2);
228
+ }
229
+
230
+ /* Archives */
231
+ .archive-title {
232
+ margin-bottom: calc(var(--spacing) * 2);
233
+ font-family: var(--font-headings);
234
+ }
235
+
236
+ .blog-pagination {
237
+ display: flex;
238
+ flex-flow: row nowrap;
239
+ max-width: var(--content-width);
240
+ margin-left: auto;
241
+ }
242
+
243
+ /*
244
+ Post
245
+ */
246
+
247
+ .post {
248
+ margin-bottom: calc(var(--spacing) * 4);
249
+ }
250
+
251
+ /* Header */
252
+ .post-header {
253
+ vertical-align: baseline;
254
+ margin-bottom: var(--spacing);
255
+ }
256
+
257
+ .post-header .post-permalink {
258
+ display: inline;
259
+ margin-right: calc(var(--spacing) / 4);
260
+ font-family: var(--font-headings);
261
+ color: color-mix(in srgb, var(--color-link), transparent 50%);
262
+ font-size: 2rem;
263
+ }
264
+
265
+ .post-header .post-permalink:hover,
266
+ .post-header .post-permalink:focus {
267
+ color: color-mix(in srgb, var(--color-link-hover), transparent 50%);
268
+ }
269
+
270
+ .post-title {
271
+ display: inline;
272
+ margin-block: 0;
273
+ font-family: var(--font-headings);
274
+ font-size: 2rem;
275
+ }
276
+
277
+ .post-header .category {
278
+ margin-left: calc(var(--spacing) / 4);
279
+ }
280
+
281
+ /* Content */
282
+ .post-content > * {
283
+ width: 100%;
284
+ max-width: var(--content-width);
285
+ margin-left: auto;
286
+ margin-bottom: var(--spacing);
287
+ }
288
+
289
+ .post-content > h1,
290
+ .post-content > h2,
291
+ .post-content > h3,
292
+ .post-content > h4,
293
+ .post-content > h5,
294
+ .post-content > h6 {
295
+ max-width: var(--headings-width);
296
+ }
297
+
298
+ .post-content a {
299
+ text-decoration-color: var(--color-border);
300
+ }
301
+
302
+ /* Post Footer */
303
+ .post-footer {
304
+ max-width: var(--content-width);
305
+ margin-left: auto;
306
+ margin-top: calc(var(--spacing) * 2);
307
+ font-size: 1.2rem;
308
+
309
+ &::before {
310
+ content: " ";
311
+ display: block;
312
+ height: 1px;
313
+ width: 3lh;
314
+ background-color: var(--color-border);
315
+ margin-bottom: var(--spacing);
316
+ }
317
+ }
318
+
319
+ .post-tags {
320
+ display: flex;
321
+ flex-flow: row wrap;
322
+ justify-content: flex-start;
323
+ padding-inline-start: 0;
324
+ gap: 1lh;
325
+ }
326
+
327
+ .post-tags .tag-item {
328
+ list-style: none;
329
+ padding: .2rem .5rem;
330
+ border-radius: .2rem;
331
+ background-color: var(--color-shadows);
332
+
333
+ &::before {
334
+ content: "#";
335
+ color: var(--color-shadows-hover);
336
+ }
337
+
338
+ a {
339
+ color: var(--color-text);
340
+ }
341
+ }
342
+
343
+ /*
344
+ Site Footer
345
+ */
346
+
347
+ .site-footer {
348
+ margin-top: calc(var(--spacing) * 4);
349
+ width: 100%;
350
+ max-width: 420px;
351
+ margin-left: auto;
352
+ }
353
+
354
+ .footer-menu {
355
+ display: flex;
356
+ flex-flow: column nowrap;
357
+ align-items: flex-start;
358
+ gap: calc(var(--spacing) / 2);
359
+ margin-top: var(--spacing);
360
+ }