jekyll-theme-mastodon 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.
Files changed (81) hide show
  1. checksums.yaml +7 -0
  2. data/_includes/analytics.html +36 -0
  3. data/_includes/analytics/amplitude.js +35 -0
  4. data/_includes/analytics/gtag.js +9 -0
  5. data/_includes/analytics/gtm.js +5 -0
  6. data/_includes/analytics/hotjar.js +8 -0
  7. data/_includes/analytics/matomo.js +10 -0
  8. data/_includes/analytics/quantcast.js +12 -0
  9. data/_includes/footer.html +28 -0
  10. data/_includes/head.html +41 -0
  11. data/_includes/header.html +18 -0
  12. data/_includes/resources.html +20 -0
  13. data/_layouts/about.html +71 -0
  14. data/_layouts/default.html +15 -0
  15. data/_layouts/error.html +31 -0
  16. data/_layouts/none.html +4 -0
  17. data/_layouts/page.html +15 -0
  18. data/_layouts/post.html +56 -0
  19. data/_layouts/profile.html +199 -0
  20. data/_layouts/redirect.html +18 -0
  21. data/_layouts/rss.html +29 -0
  22. data/_layouts/sitemap.html +29 -0
  23. data/_layouts/tags.html +32 -0
  24. data/_sass/_about.scss +905 -0
  25. data/_sass/_accounts.scss +327 -0
  26. data/_sass/_admin.scss +918 -0
  27. data/_sass/_basics.scss +272 -0
  28. data/_sass/_boost.scss +32 -0
  29. data/_sass/_compact_header.scss +34 -0
  30. data/_sass/_components.scss +7363 -0
  31. data/_sass/_containers.scss +903 -0
  32. data/_sass/_dashboard.scss +78 -0
  33. data/_sass/_font-montserrat.scss +19 -0
  34. data/_sass/_font-roboto.scss +47 -0
  35. data/_sass/_font-robotomono.scss +11 -0
  36. data/_sass/_footer.scss +137 -0
  37. data/_sass/_forms.scss +1009 -0
  38. data/_sass/_highlights.scss +146 -0
  39. data/_sass/_introduction.scss +154 -0
  40. data/_sass/_lists.scss +19 -0
  41. data/_sass/_mixins.scss +56 -0
  42. data/_sass/_modal.scss +35 -0
  43. data/_sass/_polls.scss +274 -0
  44. data/_sass/_reset.scss +108 -0
  45. data/_sass/_rtl.scss +468 -0
  46. data/_sass/_statuses.scss +191 -0
  47. data/_sass/_tables.scss +293 -0
  48. data/_sass/_variables.scss +58 -0
  49. data/_sass/_widgets.scss +619 -0
  50. data/assets/404.gif +0 -0
  51. data/assets/avatar.png +0 -0
  52. data/assets/banner.png +0 -0
  53. data/assets/fonts/montserrat/Montserrat-Medium.ttf +0 -0
  54. data/assets/fonts/montserrat/Montserrat-Regular.ttf +0 -0
  55. data/assets/fonts/montserrat/Montserrat-Regular.woff +0 -0
  56. data/assets/fonts/montserrat/Montserrat-Regular.woff2 +0 -0
  57. data/assets/fonts/roboto/roboto-bold-webfont.svg +16273 -0
  58. data/assets/fonts/roboto/roboto-bold-webfont.ttf +0 -0
  59. data/assets/fonts/roboto/roboto-bold-webfont.woff +0 -0
  60. data/assets/fonts/roboto/roboto-bold-webfont.woff2 +0 -0
  61. data/assets/fonts/roboto/roboto-italic-webfont.svg +15513 -0
  62. data/assets/fonts/roboto/roboto-italic-webfont.ttf +0 -0
  63. data/assets/fonts/roboto/roboto-italic-webfont.woff +0 -0
  64. data/assets/fonts/roboto/roboto-italic-webfont.woff2 +0 -0
  65. data/assets/fonts/roboto/roboto-medium-webfont.svg +16273 -0
  66. data/assets/fonts/roboto/roboto-medium-webfont.ttf +0 -0
  67. data/assets/fonts/roboto/roboto-medium-webfont.woff +0 -0
  68. data/assets/fonts/roboto/roboto-medium-webfont.woff2 +0 -0
  69. data/assets/fonts/roboto/roboto-regular-webfont.svg +15513 -0
  70. data/assets/fonts/roboto/roboto-regular-webfont.ttf +0 -0
  71. data/assets/fonts/roboto/roboto-regular-webfont.woff +0 -0
  72. data/assets/fonts/roboto/roboto-regular-webfont.woff2 +0 -0
  73. data/assets/fonts/robotomono/robotomono-regular-webfont.svg +1051 -0
  74. data/assets/fonts/robotomono/robotomono-regular-webfont.ttf +0 -0
  75. data/assets/fonts/robotomono/robotomono-regular-webfont.woff +0 -0
  76. data/assets/fonts/robotomono/robotomono-regular-webfont.woff2 +0 -0
  77. data/assets/hero.png +0 -0
  78. data/assets/mastodon.scss +34 -0
  79. data/license +661 -0
  80. data/readme.md +3 -0
  81. metadata +136 -0
