@geekity/cms 0.10.0 → 0.11.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.
Files changed (64) hide show
  1. package/README.md +15 -3
  2. package/admin/components/fields.njk +55 -12
  3. package/admin/layouts/base.njk +5 -1
  4. package/admin/layouts/settings-page.njk +7 -2
  5. package/admin/layouts/shell.njk +1 -1
  6. package/admin/pages/account/forgot.njk +1 -1
  7. package/admin/pages/account/login.njk +1 -1
  8. package/admin/pages/account/reset.njk +4 -2
  9. package/admin/pages/account/setup.njk +1 -1
  10. package/admin/pages/dashboard/home.njk +1 -0
  11. package/admin/pages/documents/list.njk +1 -0
  12. package/admin/pages/documents/taxonomy.njk +1 -0
  13. package/admin/pages/federation/followers.njk +3 -0
  14. package/admin/pages/federation/settings.njk +5 -0
  15. package/admin/pages/media/library.njk +39 -0
  16. package/admin/pages/navigation/menus.njk +6 -1
  17. package/admin/pages/settings/discussion.njk +7 -0
  18. package/admin/pages/settings/email.njk +10 -0
  19. package/admin/pages/settings/general.njk +7 -0
  20. package/admin/pages/settings/permalinks.njk +6 -0
  21. package/admin/pages/settings/reading.njk +7 -0
  22. package/admin/pages/tools/content-index.njk +1 -0
  23. package/admin/pages/tools/personal-data.njk +5 -0
  24. package/admin/pages/users/edit.njk +7 -5
  25. package/admin/pages/users/list.njk +1 -0
  26. package/admin/pages/users/new.njk +5 -1
  27. package/admin/static/admin-bar.css +16 -0
  28. package/admin/static/admin.css +103 -3
  29. package/dist/admin/documents.d.ts.map +1 -1
  30. package/dist/admin/documents.js +18 -0
  31. package/dist/admin/documents.js.map +1 -1
  32. package/dist/admin/media.d.ts +13 -2
  33. package/dist/admin/media.d.ts.map +1 -1
  34. package/dist/admin/media.js +58 -3
  35. package/dist/admin/media.js.map +1 -1
  36. package/dist/admin/store.d.ts +1 -1
  37. package/dist/admin/store.d.ts.map +1 -1
  38. package/dist/admin/store.js +1 -1
  39. package/dist/admin/store.js.map +1 -1
  40. package/dist/admin/uploads.d.ts +5 -2
  41. package/dist/admin/uploads.d.ts.map +1 -1
  42. package/dist/admin/uploads.js +6 -2
  43. package/dist/admin/uploads.js.map +1 -1
  44. package/dist/config.d.ts +10 -0
  45. package/dist/config.d.ts.map +1 -1
  46. package/dist/config.js +1 -0
  47. package/dist/config.js.map +1 -1
  48. package/dist/federation/article.d.ts.map +1 -1
  49. package/dist/federation/article.js +37 -1
  50. package/dist/federation/article.js.map +1 -1
  51. package/dist/images/alt-text.d.ts +51 -0
  52. package/dist/images/alt-text.d.ts.map +1 -0
  53. package/dist/images/alt-text.js +113 -0
  54. package/dist/images/alt-text.js.map +1 -0
  55. package/dist/images/markup.d.ts +11 -0
  56. package/dist/images/markup.d.ts.map +1 -1
  57. package/dist/images/markup.js +12 -0
  58. package/dist/images/markup.js.map +1 -1
  59. package/package.json +8 -8
  60. package/themes/default/README.md +33 -0
  61. package/themes/default/layouts/post.njk +10 -1
  62. package/themes/default/partials/comment-form.njk +33 -14
  63. package/themes/default/partials/contact-form.njk +32 -14
  64. package/themes/default/static/style.css +109 -24
