ghost 5.0.2 → 5.2.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 (58) hide show
  1. package/content/themes/casper/assets/built/screen.css +1 -1
  2. package/content/themes/casper/assets/built/screen.css.map +1 -1
  3. package/content/themes/casper/assets/css/screen.css +303 -35
  4. package/content/themes/casper/default.hbs +17 -7
  5. package/content/themes/casper/package.json +3 -2
  6. package/content/themes/casper/partials/icons/facebook.hbs +1 -1
  7. package/content/themes/casper/partials/icons/fire.hbs +3 -0
  8. package/content/themes/casper/partials/icons/lock.hbs +5 -0
  9. package/content/themes/casper/partials/icons/twitter.hbs +1 -1
  10. package/content/themes/casper/partials/post-card.hbs +48 -19
  11. package/content/themes/casper/post.hbs +20 -9
  12. package/core/built/assets/{chunk.3.52b444495dfcf50afb0b.js → chunk.3.dc389a0f93cb5fabd695.js} +19 -19
  13. package/core/built/assets/{ghost-dark-b6e3268bcae976a8675b0d9ae54540f2.css → ghost-dark-728b7c86791572db8e9126a77b2b7984.css} +1 -1
  14. package/core/built/assets/{ghost.min-b37a2752b0abda202c14c948b8bc3587.js → ghost.min-0643f338c882395ac93439fda1a36df8.js} +224 -223
  15. package/core/built/assets/{ghost.min-a40c7b301c702bd84c2fae19366ab5d7.css → ghost.min-f108dfe5d3861a2e1f0d704624261783.css} +1 -1
  16. package/core/built/assets/img/themes/Casper-19b7267aac5acc6abfaaed7e41eddae8.jpg +0 -0
  17. package/core/built/assets/{vendor.min-2bca41946dea27dc292428db605d466d.js → vendor.min-ea369e6487643585f35409d474b06789.js} +77 -94
  18. package/core/frontend/helpers/tiers.js +1 -16
  19. package/core/frontend/services/rendering/context.js +0 -3
  20. package/core/frontend/services/rendering/format-response.js +5 -1
  21. package/core/frontend/services/routing/controllers/static.js +4 -1
  22. package/core/frontend/services/routing/controllers/unsubscribe.js +10 -34
  23. package/core/frontend/web/middleware/handle-image-sizes.js +50 -10
  24. package/core/frontend/web/middleware/serve-favicon.js +3 -18
  25. package/core/server/api/canary/utils/serializers/output/mappers/posts.js +1 -4
  26. package/core/server/api/canary/utils/serializers/output/members.js +11 -14
  27. package/core/server/api/canary/utils/serializers/output/settings.js +13 -0
  28. package/core/server/api/canary/utils/validators/input/images.js +32 -18
  29. package/core/server/api/canary/utils/validators/input/settings.js +6 -0
  30. package/core/server/data/db/connection.js +13 -0
  31. package/core/server/lib/image/blog-icon.js +51 -27
  32. package/core/server/lib/mobiledoc.js +1 -1
  33. package/core/server/models/base/bookshelf.js +2 -0
  34. package/core/server/models/base/plugins/data-manipulation.js +1 -0
  35. package/core/server/models/base/plugins/relations.js +30 -0
  36. package/core/server/models/member.js +0 -12
  37. package/core/server/models/post.js +7 -4
  38. package/core/server/models/relations/authors.js +0 -19
  39. package/core/server/models/user.js +31 -3
  40. package/core/server/services/bulk-email/bulk-email-processor.js +1 -1
  41. package/core/server/services/invites/invites.js +1 -0
  42. package/core/server/services/mega/email-preview.js +1 -1
  43. package/core/server/services/mega/mega.js +7 -61
  44. package/core/server/services/members/utils.js +1 -3
  45. package/core/server/services/webhooks/webhooks-service.js +1 -1
  46. package/core/server/web/admin/views/default-prod.html +4 -4
  47. package/core/server/web/admin/views/default.html +4 -4
  48. package/core/server/web/api/canary/admin/app.js +2 -2
  49. package/core/server/web/api/canary/content/app.js +1 -1
  50. package/core/server/web/api/middleware/normalize-image.js +1 -1
  51. package/core/server/web/members/app.js +3 -3
  52. package/core/shared/config/defaults.json +2 -2
  53. package/core/shared/config/overrides.json +5 -2
  54. package/core/shared/config/utils.js +0 -9
  55. package/core/shared/labs.js +2 -13
  56. package/package.json +53 -53
  57. package/yarn.lock +573 -600
  58. package/core/built/assets/img/themes/Casper-c7e784d7188cc5d7f097d9b6c97b0263.jpg +0 -0
@@ -117,13 +117,13 @@ production stylesheet in assets/built/screen.css
117
117
  color: var(--color-darkgrey);
