aboutsummaryrefslogtreecommitdiff
path: root/src/public/styles.css
diff options
context:
space:
mode:
Diffstat (limited to 'src/public/styles.css')
-rw-r--r--src/public/styles.css225
1 files changed, 210 insertions, 15 deletions
diff --git a/src/public/styles.css b/src/public/styles.css
index fcb0752..d9f6a40 100644
--- a/src/public/styles.css
+++ b/src/public/styles.css
@@ -47,6 +47,30 @@ body {
47 color: var(--text-color); 47 color: var(--text-color);
48} 48}
49 49
50body:has(details.card[open]) {
51 overflow: hidden;
52}
53
54body.media-maximized {
55 /* Fix for Safari User Agent stylesheet */
56 margin: 0;
57}
58
59body.media-maximized.zoom,
60div.media-maximized.container.zoom {
61 overflow: auto;
62}
63
64img.media-maximized {
65 cursor: zoom-in;
66}
67
68img.media-maximized.zoom {
69 max-width: unset;
70 max-height: unset;
71 cursor: zoom-out;
72}
73
50main { 74main {
51 display: flex; 75 display: flex;
52 flex-direction: column; 76 flex-direction: column;
@@ -58,6 +82,7 @@ main {
58.info-container a, 82.info-container a,
59.comment-info-container a, 83.comment-info-container a,
60.sort-opts a, 84.sort-opts a,
85.view-opts a,
61.more a 86.more a
62{ 87{
63 text-decoration: none; 88 text-decoration: none;
@@ -92,21 +117,28 @@ a:visited {
92 align-items: center; 117 align-items: center;
93} 118}
94 119
95.sorting { 120.sorting,
121.viewing {
96 margin-top: 20px; 122 margin-top: 20px;
97} 123}
98 124
99.sort-opts { 125.sort-opts,
126.view-opts {
100 display: grid; 127 display: grid;
101 margin: 10px; 128 margin: 10px;
102} 129}
103 130
104.sort-opts { 131.sort-opts,
132.view-opts {
105 grid-template-columns: repeat(2, 1fr); 133 grid-template-columns: repeat(2, 1fr);
106 grid-template-rows: repeat(5, 1fr); 134 grid-template-rows: repeat(5, 1fr);
107 grid-auto-flow: column; 135 grid-auto-flow: column;
108} 136}
109 137
138.view-opts {
139 grid-template-rows: repeat(2, 1fr);
140}
141
110.footer { 142.footer {
111 display: flex; 143 display: flex;
112 flex-direction: row; 144 flex-direction: row;
@@ -135,6 +167,91 @@ nav {
135 font-size: 0.9rem; 167 font-size: 0.9rem;
136} 168}
137 169
170.post-container.card {
171 border: 1px solid var(--bg-color-muted);
172 border-radius: 8px;
173 display: block;
174}
175
176.post-text.card {
177 padding: 0.9rem;
178 padding-top: 0.3rem;
179}
180
181.self-text-overflow.card {
182 /* For spoiler positioning */
183 position: relative;
184 padding-top: 0.3rem;
185 max-height: 10vh;
186 overflow: hidden;
187 overflow-wrap: break-word;
188 display: block;
189}
190
191.self-text.card {
192 overflow: hidden;
193 display: -webkit-box;
194 /* Safari on iOS <= 17 */
195 -webkit-box-orient: vertical;
196 -webkit-line-clamp: 3;
197 line-clamp: 3;
198 text-overflow: ellipsis;
199}
200
201.media-preview.card {
202 position: relative;
203 padding: 0.3rem;
204 padding-bottom: 0.3rem;
205}
206
207.media-preview.card > img {
208 cursor: pointer;
209}
210
211.gallery.card {
212 align-items: center;
213 scroll-snap-type: both mandatory;
214}
215
216.gallery-item.card {
217 max-width: 100%;
218 width: 100%;
219 scroll-snap-align: center;
220}
221
222.gallery-item-idx.card {
223 text-align: center;
224}
225
226.spoiler {
227 background-color: rbga(var(--bg-color-muted), 0.2);
228 /* Safari on iOS <= 17 */
229 -webkit-backdrop-filter: blur(3rem);
230 backdrop-filter: blur(3rem);
231 border-radius: 4px;
232
233 position: absolute;
234 top: 0;
235 left: 0;
236
237 box-sizing: border-box;
238 display: flex;
239 height: 100%;
240 width: 100%;
241
242 justify-content: center;
243 align-items: center;
244
245 cursor: pointer;
246
247 z-index: 10;
248}
249
250.gallery-item-idx.card,
251.spoiler > h2 {
252 text-shadow: 0.1rem 0.1rem 1rem var(--bg-color-muted);
253}
254
138.comments-container { 255.comments-container {
139 font-size: 0.9rem; 256 font-size: 0.9rem;
140} 257}
@@ -179,21 +296,44 @@ summary::before {
179 height: 4rem; 296 height: 4rem;
180} 297}
181 298
299.media-preview.card {
300 padding: unset;
301}
302
303.media-preview.card img,
304.media-preview.card video {
305 border-radius: 6px;
306
307 max-height: 40vh;
308 max-width: 95%;
309
310 display: block;
311 width: unset;
312 height: unset;
313 margin-left: auto;
314 margin-right: auto;
315 margin-bottom: 0.5rem;
316
317 object-fit: fill;
318}
319
320.media-preview.card a {
321 font-size: 1.5rem;
322 padding: unset;
323 padding-left: 1rem;
324}
325
326.media-preview.card a:has(img) {
327 font-size: 0rem;
328 padding: unset;
329}
330
182.media-preview a { 331.media-preview a {
183 font-size: 2rem; 332 font-size: 2rem;
184 text-decoration: none; 333 text-decoration: none;
185 padding: 1rem; 334 padding: 1rem;
186} 335}
187 336
188.media-maximized-container {
189 display: flex;
190 justify-content: center;
191 align-items: center;
192 width: 100vw;
193 height: 100vh;
194 overflow: hidden;
195}
196
197.media-maximized { 337.media-maximized {
198 max-width: 100vw; 338 max-width: 100vw;
199 max-height: 100vh; 339 max-height: 100vh;
@@ -204,6 +344,15 @@ summary::before {
204 object-fit: contain; 344 object-fit: contain;
205} 345}
206 346
347.media-maximized.container {
348 display: flex;
349 justify-content: center;
350 align-items: center;
351 width: 100vw;
352 height: 100vh;
353 overflow: hidden;
354}
355
207.post-author { 356.post-author {
208 display: none 357 display: none
209} 358}
@@ -233,6 +382,20 @@ form {
233 width: 5rem; 382 width: 5rem;
234 height: 5rem; 383 height: 5rem;
235 } 384 }
385 .media-preview.card img,
386 .media-preview.card video
387 {
388 max-height: 50vh;
389 }
390 .media-preview.card a {
391 font-size: 1rem;
392 margin: 0.7rem;
393 padding: initial;
394 }
395 .self-text.card {
396 -webkit-line-clamp: 4;
397 line-clamp: 4;
398 }
236 .post-author { 399 .post-author {
237 display: inline 400 display: inline
238 } 401 }
@@ -242,7 +405,8 @@ form {
242 form { 405 form {
243 width: 40%; 406 width: 40%;
244 } 407 }
245 .sort-opts { 408 .sort-opts,
409 .view-opts {
246 grid-template-columns: repeat(9, 1fr); 410 grid-template-columns: repeat(9, 1fr);
247 grid-template-rows: repeat(1, 1fr); 411 grid-template-rows: repeat(1, 1fr);
248 grid-auto-flow: row; 412 grid-auto-flow: row;
@@ -260,10 +424,24 @@ form {
260 width: 5rem; 424 width: 5rem;
261 height: 5rem; 425 height: 5rem;
262 } 426 }
427 .media-preview.card img,
428 .media-preview.card video
429 {
430 max-height: 30vh;
431 }
263 .media-preview a { 432 .media-preview a {
264 font-size: 2rem; 433 font-size: 2rem;
265 padding: 2rem; 434 padding: 2rem;
266 } 435 }
436 .media-preview.card a {
437 font-size: 1rem;
438 margin: 0.5rem;
439 padding: initial;
440 }
441 .self-text.card {
442 -webkit-line-clamp: 6;
443 line-clamp: 6;
444 }
267 .post-author { 445 .post-author {
268 display: inline 446 display: inline
269 } 447 }
@@ -273,7 +451,8 @@ form {
273 form { 451 form {
274 width: 20%; 452 width: 20%;
275 } 453 }
276 .sort-opts { 454 .sort-opts,
455 .view-opts {
277 grid-template-columns: repeat(9, 1fr); 456 grid-template-columns: repeat(9, 1fr);
278 grid-template-rows: repeat(1, 1fr); 457 grid-template-rows: repeat(1, 1fr);
279 grid-auto-flow: row; 458 grid-auto-flow: row;
@@ -285,7 +464,13 @@ form {
285 flex: 1 1 40%; 464 flex: 1 1 40%;
286 width: 40%; 465 width: 40%;
287 } 466 }
288 .sort-opts { 467 .media-preview.card img,
468 .media-preview.card video
469 {
470 max-height: 20vh;
471 }
472 .sort-opts,
473 .view-opts {
289 grid-template-columns: repeat(9, 1fr); 474 grid-template-columns: repeat(9, 1fr);
290 grid-template-rows: repeat(1, 1fr); 475 grid-template-rows: repeat(1, 1fr);
291 grid-auto-flow: row; 476 grid-auto-flow: row;
@@ -353,6 +538,11 @@ form {
353 text-decoration: none; 538 text-decoration: none;
354} 539}
355 540
541.title-container.card > a {
542 font-size: 1.125rem;
543 font-weight: bold;
544}
545
356.title-container > a:hover { 546.title-container > a:hover {
357 text-decoration: underline; 547 text-decoration: underline;
358} 548}
@@ -363,6 +553,7 @@ form {
363 553
364.header a, 554.header a,
365.sort-opts a, 555.sort-opts a,
556.view-opts a,
366.sub-title a { 557.sub-title a {
367 color: var(--text-color); 558 color: var(--text-color);
368} 559}
@@ -630,3 +821,7 @@ select {
630 border-radius: 2px; 821 border-radius: 2px;
631 border: 4px solid var(--sticky-color); 822 border: 4px solid var(--sticky-color);
632} 823}
824
825.inline {
826 max-width: 100%;
827}