Thread viewer for Bluesky
at mastodon 802 lines 12 kB view raw
1:root { 2 color-scheme: light dark; 3 supported-color-schemes: light dark; 4} 5 6@keyframes rotation { 7 from { 8 transform: rotate(0deg); 9 } 10 to { 11 transform: rotate(360deg); 12 } 13} 14 15body { 16 width: 960px; 17 margin: 0px auto 40px; 18 font-family: -apple-system, system-ui, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif; 19 text-rendering: optimizeLegibility; 20 -webkit-font-smoothing: antialiased; 21 overflow-y: scroll; 22} 23 24a { 25 text-decoration: none; 26 color: rgb(0, 0, 255); 27} 28 29a:hover { 30 text-decoration: underline; 31} 32 33a:visited { 34 color: rgb(0, 0, 255); 35} 36 37#github { 38 position: fixed; 39 bottom: 10px; 40 right: 10px; 41 z-index: 10; 42} 43 44#github img { 45 width: 20px; 46 opacity: 0.4; 47} 48 49#github a:hover img { 50 opacity: 0.6; 51} 52 53#search { 54 visibility: hidden; 55 position: fixed; 56 top: 0; 57 bottom: 0; 58 left: 0; 59 right: 0; 60 display: flex; 61 align-items: center; 62 justify-content: center; 63 padding-bottom: 5%; 64} 65 66#search form { 67 border: 2px solid hsl(210, 100%, 80%); 68 border-radius: 10px; 69 padding: 15px 20px; 70 margin-left: 50px; 71} 72 73#search input { 74 font-size: 16pt; 75 width: 600px; 76 border: 0; 77 margin-left: 8px; 78} 79 80#search input:focus { 81 outline: none; 82} 83 84#account { 85 position: fixed; 86 top: 10px; 87 left: 10px; 88 line-height: 24px; 89 z-index: 20; 90 user-select: none; 91 -webkit-user-select: none; 92} 93 94#account i { 95 opacity: 0.4; 96} 97 98#account i:hover { 99 cursor: pointer; 100 opacity: 0.6; 101} 102 103#account img.avatar { 104 width: 24px; 105 height: 24px; 106 border-radius: 13px; 107 box-shadow: 0px 0px 2px black; 108} 109 110#account_menu { 111 position: fixed; 112 visibility: hidden; 113 top: 5px; 114 left: 5px; 115 padding-top: 30px; 116 z-index: 15; 117 background: hsl(210, 33.33%, 94.0%); 118 border: 1px solid #ccc; 119 border-radius: 5px; 120 user-select: none; 121 -webkit-user-select: none; 122} 123 124#account_menu ul { 125 list-style-type: none; 126 margin: 0px 0px 10px; 127 padding: 6px 11px; 128} 129 130#account_menu li a { 131 display: inline-block; 132 color: #333; 133 font-size: 11pt; 134 border: 1px solid #bbb; 135 padding: 3px 5px; 136 margin-top: 8px; 137 border-radius: 5px; 138 background-color: hsla(210, 100%, 4%, 0.12); 139} 140 141#account_menu li a:hover { 142 background-color: hsla(210, 100%, 4%, 0.2); 143 text-decoration: none; 144} 145 146#login { 147 visibility: hidden; 148 position: fixed; 149 top: 0; 150 bottom: 0; 151 left: 0; 152 right: 0; 153 display: flex; 154 align-items: center; 155 justify-content: center; 156 padding-bottom: 5%; 157 z-index: 10; 158 background-color: rgba(240, 240, 240, 0.4); 159} 160 161#login.expanded { 162 padding-bottom: 0; 163} 164 165#login form { 166 position: relative; 167 border: 2px solid hsl(210, 100%, 85%); 168 background-color: hsl(210, 100%, 98%); 169 border-radius: 10px; 170 padding: 15px 25px; 171} 172 173#login .close { 174 position: absolute; 175 top: 5px; 176 right: 5px; 177 color: hsl(210, 100%, 75%); 178 opacity: 0.6; 179} 180 181#login .close:hover { 182 color: hsl(210, 100%, 65%); 183 opacity: 1.0; 184} 185 186#login p { 187 text-align: center; 188} 189 190#login h2 { 191 font-size: 13pt; 192 font-weight: 600; 193 text-align: center; 194 margin-bottom: 25px; 195 padding-right: 10px; 196} 197 198#login p.submit { 199 margin-top: 25px; 200} 201 202#login p.info { 203 font-size: 9pt; 204} 205 206#login p.info a { 207 color: #666; 208} 209 210#login input[type="text"], #login input[type="password"] { 211 width: 200px; 212 font-size: 11pt; 213 border: 1px solid #d6d6d6; 214 border-radius: 4px; 215 padding: 5px 6px; 216 margin: 0px 15px; 217} 218 219#login input[type="submit"] { 220 width: 150px; 221 font-size: 11pt; 222 border: 1px solid hsl(210, 90%, 85%); 223 background-color: hsl(210, 100%, 92%); 224 border-radius: 4px; 225 padding: 5px 6px; 226} 227 228#login input[type="submit"]:active { 229 background-color: hsl(210, 100%, 90%); 230} 231 232#login #cloudy { 233 color: hsl(210, 60%, 75%); 234 margin: 14px 0px; 235 display: none; 236} 237 238#login .info-box { 239 display: none; 240 border: 1px solid hsl(45, 100%, 60%); 241 background-color: hsl(50, 100%, 96%); 242 width: 360px; 243 font-size: 11pt; 244 border-radius: 6px; 245} 246 247#login.expanded .info-box { 248 display: block; 249} 250 251#login .info-box p { 252 margin: 15px 15px; 253 line-height: 125%; 254 text-align: left; 255} 256 257#loader { 258 display: none; 259 position: fixed; 260 top: 0; 261 bottom: 0; 262 left: 0; 263 right: 0; 264 margin: auto; 265 width: 36px; 266 height: 36px; 267} 268 269#loader img { 270 width: 36px; 271 animation: rotation 3s infinite linear; 272} 273 274#thread { 275 padding-top: 1px; 276} 277 278#thread.overlay { 279 filter: blur(8px); 280} 281 282#thread header h2 { 283 margin-left: 20px; 284 margin-top: 40px; 285 margin-bottom: 50px; 286 font-size: 18pt; 287} 288 289#thread.quotes .post { 290 padding-bottom: 5px; 291} 292 293#thread.hashtag .post { 294 padding-bottom: 10px; 295 border-bottom: 1px solid #ddd; 296} 297 298#thread + p.note { 299 margin-top: 30px; 300 margin-left: 15px; 301 font-size: 11pt; 302 color: #666; 303} 304 305.back, .back a { 306 font-size: 11pt; 307 color: #666; 308} 309 310.back i { 311 margin-right: 2px; 312} 313 314p.back i { 315 font-size: 10pt; 316 color: #888; 317 margin-right: 5px; 318} 319 320.post { 321 position: relative; 322 padding-left: 21px; 323 margin-top: 30px; 324} 325 326.post .edge { 327 position: absolute; 328 left: -2px; 329 top: 30px; 330 bottom: 0px; 331 width: 6px; 332} 333 334.post .edge .line { 335 position: absolute; 336 left: 2px; 337 top: 0px; 338 bottom: 0px; 339 border-left: 1px solid #aaa; 340} 341 342.post .edge:hover .line { 343 border-left: 2px solid #888; 344} 345 346.post.collapsed .line { 347 display: none; 348} 349 350.post.collapsed .content { 351 display: none; 352} 353 354.post.flat { 355 padding-left: 0px; 356 margin-top: 25px; 357} 358 359.post.flat > .edge { 360 display: none; 361} 362 363.post .avatar { 364 width: 32px; 365 height: 32px; 366 border-radius: 16px; 367 vertical-align: middle; 368 margin-bottom: 3px; 369 margin-right: 8px; 370} 371 372.post .missing { 373 color: #aaa; 374 background-color: #eee; 375 border-radius: 16px; 376 vertical-align: middle; 377 margin-right: 8px; 378} 379 380.post.muted .missing { 381 color: #bbb; 382} 383 384.post .plus { 385 position: absolute; 386 top: 8px; 387 left: -6px; 388 width: 14px; 389} 390 391.post.flat > .plus { 392 display: none; 393} 394 395.post h2 { 396 font-size: 12pt; 397 margin-bottom: 0; 398} 399 400.post h2 .handle { 401 color: #888; 402 font-weight: normal; 403 font-size: 11pt; 404 vertical-align: text-top; 405} 406 407.post h2 .separator { 408 color: #888; 409 font-weight: normal; 410 font-size: 11pt; 411 vertical-align: text-top; 412} 413 414.post h2 .time { 415 color: #666; 416 font-weight: normal; 417 font-size: 10pt; 418 vertical-align: text-top; 419} 420 421.post h2 .action { 422 color: #888; 423 font-weight: normal; 424 font-size: 10pt; 425 vertical-align: text-top; 426} 427 428.post h2 img.mastodon { 429 width: 15px; 430 position: relative; 431 top: 2px; 432 margin-left: 3px; 433} 434 435.post p { 436 margin-top: 10px; 437} 438 439.post div.body p + p { 440 margin-top: 18px; 441} 442 443.post .quote-embed { 444 border: 1px solid #ddd; 445 border-radius: 8px; 446 background-color: #fbfcfd; 447 margin-top: 25px; 448 margin-bottom: 15px; 449 margin-left: 0px; 450 max-width: 800px; 451} 452 453.post .quote-embed .post { 454 margin-top: 16px; 455 padding-left: 16px; 456 padding-right: 16px; 457 padding-bottom: 5px; 458} 459 460.post .quote-embed .placeholder { 461 font-style: italic; 462 font-size: 11pt; 463 color: #888; 464} 465 466.post .image-alt { 467 font-size: 11pt; 468 color: #666; 469 margin-bottom: 20px; 470} 471 472.post .image-alt summary { 473 font-size: 11pt; 474 color: #666; 475 margin-bottom: 5px; 476 user-select: none; 477 -webkit-user-select: none; 478 cursor: default; 479} 480 481.post.blocked p, .post.blocked a { 482 font-size: 11pt; 483 color: #666; 484} 485 486.post.blocked .blocked-header i { 487 margin-right: 2px; 488} 489 490.post.muted > h2, .post.muted > .content > details > p, .post.muted > .content > details summary { 491 opacity: 0.3; 492} 493 494.post.muted > h2 { 495 font-weight: 600; 496} 497 498.post.muted details { 499 margin-top: 12px; 500 margin-bottom: 10px; 501} 502 503.post.muted details summary { 504 font-size: 10pt; 505 user-select: none; 506 -webkit-user-select: none; 507 cursor: default; 508} 509 510.post a.link-card { 511 display: block; 512 position: relative; 513 max-width: 500px; 514 margin-bottom: 12px; 515} 516 517.post a.link-card:hover { 518 text-decoration: none; 519} 520 521.post a.link-card > div { 522 background-color: #fcfcfd; 523 border: 1px solid #d8d8d8; 524 border-radius: 8px; 525 padding: 11px 15px; 526} 527 528.post a.link-card:hover > div { 529 background-color: #f6f7f8; 530 border: 1px solid #c8c8c8; 531} 532 533.post a.link-card > div:not(:has(p.description)) { 534 padding-bottom: 14px; 535} 536 537.post a.link-card p.domain { 538 color: #888; 539 font-size: 10pt; 540 margin-top: 1px; 541 margin-bottom: 5px; 542} 543 544.post a.link-card h2 { 545 color: #333; 546 margin-top: 8px; 547} 548 549.post a.link-card p.description { 550 color: #666; 551 font-size: 11pt; 552 margin-top: 8px; 553 margin-bottom: 4px; 554 line-height: 135%; 555} 556 557.post a.link-card.record > div:has(.avatar) { 558 padding-left: 65px; 559} 560 561.post a.link-card.record h2 { 562 margin-top: 3px; 563} 564 565.post a.link-card.record .handle { 566 color: #666; 567 margin-left: 5px; 568} 569 570.post a.link-card.record .avatar { 571 width: 36px; 572 height: 36px; 573 border: 1px solid #ddd; 574 border-radius: 6px; 575 position: absolute; 576 top: 15px; 577 left: 15px; 578} 579 580.post a.link-card.record .stats { 581 margin-top: 9px; 582 margin-bottom: 1px; 583} 584 585.post a.link-card.record .stats i.fa-heart:hover { 586 color: #aaa; 587} 588 589.post .stats { 590 font-size: 10pt; 591 color: #666; 592} 593 594.post .stats a { 595 color: #666; 596 text-decoration: none; 597} 598 599.post .stats a:hover { 600 text-decoration: underline; 601} 602 603.post .stats i { 604 font-size: 9pt; 605 color: #888; 606} 607 608.post .stats i.fa-heart { 609 color: #aaa; 610} 611 612.post .stats i.fa-heart.liked { 613 color: #e03030; 614} 615 616.post .stats i.fa-heart:hover { 617 color: #888; 618 cursor: pointer; 619} 620 621.post .stats i.fa-heart.liked:hover { 622 color: #c02020; 623} 624 625.post .stats span { 626 margin-right: 10px; 627} 628 629.post img.loader { 630 width: 24px; 631 animation: rotation 3s infinite linear; 632 margin-top: 5px; 633} 634 635@media (prefers-color-scheme: dark) { 636 body { 637 background-color: rgb(39, 39, 37); 638 color: #eee; 639 } 640 641 a { 642 color: rgb(0, 133, 255); 643 } 644 645 a:visited { 646 color: rgb(0, 133, 255); 647 } 648 649 #loader { 650 filter: invert(); 651 } 652 653 #search form { 654 border-color: hsl(210, 40%, 60%); 655 } 656 657 #search form input { 658 background-color: transparent; 659 } 660 661 #account_menu { 662 background: hsl(210, 33.33%, 94.0%); 663 border-color: #ccc; 664 } 665 666 #account_menu li a { 667 color: #333; 668 border-color: #bbb; 669 background-color: hsla(210, 100%, 4%, 0.12); 670 } 671 672 #account_menu li a:hover { 673 background-color: hsla(210, 100%, 4%, 0.2); 674 } 675 676 #login { 677 background-color: rgba(240, 240, 240, 0.15); 678 } 679 680 #login form { 681 border-color: hsl(210, 20%, 40%); 682 background-color: hsl(210, 12%, 25%); 683 } 684 685 #login .close { 686 color: hsl(210, 20%, 50%); 687 opacity: 0.6; 688 } 689 690 #login .close:hover { 691 color: hsl(210, 20%, 50%); 692 opacity: 1.0; 693 } 694 695 #login p.info a { 696 color: #888; 697 } 698 699 #login input[type="text"], #login input[type="password"] { 700 border-color: #666; 701 } 702 703 #login input[type="submit"] { 704 border-color: hsl(210, 15%, 40%); 705 background-color: hsl(210, 12%, 35%); 706 } 707 708 #login input[type="submit"]:active { 709 border-color: hsl(210, 15%, 35%); 710 background-color: hsl(210, 12%, 30%); 711 } 712 713 #login #cloudy { 714 color: hsl(210, 60%, 75%); 715 } 716 717 #login .info-box { 718 border-color: hsl(45, 100%, 45%); 719 background-color: hsl(50, 40%, 30%); 720 } 721 722 #login .info-box a { 723 color: hsl(45, 100%, 50%); 724 } 725 726 #github { 727 filter: invert(); 728 } 729 730 .back, .back a { 731 color: #888; 732 } 733 734 p.back i { 735 color: #888; 736 } 737 738 .post h2 .handle { 739 color: #888; 740 } 741 742 .post h2 .separator { 743 color: #888; 744 } 745 746 .post h2 .time { 747 color: #aaa; 748 } 749 750 .post h2 .action { 751 color: #888; 752 } 753 754 .post .quote-embed { 755 background-color: #303030; 756 border-color: #606060; 757 } 758 759 .post .image-alt, .post .image-alt summary { 760 color: #999; 761 } 762 763 .post.blocked p, .post.blocked a { 764 color: #aaa; 765 } 766 767 .post .edge .line { 768 border-left-color: #666; 769 } 770 771 .post .edge:hover .line { 772 border-left-color: #888; 773 } 774 775 .post .plus { 776 filter: invert(); 777 } 778 779 .post .stats { 780 color: #aaa; 781 } 782 783 .post .stats i { 784 color: #888; 785 } 786 787 .post .stats i.fa-heart { 788 color: #aaa; 789 } 790 791 .post .stats i.fa-heart.liked { 792 color: #f04040; 793 } 794 795 .post .stats i.fa-heart:hover { 796 color: #eee; 797 } 798 799 .post .stats i.fa-heart.liked:hover { 800 color: #ff7070; 801 } 802}