118
118
  }
119
119
 
120
- .has-cover-image .site-header-content {
120
+ .has-cover .site-header-content {
121
121
  min-height: 560px;
122
122
  background-color: var(--ghost-accent-color);
123
123
  color: #fff;
124
124
  }
125
125
 
126
- body:not(.has-cover-image) .site-header-content:not(.left-aligned) {
126
+ body:not(.has-cover) .site-header-content:not(.left-aligned) {
127
127
  padding-bottom: max(4.8vmin, 24px);
128
128
  }
129
129
 
@@ -132,7 +132,7 @@ body:not(.has-cover-image) .site-header-content:not(.left-aligned) {
132
132
  text-align: left;
133
133
  }
134
134
 
135
- .has-cover-image .site-header-content.left-aligned {
135
+ .has-cover .site-header-content.left-aligned {
136
136
  align-items: flex-end;
137
137
  padding-bottom: 6.4vmin;
138
138
  }
@@ -173,7 +173,7 @@ body:not(.has-cover-image) .site-header-content:not(.left-aligned) {
173
173
  font-family: var(--font-serif);
174
174
  }
175
175
 
176
- .has-cover-image .site-title {
176
+ .has-cover .site-title {
177
177
  font-size: 6rem;
178
178
  }
179
179
 
@@ -181,7 +181,7 @@ body:not(.has-cover-image) .site-header-content:not(.left-aligned) {
181
181
  font-size: 4.4rem;
182
182
  }
183
183
 
184
- .has-cover-image .site-header-content.left-aligned .site-title {
184
+ .has-cover .site-header-content.left-aligned .site-title {
185
185
  font-size: 4.6rem;
186
186
  }
187
187
 
@@ -208,22 +208,22 @@ body:not(.has-cover-image) .site-header-content:not(.left-aligned) {
208
208
  color: var(--color-secondary-text);
209
209
  }
210
210
 
211
- .has-cover-image .site-description {
211
+ .has-cover .site-description {
212
212
  font-size: 3.2rem;
213
213
  letter-spacing: -0.005em;
214
214
  color: #fff;
215
215
  }
216
216
 
217
- .has-cover-image :is(.site-logo, .site-title) + .site-description {
217
+ .has-cover :is(.site-logo, .site-title) + .site-description {
218
218
  font-size: 2.4rem;
219
219
  }
220
220
 
221
- .has-cover-image .site-header-content.left-aligned :is(.site-logo, .site-title) + .site-description {
221
+ .has-cover .site-header-content.left-aligned :is(.site-logo, .site-title) + .site-description {
222
222
  font-size: 2.2rem;
223
223
  }
224
224
 
225
225
  @media (max-width: 767px) {
226
- .has-cover-image .site-header-content {
226
+ .has-cover .site-header-content {
227
227
  padding-bottom: 36px;
228
228
  min-height: 240px;
229
229
  }
@@ -259,12 +259,12 @@ body:not(.has-cover-image) .site-header-content:not(.left-aligned) {
259
259
  background-color: #fff;
260
260
  }
261
261
 
262
- .has-cover-image:not(.home-template) .gh-head {
262
+ .has-cover:not(.home-template) .gh-head {
263
263
  background-color: var(--ghost-accent-color);
264
264
  color: #fff;
265
265
  }
266
266
 
267
- .home-template.has-cover-image .gh-head {
267
+ .home-template.has-cover .gh-head {
268
268
  position: absolute;
269
269
  top: 0;
270
270
  right: 0;
@@ -309,7 +309,7 @@ body:not(.has-cover-image) .site-header-content:not(.left-aligned) {
309
309
  margin-top: -2px;
310
310
  }
311
311
 
312
- .has-cover-image .gh-head-logo {
312
+ .has-cover .gh-head-logo {
313
313
  color: #fff;
314
314
  }
315
315
 
@@ -357,14 +357,39 @@ body:not(.has-cover-image) .site-header-content:not(.left-aligned) {
357
357
  color: inherit;
358
358
  }
359
359
 
360
+ .gh-head-menu .nav a:hover {
361
+ opacity: 0.9;
362
+ }
363
+
360
364
 
361
365
  /* Secondary Navigation
362
366
  /* ---------------------------------------------------------- */
363
367
 
368
+ .gh-social {
369
+ display: flex;
370
+ align-items: center;
371
+ gap: 16px;
372
+ }
373
+
374
+ .gh-social-link {
375
+ line-height: 0;
376
+ color: #fff;
377
+ }
378
+
379
+ .gh-social-link:hover {
380
+ opacity: 0.9;
381
+ }
382
+
383
+ .gh-social-link svg {
384
+ width: 18px;
385
+ height: 18px;
386
+ }
387
+
364
388
  .gh-head-actions {
365
389
  display: flex;
366
390
  justify-content: flex-end;
367
391
  align-items: center;
392
+ gap: 24px;
368
393
  list-style: none;
369
394
  text-align: right;
370
395
  }
@@ -382,7 +407,7 @@ body:not(.has-cover-image) .site-header-content:not(.left-aligned) {
382
407
  background: var(--ghost-accent-color);
383
408
  }
384
409
 
385
- .has-cover-image .gh-head-button {
410
+ .has-cover .gh-head-button {
386
411
  color: var(--color-darkgrey);
387
412
  background: #fff;
388
413
  }
@@ -406,7 +431,7 @@ body:not(.has-cover-image) .site-header-content:not(.left-aligned) {
406
431
  height: 33px;
407
432
  }
408
433
 
409
- .has-cover-image .gh-burger-box {
434
+ .has-cover .gh-burger-box {
410
435
  color: #fff;
411
436
  }
412
437
 
@@ -524,13 +549,11 @@ body:not(.gh-head-open) .gh-burger:hover .gh-burger-inner::after {
524
549
  font-weight: 500;
525
550
  }
526
551
  #gh-head .gh-head-actions {
527
- padding: 20px 0;
552
+ flex-direction: column-reverse;
528
553
  justify-content: center;
554
+ padding: 20px 0 32px;
529
555
  text-align: left;
530
556
  }
531
- #gh-head .gh-head-actions a {
532
- margin: 0 10px;
533
- }
534
557
  /* Hide collapsed content */
535
558
  #gh-head .gh-head-actions,
536
559
  #gh-head .gh-head-menu {
@@ -565,7 +588,7 @@ body:not(.gh-head-open) .gh-burger:hover .gh-burger-inner::after {
565
588
  }
566
589
  }
567
590
 
568
- .has-cover-image.gh-head-open .gh-head {
591
+ .has-cover.gh-head-open .gh-head {
569
592
  background: var(--ghost-accent-color);
570
593
  }
571
594
 
@@ -609,6 +632,7 @@ body:not(.gh-head-open) .gh-burger:hover .gh-burger-inner::after {
609
632
 
610
633
  .post-card-image-link {
611
634
  position: relative;
635
+ overflow: hidden;
612
636
  display: block;
613
637
  margin-bottom: 32px;
614
638
  }
@@ -619,7 +643,18 @@ body:not(.gh-head-open) .gh-burger:hover .gh-burger-inner::after {
619
643
  padding-bottom: 55%;
620
644
  }
621
645
 
622
- .post-card.keep-ratio:not(.post-card-large):not(.post-card-full) .post-card-image-link::after {
646
+ .post-card[class*="post-access-"]:not(.post-access-public) .post-card-image-link::after {
647
+ background-color: rgba(0, 0, 0, 0.5);
648
+ backdrop-filter: blur(3px);
649
+ }
650
+
651
+ .post-card.keep-ratio[class*="post-access-"]:not(.post-access-public) .post-card-image-link::after {
652
+ position: absolute;
653
+ inset: 0;
654
+ padding-bottom: 0;
655
+ }
656
+
657
+ .post-card.keep-ratio.post-access-public:not(.post-card-large):not(.post-card-full) .post-card-image-link::after {
623
658
  display: none;
624
659
  }
625
660
 
@@ -636,6 +671,19 @@ body:not(.gh-head-open) .gh-burger:hover .gh-burger-inner::after {
636
671
  position: static;
637
672
  }
638
673
 
674
+ .post-card-access {
675
+ position: absolute;
676
+ inset: 0;
677
+ z-index: 10;
678
+ display: flex;
679
+ align-items: center;
680
+ justify-content: center;
681
+ gap: 4px;
682
+ font-size: 1.5rem;
683
+ font-weight: 600;
684
+ color: #fff;
685
+ }
686
+
639
687
  .post-card-content-link {
640
688
  position: relative;
641
689
  display: block;
@@ -654,7 +702,10 @@ body:not(.gh-head-open) .gh-burger:hover .gh-burger-inner::after {
654
702
  margin-top: 0;
655
703
  }
656
704
 
657
- .post-card-primary-tag {
705
+ .post-card-tags {
706
+ display: flex;
707
+ align-items: center;
708
+ gap: 12px;
658
709
  margin: 0 0 10px;
659
710
  color: var(--color-secondary-text);
660
711
  font-size: 1.4rem;
@@ -663,12 +714,30 @@ body:not(.gh-head-open) .gh-burger:hover .gh-burger-inner::after {
663
714
  line-height: 1;
664
715
  }
665
716
 
717
+ .post-card-featured {
718
+ position: relative;
719
+ display: flex;
720
+ align-items: center;
721
+ gap: 3px;
722
+ padding-left: 18px;
723
+ color: var(--ghost-accent-color);
724
+ }
725
+
726
+ .post-card-featured svg {
727
+ position: absolute;
728
+ left: 0;
729
+ }
730
+
666
731
  .post-card-title {
667
732
  margin: 0;
668
733
  font-size: 2.6rem;
669
734
  font-weight: 800;
670
735
  }
671
736
 
737
+ .post-card-content-link:hover .post-card-title {
738
+ opacity: 0.9;
739
+ }
740
+
672
741
  .no-image .post-card-title {
673
742
  margin-top: 0;
674
743
  }
@@ -678,6 +747,11 @@ body:not(.gh-head-open) .gh-burger:hover .gh-burger-inner::after {
678
747
  letter-spacing: -0.005em;
679
748
  }
680
749
 
750
+ .post-card-title svg {
751
+ margin-top: -3px;
752
+ margin-left: -1px;
753
+ }
754
+
681
755
  .post-card-content {
682
756
  flex-grow: 1;
683
757
  display: flex;
@@ -788,7 +862,7 @@ make sure this only happens on large viewports / desktop-ish devices.
788
862
  height: 100%;
789
863
  }
790
864
 
791
- .post-card-large .post-card-primary-tag {
865
+ .post-card-large .post-card-tags {
792
866
  margin-bottom: 12px;
793
867
  }
794
868
 
@@ -810,7 +884,7 @@ make sure this only happens on large viewports / desktop-ish devices.
810
884
  margin-bottom: 40px;
811
885
  }
812
886
 
813
- .post-card-full .post-card-primary-tag {
887
+ .post-card-full .post-card-tags {
814
888
  margin-bottom: 14px;
815
889
  }
816
890
 
@@ -936,7 +1010,7 @@ use it for applying any other styles. */
936
1010
  [wide-start]
937
1011
  minmax(auto, 240px)
938
1012
  [main-start]
939
- min(720px, calc(100% - 8vw))
1013
+ min(720px, calc(100% - max(8vmin, 40px)))
940
1014
  [main-end]
941
1015
  minmax(auto, 240px)
942
1016
  [wide-end]
@@ -1273,10 +1347,9 @@ iframe.instagram-media + script + :not([id]) {
1273
1347
  }
1274
1348
 
1275
1349
  /* Tables */
1276
- .post-full-content table {
1350
+ .gh-content table {
1277
1351
  display: inline-block;
1278
1352
  overflow-x: auto;
1279
- margin: 0.5em 0 2.5em;
1280
1353
  max-width: 100%;
1281
1354
  width: auto;
1282
1355
  border-spacing: 0;
@@ -1287,7 +1360,7 @@ iframe.instagram-media + script + :not([id]) {
1287
1360
  vertical-align: top;
1288
1361
  }
1289
1362
 
1290
- .post-full-content table {
1363
+ .gh-content table {
1291
1364
  -webkit-overflow-scrolling: touch;
1292
1365
  background: radial-gradient(ellipse at left, rgba(0, 0, 0, 0.2) 0%, rgba(0, 0, 0, 0) 75%) 0 center, radial-gradient(ellipse at right, rgba(0, 0, 0, 0.2) 0%, rgba(0, 0, 0, 0) 75%) 100% center;
1293
1366
  background-attachment: scroll, scroll;
@@ -1295,20 +1368,20 @@ iframe.instagram-media + script + :not([id]) {
1295
1368
  background-repeat: no-repeat;
1296
1369
  }
1297
1370
 
1298
- .post-full-content table td:first-child {
1371
+ .gh-content table td:first-child {
1299
1372
  background-image: linear-gradient(to right, rgba(255,255,255, 1) 50%, rgba(255,255,255, 0) 100%);
1300
1373
  background-size: 20px 100%;
1301
1374
  background-repeat: no-repeat;
1302
1375
  }
1303
1376
 
1304
- .post-full-content table td:last-child {
1377
+ .gh-content table td:last-child {
1305
1378
  background-image: linear-gradient(to left, rgba(255,255,255, 1) 50%, rgba(255,255,255, 0) 100%);
1306
1379
  background-position: 100% 0;
1307
1380
  background-size: 20px 100%;
1308
1381
  background-repeat: no-repeat;
1309
1382
  }
1310
1383
 
1311
- .post-full-content table th {
1384
+ .gh-content table th {
1312
1385
  color: var(--color-darkgrey);
1313
1386
  font-size: 1.2rem;
1314
1387
  font-weight: 700;
@@ -1318,8 +1391,8 @@ iframe.instagram-media + script + :not([id]) {
1318
1391
  background-color: color-mod(var(--color-wash) l(+4%));
1319
1392
  }
1320
1393
 
1321
- .post-full-content table th,
1322
- .post-full-content table td {
1394
+ .gh-content table th,
1395
+ .gh-content table td {
1323
1396
  padding: 6px 12px;
1324
1397
  border: color-mod(var(--color-wash) l(-1%) s(-5%)) 1px solid;
1325
1398
  }
@@ -1355,6 +1428,7 @@ iframe.instagram-media + script + :not([id]) {
1355
1428
  margin: 0 0 6px;
1356
1429
  font-size: 1.7rem;
1357
1430
  font-weight: 700;
1431
+ letter-spacing: 0;
1358
1432
  }
1359
1433
 
1360
1434
  .article-byline-meta .bull {
@@ -1441,6 +1515,10 @@ iframe.instagram-media + script + :not([id]) {
1441
1515
  /* ---------------------------------------------------------- */
1442
1516
 
1443
1517
  .read-more-wrap {
1518
+ margin-top: 2.4vmin;
1519
+ }
1520
+
1521
+ .footer-cta + .read-more-wrap {
1444
1522
  margin-top: max(12vmin, 72px);
1445
1523
  }
1446
1524
 
@@ -1450,6 +1528,10 @@ iframe.instagram-media + script + :not([id]) {
1450
1528
  grid-gap: 4vmin;
1451
1529
  }
1452
1530
 
1531
+ .read-more .post-card-tags {
1532
+ display: none;
1533
+ }
1534
+
1453
1535
  @media (max-width: 1000px) {
1454
1536
  .read-more {
1455
1537
  grid-template-columns: repeat(4, 1fr);
@@ -1714,10 +1796,14 @@ html.dark-mode .post-card-image {
1714
1796
  background: var(--color-darkmode);
1715
1797
  }
1716
1798
 
1717
- html.dark-mode :is(.post-card-primary-tag, .post-card-meta, .article-tag a, .byline-meta-content) {
1799
+ html.dark-mode :is(.post-card-tags, .post-card-meta, .article-tag a, .byline-meta-content) {
1718
1800
  color: color-mod(var(--color-secondary-text) l(-22%));
1719
1801
  }
1720
1802
 
1803
+ html.dark-mode .post-card-featured {
1804
+ color: #fff;
1805
+ }
1806
+
1721
1807
  html.dark-mode .post-card-title {
1722
1808
  color: #fff;
1723
1809
  }
@@ -1738,8 +1824,17 @@ html.dark-mode .post-full-image {
1738
1824
  background-color: color-mod(var(--color-darkmode) l(+8%));
1739
1825
  }
1740
1826
 
1741
- html.dark-mode .article-byline {
1742
- border-top-color: color-mod(var(--color-darkmode) l(+15%));
1827
+ html.dark-mode .author-avatar {
1828
+ border-color: var(--color-darkmode);
1829
+ background-color: color-mod(var(--color-darkmode) l(+8%));
1830
+ }
1831
+
1832
+ html.dark-mode .author-profile-image {
1833
+ opacity: 1;
1834
+ }
1835
+
1836
+ html.dark-mode .author-profile-image path {
1837
+ fill: var(--color-darkmode);
1743
1838
  }
1744
1839
 
1745
1840
  html.dark-mode .article-byline-meta .author-name a {
@@ -1838,6 +1933,179 @@ html.dark-mode .footer-cta-title {
1838
1933
  color: #fff;
1839
1934
  }
1840
1935
 
1936
+ @media (prefers-color-scheme: dark) {
1937
+ html.auto-color body {
1938
+ color: rgba(255, 255, 255, 0.75);
1939
+ background: var(--color-darkmode);
1940
+ }
1941
+
1942
+ html.auto-color img {
1943
+ opacity: 0.9;
1944
+ }
1945
+
1946
+ html.auto-color kbd {
1947
+ background: color-mod(var(--color-darkmode) l(+5%));
1948
+ }
1949
+
1950
+ html.auto-color figcaption a {
1951
+ color: #fff;
1952
+ }
1953
+
1954
+ html.auto-color .gh-head {
1955
+ background: var(--color-darkmode);
1956
+ color: #fff;
1957
+ }
1958
+
1959
+ html.auto-color .gh-burger-box {
1960
+ color: #fff;
1961
+ }
1962
+
1963
+ html.auto-color .site-header-content {
1964
+ color: #fff;
1965
+ }
1966
+
1967
+ html.auto-color .post-card-image {
1968
+ background: var(--color-darkmode);
1969
+ }
1970
+
1971
+ html.auto-color :is(.post-card-tags, .post-card-meta, .article-tag a, .byline-meta-content) {
1972
+ color: color-mod(var(--color-secondary-text) l(-22%));
1973
+ }
1974
+
1975
+ html.auto-color .post-card-featured {
1976
+ color: #fff;
1977
+ }
1978
+
1979
+ html.auto-color .post-card-title {
1980
+ color: #fff;
1981
+ }
1982
+
1983
+ html.auto-color .post-card-excerpt {
1984
+ color: var(--color-secondary-text);
1985
+ }
1986
+
1987
+ html.auto-color .article-title {
1988
+ color: #fff;
1989
+ }
1990
+
1991
+ html.auto-color .article-excerpt {
1992
+ color: var(--color-secondary-text);
1993
+ }
1994
+
1995
+ html.auto-color .post-full-image {
1996
+ background-color: color-mod(var(--color-darkmode) l(+8%));
1997
+ }
1998
+
1999
+ html.auto-color .author-avatar {
2000
+ border-color: var(--color-darkmode);
2001
+ background-color: color-mod(var(--color-darkmode) l(+8%));
2002
+ }
2003
+
2004
+ html.auto-color .author-profile-image {
2005
+ opacity: 1;
2006
+ }
2007
+
2008
+ html.auto-color .author-profile-image path {
2009
+ fill: var(--color-darkmode);
2010
+ }
2011
+
2012
+ html.auto-color .article-byline-meta .author-name a {
2013
+ color: #fff;
2014
+ }
2015
+
2016
+ html.auto-color .no-image .author-social-link a {
2017
+ color: rgba(255, 255, 255, 0.75);
2018
+ }
2019
+
2020
+ html.auto-color .gh-content > [id] {
2021
+ color: rgba(255, 255, 255, 0.9);
2022
+ }
2023
+
2024
+ html.auto-color .gh-content pre {
2025
+ background: color-mod(var(--color-darkgrey) l(-8%));
2026
+ }
2027
+
2028
+ html.auto-color .gh-content :not(pre) > code {
2029
+ background: color-mod(var(--color-darkgrey) l(+6%));
2030
+ border-color: color-mod(var(--color-darkmode) l(+8%));
2031
+ color: var(--color-wash);
2032
+ }
2033
+
2034
+ html.auto-color .gh-content a:not(.kg-btn):not(.kg-nft-card-container):not(.kg-product-card-button):not(.kg-header-card-button) {
2035
+ color: #fff;
2036
+ }
2037
+
2038
+ html.auto-color .gh-content strong {
2039
+ color: #fff;
2040
+ }
2041
+
2042
+ html.auto-color .gh-content em {
2043
+ color: #fff;
2044
+ }
2045
+
2046
+ html.auto-color .gh-content code {
2047
+ color: #fff;
2048
+ background: #000;
2049
+ }
2050
+
2051
+ html.auto-color hr {
2052
+ border-top-color: color-mod(var(--color-darkmode) l(+8%));
2053
+ }
2054
+
2055
+ html.auto-color .gh-content hr:after {
2056
+ background: color-mod(var(--color-darkmode) l(+8%));
2057
+ box-shadow: var(--color-darkmode) 0 0 0 5px;
2058
+ }
2059
+
2060
+ html.auto-color figcaption {
2061
+ color: rgba(255, 255, 255, 0.6);
2062
+ }
2063
+
2064
+ html.auto-color .gh-content table td:first-child {
2065
+ background-image: linear-gradient(to right, var(--color-darkmode) 50%, color-mod(var(--color-darkmode) a(0%)) 100%);
2066
+ }
2067
+
2068
+ html.auto-color .gh-content table td:last-child {
2069
+ background-image: linear-gradient(to left, var(--color-darkmode) 50%, color-mod(var(--color-darkmode) a(0%)) 100%);
2070
+ }
2071
+
2072
+ html.auto-color .gh-content table th {
2073
+ color: rgba(255, 255, 255, 0.85);
2074
+ background-color: color-mod(var(--color-darkmode) l(+8%));
2075
+ }
2076
+
2077
+ html.auto-color .gh-content table th,
2078
+ html.auto-color .gh-content table td {
2079
+ border: color-mod(var(--color-darkmode) l(+8%)) 1px solid;
2080
+ }
2081
+
2082
+ html.auto-color .gh-content input {
2083
+ color: color-mod(var(--color-midgrey) l(-30%));
2084
+ }
2085
+
2086
+ html.auto-color .site-archive-header .no-image {
2087
+ color: rgba(255, 255, 255, 0.9);
2088
+ background: var(--color-darkmode);
2089
+ }
2090
+
2091
+ html.auto-color .kg-header-card.kg-style-dark {
2092
+ background: color-mod(var(--color-darkgrey) l(-5%));
2093
+ }
2094
+
2095
+ html.auto-color .kg-header-card.kg-style-light {
2096
+ background: color-mod(var(--color-darkgrey) l(+5%));
2097
+ }
2098
+
2099
+ html.auto-color .kg-header-card h2.kg-header-card-header,
2100
+ html.auto-color .kg-header-card h3.kg-header-card-subheader {
2101
+ color: #fff;
2102
+ }
2103
+
2104
+ html.auto-color .footer-cta-title {
2105
+ color: #fff;
2106
+ }
2107
+ }
2108
+
1841
2109
  /*
1842
2110
 
1843
2111
  Hey! You reached the end.
@@ -1,5 +1,5 @@
1
1
  <!DOCTYPE html>
2
- <html lang="{{@site.locale}}"{{#match @custom.color_scheme "Dark"}} class="dark-mode"{{/match}}>
2
+ <html lang="{{@site.locale}}"{{#match @custom.color_scheme "Dark"}} class="dark-mode"{{else match @custom.color_scheme "Auto"}} class="auto-color"{{/match}}>
3
3
  <head>
4
4
 
5
5
  {{!-- Basic meta - advanced meta is output with {ghost_head} below --}}
@@ -18,7 +18,7 @@
18
18
  {{ghost_head}}
19
19
 
20
20
  </head>
21
- <body class="{{body_class}}{{#match @custom.title_font "=" "Elegant serif"}} has-serif-title{{/match}}{{#match @custom.body_font "=" "Modern sans-serif"}} has-sans-body{{/match}}{{#if @custom.show_publication_cover}} has-cover-image{{/if}}{{#is "home"}}{{#unless @custom.show_logo_in_navigation}} no-logo{{/unless}}{{/is}}">
21
+ <body class="{{body_class}}{{#match @custom.title_font "=" "Elegant serif"}} has-serif-title{{/match}}{{#match @custom.body_font "=" "Modern sans-serif"}} has-sans-body{{/match}}{{#if @custom.show_publication_cover}} has-cover{{/if}}{{#is "home"}}{{#unless @custom.show_logo_in_navigation}} no-logo{{/unless}}{{/is}}">
22
22
  <div class="viewport">
23
23
 
24
24
  <header id="gh-head" class="gh-head outer">
@@ -42,11 +42,21 @@
42
42
  {{navigation}}
43
43
  </div>
44
44
  <div class="gh-head-actions">
45
- {{#unless @member}}
46
- <a class="gh-head-button" href="#/portal/signup" data-portal="signup">Subscribe</a>
47
- {{else}}
48
- <a class="gh-head-button" href="#/portal/account" data-portal="account">Account</a>
49
- {{/unless}}
45
+ <div class="gh-social">
46
+ {{#if @site.facebook}}
47
+ <a class="gh-social-link gh-social-facebook" href="{{facebook_url @site.facebook}}" title="Facebook" target="_blank" rel="noopener">{{> "icons/facebook"}}</a>
48
+ {{/if}}
49
+ {{#if @site.twitter}}
50
+ <a class="gh-social-link gh-social-twitter" href="{{twitter_url @site.twitter}}" title="Twitter" target="_blank" rel="noopener">{{> "icons/twitter"}}</a>
51
+ {{/if}}
52
+ </div>
53
+ {{#if @site.members_enabled}}
54
+ {{#unless @member}}
55
+ <a class="gh-head-button" href="#/portal/signup" data-portal="signup">Subscribe</a>
56
+ {{else}}
57
+ <a class="gh-head-button" href="#/portal/account" data-portal="account">Account</a>
58
+ {{/unless}}
59
+ {{/if}}
50
60
  </div>
51
61
  </nav>
52
62
  </header>
@@ -2,7 +2,7 @@
2
2
  "name": "casper",
3
3
  "description": "A clean, minimal default theme for the Ghost publishing platform",
4
4
  "demo": "https://demo.ghost.io",
5
- "version": "5.0.0",
5
+ "version": "5.1.3",
6
6
  "engines": {
7
7
  "ghost": ">=5.0.0"
8
8
  },
@@ -139,7 +139,8 @@
139
139
  "type": "select",
140
140
  "options": [
141
141
  "Light",
142
- "Dark"
142
+ "Dark",
143
+ "Auto"
143
144
  ],
144
145
  "default": "Light"
145
146
  },
@@ -1 +1 @@
1
- <svg class="icon" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M23.9981 11.9991C23.9981 5.37216 18.626 0 11.9991 0C5.37216 0 0 5.37216 0 11.9991C0 17.9882 4.38789 22.9522 10.1242 23.8524V15.4676H7.07758V11.9991H10.1242V9.35553C10.1242 6.34826 11.9156 4.68714 14.6564 4.68714C15.9692 4.68714 17.3424 4.92149 17.3424 4.92149V7.87439H15.8294C14.3388 7.87439 13.8739 8.79933 13.8739 9.74824V11.9991H17.2018L16.6698 15.4676H13.8739V23.8524C19.6103 22.9522 23.9981 17.9882 23.9981 11.9991Z"/></svg>
1
+ <svg class="icon" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg" fill="currentColor"><path d="M23.9981 11.9991C23.9981 5.37216 18.626 0 11.9991 0C5.37216 0 0 5.37216 0 11.9991C0 17.9882 4.38789 22.9522 10.1242 23.8524V15.4676H7.07758V11.9991H10.1242V9.35553C10.1242 6.34826 11.9156 4.68714 14.6564 4.68714C15.9692 4.68714 17.3424 4.92149 17.3424 4.92149V7.87439H15.8294C14.3388 7.87439 13.8739 8.79933 13.8739 9.74824V11.9991H17.2018L16.6698 15.4676H13.8739V23.8524C19.6103 22.9522 23.9981 17.9882 23.9981 11.9991Z"/></svg>
@@ -0,0 +1,3 @@
1
+ <svg width="16" height="17" viewBox="0 0 16 17" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path d="M4.49365 4.58752C3.53115 6.03752 2.74365 7.70002 2.74365 9.25002C2.74365 10.6424 3.29678 11.9778 4.28134 12.9623C5.26591 13.9469 6.60127 14.5 7.99365 14.5C9.38604 14.5 10.7214 13.9469 11.706 12.9623C12.6905 11.9778 13.2437 10.6424 13.2437 9.25002C13.2437 6.00002 10.9937 3.50002 9.16865 1.68127L6.99365 6.25002L4.49365 4.58752Z" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path>
3
+ </svg>
@@ -0,0 +1,5 @@
1
+ <svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path d="M16.25 6.875H3.75C3.40482 6.875 3.125 7.15482 3.125 7.5V16.25C3.125 16.5952 3.40482 16.875 3.75 16.875H16.25C16.5952 16.875 16.875 16.5952 16.875 16.25V7.5C16.875 7.15482 16.5952 6.875 16.25 6.875Z" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path>
3
+ <path d="M7.1875 6.875V4.0625C7.1875 3.31658 7.48382 2.60121 8.01126 2.07376C8.53871 1.54632 9.25408 1.25 10 1.25C10.7459 1.25 11.4613 1.54632 11.9887 2.07376C12.5162 2.60121 12.8125 3.31658 12.8125 4.0625V6.875" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path>
4
+ <path d="M10 13.125C10.6904 13.125 11.25 12.5654 11.25 11.875C11.25 11.1846 10.6904 10.625 10 10.625C9.30964 10.625 8.75 11.1846 8.75 11.875C8.75 12.5654 9.30964 13.125 10 13.125Z" fill="currentColor"></path>
5
+ </svg>
@@ -1 +1 @@
1
- <svg class="icon" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M23.954 4.569c-.885.389-1.83.654-2.825.775 1.014-.611 1.794-1.574 2.163-2.723-.951.555-2.005.959-3.127 1.184-.896-.959-2.173-1.559-3.591-1.559-2.717 0-4.92 2.203-4.92 4.917 0 .39.045.765.127 1.124C7.691 8.094 4.066 6.13 1.64 3.161c-.427.722-.666 1.561-.666 2.475 0 1.71.87 3.213 2.188 4.096-.807-.026-1.566-.248-2.228-.616v.061c0 2.385 1.693 4.374 3.946 4.827-.413.111-.849.171-1.296.171-.314 0-.615-.03-.916-.086.631 1.953 2.445 3.377 4.604 3.417-1.68 1.319-3.809 2.105-6.102 2.105-.39 0-.779-.023-1.17-.067 2.189 1.394 4.768 2.209 7.557 2.209 9.054 0 13.999-7.496 13.999-13.986 0-.209 0-.42-.015-.63.961-.689 1.8-1.56 2.46-2.548l-.047-.02z"/></svg>
1
+ <svg class="icon" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg" fill="currentColor"><path d="M23.954 4.569c-.885.389-1.83.654-2.825.775 1.014-.611 1.794-1.574 2.163-2.723-.951.555-2.005.959-3.127 1.184-.896-.959-2.173-1.559-3.591-1.559-2.717 0-4.92 2.203-4.92 4.917 0 .39.045.765.127 1.124C7.691 8.094 4.066 6.13 1.64 3.161c-.427.722-.666 1.561-.666 2.475 0 1.71.87 3.213 2.188 4.096-.807-.026-1.566-.248-2.228-.616v.061c0 2.385 1.693 4.374 3.946 4.827-.413.111-.849.171-1.296.171-.314 0-.615-.03-.916-.086.631 1.953 2.445 3.377 4.604 3.417-1.68 1.319-3.809 2.105-6.102 2.105-.39 0-.779-.023-1.17-.067 2.189 1.394 4.768 2.209 7.557 2.209 9.054 0 13.999-7.496 13.999-13.986 0-.209 0-.42-.015-.63.961-.689 1.8-1.56 2.46-2.548l-.047-.02z"/></svg>