astro-atmosphere-comments 0.3.0 → 0.4.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.
- package/CHANGELOG.md +11 -0
- package/README.md +40 -2
- package/components/AtmosphereComments.astro +28 -1023
- package/components/AtmosphereReactions.astro +785 -0
- package/components/Composer.astro +80 -0
- package/components/SignInForm.astro +218 -0
- package/components/atmosphere.css +603 -0
- package/index.mjs +1 -0
- package/lib/client/composer.ts +232 -0
- package/lib/client/handle-suggestions.ts +112 -0
- package/lib/oauth.ts +5 -1
- package/locales/de.json +20 -0
- package/locales/en.json +20 -0
- package/locales/es.json +20 -0
- package/locales/fr.json +20 -0
- package/locales/it.json +20 -0
- package/locales/ja.json +20 -0
- package/locales/nl.json +20 -0
- package/locales/pt.json +20 -0
- package/package.json +7 -3
- package/routes/follow.ts +71 -0
- package/routes/login.ts +31 -5
|
@@ -0,0 +1,603 @@
|
|
|
1
|
+
/* Atmosphere Comments for Astro: the styles shared by AtmosphereComments and
|
|
2
|
+
AtmosphereReactions (the comment box, its quote preview and @mention
|
|
3
|
+
suggestions, and the thread). Global, so the comment box looks the same
|
|
4
|
+
wherever it appears; every class starts with atmo, and a site's own rules
|
|
5
|
+
for the thread win (their defaults are wrapped in :where). The sign-in
|
|
6
|
+
form has its own styles, in SignInForm.astro. */
|
|
7
|
+
|
|
8
|
+
.atmo {
|
|
9
|
+
display: block;
|
|
10
|
+
color: var(--atmo-text, currentColor);
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
/* Only the component's own parts wait for sign-in to be checked; the
|
|
14
|
+
site's slot content shows straight away. */
|
|
15
|
+
.atmo.is-loading > :is([data-view], [data-reactions], [data-replies]) {
|
|
16
|
+
visibility: hidden;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
.atmo [hidden] {
|
|
20
|
+
display: none !important;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
/* The comment box when it sits under a comment being replied to. */
|
|
24
|
+
.atmo--inline {
|
|
25
|
+
margin: 4px 0 6px;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
.atmo--inline .atmo__composer {
|
|
29
|
+
margin-top: 10px;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
.atmo__elsewhere {
|
|
33
|
+
max-width: 560px;
|
|
34
|
+
margin: 14px 0 0;
|
|
35
|
+
font-size: 0.9em;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
.atmo__elsewhere .atmo__elsewhere-link {
|
|
39
|
+
font-weight: 700;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
.atmo__composer {
|
|
43
|
+
display: grid;
|
|
44
|
+
gap: 8px;
|
|
45
|
+
max-width: 560px;
|
|
46
|
+
margin-top: 14px;
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
.atmo label {
|
|
50
|
+
font-weight: 700;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
.atmo__row {
|
|
54
|
+
display: flex;
|
|
55
|
+
flex-wrap: wrap;
|
|
56
|
+
align-items: center;
|
|
57
|
+
gap: 10px;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
.atmo__row--end {
|
|
61
|
+
justify-content: flex-end;
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
.atmo textarea {
|
|
65
|
+
flex: 1 1 220px;
|
|
66
|
+
min-width: 0;
|
|
67
|
+
padding: 10px 12px;
|
|
68
|
+
border: 1px solid var(--atmo-border, #8886);
|
|
69
|
+
border-radius: var(--atmo-radius, 10px);
|
|
70
|
+
background: var(--atmo-field-bg, transparent);
|
|
71
|
+
color: inherit;
|
|
72
|
+
font: inherit;
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
.atmo textarea {
|
|
76
|
+
resize: vertical;
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
.atmo__button {
|
|
80
|
+
padding: 10px 16px;
|
|
81
|
+
border: 0;
|
|
82
|
+
border-radius: var(--atmo-radius, 10px);
|
|
83
|
+
background: var(--atmo-accent, #1185fe);
|
|
84
|
+
color: var(--atmo-on-accent, #fff);
|
|
85
|
+
font: inherit;
|
|
86
|
+
font-weight: 700;
|
|
87
|
+
cursor: pointer;
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
.atmo__button:disabled {
|
|
91
|
+
opacity: 0.6;
|
|
92
|
+
cursor: progress;
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
.atmo__link-button {
|
|
96
|
+
padding: 0;
|
|
97
|
+
border: 0;
|
|
98
|
+
background: none;
|
|
99
|
+
color: var(--atmo-muted, inherit);
|
|
100
|
+
font: inherit;
|
|
101
|
+
text-decoration: underline;
|
|
102
|
+
cursor: pointer;
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
/* Like, Repost and Quote: outlined pills that fill in once done. */
|
|
106
|
+
.atmo__actions {
|
|
107
|
+
display: flex;
|
|
108
|
+
flex-wrap: wrap;
|
|
109
|
+
gap: 8px;
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
.atmo__action {
|
|
113
|
+
display: inline-flex;
|
|
114
|
+
align-items: center;
|
|
115
|
+
gap: 6px;
|
|
116
|
+
padding: 7px 14px 7px 10px;
|
|
117
|
+
border: 1px solid var(--atmo-border, #8886);
|
|
118
|
+
border-radius: 999px;
|
|
119
|
+
background: none;
|
|
120
|
+
color: inherit;
|
|
121
|
+
font: inherit;
|
|
122
|
+
font-weight: 600;
|
|
123
|
+
cursor: pointer;
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
.atmo__action:hover,
|
|
127
|
+
.atmo__action:focus-visible {
|
|
128
|
+
border-color: var(--atmo-accent, #1185fe);
|
|
129
|
+
color: var(--atmo-accent, #1185fe);
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
.atmo__action svg {
|
|
133
|
+
width: 18px;
|
|
134
|
+
height: 18px;
|
|
135
|
+
fill: none;
|
|
136
|
+
stroke: currentColor;
|
|
137
|
+
stroke-width: 1.8;
|
|
138
|
+
stroke-linecap: round;
|
|
139
|
+
stroke-linejoin: round;
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
.atmo__action[aria-pressed="true"] {
|
|
143
|
+
border-color: var(--atmo-accent, #1185fe);
|
|
144
|
+
color: var(--atmo-accent, #1185fe);
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
.atmo__action[data-react="like"][aria-pressed="true"] svg {
|
|
148
|
+
fill: currentColor;
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
.atmo__action [data-label-on],
|
|
152
|
+
.atmo__action[aria-pressed="true"] [data-label-off] {
|
|
153
|
+
display: none;
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
.atmo__action[aria-pressed="true"] [data-label-on] {
|
|
157
|
+
display: inline;
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
.atmo__context {
|
|
161
|
+
display: flex;
|
|
162
|
+
flex-wrap: wrap;
|
|
163
|
+
gap: 10px;
|
|
164
|
+
margin: 0;
|
|
165
|
+
color: var(--atmo-muted, inherit);
|
|
166
|
+
font-size: 0.9em;
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
.atmo__hint,
|
|
170
|
+
.atmo__count,
|
|
171
|
+
.atmo__status {
|
|
172
|
+
margin: 0;
|
|
173
|
+
color: var(--atmo-muted, inherit);
|
|
174
|
+
font-size: 0.9em;
|
|
175
|
+
}
|
|
176
|
+
|
|
177
|
+
.atmo__count {
|
|
178
|
+
margin-right: auto;
|
|
179
|
+
}
|
|
180
|
+
|
|
181
|
+
.atmo__count.is-over {
|
|
182
|
+
color: var(--atmo-error, #d33);
|
|
183
|
+
}
|
|
184
|
+
|
|
185
|
+
.atmo__status:not(:empty) {
|
|
186
|
+
margin-top: 10px;
|
|
187
|
+
}
|
|
188
|
+
|
|
189
|
+
.atmo__credit {
|
|
190
|
+
margin: 14px 0 0;
|
|
191
|
+
color: var(--atmo-muted, inherit);
|
|
192
|
+
font-size: 0.75em;
|
|
193
|
+
opacity: 0.8;
|
|
194
|
+
}
|
|
195
|
+
|
|
196
|
+
.atmo__credit a {
|
|
197
|
+
color: inherit;
|
|
198
|
+
}
|
|
199
|
+
|
|
200
|
+
/* @mention suggestions, under the text box. */
|
|
201
|
+
.atmo__field {
|
|
202
|
+
position: relative;
|
|
203
|
+
display: grid;
|
|
204
|
+
}
|
|
205
|
+
|
|
206
|
+
.atmo__suggestions {
|
|
207
|
+
position: absolute;
|
|
208
|
+
z-index: 5;
|
|
209
|
+
top: calc(100% + 4px);
|
|
210
|
+
left: 0;
|
|
211
|
+
width: min(100%, 360px);
|
|
212
|
+
margin: 0;
|
|
213
|
+
padding: 4px;
|
|
214
|
+
list-style: none;
|
|
215
|
+
border: 1px solid var(--atmo-border, #8886);
|
|
216
|
+
border-radius: var(--atmo-radius, 10px);
|
|
217
|
+
background: var(--atmo-menu-bg, Canvas);
|
|
218
|
+
box-shadow: 0 12px 30px rgb(0 0 0 / 0.25);
|
|
219
|
+
}
|
|
220
|
+
|
|
221
|
+
.atmo__suggestions li {
|
|
222
|
+
display: flex;
|
|
223
|
+
align-items: center;
|
|
224
|
+
gap: 8px;
|
|
225
|
+
padding: 7px 9px;
|
|
226
|
+
border-radius: calc(var(--atmo-radius, 10px) - 4px);
|
|
227
|
+
cursor: pointer;
|
|
228
|
+
}
|
|
229
|
+
|
|
230
|
+
.atmo__suggestions li[aria-selected="true"],
|
|
231
|
+
.atmo__suggestions li:hover {
|
|
232
|
+
background: color-mix(in srgb, var(--atmo-accent, #1185fe) 14%, transparent);
|
|
233
|
+
}
|
|
234
|
+
|
|
235
|
+
.atmo__suggestions li span:last-child {
|
|
236
|
+
overflow: hidden;
|
|
237
|
+
color: var(--atmo-muted, inherit);
|
|
238
|
+
text-overflow: ellipsis;
|
|
239
|
+
white-space: nowrap;
|
|
240
|
+
}
|
|
241
|
+
|
|
242
|
+
.atmo__suggestions .atmo__avatar {
|
|
243
|
+
display: grid;
|
|
244
|
+
flex: none;
|
|
245
|
+
place-items: center;
|
|
246
|
+
width: 26px;
|
|
247
|
+
height: 26px;
|
|
248
|
+
overflow: hidden;
|
|
249
|
+
border-radius: 50%;
|
|
250
|
+
background: var(--atmo-border, #8886);
|
|
251
|
+
font-size: 11px;
|
|
252
|
+
font-weight: 700;
|
|
253
|
+
}
|
|
254
|
+
|
|
255
|
+
.atmo__suggestions .atmo__avatar img {
|
|
256
|
+
width: 100%;
|
|
257
|
+
height: 100%;
|
|
258
|
+
object-fit: cover;
|
|
259
|
+
}
|
|
260
|
+
|
|
261
|
+
/* The Quote preview: a post card with the quoted post nested inside. */
|
|
262
|
+
.atmo__preview {
|
|
263
|
+
display: grid;
|
|
264
|
+
gap: 6px;
|
|
265
|
+
margin: 4px 0 0;
|
|
266
|
+
}
|
|
267
|
+
|
|
268
|
+
.atmo__preview figcaption {
|
|
269
|
+
color: var(--atmo-muted, inherit);
|
|
270
|
+
font-size: 0.85em;
|
|
271
|
+
font-weight: 700;
|
|
272
|
+
}
|
|
273
|
+
|
|
274
|
+
.atmo__preview-post,
|
|
275
|
+
.atmo__quoted {
|
|
276
|
+
padding: 12px 14px;
|
|
277
|
+
border: 1px solid var(--atmo-border, #8886);
|
|
278
|
+
border-radius: var(--atmo-radius, 10px);
|
|
279
|
+
}
|
|
280
|
+
|
|
281
|
+
/* As on Bluesky: the avatar beside the post, the post's parts stacked. */
|
|
282
|
+
.atmo__preview-post {
|
|
283
|
+
display: grid;
|
|
284
|
+
grid-template-columns: auto minmax(0, 1fr);
|
|
285
|
+
gap: 12px;
|
|
286
|
+
}
|
|
287
|
+
|
|
288
|
+
.atmo__preview-body,
|
|
289
|
+
.atmo__quoted {
|
|
290
|
+
display: grid;
|
|
291
|
+
gap: 6px;
|
|
292
|
+
min-width: 0;
|
|
293
|
+
}
|
|
294
|
+
|
|
295
|
+
.atmo__avatar {
|
|
296
|
+
display: grid;
|
|
297
|
+
place-items: center;
|
|
298
|
+
width: 42px;
|
|
299
|
+
height: 42px;
|
|
300
|
+
overflow: hidden;
|
|
301
|
+
border-radius: 50%;
|
|
302
|
+
background: var(--atmo-border, #8886);
|
|
303
|
+
color: var(--atmo-text, inherit);
|
|
304
|
+
font-weight: 700;
|
|
305
|
+
}
|
|
306
|
+
|
|
307
|
+
/* "Comment as @handle", with the reader's avatar as a reminder of which
|
|
308
|
+
account they're signed in with. */
|
|
309
|
+
.atmo__as {
|
|
310
|
+
display: flex;
|
|
311
|
+
align-items: center;
|
|
312
|
+
gap: 8px;
|
|
313
|
+
}
|
|
314
|
+
|
|
315
|
+
.atmo__avatar--me {
|
|
316
|
+
width: 28px;
|
|
317
|
+
height: 28px;
|
|
318
|
+
font-size: 12px;
|
|
319
|
+
}
|
|
320
|
+
|
|
321
|
+
.atmo__avatar--small {
|
|
322
|
+
display: inline-grid;
|
|
323
|
+
width: 18px;
|
|
324
|
+
height: 18px;
|
|
325
|
+
margin-right: 4px;
|
|
326
|
+
font-size: 10px;
|
|
327
|
+
vertical-align: -4px;
|
|
328
|
+
}
|
|
329
|
+
|
|
330
|
+
/* Added by the script, so outside Astro's scoped styles. */
|
|
331
|
+
.atmo__avatar img {
|
|
332
|
+
width: 100%;
|
|
333
|
+
height: 100%;
|
|
334
|
+
object-fit: cover;
|
|
335
|
+
}
|
|
336
|
+
|
|
337
|
+
.atmo__preview-post p,
|
|
338
|
+
.atmo__card span {
|
|
339
|
+
margin: 0;
|
|
340
|
+
}
|
|
341
|
+
|
|
342
|
+
.atmo__preview-author span,
|
|
343
|
+
.atmo__card-domain {
|
|
344
|
+
color: var(--atmo-muted, inherit);
|
|
345
|
+
}
|
|
346
|
+
|
|
347
|
+
.atmo__preview-text {
|
|
348
|
+
white-space: pre-wrap;
|
|
349
|
+
overflow-wrap: anywhere;
|
|
350
|
+
}
|
|
351
|
+
|
|
352
|
+
.atmo__preview-text.is-placeholder {
|
|
353
|
+
color: var(--atmo-muted, inherit);
|
|
354
|
+
font-style: italic;
|
|
355
|
+
}
|
|
356
|
+
|
|
357
|
+
.atmo__quoted {
|
|
358
|
+
font-size: 0.92em;
|
|
359
|
+
}
|
|
360
|
+
|
|
361
|
+
.atmo__card {
|
|
362
|
+
overflow: hidden;
|
|
363
|
+
border: 1px solid var(--atmo-border, #8886);
|
|
364
|
+
border-radius: var(--atmo-radius, 10px);
|
|
365
|
+
}
|
|
366
|
+
|
|
367
|
+
.atmo__card img {
|
|
368
|
+
display: block;
|
|
369
|
+
width: 100%;
|
|
370
|
+
aspect-ratio: 1.91 / 1;
|
|
371
|
+
object-fit: cover;
|
|
372
|
+
}
|
|
373
|
+
|
|
374
|
+
.atmo__card > div {
|
|
375
|
+
display: grid;
|
|
376
|
+
gap: 2px;
|
|
377
|
+
padding: 10px 12px;
|
|
378
|
+
}
|
|
379
|
+
|
|
380
|
+
.atmo__card [data-card-description] {
|
|
381
|
+
display: -webkit-box;
|
|
382
|
+
overflow: hidden;
|
|
383
|
+
-webkit-box-orient: vertical;
|
|
384
|
+
-webkit-line-clamp: 2;
|
|
385
|
+
}
|
|
386
|
+
|
|
387
|
+
.atmo__card-domain {
|
|
388
|
+
font-size: 0.85em;
|
|
389
|
+
}
|
|
390
|
+
|
|
391
|
+
/* The likes and reposts, and the comments. These are drawn by the script,
|
|
392
|
+
and wrapped in :where() so they carry no weight: any rule a site writes
|
|
393
|
+
for these classes wins. */
|
|
394
|
+
:where(.atmo-reactions) {
|
|
395
|
+
display: flex;
|
|
396
|
+
flex-wrap: wrap;
|
|
397
|
+
gap: 8px 32px;
|
|
398
|
+
margin: 0 0 18px;
|
|
399
|
+
}
|
|
400
|
+
|
|
401
|
+
:where(.atmo-reactions__count) {
|
|
402
|
+
margin: 0 0 8px;
|
|
403
|
+
font-weight: 700;
|
|
404
|
+
}
|
|
405
|
+
|
|
406
|
+
:where(.atmo-facepile) {
|
|
407
|
+
display: flex;
|
|
408
|
+
flex-wrap: wrap;
|
|
409
|
+
margin: 0;
|
|
410
|
+
padding: 0 0 0 8px;
|
|
411
|
+
list-style: none;
|
|
412
|
+
}
|
|
413
|
+
|
|
414
|
+
:where(.atmo-facepile li) {
|
|
415
|
+
margin-left: -8px;
|
|
416
|
+
}
|
|
417
|
+
|
|
418
|
+
:where(.atmo-facepile a) {
|
|
419
|
+
display: block;
|
|
420
|
+
border-radius: 50%;
|
|
421
|
+
}
|
|
422
|
+
|
|
423
|
+
:where(.atmo-facepile__avatar, .atmo-facepile__more) {
|
|
424
|
+
display: grid;
|
|
425
|
+
place-items: center;
|
|
426
|
+
width: 36px;
|
|
427
|
+
height: 36px;
|
|
428
|
+
border: 2px solid var(--atmo-ring, Canvas);
|
|
429
|
+
border-radius: 50%;
|
|
430
|
+
object-fit: cover;
|
|
431
|
+
background: var(--atmo-field-bg, #8882);
|
|
432
|
+
font-size: 12px;
|
|
433
|
+
}
|
|
434
|
+
|
|
435
|
+
:where(.atmo-facepile__more) {
|
|
436
|
+
width: auto;
|
|
437
|
+
min-width: 36px;
|
|
438
|
+
padding: 0 8px;
|
|
439
|
+
border-radius: 18px;
|
|
440
|
+
}
|
|
441
|
+
|
|
442
|
+
:where(.atmo-avatar-initial) {
|
|
443
|
+
display: inline-grid;
|
|
444
|
+
place-items: center;
|
|
445
|
+
color: #fff;
|
|
446
|
+
font-weight: 800;
|
|
447
|
+
background: var(--atmo-accent, #1185fe);
|
|
448
|
+
}
|
|
449
|
+
|
|
450
|
+
:where(.atmo-comments) {
|
|
451
|
+
display: grid;
|
|
452
|
+
gap: 12px;
|
|
453
|
+
margin: 24px 0 0;
|
|
454
|
+
padding: 0;
|
|
455
|
+
list-style: none;
|
|
456
|
+
}
|
|
457
|
+
|
|
458
|
+
:where(.atmo-comments:empty) {
|
|
459
|
+
display: none;
|
|
460
|
+
}
|
|
461
|
+
|
|
462
|
+
:where(.atmo-comment article) {
|
|
463
|
+
padding: 16px 18px;
|
|
464
|
+
border: 1px solid var(--atmo-border, #8886);
|
|
465
|
+
border-radius: 16px;
|
|
466
|
+
background: var(--atmo-card-bg, transparent);
|
|
467
|
+
}
|
|
468
|
+
|
|
469
|
+
:where(.atmo-comment--author > article) {
|
|
470
|
+
border-color: var(--atmo-accent, #1185fe);
|
|
471
|
+
}
|
|
472
|
+
|
|
473
|
+
/* Replies step in under the comment they answer (up to three levels). */
|
|
474
|
+
:where(.atmo-comment--nested) {
|
|
475
|
+
margin-left: calc((var(--depth, 1) - 1) * 24px);
|
|
476
|
+
padding-left: 22px;
|
|
477
|
+
border-left: 2px solid var(--atmo-border, #8886);
|
|
478
|
+
}
|
|
479
|
+
|
|
480
|
+
:where(.atmo-comment__header) {
|
|
481
|
+
display: flex;
|
|
482
|
+
align-items: center;
|
|
483
|
+
gap: 12px;
|
|
484
|
+
}
|
|
485
|
+
|
|
486
|
+
:where(.atmo-comment__avatar) {
|
|
487
|
+
flex: none;
|
|
488
|
+
width: 40px;
|
|
489
|
+
height: 40px;
|
|
490
|
+
border-radius: 50%;
|
|
491
|
+
object-fit: cover;
|
|
492
|
+
}
|
|
493
|
+
|
|
494
|
+
:where(.atmo-comment__who) {
|
|
495
|
+
display: flex;
|
|
496
|
+
flex-wrap: wrap;
|
|
497
|
+
align-items: center;
|
|
498
|
+
gap: 8px;
|
|
499
|
+
}
|
|
500
|
+
|
|
501
|
+
:where(.atmo-comment__author) {
|
|
502
|
+
color: inherit;
|
|
503
|
+
font-weight: 750;
|
|
504
|
+
text-decoration: none;
|
|
505
|
+
}
|
|
506
|
+
|
|
507
|
+
:where(.atmo-comment__badge) {
|
|
508
|
+
padding: 2px 7px;
|
|
509
|
+
border: 1px solid var(--atmo-accent, #1185fe);
|
|
510
|
+
border-radius: 999px;
|
|
511
|
+
color: var(--atmo-accent, #1185fe);
|
|
512
|
+
font-size: 11px;
|
|
513
|
+
font-weight: 800;
|
|
514
|
+
letter-spacing: 0.04em;
|
|
515
|
+
text-transform: uppercase;
|
|
516
|
+
}
|
|
517
|
+
|
|
518
|
+
:where(.atmo-comment__date) {
|
|
519
|
+
color: var(--atmo-muted, inherit);
|
|
520
|
+
font-size: 13px;
|
|
521
|
+
text-decoration: none;
|
|
522
|
+
}
|
|
523
|
+
|
|
524
|
+
:where(.atmo-comment__body) {
|
|
525
|
+
margin-top: 10px;
|
|
526
|
+
line-height: 1.65;
|
|
527
|
+
overflow-wrap: anywhere;
|
|
528
|
+
white-space: pre-line;
|
|
529
|
+
}
|
|
530
|
+
|
|
531
|
+
:where(.atmo-comment__body p) {
|
|
532
|
+
margin: 0;
|
|
533
|
+
}
|
|
534
|
+
|
|
535
|
+
/* Reply, Like and Repost under each comment (outside this element, so
|
|
536
|
+
unscoped). */
|
|
537
|
+
.atmo-comment-actions {
|
|
538
|
+
display: flex;
|
|
539
|
+
flex-wrap: wrap;
|
|
540
|
+
gap: 18px;
|
|
541
|
+
margin-top: 8px;
|
|
542
|
+
}
|
|
543
|
+
|
|
544
|
+
.atmo-comment-delete {
|
|
545
|
+
display: flex;
|
|
546
|
+
flex-wrap: wrap;
|
|
547
|
+
align-items: center;
|
|
548
|
+
gap: 6px 12px;
|
|
549
|
+
margin-top: 8px;
|
|
550
|
+
font-size: 0.9em;
|
|
551
|
+
}
|
|
552
|
+
|
|
553
|
+
.atmo-comment-delete form {
|
|
554
|
+
display: contents;
|
|
555
|
+
}
|
|
556
|
+
|
|
557
|
+
.atmo-comment-delete__text {
|
|
558
|
+
color: var(--atmo-muted, inherit);
|
|
559
|
+
}
|
|
560
|
+
|
|
561
|
+
|
|
562
|
+
.atmo-comment-action {
|
|
563
|
+
display: inline-flex;
|
|
564
|
+
align-items: center;
|
|
565
|
+
gap: 5px;
|
|
566
|
+
padding: 0;
|
|
567
|
+
border: 0;
|
|
568
|
+
background: none;
|
|
569
|
+
color: var(--atmo-muted, inherit);
|
|
570
|
+
font: inherit;
|
|
571
|
+
font-size: 0.85em;
|
|
572
|
+
font-weight: 600;
|
|
573
|
+
cursor: pointer;
|
|
574
|
+
}
|
|
575
|
+
|
|
576
|
+
.atmo-comment-action--delete {
|
|
577
|
+
margin-left: auto;
|
|
578
|
+
}
|
|
579
|
+
|
|
580
|
+
.atmo-comment-action--danger {
|
|
581
|
+
color: var(--atmo-danger, #c0392b);
|
|
582
|
+
font-weight: 700;
|
|
583
|
+
}
|
|
584
|
+
|
|
585
|
+
.atmo-comment-action:hover,
|
|
586
|
+
.atmo-comment-action:focus-visible,
|
|
587
|
+
.atmo-comment-action[aria-pressed="true"] {
|
|
588
|
+
color: var(--atmo-accent, #1185fe);
|
|
589
|
+
}
|
|
590
|
+
|
|
591
|
+
.atmo-comment-action svg {
|
|
592
|
+
width: 16px;
|
|
593
|
+
height: 16px;
|
|
594
|
+
fill: none;
|
|
595
|
+
stroke: currentColor;
|
|
596
|
+
stroke-width: 1.8;
|
|
597
|
+
stroke-linecap: round;
|
|
598
|
+
stroke-linejoin: round;
|
|
599
|
+
}
|
|
600
|
+
|
|
601
|
+
.atmo-comment-action[data-kind="like"][aria-pressed="true"] svg {
|
|
602
|
+
fill: currentColor;
|
|
603
|
+
}
|