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,78 @@
1
+ .dashboard__counters {
2
+ display: flex;
3
+ flex-wrap: wrap;
4
+ margin: 0 -5px;
5
+ margin-bottom: 20px;
6
+
7
+ & > div {
8
+ box-sizing: border-box;
9
+ flex: 0 0 33.333%;
10
+ padding: 0 5px;
11
+ margin-bottom: 10px;
12
+
13
+ & > div,
14
+ & > a {
15
+ padding: 20px;
16
+ background: lighten($ui-base-color, 4%);
17
+ border-radius: 4px;
18
+ box-sizing: border-box;
19
+ height: 100%;
20
+ }
21
+
22
+ & > a {
23
+ text-decoration: none;
24
+ color: inherit;
25
+ display: block;
26
+
27
+ &:hover,
28
+ &:focus,
29
+ &:active {
30
+ background: lighten($ui-base-color, 8%);
31
+ }
32
+ }
33
+ }
34
+
35
+ &__num,
36
+ &__text {
37
+ text-align: center;
38
+ font-weight: 500;
39
+ font-size: 24px;
40
+ line-height: 21px;
41
+ color: $primary-text-color;
42
+ font-family: $font-display, sans-serif;
43
+ margin-bottom: 20px;
44
+ line-height: 30px;
45
+ }
46
+
47
+ &__text {
48
+ font-size: 18px;
49
+ }
50
+
51
+ &__label {
52
+ font-size: 14px;
53
+ color: $darker-text-color;
54
+ text-align: center;
55
+ font-weight: 500;
56
+ }
57
+ }
58
+
59
+ .dashboard__widgets {
60
+ display: flex;
61
+ flex-wrap: wrap;
62
+ margin: 0 -5px;
63
+
64
+ & > div {
65
+ flex: 0 0 33.333%;
66
+ margin-bottom: 20px;
67
+
68
+ & > div {
69
+ padding: 0 5px;
70
+ }
71
+ }
72
+
73
+ a:not(.name-tag) {
74
+ color: $ui-secondary-color;
75
+ font-weight: 500;
76
+ text-decoration: none;
77
+ }
78
+ }
@@ -0,0 +1,19 @@
1
+ @font-face {
2
+ font-family: 'mastodon-font-display';
3
+ src: local('Montserrat'),
4
+ url('../assets/fonts/montserrat/Montserrat-Regular.woff2') format('woff2'),
5
+ url('../assets/fonts/montserrat/Montserrat-Regular.woff') format('woff'),
6
+ url('../assets/fonts/montserrat/Montserrat-Regular.ttf') format('truetype');
7
+ font-weight: 400;
8
+ font-style: normal;
9
+ font-display: swap;
10
+ }
11
+
12
+ @font-face {
13
+ font-family: 'mastodon-font-display';
14
+ src: local('Montserrat Medium'),
15
+ url('../assets/fonts/montserrat/Montserrat-Medium.ttf') format('truetype');
16
+ font-weight: 500;
17
+ font-style: normal;
18
+ font-display: swap;
19
+ }
@@ -0,0 +1,47 @@
1
+ @font-face {
2
+ font-family: 'mastodon-font-sans-serif';
3
+ src: local('Roboto Italic'),
4
+ url('../assets/fonts/roboto/roboto-italic-webfont.woff2') format('woff2'),
5
+ url('../assets/fonts/roboto/roboto-italic-webfont.woff') format('woff'),
6
+ url('../assets/fonts/roboto/roboto-italic-webfont.ttf') format('truetype'),
7
+ url('../assets/fonts/roboto/roboto-italic-webfont.svg#roboto-italic-webfont') format('svg');
8
+ font-weight: normal;
9
+ font-style: italic;
10
+ font-display: swap;
11
+ }
12
+
13
+ @font-face {
14
+ font-family: 'mastodon-font-sans-serif';
15
+ src: local('Roboto Bold'),
16
+ url('../assets/fonts/roboto/roboto-bold-webfont.woff2') format('woff2'),
17
+ url('../assets/fonts/roboto/roboto-bold-webfont.woff') format('woff'),
18
+ url('../assets/fonts/roboto/roboto-bold-webfont.ttf') format('truetype'),
19
+ url('../assets/fonts/roboto/roboto-bold-webfont.svg#roboto-bold-webfont') format('svg');
20
+ font-weight: bold;
21
+ font-style: normal;
22
+ font-display: swap;
23
+ }
24
+
25
+ @font-face {
26
+ font-family: 'mastodon-font-sans-serif';
27
+ src: local('Roboto Medium'),
28
+ url('../assets/fonts/roboto/roboto-medium-webfont.woff2') format('woff2'),
29
+ url('../assets/fonts/roboto/roboto-medium-webfont.woff') format('woff'),
30
+ url('../assets/fonts/roboto/roboto-medium-webfont.ttf') format('truetype'),
31
+ url('../assets/fonts/roboto/roboto-medium-webfont.svg#roboto-medium-webfont') format('svg');
32
+ font-weight: 500;
33
+ font-style: normal;
34
+ font-display: swap;
35
+ }
36
+
37
+ @font-face {
38
+ font-family: 'mastodon-font-sans-serif';
39
+ src: local('Roboto'),
40
+ url('../assets/fonts/roboto/roboto-regular-webfont.woff2') format('woff2'),
41
+ url('../assets/fonts/roboto/roboto-regular-webfont.woff') format('woff'),
42
+ url('../assets/fonts/roboto/roboto-regular-webfont.ttf') format('truetype'),
43
+ url('../assets/fonts/roboto/roboto-regular-webfont.svg#roboto-regular-webfont') format('svg');
44
+ font-weight: normal;
45
+ font-style: normal;
46
+ font-display: swap;
47
+ }
@@ -0,0 +1,11 @@
1
+ @font-face {
2
+ font-family: 'mastodon-font-monospace';
3
+ src: local('Roboto Mono'),
4
+ url('../assets/fonts/robotomono/robotomono-regular-webfont.woff2') format('woff2'),
5
+ url('../assets/fonts/robotomono/robotomono-regular-webfont.woff') format('woff'),
6
+ url('../assets/fonts/robotomono/robotomono-regular-webfont.ttf') format('truetype'),
7
+ url('../assets/fonts/robotomono/robotomono-regular-webfont.svg#roboto_monoregular') format('svg');
8
+ font-weight: 400;
9
+ font-style: normal;
10
+ font-display: swap;
11
+ }
@@ -0,0 +1,137 @@
1
+ .public-layout {
2
+ .footer {
3
+ text-align: left;
4
+ padding-top: 20px;
5
+ padding-bottom: 60px;
6
+ font-size: 12px;
7
+ color: lighten($ui-base-color, 34%);
8
+
9
+ @media screen and (max-width: $no-gap-breakpoint) {
10
+ padding-left: 20px;
11
+ padding-right: 20px;
12
+ }
13
+
14
+ .grid {
15
+ display: grid;
16
+ grid-gap: 10px;
17
+ grid-template-columns: 1fr 1fr 2fr 1fr 1fr;
18
+
19
+ .column-0 {
20
+ grid-column: 1;
21
+ grid-row: 1;
22
+ min-width: 0;
23
+ }
24
+
25
+ .column-1 {
26
+ grid-column: 2;
27
+ grid-row: 1;
28
+ min-width: 0;
29
+ }
30
+
31
+ .column-2 {
32
+ grid-column: 3;
33
+ grid-row: 1;
34
+ min-width: 0;
35
+ text-align: center;
36
+
37
+ h4 a {
38
+ color: lighten($ui-base-color, 34%);
39
+ }
40
+ }
41
+
42
+ .column-3 {
43
+ grid-column: 4;
44
+ grid-row: 1;
45
+ min-width: 0;
46
+ }
47
+
48
+ .column-4 {
49
+ grid-column: 5;
50
+ grid-row: 1;
51
+ min-width: 0;
52
+ }
53
+
54
+ @media screen and (max-width: 690px) {
55
+ grid-template-columns: 1fr 2fr 1fr;
56
+
57
+ .column-0,
58
+ .column-1 {
59
+ grid-column: 1;
60
+ }
61
+
62
+ .column-1 {
63
+ grid-row: 2;
64
+ }
65
+
66
+ .column-2 {
67
+ grid-column: 2;
68
+ }
69
+
70
+ .column-3,
71
+ .column-4 {
72
+ grid-column: 3;
73
+ }
74
+
75
+ .column-4 {
76
+ grid-row: 2;
77
+ }
78
+ }
79
+
80
+ @media screen and (max-width: 600px) {
81
+ .column-1 {
82
+ display: block;
83
+ }
84
+ }
85
+
86
+ @media screen and (max-width: $no-gap-breakpoint) {
87
+ .column-0,
88
+ .column-1,
89
+ .column-3,
90
+ .column-4 {
91
+ display: none;
92
+ }
93
+ }
94
+ }
95
+
96
+ h4 {
97
+ text-transform: uppercase;
98
+ font-weight: 700;
99
+ margin-bottom: 8px;
100
+ color: $darker-text-color;
101
+
102
+ a {
103
+ color: inherit;
104
+ text-decoration: none;
105
+ }
106
+ }
107
+
108
+ ul a {
109
+ text-decoration: none;
110
+ color: #7883a0;
111
+
112
+ &:hover,
113
+ &:active,
114
+ &:focus {
115
+ text-decoration: underline;
116
+ }
117
+ }
118
+
119
+ .brand {
120
+ svg {
121
+ display: block;
122
+ height: 36px;
123
+ width: auto;
124
+ margin: 0 auto;
125
+ fill: lighten($ui-base-color, 34%);
126
+ }
127
+
128
+ &:hover,
129
+ &:focus,
130
+ &:active {
131
+ svg {
132
+ fill: lighten($ui-base-color, 38%);
133
+ }
134
+ }
135
+ }
136
+ }
137
+ }
data/_sass/_forms.scss ADDED
@@ -0,0 +1,1009 @@
1
+ $no-columns-breakpoint: 600px;
2
+
3
+ code {
4
+ font-family: $font-monospace, monospace;
5
+ font-weight: 400;
6
+ }
7
+
8
+ .form-container {
9
+ max-width: 400px;
10
+ padding: 20px;
11
+ margin: 0 auto;
12
+ }
13
+
14
+ .simple_form {
15
+ &.hidden {
16
+ display: none;
17
+ }
18
+
19
+ .input {
20
+ margin-bottom: 15px;
21
+ overflow: hidden;
22
+
23
+ &.hidden {
24
+ margin: 0;
25
+ }
26
+
27
+ &.radio_buttons {
28
+ .radio {
29
+ margin-bottom: 15px;
30
+
31
+ &:last-child {
32
+ margin-bottom: 0;
33
+ }
34
+ }
35
+
36
+ .radio > label {
37
+ position: relative;
38
+ padding-left: 28px;
39
+
40
+ input {
41
+ position: absolute;
42
+ top: -2px;
43
+ left: 0;
44
+ }
45
+ }
46
+ }
47
+
48
+ &.boolean {
49
+ position: relative;
50
+ margin-bottom: 0;
51
+
52
+ .label_input > label {
53
+ font-family: inherit;
54
+ font-size: 14px;
55
+ padding-top: 5px;
56
+ color: $primary-text-color;
57
+ display: block;
58
+ width: auto;
59
+ }
60
+
61
+ .label_input,
62
+ .hint {
63
+ padding-left: 28px;
64
+ }
65
+
66
+ .label_input__wrapper {
67
+ position: static;
68
+ }
69
+
70
+ label.checkbox {
71
+ position: absolute;
72
+ top: 2px;
73
+ left: 0;
74
+ }
75
+
76
+ label a {
77
+ color: $highlight-text-color;
78
+ text-decoration: underline;
79
+
80
+ &:hover,
81
+ &:active,
82
+ &:focus {
83
+ text-decoration: none;
84
+ }
85
+ }
86
+
87
+ .recommended {
88
+ position: absolute;
89
+ margin: 0 4px;
90
+ margin-top: -2px;
91
+ }
92
+ }
93
+ }
94
+
95
+ .row {
96
+ display: flex;
97
+ margin: 0 -5px;
98
+
99
+ .input {
100
+ box-sizing: border-box;
101
+ flex: 1 1 auto;
102
+ width: 50%;
103
+ padding: 0 5px;
104
+ }
105
+ }
106
+
107
+ .title {
108
+ color: #d9e1e8;
109
+ font-size: 20px;
110
+ line-height: 28px;
111
+ font-weight: 400;
112
+ margin-bottom: 30px;
113
+ }
114
+
115
+ .hint {
116
+ color: $darker-text-color;
117
+
118
+ a {
119
+ color: $highlight-text-color;
120
+ }
121
+
122
+ code {
123
+ border-radius: 3px;
124
+ padding: 0.2em 0.4em;
125
+ background: darken($ui-base-color, 12%);
126
+ }
127
+
128
+ li {
129
+ list-style: disc;
130
+ margin-left: 18px;
131
+ }
132
+ }
133
+
134
+ ul.hint {
135
+ margin-bottom: 15px;
136
+ }
137
+
138
+ span.hint {
139
+ display: block;
140
+ font-size: 12px;
141
+ margin-top: 4px;
142
+ }
143
+
144
+ p.hint {
145
+ margin-bottom: 15px;
146
+ color: $darker-text-color;
147
+
148
+ &.subtle-hint {
149
+ text-align: center;
150
+ font-size: 12px;
151
+ line-height: 18px;
152
+ margin-top: 15px;
153
+ margin-bottom: 0;
154
+ }
155
+ }
156
+
157
+ .authentication-hint {
158
+ margin-bottom: 25px;
159
+ }
160
+
161
+ .card {
162
+ margin-bottom: 15px;
163
+ }
164
+
165
+ strong {
166
+ font-weight: 500;
167
+
168
+ @each $lang in $cjk-langs {
169
+ &:lang(#{$lang}) {
170
+ font-weight: 700;
171
+ }
172
+ }
173
+ }
174
+
175
+ .input.with_floating_label {
176
+ .label_input {
177
+ display: flex;
178
+
179
+ & > label {
180
+ font-family: inherit;
181
+ font-size: 14px;
182
+ color: $primary-text-color;
183
+ font-weight: 500;
184
+ min-width: 150px;
185
+ flex: 0 0 auto;
186
+ }
187
+
188
+ input,
189
+ select {
190
+ flex: 1 1 auto;
191
+ }
192
+ }
193
+
194
+ &.select .hint {
195
+ margin-top: 6px;
196
+ margin-left: 150px;
197
+ }
198
+ }
199
+
200
+ .input.with_label {
201
+ .label_input > label {
202
+ font-family: inherit;
203
+ font-size: 14px;
204
+ color: $primary-text-color;
205
+ display: block;
206
+ margin-bottom: 8px;
207
+ word-wrap: break-word;
208
+ font-weight: 500;
209
+ }
210
+
211
+ .hint {
212
+ margin-top: 6px;
213
+ }
214
+
215
+ ul {
216
+ flex: 390px;
217
+ }
218
+ }
219
+
220
+ .input.with_block_label {
221
+ max-width: none;
222
+
223
+ & > label {
224
+ font-family: inherit;
225
+ font-size: 16px;
226
+ color: $primary-text-color;
227
+ display: block;
228
+ font-weight: 500;
229
+ padding-top: 5px;
230
+ }
231
+
232
+ .hint {
233
+ margin-bottom: 15px;
234
+ }
235
+
236
+ ul {
237
+ columns: 2;
238
+ }
239
+ }
240
+
241
+ .input.datetime .label_input select {
242
+ display: inline-block;
243
+ width: auto;
244
+ flex: 0;
245
+ }
246
+
247
+ .required abbr {
248
+ text-decoration: none;
249
+ color: lighten($error-value-color, 12%);
250
+ }
251
+
252
+ .fields-group {
253
+ margin-bottom: 25px;
254
+
255
+ .input:last-child {
256
+ margin-bottom: 0;
257
+ }
258
+ }
259
+
260
+ .fields-row {
261
+ display: flex;
262
+ margin: 0 -10px;
263
+ padding-top: 5px;
264
+ margin-bottom: 25px;
265
+
266
+ .input {
267
+ max-width: none;
268
+ }
269
+
270
+ &__column {
271
+ box-sizing: border-box;
272
+ padding: 0 10px;
273
+ flex: 1 1 auto;
274
+ min-height: 1px;
275
+
276
+ &-6 {
277
+ max-width: 50%;
278
+ }
279
+
280
+ .actions {
281
+ margin-top: 27px;
282
+ }
283
+ }
284
+
285
+ .fields-group:last-child,
286
+ .fields-row__column.fields-group {
287
+ margin-bottom: 0;
288
+ }
289
+
290
+ @media screen and (max-width: $no-columns-breakpoint) {
291
+ display: block;
292
+ margin-bottom: 0;
293
+
294
+ &__column {
295
+ max-width: none;
296
+ }
297
+
298
+ .fields-group:last-child,
299
+ .fields-row__column.fields-group,
300
+ .fields-row__column {
301
+ margin-bottom: 25px;
302
+ }
303
+ }
304
+
305
+ .fields-group.invited-by {
306
+ margin-bottom: 30px;
307
+
308
+ .hint {
309
+ text-align: center;
310
+ }
311
+ }
312
+ }
313
+
314
+ .input.radio_buttons .radio label {
315
+ margin-bottom: 5px;
316
+ font-family: inherit;
317
+ font-size: 14px;
318
+ color: $primary-text-color;
319
+ display: block;
320
+ width: auto;
321
+ }
322
+
323
+ .check_boxes {
324
+ .checkbox {
325
+ label {
326
+ font-family: inherit;
327
+ font-size: 14px;
328
+ color: $primary-text-color;
329
+ display: inline-block;
330
+ width: auto;
331
+ position: relative;
332
+ padding-top: 5px;
333
+ padding-left: 25px;
334
+ flex: 1 1 auto;
335
+ }
336
+
337
+ input[type=checkbox] {
338
+ position: absolute;
339
+ left: 0;
340
+ top: 5px;
341
+ margin: 0;
342
+ }
343
+ }
344
+ }
345
+
346
+ .input.static .label_input__wrapper {
347
+ font-size: 16px;
348
+ padding: 10px;
349
+ border: 1px solid $dark-text-color;
350
+ border-radius: 4px;
351
+ }
352
+
353
+ input[type=text],
354
+ input[type=number],
355
+ input[type=email],
356
+ input[type=password],
357
+ input[type=url],
358
+ textarea {
359
+ box-sizing: border-box;
360
+ font-size: 16px;
361
+ color: $primary-text-color;
362
+ display: block;
363
+ width: 100%;
364
+ outline: 0;
365
+ font-family: inherit;
366
+ resize: vertical;
367
+ background: darken($ui-base-color, 10%);
368
+ border: 1px solid darken($ui-base-color, 14%);
369
+ border-radius: 4px;
370
+ padding: 10px;
371
+
372
+ &::placeholder {
373
+ color: lighten($darker-text-color, 4%);
374
+ }
375
+
376
+ &:invalid {
377
+ box-shadow: none;
378
+ }
379
+
380
+ &:required:valid {
381
+ border-color: $valid-value-color;
382
+ }
383
+
384
+ &:hover {
385
+ border-color: darken($ui-base-color, 20%);
386
+ }
387
+
388
+ &:active,
389
+ &:focus {
390
+ border-color: $highlight-text-color;
391
+ background: darken($ui-base-color, 8%);
392
+ }
393
+ }
394
+
395
+ input[type=text],
396
+ input[type=number],
397
+ input[type=email],
398
+ input[type=password] {
399
+ &:focus:invalid:not(:placeholder-shown),
400
+ &:required:invalid:not(:placeholder-shown) {
401
+ border-color: lighten($error-red, 12%);
402
+ }
403
+ }
404
+
405
+ .input.field_with_errors {
406
+ label {
407
+ color: lighten($error-red, 12%);
408
+ }
409
+
410
+ input[type=text],
411
+ input[type=number],
412
+ input[type=email],
413
+ input[type=password],
414
+ textarea,
415
+ select {
416
+ border-color: lighten($error-red, 12%);
417
+ }
418
+
419
+ .error {
420
+ display: block;
421
+ font-weight: 500;
422
+ color: lighten($error-red, 12%);
423
+ margin-top: 4px;
424
+ }
425
+ }
426
+
427
+ .input.disabled {
428
+ opacity: 0.5;
429
+ }
430
+
431
+ .actions {
432
+ margin-top: 30px;
433
+ display: flex;
434
+
435
+ &.actions--top {
436
+ margin-top: 0;
437
+ margin-bottom: 30px;
438
+ }
439
+ }
440
+
441
+ button,
442
+ .button,
443
+ .block-button {
444
+ display: block;
445
+ width: 100%;
446
+ border: 0;
447
+ border-radius: 4px;
448
+ background: $ui-highlight-color;
449
+ color: $primary-text-color;
450
+ font-size: 18px;
451
+ line-height: inherit;
452
+ height: auto;
453
+ padding: 10px;
454
+ text-transform: uppercase;
455
+ text-decoration: none;
456
+ text-align: center;
457
+ box-sizing: border-box;
458
+ cursor: pointer;
459
+ font-weight: 500;
460
+ outline: 0;
461
+ margin-bottom: 10px;
462
+ margin-right: 10px;
463
+
464
+ &:last-child {
465
+ margin-right: 0;
466
+ }
467
+
468
+ &:hover {
469
+ background-color: lighten($ui-highlight-color, 5%);
470
+ }
471
+
472
+ &:active,
473
+ &:focus {
474
+ background-color: darken($ui-highlight-color, 5%);
475
+ }
476
+
477
+ &:disabled:hover {
478
+ background-color: $ui-primary-color;
479
+ }
480
+
481
+ &.negative {
482
+ background: $error-value-color;
483
+
484
+ &:hover {
485
+ background-color: lighten($error-value-color, 5%);
486
+ }
487
+
488
+ &:active,
489
+ &:focus {
490
+ background-color: darken($error-value-color, 5%);
491
+ }
492
+ }
493
+ }
494
+
495
+ select {
496
+ appearance: none;
497
+ box-sizing: border-box;
498
+ font-size: 16px;
499
+ color: $primary-text-color;
500
+ display: block;
501
+ width: 100%;
502
+ outline: 0;
503
+ font-family: inherit;
504
+ resize: vertical;
505
+ background: darken($ui-base-color, 10%) url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 14.933 18.467' height='19.698' width='15.929'><path d='M3.467 14.967l-3.393-3.5H14.86l-3.392 3.5c-1.866 1.925-3.666 3.5-4 3.5-.335 0-2.135-1.575-4-3.5zm.266-11.234L7.467 0 11.2 3.733l3.733 3.734H0l3.733-3.734z' fill='#{hex-color(lighten($ui-base-color, 12%))}'/></svg>") no-repeat right 8px center / auto 16px;
506
+ border: 1px solid darken($ui-base-color, 14%);
507
+ border-radius: 4px;
508
+ padding-left: 10px;
509
+ padding-right: 30px;
510
+ height: 41px;
511
+ }
512
+
513
+ h4 {
514
+ margin-bottom: 15px !important;
515
+ }
516
+
517
+ .label_input {
518
+ &__wrapper {
519
+ position: relative;
520
+ }
521
+
522
+ &__append {
523
+ position: absolute;
524
+ right: 3px;
525
+ top: 1px;
526
+ padding: 10px;
527
+ padding-bottom: 9px;
528
+ font-size: 16px;
529
+ color: $dark-text-color;
530
+ font-family: inherit;
531
+ pointer-events: none;
532
+ cursor: default;
533
+ max-width: 140px;
534
+ white-space: nowrap;
535
+ overflow: hidden;
536
+
537
+ &::after {
538
+ content: '';
539
+ display: block;
540
+ position: absolute;
541
+ top: 0;
542
+ right: 0;
543
+ bottom: 1px;
544
+ width: 5px;
545
+ background-image: linear-gradient(to right, rgba(darken($ui-base-color, 10%), 0), darken($ui-base-color, 10%));
546
+ }
547
+ }
548
+ }
549
+
550
+ &__overlay-area {
551
+ position: relative;
552
+
553
+ &__blurred form {
554
+ filter: blur(2px);
555
+ }
556
+
557
+ &__overlay {
558
+ position: absolute;
559
+ top: 0;
560
+ left: 0;
561
+ width: 100%;
562
+ height: 100%;
563
+ display: flex;
564
+ justify-content: center;
565
+ align-items: center;
566
+ background: rgba($ui-base-color, 0.65);
567
+ border-radius: 4px;
568
+ margin-left: -4px;
569
+ margin-top: -4px;
570
+ padding: 4px;
571
+
572
+ &__content {
573
+ text-align: center;
574
+
575
+ &.rich-formatting {
576
+ &,
577
+ p {
578
+ color: $primary-text-color;
579
+ }
580
+ }
581
+ }
582
+ }
583
+ }
584
+ }
585
+
586
+ .block-icon {
587
+ display: block;
588
+ margin: 0 auto;
589
+ margin-bottom: 10px;
590
+ font-size: 24px;
591
+ }
592
+
593
+ .flash-message {
594
+ background: lighten($ui-base-color, 8%);
595
+ color: $darker-text-color;
596
+ border-radius: 4px;
597
+ padding: 15px 10px;
598
+ margin-bottom: 30px;
599
+ text-align: center;
600
+
601
+ &.notice {
602
+ border: 1px solid rgba($valid-value-color, 0.5);
603
+ background: rgba($valid-value-color, 0.25);
604
+ color: $valid-value-color;
605
+ }
606
+
607
+ &.alert {
608
+ border: 1px solid rgba($error-value-color, 0.5);
609
+ background: rgba($error-value-color, 0.1);
610
+ color: $error-value-color;
611
+ }
612
+
613
+ &.hidden {
614
+ display: none;
615
+ }
616
+
617
+ a {
618
+ display: inline-block;
619
+ color: $darker-text-color;
620
+ text-decoration: none;
621
+
622
+ &:hover {
623
+ color: $primary-text-color;
624
+ text-decoration: underline;
625
+ }
626
+ }
627
+
628
+ p {
629
+ margin-bottom: 15px;
630
+ }
631
+
632
+ .oauth-code {
633
+ outline: 0;
634
+ box-sizing: border-box;
635
+ display: block;
636
+ width: 100%;
637
+ border: 0;
638
+ padding: 10px;
639
+ font-family: $font-monospace, monospace;
640
+ background: $ui-base-color;
641
+ color: $primary-text-color;
642
+ font-size: 14px;
643
+ margin: 0;
644
+
645
+ &::-moz-focus-inner {
646
+ border: 0;
647
+ }
648
+
649
+ &::-moz-focus-inner,
650
+ &:focus,
651
+ &:active {
652
+ outline: 0 !important;
653
+ }
654
+
655
+ &:focus {
656
+ background: lighten($ui-base-color, 4%);
657
+ }
658
+ }
659
+
660
+ strong {
661
+ font-weight: 500;
662
+
663
+ @each $lang in $cjk-langs {
664
+ &:lang(#{$lang}) {
665
+ font-weight: 700;
666
+ }
667
+ }
668
+ }
669
+
670
+ @media screen and (max-width: 740px) and (min-width: 441px) {
671
+ margin-top: 40px;
672
+ }
673
+
674
+ &.translation-prompt {
675
+ text-align: unset;
676
+ color: unset;
677
+
678
+ a {
679
+ text-decoration: underline;
680
+ }
681
+ }
682
+ }
683
+
684
+ .form-footer {
685
+ margin-top: 30px;
686
+ text-align: center;
687
+
688
+ a {
689
+ color: $darker-text-color;
690
+ text-decoration: none;
691
+
692
+ &:hover {
693
+ text-decoration: underline;
694
+ }
695
+ }
696
+ }
697
+
698
+ .quick-nav {
699
+ list-style: none;
700
+ margin-bottom: 25px;
701
+ font-size: 14px;
702
+
703
+ li {
704
+ display: inline-block;
705
+ margin-right: 10px;
706
+ }
707
+
708
+ a {
709
+ color: $highlight-text-color;
710
+ text-transform: uppercase;
711
+ text-decoration: none;
712
+ font-weight: 700;
713
+
714
+ &:hover,
715
+ &:focus,
716
+ &:active {
717
+ color: lighten($highlight-text-color, 8%);
718
+ }
719
+ }
720
+ }
721
+
722
+ .oauth-prompt,
723
+ .follow-prompt {
724
+ margin-bottom: 30px;
725
+ color: $darker-text-color;
726
+
727
+ h2 {
728
+ font-size: 16px;
729
+ margin-bottom: 30px;
730
+ text-align: center;
731
+ }
732
+
733
+ strong {
734
+ color: $secondary-text-color;
735
+ font-weight: 500;
736
+
737
+ @each $lang in $cjk-langs {
738
+ &:lang(#{$lang}) {
739
+ font-weight: 700;
740
+ }
741
+ }
742
+ }
743
+
744
+ @media screen and (max-width: 740px) and (min-width: 441px) {
745
+ margin-top: 40px;
746
+ }
747
+ }
748
+
749
+ .qr-wrapper {
750
+ display: flex;
751
+ flex-wrap: wrap;
752
+ align-items: flex-start;
753
+ }
754
+
755
+ .qr-code {
756
+ flex: 0 0 auto;
757
+ background: $simple-background-color;
758
+ padding: 4px;
759
+ margin: 0 10px 20px 0;
760
+ box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);
761
+ display: inline-block;
762
+
763
+ svg {
764
+ display: block;
765
+ margin: 0;
766
+ }
767
+ }
768
+
769
+ .qr-alternative {
770
+ margin-bottom: 20px;
771
+ color: $secondary-text-color;
772
+ flex: 150px;
773
+
774
+ samp {
775
+ display: block;
776
+ font-size: 14px;
777
+ }
778
+ }
779
+
780
+ .table-form {
781
+ p {
782
+ margin-bottom: 15px;
783
+
784
+ strong {
785
+ font-weight: 500;
786
+
787
+ @each $lang in $cjk-langs {
788
+ &:lang(#{$lang}) {
789
+ font-weight: 700;
790
+ }
791
+ }
792
+ }
793
+ }
794
+ }
795
+
796
+ .simple_form,
797
+ .table-form {
798
+ .warning {
799
+ box-sizing: border-box;
800
+ background: rgba($error-value-color, 0.5);
801
+ color: $primary-text-color;
802
+ text-shadow: 1px 1px 0 rgba($base-shadow-color, 0.3);
803
+ box-shadow: 0 2px 6px rgba($base-shadow-color, 0.4);
804
+ border-radius: 4px;
805
+ padding: 10px;
806
+ margin-bottom: 15px;
807
+
808
+ a {
809
+ color: $primary-text-color;
810
+ text-decoration: underline;
811
+
812
+ &:hover,
813
+ &:focus,
814
+ &:active {
815
+ text-decoration: none;
816
+ }
817
+ }
818
+
819
+ strong {
820
+ font-weight: 600;
821
+ display: block;
822
+ margin-bottom: 5px;
823
+
824
+ @each $lang in $cjk-langs {
825
+ &:lang(#{$lang}) {
826
+ font-weight: 700;
827
+ }
828
+ }
829
+
830
+ .fa {
831
+ font-weight: 400;
832
+ }
833
+ }
834
+ }
835
+ }
836
+
837
+ .action-pagination {
838
+ display: flex;
839
+ flex-wrap: wrap;
840
+ align-items: center;
841
+
842
+ .actions,
843
+ .pagination {
844
+ flex: 1 1 auto;
845
+ }
846
+
847
+ .actions {
848
+ padding: 30px 0;
849
+ padding-right: 20px;
850
+ flex: 0 0 auto;
851
+ }
852
+ }
853
+
854
+ .post-follow-actions {
855
+ text-align: center;
856
+ color: $darker-text-color;
857
+
858
+ div {
859
+ margin-bottom: 4px;
860
+ }
861
+ }
862
+
863
+ .alternative-login {
864
+ margin-top: 20px;
865
+ margin-bottom: 20px;
866
+
867
+ h4 {
868
+ font-size: 16px;
869
+ color: $primary-text-color;
870
+ text-align: center;
871
+ margin-bottom: 20px;
872
+ border: 0;
873
+ padding: 0;
874
+ }
875
+
876
+ .button {
877
+ display: block;
878
+ }
879
+ }
880
+
881
+ .scope-danger {
882
+ color: $warning-red;
883
+ }
884
+
885
+ .form_admin_settings_site_short_description,
886
+ .form_admin_settings_site_description,
887
+ .form_admin_settings_site_extended_description,
888
+ .form_admin_settings_site_terms,
889
+ .form_admin_settings_custom_css,
890
+ .form_admin_settings_closed_registrations_message {
891
+ textarea {
892
+ font-family: $font-monospace, monospace;
893
+ }
894
+ }
895
+
896
+ .input-copy {
897
+ background: darken($ui-base-color, 10%);
898
+ border: 1px solid darken($ui-base-color, 14%);
899
+ border-radius: 4px;
900
+ display: flex;
901
+ align-items: center;
902
+ padding-right: 4px;
903
+ position: relative;
904
+ top: 1px;
905
+ transition: border-color 300ms linear;
906
+
907
+ &__wrapper {
908
+ flex: 1 1 auto;
909
+ }
910
+
911
+ input[type=text] {
912
+ background: transparent;
913
+ border: 0;
914
+ padding: 10px;
915
+ font-size: 14px;
916
+ font-family: $font-monospace, monospace;
917
+ }
918
+
919
+ button {
920
+ flex: 0 0 auto;
921
+ margin: 4px;
922
+ text-transform: none;
923
+ font-weight: 400;
924
+ font-size: 14px;
925
+ padding: 7px 18px;
926
+ padding-bottom: 6px;
927
+ width: auto;
928
+ transition: background 300ms linear;
929
+ }
930
+
931
+ &.copied {
932
+ border-color: $valid-value-color;
933
+ transition: none;
934
+
935
+ button {
936
+ background: $valid-value-color;
937
+ transition: none;
938
+ }
939
+ }
940
+ }
941
+
942
+ .connection-prompt {
943
+ margin-bottom: 25px;
944
+
945
+ .fa-link {
946
+ background-color: darken($ui-base-color, 4%);
947
+ border-radius: 100%;
948
+ font-size: 24px;
949
+ padding: 10px;
950
+ }
951
+
952
+ &__column {
953
+ align-items: center;
954
+ display: flex;
955
+ flex: 1;
956
+ flex-direction: column;
957
+ flex-shrink: 1;
958
+ max-width: 50%;
959
+
960
+ &-sep {
961
+ align-self: center;
962
+ flex-grow: 0;
963
+ overflow: visible;
964
+ position: relative;
965
+ z-index: 1;
966
+ }
967
+
968
+ p {
969
+ word-break: break-word;
970
+ }
971
+ }
972
+
973
+ .account__avatar {
974
+ margin-bottom: 20px;
975
+ }
976
+
977
+ &__connection {
978
+ background-color: lighten($ui-base-color, 8%);
979
+ box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);
980
+ border-radius: 4px;
981
+ padding: 25px 10px;
982
+ position: relative;
983
+ text-align: center;
984
+
985
+ &::after {
986
+ background-color: darken($ui-base-color, 4%);
987
+ content: '';
988
+ display: block;
989
+ height: 100%;
990
+ left: 50%;
991
+ position: absolute;
992
+ top: 0;
993
+ width: 1px;
994
+ }
995
+ }
996
+
997
+ &__row {
998
+ align-items: flex-start;
999
+ display: flex;
1000
+ flex-direction: row;
1001
+ }
1002
+ }
1003
+
1004
+ .input.user_confirm_password,
1005
+ .input.user_website {
1006
+ &:not(.field_with_errors) {
1007
+ display: none;
1008
+ }
1009
+ }