@@ -175,7 +175,11 @@ dd {
175
175
 
176
176
  /* HTML elements */
177
177
 
178
+ /* `scrollbar-gutter` keeps the scrollbar's room whether or not the page is
179
+ long enough to scroll, so moving from a short page to a long one does not
180
+ shift the column sideways. */
178
181
  html {
182
+ scrollbar-gutter: stable;
179
183
  font-size: var(--fontSize-root);
180
184
  line-height: var(--lineHeight-relaxed);
181
185
  -webkit-text-size-adjust: 100%;
@@ -245,6 +249,7 @@ h6 {
245
249
  font-weight: var(--fontWeight-bold);
246
250
  line-height: var(--lineHeight-tight);
247
251
  letter-spacing: -0.025em;
252
+ text-wrap: balance;
248
253
  }
249
254
 
250
255
  h1 {
@@ -329,6 +334,16 @@ a:focus-visible {
329
334
 
330
335
  /* Prose */
331
336
 
337
+ /* Prose wraps `pretty`, which keeps a paragraph from ending on one short word;
338
+ headings wrap `balance` above. A browser without either wraps as it always
339
+ did. */
340
+
341
+ p,
342
+ li,
343
+ dd {
344
+ text-wrap: pretty;
345
+ }
346
+
332
347
  p {
333
348
  margin: var(--spacing-0) var(--spacing-0) var(--spacing-4) var(--spacing-0);
334
349
  padding: var(--spacing-0);
@@ -337,10 +352,8 @@ p {
337
352
 
338
353
  ul,
339
354
  ol {
340
- margin-top: var(--spacing-0);
341
- margin-right: var(--spacing-0);
342
- margin-bottom: var(--spacing-8);
343
- margin-left: var(--spacing-4);
355
+ margin-block: var(--spacing-0) var(--spacing-8);
356
+ margin-inline: var(--spacing-4) var(--spacing-0);
344
357
  padding: var(--spacing-0);
345
358
  list-style-position: inside;
346
359
  list-style-image: none;
@@ -349,7 +362,7 @@ ol {
349
362
  ul li,
350
363
  ol li {
351
364
  margin-bottom: var(--spacing-0);
352
- padding-left: var(--spacing-0);
365
+ padding-inline-start: var(--spacing-0);
353
366
  }
354
367
 
355
368
  li > p {
@@ -361,7 +374,7 @@ li *:last-child {
361
374
  }
362
375
 
363
376
  details {
364
- margin-left: var(--spacing-4);
377
+ margin-inline-start: var(--spacing-4);
365
378
  }
366
379
 
367
380
  details summary {
@@ -380,14 +393,17 @@ details summary {
380
393
 
381
394
  .hlist li {
382
395
  margin: 0;
383
- padding: 0 0.5em 0 0;
396
+ padding: 0;
397
+ padding-inline-end: 0.5em;
384
398
  list-style-type: none;
385
399
  }
386
400
 
387
401
  blockquote {
388
- margin: var(--spacing-8) var(--spacing-8) var(--spacing-8) var(--spacing-0);
389
- padding: var(--spacing-0) var(--spacing-0) var(--spacing-0) var(--spacing-6);
390
- border-left: var(--spacing-1) solid var(--color-secondary);
402
+ margin-block: var(--spacing-8);
403
+ margin-inline: var(--spacing-0) var(--spacing-8);
404
+ padding: var(--spacing-0);
405
+ padding-inline-start: var(--spacing-6);
406
+ border-inline-start: var(--spacing-1) solid var(--color-secondary);
391
407
  color: var(--color-secondary);
392
408
  font-size: var(--fontSize-2);
393
409
  font-style: italic;
@@ -555,10 +571,8 @@ pre code {
555
571
  .hljs-addition,
556
572
  .hljs-deletion {
557
573
  display: block;
558
- margin-right: calc(-1 * var(--spacing-4));
559
- margin-left: calc(-1 * var(--spacing-4));
560
- padding-right: var(--spacing-4);
561
- padding-left: var(--spacing-4);
574
+ margin-inline: calc(-1 * var(--spacing-4));
575
+ padding-inline: var(--spacing-4);
562
576
  color: var(--color-code-text);
563
577
  text-decoration: none;
564
578
  }
@@ -590,8 +604,8 @@ pre code {
590
604
  display: block;
591
605
  width: auto;
592
606
  height: auto;
593
- top: var(--spacing-2);
594
- left: var(--spacing-2);
607
+ inset-block-start: var(--spacing-2);
608
+ inset-inline-start: var(--spacing-2);
595
609
  padding: var(--spacing-4);
596
610
  clip-path: none;
597
611
  background-color: var(--color-base-3);
@@ -719,7 +733,7 @@ pre code {
719
733
  .bio-avatar {
720
734
  display: inline-block;
721
735
  min-width: 55px;
722
- margin-right: var(--spacing-4);
736
+ margin-inline-end: var(--spacing-4);
723
737
  margin-bottom: var(--spacing-0);
724
738
  border: 3px solid var(--color-base-3);
725
739
  border-radius: 50%;
@@ -771,7 +785,7 @@ pre code {
771
785
 
772
786
  .post-categories a {
773
787
  display: inline-block;
774
- margin-right: var(--spacing-2);
788
+ margin-inline-end: var(--spacing-2);
775
789
  }
776
790
 
777
791
  /* The categories are already small; inside the meta line they would be small
@@ -1071,7 +1085,7 @@ pre code {
1071
1085
  }
1072
1086
 
1073
1087
  .comment-list .children {
1074
- margin-left: var(--spacing-8);
1088
+ margin-inline-start: var(--spacing-8);
1075
1089
  }
1076
1090
 
1077
1091
  .comment-body {
@@ -1225,6 +1239,19 @@ pre code {
1225
1239
  border-inline-start-color: var(--color-error);
1226
1240
  }
1227
1241
 
1242
+ /* A refused form's summary: what went wrong as its heading, then a link to
1243
+ each field to put right. */
1244
+ .comment-error h3,
1245
+ .contact-error h3 {
1246
+ margin: 0;
1247
+ font-size: var(--fontSize-1);
1248
+ }
1249
+
1250
+ .comment-error ul,
1251
+ .contact-error ul {
1252
+ margin: var(--spacing-1) 0 0;
1253
+ }
1254
+
1228
1255
  .comment-replying-to,
1229
1256
  .comment-signed-in {
1230
1257
  margin: 0 0 var(--spacing-4);
@@ -1251,6 +1278,40 @@ pre code {
1251
1278
  color: var(--color-error);
1252
1279
  }
1253
1280
 
1281
+ /* Target size. A link that stands on its own rather than inside a sentence,
1282
+ and every button, is at least 24 by 24 CSS pixels, the WCAG 2.2 AA minimum
1283
+ for something a finger or an unsteady pointer has to hit. A link inside a
1284
+ sentence is exempt and keeps the line it sits on. `inline-flex` grows the
1285
+ box without moving the text off the baseline it shares with its line. */
1286
+
1287
+ .site-nav a,
1288
+ .post-categories a,
1289
+ .blog-post-nav a,
1290
+ .pagination a,
1291
+ .comment-metadata a,
1292
+ .reply a,
1293
+ .comment-error a,
1294
+ .contact-error a {
1295
+ display: inline-flex;
1296
+ align-items: center;
1297
+ min-block-size: 24px;
1298
+ min-inline-size: 24px;
1299
+ }
1300
+
1301
+ .search-form button,
1302
+ .comment-respond .form-submit button,
1303
+ .comment-respond .form-submit input[type='submit'] {
1304
+ min-block-size: 24px;
1305
+ min-inline-size: 24px;
1306
+ }
1307
+
1308
+ .comment-respond input[type='checkbox'] {
1309
+ inline-size: 24px;
1310
+ block-size: 24px;
1311
+ margin: 0;
1312
+ vertical-align: middle;
1313
+ }
1314
+
1254
1315
  /*
1255
1316
  The honeypot. Taken out of the flow rather than `display: none`, because some
1256
1317
  form fillers skip fields a browser would not paint at all and this one is
@@ -1259,7 +1320,7 @@ pre code {
1259
1320
  .comment-trap,
1260
1321
  .contact-trap {
1261
1322
  position: absolute;
1262
- left: -10000px;
1323
+ inset-inline-start: -10000px;
1263
1324
  width: 1px;
1264
1325
  height: 1px;
1265
1326
  overflow: hidden;
@@ -1273,13 +1334,13 @@ pre code {
1273
1334
  }
1274
1335
 
1275
1336
  .bio-avatar {
1276
- margin-right: var(--spacing-0);
1337
+ margin-inline-end: var(--spacing-0);
1277
1338
  margin-bottom: var(--spacing-4);
1278
1339
  }
1279
1340
 
1280
1341
  blockquote {
1281
- margin-left: var(--spacing-0);
1282
- padding: var(--spacing-0) var(--spacing-0) var(--spacing-0) var(--spacing-4);
1342
+ margin-inline-start: var(--spacing-0);
1343
+ padding-inline-start: var(--spacing-4);
1283
1344
  }
1284
1345
 
1285
1346
  ul,
@@ -1288,6 +1349,30 @@ pre code {
1288
1349
  }
1289
1350
 
1290
1351
  .comment-list .children {
1291
- margin-left: var(--spacing-4);
1352
+ margin-inline-start: var(--spacing-4);
1353
+ }
1354
+ }
1355
+
1356
+ /* Forced colours: Windows High Contrast and the like, where the reader's own
1357
+ palette replaces every colour here. Borders and outlines survive that and
1358
+ backgrounds do not, so anything drawn by a background alone takes a border
1359
+ in a system colour: the buttons, which are otherwise a block of the primary
1360
+ colour, the rule, which is a 1px background, and a block of code. Focus
1361
+ needs nothing: every ring here is an outline, which the forced palette
1362
+ redraws in its own colour. */
1363
+
1364
+ @media (forced-colors: active) {
1365
+ .search-form button,
1366
+ .comment-respond .form-submit button,
1367
+ .comment-respond .form-submit input[type='submit'] {
1368
+ border: 1px solid ButtonText;
1369
+ }
1370
+
1371
+ hr {
1372
+ border-block-start: 1px solid CanvasText;
1373
+ }
1374
+
1375
+ pre {
1376
+ border: 1px solid CanvasText;
1292
1377
  }
1293
1378
  }