@@ -0,0 +1,58 @@
1
+ // Commonly used web colors
2
+ $black: #000000; // Black
3
+ $white: #ffffff; // White
4
+ $success-green: #79bd9a !default; // Padua
5
+ $error-red: #df405a !default; // Cerise
6
+ $warning-red: #ff5050 !default; // Sunset Orange
7
+ $gold-star: #ca8f04 !default; // Dark Goldenrod
8
+
9
+ $red-bookmark: $warning-red;
10
+
11
+ // Values from the classic Mastodon UI
12
+ $classic-base-color: #282c37; // Midnight Express
13
+ $classic-primary-color: #9baec8; // Echo Blue
14
+ $classic-secondary-color: #d9e1e8; // Pattens Blue
15
+ $classic-highlight-color: #2b90d9; // Summer Sky
16
+
17
+ // Variables for defaults in UI
18
+ $base-shadow-color: $black !default;
19
+ $base-overlay-background: $black !default;
20
+ $base-border-color: $white !default;
21
+ $simple-background-color: $white !default;
22
+ $valid-value-color: $success-green !default;
23
+ $error-value-color: $error-red !default;
24
+
25
+ // Tell UI to use selected colors
26
+ $ui-base-color: $classic-base-color !default; // Darkest
27
+ $ui-base-lighter-color: lighten($ui-base-color, 26%) !default; // Lighter darkest
28
+ $ui-primary-color: $classic-primary-color !default; // Lighter
29
+ $ui-secondary-color: $classic-secondary-color !default; // Lightest
30
+ $ui-highlight-color: $classic-highlight-color !default;
31
+
32
+ // Variables for texts
33
+ $primary-text-color: $white !default;
34
+ $darker-text-color: $ui-primary-color !default;
35
+ $dark-text-color: $ui-base-lighter-color !default;
36
+ $secondary-text-color: $ui-secondary-color !default;
37
+ $highlight-text-color: $ui-highlight-color !default;
38
+ $action-button-color: $ui-base-lighter-color !default;
39
+ $passive-text-color: $gold-star !default;
40
+ $active-passive-text-color: $success-green !default;
41
+ // For texts on inverted backgrounds
42
+ $inverted-text-color: $ui-base-color !default;
43
+ $lighter-text-color: $ui-base-lighter-color !default;
44
+ $light-text-color: $ui-primary-color !default;
45
+
46
+ // Language codes that uses CJK fonts
47
+ $cjk-langs: ja, ko, zh-CN, zh-HK, zh-TW;
48
+
49
+ // Variables for components
50
+ $media-modal-media-max-width: 100%;
51
+ // put margins on top and bottom of image to avoid the screen covered by image.
52
+ $media-modal-media-max-height: 80%;
53
+
54
+ $no-gap-breakpoint: 415px;
55
+
56
+ $font-sans-serif: 'mastodon-font-sans-serif' !default;
57
+ $font-display: 'mastodon-font-display' !default;
58
+ $font-monospace: 'mastodon-font-monospace' !default;
@@ -0,0 +1,619 @@
1
+ .hero-widget {
2
+ margin-bottom: 10px;
3
+ box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);
4
+
5
+ &:last-child {
6
+ margin-bottom: 0;
7
+ }
8
+
9
+ &__img {
10
+ width: 100%;
11
+ position: relative;
12
+ overflow: hidden;
13
+ border-radius: 4px 4px 0 0;
14
+ background: $base-shadow-color;
15
+
16
+ img {
17
+ object-fit: cover;
18
+ display: block;
19
+ width: 100%;
20
+ height: 100%;
21
+ margin: 0;
22
+ border-radius: 4px 4px 0 0;
23
+ }
24
+ }
25
+
26
+ &__text {
27
+ background: $ui-base-color;
28
+ padding: 20px;
29
+ border-radius: 0 0 4px 4px;
30
+ font-size: 15px;
31
+ color: $darker-text-color;
32
+ line-height: 20px;
33
+ word-wrap: break-word;
34
+ font-weight: 400;
35
+
36
+ .emojione {
37
+ width: 20px;
38
+ height: 20px;
39
+ margin: -3px 0 0;
40
+ }
41
+
42
+ p {
43
+ margin-bottom: 20px;
44
+
45
+ &:last-child {
46
+ margin-bottom: 0;
47
+ }
48
+ }
49
+
50
+ em {
51
+ display: inline;
52
+ margin: 0;
53
+ padding: 0;
54
+ font-weight: 700;
55
+ background: transparent;
56
+ font-family: inherit;
57
+ font-size: inherit;
58
+ line-height: inherit;
59
+ color: lighten($darker-text-color, 10%);
60
+ }
61
+
62
+ a {
63
+ color: $secondary-text-color;
64
+ text-decoration: none;
65
+
66
+ &:hover {
67
+ text-decoration: underline;
68
+ }
69
+ }
70
+ }
71
+
72
+ @media screen and (max-width: $no-gap-breakpoint) {
73
+ display: none;
74
+ }
75
+ }
76
+
77
+ .endorsements-widget {
78
+ margin-bottom: 10px;
79
+ padding-bottom: 10px;
80
+
81
+ h4 {
82
+ padding: 10px;
83
+ text-transform: uppercase;
84
+ font-weight: 700;
85
+ font-size: 13px;
86
+ color: $darker-text-color;
87
+ }
88
+
89
+ .account {
90
+ padding: 10px 0;
91
+
92
+ &:last-child {
93
+ border-bottom: 0;
94
+ }
95
+
96
+ .account__display-name {
97
+ display: flex;
98
+ align-items: center;
99
+ }
100
+ }
101
+
102
+ .trends__item {
103
+ padding: 10px;
104
+ }
105
+ }
106
+
107
+ .trends-widget {
108
+ h4 {
109
+ color: $darker-text-color;
110
+ }
111
+ }
112
+
113
+ .box-widget {
114
+ padding: 20px;
115
+ border-radius: 4px;
116
+ background: $ui-base-color;
117
+ box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);
118
+ }
119
+
120
+ .placeholder-widget {
121
+ padding: 16px;
122
+ border-radius: 4px;
123
+ border: 2px dashed $dark-text-color;
124
+ text-align: center;
125
+ color: $darker-text-color;
126
+ margin-bottom: 10px;
127
+ }
128
+
129
+ .contact-widget {
130
+ min-height: 100%;
131
+ font-size: 15px;
132
+ color: $darker-text-color;
133
+ line-height: 20px;
134
+ word-wrap: break-word;
135
+ font-weight: 400;
136
+ padding: 0;
137
+
138
+ h4 {
139
+ padding: 10px;
140
+ text-transform: uppercase;
141
+ font-weight: 700;
142
+ font-size: 13px;
143
+ color: $darker-text-color;
144
+ }
145
+
146
+ .account {
147
+ border-bottom: 0;
148
+ padding: 10px 0;
149
+ padding-top: 5px;
150
+ }
151
+
152
+ & > a {
153
+ display: inline-block;
154
+ padding: 10px;
155
+ padding-top: 0;
156
+ color: $darker-text-color;
157
+ text-decoration: none;
158
+ white-space: nowrap;
159
+ overflow: hidden;
160
+ text-overflow: ellipsis;
161
+
162
+ &:hover,
163
+ &:focus,
164
+ &:active {
165
+ text-decoration: underline;
166
+ }
167
+ }
168
+ }
169
+
170
+ .moved-account-widget {
171
+ padding: 15px;
172
+ padding-bottom: 20px;
173
+ border-radius: 4px;
174
+ background: $ui-base-color;
175
+ box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);
176
+ color: $secondary-text-color;
177
+ font-weight: 400;
178
+ margin-bottom: 10px;
179
+
180
+ strong,
181
+ a {
182
+ font-weight: 500;
183
+
184
+ @each $lang in $cjk-langs {
185
+ &:lang(#{$lang}) {
186
+ font-weight: 700;
187
+ }
188
+ }
189
+ }
190
+
191
+ a {
192
+ color: inherit;
193
+ text-decoration: underline;
194
+
195
+ &.mention {
196
+ text-decoration: none;
197
+
198
+ span {
199
+ text-decoration: none;
200
+ }
201
+
202
+ &:focus,
203
+ &:hover,
204
+ &:active {
205
+ text-decoration: none;
206
+
207
+ span {
208
+ text-decoration: underline;
209
+ }
210
+ }
211
+ }
212
+ }
213
+
214
+ &__message {
215
+ margin-bottom: 15px;
216
+
217
+ .fa {
218
+ margin-right: 5px;
219
+ color: $darker-text-color;
220
+ }
221
+ }
222
+
223
+ &__card {
224
+ .detailed-status__display-avatar {
225
+ position: relative;
226
+ cursor: pointer;
227
+ }
228
+
229
+ .detailed-status__display-name {
230
+ margin-bottom: 0;
231
+ text-decoration: none;
232
+
233
+ span {
234
+ font-weight: 400;
235
+ }
236
+ }
237
+ }
238
+ }
239
+
240
+ .memoriam-widget {
241
+ padding: 20px;
242
+ border-radius: 4px;
243
+ background: $base-shadow-color;
244
+ box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);
245
+ font-size: 14px;
246
+ color: $darker-text-color;
247
+ margin-bottom: 10px;
248
+ }
249
+
250
+ .page-header {
251
+ background: lighten($ui-base-color, 8%);
252
+ box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);
253
+ border-radius: 4px;
254
+ padding: 60px 15px;
255
+ text-align: center;
256
+ margin: 10px 0;
257
+
258
+ h1 {
259
+ color: $primary-text-color;
260
+ font-size: 36px;
261
+ line-height: 1.1;
262
+ font-weight: 700;
263
+ margin-bottom: 10px;
264
+ }
265
+
266
+ p {
267
+ font-size: 15px;
268
+ color: $darker-text-color;
269
+ }
270
+
271
+ @media screen and (max-width: $no-gap-breakpoint) {
272
+ margin-top: 0;
273
+ background: lighten($ui-base-color, 4%);
274
+
275
+ h1 {
276
+ font-size: 24px;
277
+ }
278
+ }
279
+ }
280
+
281
+ .directory {
282
+ background: $ui-base-color;
283
+ border-radius: 4px;
284
+ box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);
285
+
286
+ &__tag {
287
+ box-sizing: border-box;
288
+ margin-bottom: 10px;
289
+
290
+ & > a,
291
+ & > div {
292
+ display: flex;
293
+ align-items: center;
294
+ justify-content: space-between;
295
+ background: $ui-base-color;
296
+ border-radius: 4px;
297
+ padding: 15px;
298
+ text-decoration: none;
299
+ color: inherit;
300
+ box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);
301
+ }
302
+
303
+ & > a {
304
+ &:hover,
305
+ &:active,
306
+ &:focus {
307
+ background: lighten($ui-base-color, 8%);
308
+ }
309
+ }
310
+
311
+ &.active > a {
312
+ background: $ui-highlight-color;
313
+ cursor: default;
314
+ }
315
+
316
+ &.disabled > div {
317
+ opacity: 0.5;
318
+ cursor: default;
319
+ }
320
+
321
+ h4 {
322
+ flex: 1 1 auto;
323
+ font-size: 18px;
324
+ font-weight: 700;
325
+ color: $primary-text-color;
326
+ white-space: nowrap;
327
+ overflow: hidden;
328
+ text-overflow: ellipsis;
329
+
330
+ .fa {
331
+ color: $darker-text-color;
332
+ }
333
+
334
+ small {
335
+ display: block;
336
+ font-weight: 400;
337
+ font-size: 15px;
338
+ margin-top: 8px;
339
+ color: $darker-text-color;
340
+ }
341
+ }
342
+
343
+ &.active h4 {
344
+ &,
345
+ .fa,
346
+ small,
347
+ .trends__item__current {
348
+ color: $primary-text-color;
349
+ }
350
+ }
351
+
352
+ .avatar-stack {
353
+ flex: 0 0 auto;
354
+ width: (36px + 4px) * 3;
355
+ }
356
+
357
+ &.active .avatar-stack .account__avatar {
358
+ border-color: $ui-highlight-color;
359
+ }
360
+
361
+ .trends__item__current {
362
+ padding-right: 0;
363
+ }
364
+ }
365
+ }
366
+
367
+ .avatar-stack {
368
+ display: flex;
369
+ justify-content: flex-end;
370
+
371
+ .account__avatar {
372
+ flex: 0 0 auto;
373
+ width: 36px;
374
+ height: 36px;
375
+ border-radius: 50%;
376
+ position: relative;
377
+ margin-left: -10px;
378
+ background: darken($ui-base-color, 8%);
379
+ border: 2px solid $ui-base-color;
380
+
381
+ &:nth-child(1) {
382
+ z-index: 1;
383
+ }
384
+
385
+ &:nth-child(2) {
386
+ z-index: 2;
387
+ }
388
+
389
+ &:nth-child(3) {
390
+ z-index: 3;
391
+ }
392
+ }
393
+ }
394
+
395
+ .accounts-table {
396
+ width: 100%;
397
+
398
+ .account {
399
+ padding: 0;
400
+ border: 0;
401
+ }
402
+
403
+ strong {
404
+ font-weight: 700;
405
+ }
406
+
407
+ thead th {
408
+ text-align: center;
409
+ text-transform: uppercase;
410
+ color: $darker-text-color;
411
+ font-weight: 700;
412
+ padding: 10px;
413
+
414
+ &:first-child {
415
+ text-align: left;
416
+ }
417
+ }
418
+
419
+ tbody td {
420
+ padding: 15px 0;
421
+ vertical-align: middle;
422
+ border-bottom: 1px solid lighten($ui-base-color, 8%);
423
+ }
424
+
425
+ tbody tr:last-child td {
426
+ border-bottom: 0;
427
+ }
428
+
429
+ &__count {
430
+ width: 120px;
431
+ text-align: center;
432
+ font-size: 15px;
433
+ font-weight: 500;
434
+ color: $primary-text-color;
435
+
436
+ small {
437
+ display: block;
438
+ color: $darker-text-color;
439
+ font-weight: 400;
440
+ font-size: 14px;
441
+ }
442
+ }
443
+
444
+ &__comment {
445
+ width: 50%;
446
+ vertical-align: initial !important;
447
+ }
448
+
449
+ &__interrelationships {
450
+ width: 21px;
451
+ }
452
+
453
+ .fa {
454
+ font-size: 16px;
455
+
456
+ &.active {
457
+ color: $highlight-text-color;
458
+ }
459
+
460
+ &.passive {
461
+ color: $passive-text-color;
462
+ }
463
+
464
+ &.active.passive {
465
+ color: $active-passive-text-color;
466
+ }
467
+ }
468
+
469
+ @media screen and (max-width: $no-gap-breakpoint) {
470
+ tbody td.optional {
471
+ display: none;
472
+ }
473
+ }
474
+ }
475
+
476
+ .moved-account-widget,
477
+ .memoriam-widget,
478
+ .box-widget,
479
+ .contact-widget,
480
+ .landing-page__information.contact-widget,
481
+ .directory,
482
+ .page-header {
483
+ @media screen and (max-width: $no-gap-breakpoint) {
484
+ margin-bottom: 0;
485
+ box-shadow: none;
486
+ border-radius: 0;
487
+ }
488
+ }
489
+
490
+ $maximum-width: 1235px;
491
+ $fluid-breakpoint: $maximum-width + 20px;
492
+
493
+ .statuses-grid {
494
+ min-height: 600px;
495
+
496
+ @media screen and (max-width: 640px) {
497
+ width: 100% !important; // Masonry layout is unnecessary at this width
498
+ }
499
+
500
+ &__item {
501
+ width: (960px - 20px) / 3;
502
+
503
+ @media screen and (max-width: $fluid-breakpoint) {
504
+ width: (940px - 20px) / 3;
505
+ }
506
+
507
+ @media screen and (max-width: 640px) {
508
+ width: 100%;
509
+ }
510
+
511
+ @media screen and (max-width: $no-gap-breakpoint) {
512
+ width: 100vw;
513
+ }
514
+ }
515
+
516
+ .detailed-status {
517
+ border-radius: 4px;
518
+
519
+ @media screen and (max-width: $no-gap-breakpoint) {
520
+ border-top: 1px solid lighten($ui-base-color, 16%);
521
+ }
522
+
523
+ &.compact {
524
+ .detailed-status__meta {
525
+ margin-top: 15px;
526
+ }
527
+
528
+ .status__content {
529
+ font-size: 15px;
530
+ line-height: 20px;
531
+
532
+ .emojione {
533
+ width: 20px;
534
+ height: 20px;
535
+ margin: -3px 0 0;
536
+ }
537
+
538
+ .status__content__spoiler-link {
539
+ line-height: 20px;
540
+ margin: 0;
541
+ }
542
+ }
543
+
544
+ .media-gallery,
545
+ .status-card,
546
+ .video-player {
547
+ margin-top: 15px;
548
+ }
549
+ }
550
+ }
551
+ }
552
+
553
+ .notice-widget {
554
+ margin-bottom: 10px;
555
+ color: $darker-text-color;
556
+
557
+ p {
558
+ margin-bottom: 10px;
559
+
560
+ &:last-child {
561
+ margin-bottom: 0;
562
+ }
563
+ }
564
+
565
+ a {
566
+ font-size: 14px;
567
+ line-height: 20px;
568
+ }
569
+ }
570
+
571
+ .notice-widget,
572
+ .placeholder-widget {
573
+ a {
574
+ text-decoration: none;
575
+ font-weight: 500;
576
+ color: $ui-highlight-color;
577
+
578
+ &:hover,
579
+ &:focus,
580
+ &:active {
581
+ text-decoration: underline;
582
+ }
583
+ }
584
+ }
585
+
586
+ .table-of-contents {
587
+ background: darken($ui-base-color, 4%);
588
+ min-height: 100%;
589
+ font-size: 14px;
590
+ border-radius: 4px;
591
+
592
+ li a {
593
+ display: block;
594
+ font-weight: 500;
595
+ padding: 15px;
596
+ overflow: hidden;
597
+ white-space: nowrap;
598
+ overflow: hidden;
599
+ text-overflow: ellipsis;
600
+ text-decoration: none;
601
+ color: $primary-text-color;
602
+ border-bottom: 1px solid lighten($ui-base-color, 4%);
603
+
604
+ &:hover,
605
+ &:focus,
606
+ &:active {
607
+ text-decoration: underline;
608
+ }
609
+ }
610
+
611
+ li:last-child a {
612
+ border-bottom: 0;
613
+ }
614
+
615
+ li ul {
616
+ padding-left: 20px;
617
+ border-bottom: 1px solid lighten($ui-base-color, 4%);
618
+ }
619
+ }