(READ ONLY) Margin is an open annotation layer for the internet. Powered by the AT Protocol. margin.at
extension web atproto comments
98
fork

Configure Feed

Select the types of activity you want to include in your feed.

at ui-refactor 925 lines 15 kB view raw
1.landing-page { 2 min-height: 100vh; 3 background: var(--bg-primary); 4} 5 6.landing-nav { 7 display: flex; 8 justify-content: space-between; 9 align-items: center; 10 padding: 16px 32px; 11 max-width: 1200px; 12 margin: 0 auto; 13} 14 15.landing-logo { 16 display: flex; 17 align-items: center; 18 gap: 10px; 19 text-decoration: none; 20 color: var(--text-primary); 21 font-weight: 600; 22 font-size: 1.1rem; 23} 24 25.landing-logo img { 26 width: 28px; 27 height: 28px; 28} 29 30.landing-nav-links { 31 display: flex; 32 align-items: center; 33 gap: 24px; 34} 35 36.landing-nav-links a:not(.btn) { 37 color: var(--text-secondary); 38 text-decoration: none; 39 font-size: 0.9rem; 40 transition: color 0.15s; 41} 42 43.landing-nav-links a:not(.btn):hover { 44 color: var(--text-primary); 45} 46 47.landing-hero { 48 padding: 80px 32px 40px; 49 max-width: 800px; 50 margin: 0 auto; 51 text-align: center; 52} 53 54.landing-hero-content { 55 display: flex; 56 flex-direction: column; 57 align-items: center; 58 gap: 24px; 59} 60 61.landing-badge { 62 display: inline-flex; 63 align-items: center; 64 gap: 8px; 65 font-size: 0.8rem; 66 font-weight: 500; 67 color: var(--accent); 68 background: var(--accent-subtle); 69 padding: 6px 14px; 70 border-radius: var(--radius-full); 71} 72 73.landing-title { 74 font-size: 3.5rem; 75 font-weight: 700; 76 line-height: 1.1; 77 letter-spacing: -0.03em; 78 color: var(--text-primary); 79 margin: 0; 80} 81 82.landing-title-accent { 83 color: var(--accent); 84} 85 86.landing-subtitle { 87 font-size: 1.2rem; 88 line-height: 1.7; 89 color: var(--text-secondary); 90 max-width: 580px; 91 margin: 0; 92} 93 94.landing-cta { 95 display: flex; 96 gap: 12px; 97 flex-wrap: wrap; 98 justify-content: center; 99 margin-top: 8px; 100} 101 102.btn-lg { 103 padding: 10px 20px; 104 font-size: 0.95rem; 105} 106 107.landing-browsers { 108 font-size: 0.85rem; 109 color: var(--text-tertiary); 110 margin: 0; 111} 112 113.landing-browsers a { 114 color: var(--text-secondary); 115 text-decoration: underline; 116 text-underline-offset: 2px; 117} 118 119.landing-browsers a:hover { 120 color: var(--text-primary); 121} 122 123.landing-demo { 124 padding: 40px 32px 80px; 125 max-width: 1100px; 126 margin: 0 auto; 127} 128 129.demo-window { 130 background: var(--bg-secondary); 131 border: 1px solid var(--border); 132 border-radius: var(--radius-xl); 133 overflow: hidden; 134 box-shadow: var(--shadow-lg); 135} 136 137.demo-browser-bar { 138 display: flex; 139 align-items: center; 140 gap: 16px; 141 padding: 12px 16px; 142 background: var(--bg-tertiary); 143 border-bottom: 1px solid var(--border); 144} 145 146.demo-browser-dots { 147 display: flex; 148 gap: 6px; 149} 150 151.demo-browser-dots span { 152 width: 12px; 153 height: 12px; 154 border-radius: 50%; 155 background: var(--border); 156} 157 158.demo-browser-url { 159 flex: 1; 160 background: var(--bg-primary); 161 border-radius: var(--radius-md); 162 padding: 8px 14px; 163 font-size: 0.8rem; 164 color: var(--text-tertiary); 165} 166 167.demo-content { 168 display: grid; 169 grid-template-columns: 1fr 340px; 170 min-height: 380px; 171} 172 173.demo-article { 174 padding: 32px; 175 border-right: 1px solid var(--border); 176} 177 178.demo-text { 179 font-size: 1.05rem; 180 line-height: 1.9; 181 color: var(--text-primary); 182 margin: 0 0 20px 0; 183} 184 185.demo-text:last-child { 186 margin-bottom: 0; 187} 188 189.demo-highlight { 190 background-color: transparent; 191 color: inherit; 192 border-bottom: 2px solid var(--accent); 193} 194 195.demo-sidebar { 196 padding: 0; 197 background: var(--bg-primary); 198 display: flex; 199 flex-direction: column; 200 gap: 0; 201 overflow-y: auto; 202 font-family: 203 "IBM Plex Sans", 204 -apple-system, 205 BlinkMacSystemFont, 206 sans-serif; 207} 208 209.demo-sidebar-header { 210 display: flex; 211 align-items: center; 212 justify-content: space-between; 213 padding: 14px 16px; 214 border-bottom: 1px solid var(--border); 215 background: var(--bg-primary); 216} 217 218.demo-logo-section { 219 display: flex; 220 align-items: center; 221 gap: 10px; 222} 223 224.demo-logo-icon { 225 color: var(--accent); 226 display: flex; 227 align-items: center; 228} 229 230.demo-logo-text { 231 font-weight: 600; 232 font-size: 15px; 233 color: var(--text-primary); 234 letter-spacing: -0.02em; 235} 236 237.demo-user-section { 238 display: flex; 239 align-items: center; 240 gap: 8px; 241} 242 243.demo-user-handle { 244 font-size: 12px; 245 color: var(--text-secondary); 246 background: var(--bg-tertiary); 247 padding: 4px 10px; 248 border-radius: 9999px; 249} 250 251.demo-user-avatar { 252 width: 24px; 253 height: 24px; 254 border-radius: 50%; 255 background: var(--bg-hover); 256 color: var(--text-secondary); 257 display: flex; 258 align-items: center; 259 justify-content: center; 260 font-size: 12px; 261 font-weight: 600; 262} 263 264.demo-page-info { 265 display: flex; 266 align-items: center; 267 gap: 8px; 268 padding: 10px 16px; 269 background: var(--bg-primary); 270 border-bottom: 1px solid var(--border); 271 font-size: 12px; 272 color: var(--text-tertiary); 273} 274 275.demo-annotations-list { 276 display: flex; 277 flex-direction: column; 278 gap: 1px; 279 background: var(--border); 280} 281 282.demo-annotation { 283 background: var(--bg-primary); 284 border: none; 285 border-radius: 0; 286 padding: 14px 16px; 287} 288 289.demo-annotation-secondary { 290 opacity: 1; 291} 292 293.demo-annotation-header { 294 display: flex; 295 align-items: center; 296 gap: 10px; 297 margin-bottom: 8px; 298} 299 300.demo-avatar { 301 width: 26px; 302 height: 26px; 303 border-radius: 50%; 304 background: var(--accent); 305 color: var(--bg-primary); 306 display: flex; 307 align-items: center; 308 justify-content: center; 309 font-size: 10px; 310 font-weight: 600; 311} 312 313.demo-meta { 314 display: flex; 315 flex-direction: column; 316 gap: 0; 317} 318 319.demo-author { 320 font-size: 12px; 321 font-weight: 600; 322 color: var(--text-primary); 323} 324 325.demo-time { 326 font-size: 11px; 327 color: var(--text-tertiary); 328} 329 330.demo-quote { 331 font-size: 12px; 332 font-style: italic; 333 color: var(--text-secondary); 334 padding: 8px 12px; 335 border-left: 2px solid var(--accent); 336 margin: 0 0 8px 0; 337 background: var(--accent-subtle); 338 border-radius: 0 6px 6px 0; 339 line-height: 1.5; 340} 341 342.demo-comment { 343 font-size: 13px; 344 line-height: 1.5; 345 color: var(--text-primary); 346 margin: 0 0 12px 0; 347} 348 349.demo-jump-btn { 350 background: transparent; 351 border: none; 352 padding: 0; 353 color: var(--accent); 354 font-size: 11px; 355 font-weight: 500; 356 cursor: pointer; 357 display: inline-flex; 358 align-items: center; 359 margin-top: 4px; 360} 361 362.demo-jump-btn:hover { 363 text-decoration: underline; 364 text-underline-offset: 2px; 365} 366 367.landing-section { 368 padding: 80px 32px; 369 max-width: 1000px; 370 margin: 0 auto; 371} 372 373.landing-section-alt { 374 background: var(--bg-secondary); 375 max-width: none; 376} 377 378.landing-section-alt > * { 379 max-width: 1000px; 380 margin-left: auto; 381 margin-right: auto; 382} 383 384.landing-section-title { 385 font-size: 2rem; 386 font-weight: 700; 387 text-align: center; 388 margin: 0 0 48px 0; 389 color: var(--text-primary); 390} 391 392.landing-steps { 393 display: flex; 394 flex-direction: column; 395 gap: 32px; 396} 397 398.landing-step { 399 display: flex; 400 gap: 24px; 401 align-items: flex-start; 402} 403 404.landing-step-num { 405 width: 40px; 406 height: 40px; 407 border-radius: 50%; 408 background: var(--accent); 409 color: white; 410 display: flex; 411 align-items: center; 412 justify-content: center; 413 font-weight: 700; 414 font-size: 1.1rem; 415 flex-shrink: 0; 416} 417 418.landing-step-content h3 { 419 font-size: 1.15rem; 420 font-weight: 600; 421 margin: 0 0 8px 0; 422 color: var(--text-primary); 423} 424 425.landing-step-content p { 426 font-size: 1rem; 427 color: var(--text-secondary); 428 margin: 0; 429 line-height: 1.6; 430} 431 432.landing-features-grid { 433 display: grid; 434 grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); 435 gap: 32px; 436} 437 438.landing-feature { 439 text-align: center; 440 padding: 24px 16px; 441} 442 443.landing-feature-icon { 444 width: 52px; 445 height: 52px; 446 border-radius: var(--radius-lg); 447 background: var(--accent-subtle); 448 color: var(--accent); 449 display: flex; 450 align-items: center; 451 justify-content: center; 452 margin: 0 auto 16px; 453} 454 455.landing-feature h3 { 456 font-size: 1.05rem; 457 font-weight: 600; 458 margin: 0 0 8px 0; 459 color: var(--text-primary); 460} 461 462.landing-feature p { 463 font-size: 0.9rem; 464 color: var(--text-secondary); 465 margin: 0; 466 line-height: 1.6; 467} 468 469.landing-protocol { 470 background: var(--bg-secondary); 471 max-width: none; 472 border-top: 1px solid var(--border); 473 border-bottom: 1px solid var(--border); 474} 475 476.landing-protocol-grid { 477 display: grid; 478 grid-template-columns: 1fr 1fr; 479 gap: 64px; 480 align-items: center; 481 max-width: 1000px; 482 margin: 0 auto; 483} 484 485.landing-protocol-main h2 { 486 font-size: 1.75rem; 487 font-weight: 700; 488 margin: 0 0 16px 0; 489 color: var(--text-primary); 490} 491 492.landing-protocol-main p { 493 font-size: 1rem; 494 color: var(--text-secondary); 495 margin: 0 0 16px 0; 496 line-height: 1.7; 497} 498 499.landing-protocol-main a { 500 color: var(--accent); 501 text-decoration: underline; 502 text-underline-offset: 2px; 503} 504 505.landing-protocol-features { 506 display: flex; 507 flex-direction: column; 508 gap: 20px; 509} 510 511.landing-protocol-item { 512 display: flex; 513 gap: 16px; 514 align-items: flex-start; 515 color: var(--accent); 516} 517 518.landing-protocol-item div { 519 display: flex; 520 flex-direction: column; 521} 522 523.landing-protocol-item strong { 524 font-size: 0.95rem; 525 font-weight: 600; 526 color: var(--text-primary); 527} 528 529.landing-protocol-item span { 530 font-size: 0.85rem; 531 color: var(--text-tertiary); 532} 533 534.landing-final-cta { 535 text-align: center; 536} 537 538.landing-final-cta h2 { 539 font-size: 2rem; 540 font-weight: 700; 541 margin: 0 0 12px 0; 542 color: var(--text-primary); 543} 544 545.landing-final-cta p { 546 font-size: 1.1rem; 547 color: var(--text-secondary); 548 margin: 0 0 28px 0; 549} 550 551.landing-footer { 552 border-top: 1px solid var(--border); 553 padding: 48px 32px 32px; 554} 555 556.landing-footer-grid { 557 display: flex; 558 justify-content: space-between; 559 max-width: 1000px; 560 margin: 0 auto 40px; 561} 562 563.landing-footer-brand { 564 max-width: 280px; 565} 566 567.landing-footer-brand p { 568 font-size: 0.9rem; 569 color: var(--text-tertiary); 570 margin: 12px 0 0 0; 571} 572 573.landing-footer-links { 574 display: flex; 575 gap: 64px; 576} 577 578.landing-footer-col { 579 display: flex; 580 flex-direction: column; 581 gap: 10px; 582} 583 584.landing-footer-col h4 { 585 font-size: 0.75rem; 586 font-weight: 600; 587 text-transform: uppercase; 588 letter-spacing: 0.08em; 589 color: var(--text-tertiary); 590 margin: 0 0 4px 0; 591} 592 593.landing-footer-col a { 594 font-size: 0.9rem; 595 color: var(--text-secondary); 596 text-decoration: none; 597} 598 599.landing-footer-col a:hover { 600 color: var(--text-primary); 601} 602 603.landing-footer-bottom { 604 text-align: center; 605 padding-top: 24px; 606 border-top: 1px solid var(--border); 607 max-width: 1000px; 608 margin: 0 auto; 609} 610 611.landing-footer-bottom p { 612 font-size: 0.85rem; 613 color: var(--text-tertiary); 614 margin: 0; 615} 616 617@media (max-width: 900px) { 618 .demo-content { 619 grid-template-columns: 1fr; 620 } 621 622 .demo-article { 623 border-right: none; 624 border-bottom: 1px solid var(--border); 625 } 626 627 .demo-sidebar { 628 max-height: 340px; 629 } 630 631 .landing-protocol-grid { 632 grid-template-columns: 1fr; 633 gap: 40px; 634 } 635} 636 637@media (max-width: 768px) { 638 .landing-nav { 639 padding: 16px 20px; 640 } 641 642 .landing-nav-links a:not(.btn) { 643 display: none; 644 } 645 646 .landing-hero { 647 padding: 60px 20px 30px; 648 } 649 650 .landing-title { 651 font-size: 2.5rem; 652 } 653 654 .landing-subtitle { 655 font-size: 1.1rem; 656 } 657 658 .landing-cta { 659 flex-direction: column; 660 width: 100%; 661 } 662 663 .landing-cta .btn { 664 width: 100%; 665 justify-content: center; 666 } 667 668 .landing-demo { 669 padding: 30px 16px 60px; 670 } 671 672 .demo-browser-bar { 673 padding: 10px 12px; 674 } 675 676 .demo-browser-dots { 677 display: none; 678 } 679 680 .demo-article { 681 padding: 20px; 682 } 683 684 .demo-text { 685 font-size: 0.95rem; 686 } 687 688 .demo-sidebar { 689 padding: 16px; 690 } 691 692 .landing-section { 693 padding: 60px 20px; 694 } 695 696 .landing-section-title { 697 font-size: 1.5rem; 698 margin-bottom: 32px; 699 } 700 701 .landing-step { 702 gap: 16px; 703 } 704 705 .landing-step-num { 706 width: 32px; 707 height: 32px; 708 font-size: 0.95rem; 709 } 710 711 .landing-features-grid { 712 grid-template-columns: 1fr; 713 gap: 24px; 714 } 715 716 .landing-feature { 717 text-align: left; 718 display: flex; 719 gap: 16px; 720 padding: 16px 0; 721 } 722 723 .landing-feature-icon { 724 margin: 0; 725 width: 44px; 726 height: 44px; 727 flex-shrink: 0; 728 } 729 730 .landing-protocol-main h2 { 731 font-size: 1.5rem; 732 } 733 734 .landing-footer { 735 padding: 40px 20px 24px; 736 } 737 738 .landing-footer-grid { 739 flex-direction: column; 740 gap: 40px; 741 } 742 743 .landing-footer-links { 744 flex-wrap: wrap; 745 gap: 32px; 746 } 747} 748 749.demo-hover-indicator { 750 position: absolute; 751 display: flex; 752 align-items: center; 753 z-index: 100; 754 pointer-events: none; 755 background: transparent; 756 opacity: 0; 757 transform: scale(0.8); 758 transition: 759 opacity 0.15s ease-out, 760 transform 0.15s ease-out; 761} 762 763.demo-hover-indicator.visible { 764 opacity: 1; 765 transform: scale(1); 766} 767 768.demo-hover-avatar { 769 width: 28px; 770 height: 28px; 771 border-radius: 50%; 772 object-fit: cover; 773 border: 2px solid var(--bg-primary); 774 margin-left: -10px; 775 background: var(--bg-elevated); 776} 777 778.demo-hover-avatar:first-child { 779 margin-left: 0; 780} 781 782.demo-hover-avatar-fallback { 783 width: 28px; 784 height: 28px; 785 border-radius: 50%; 786 background: #6366f1; 787 color: white; 788 display: flex; 789 align-items: center; 790 justify-content: center; 791 font-size: 12px; 792 font-weight: 600; 793 font-family: -apple-system, sans-serif; 794 border: 2px solid var(--bg-primary); 795 margin-left: -10px; 796} 797 798.demo-hover-avatar-fallback:first-child { 799 margin-left: 0; 800} 801 802@keyframes demo-popover-in { 803 from { 804 opacity: 0; 805 transform: translateY(-4px); 806 } 807 808 to { 809 opacity: 1; 810 transform: translateY(0); 811 } 812} 813 814.demo-popover { 815 position: absolute; 816 width: 300px; 817 background: var(--bg-card); 818 border: 1px solid var(--border); 819 border-radius: 12px; 820 padding: 0; 821 box-shadow: var(--shadow-lg); 822 display: flex; 823 flex-direction: column; 824 z-index: 200; 825 font-family: inherit; 826 color: var(--text-primary); 827 opacity: 0; 828 animation: demo-popover-in 0.15s forwards; 829 max-height: 400px; 830 overflow: hidden; 831} 832 833.demo-popover-header { 834 padding: 10px 14px; 835 border-bottom: 1px solid var(--border); 836 display: flex; 837 justify-content: space-between; 838 align-items: center; 839 background: var(--bg-primary); 840 border-radius: 12px 12px 0 0; 841 font-weight: 500; 842 font-size: 11px; 843 color: var(--text-tertiary); 844 text-transform: uppercase; 845 letter-spacing: 0.5px; 846} 847 848.demo-popover-close { 849 background: none; 850 border: none; 851 color: var(--text-tertiary); 852 cursor: pointer; 853 padding: 2px; 854 font-size: 16px; 855 line-height: 1; 856 opacity: 0.6; 857 transition: opacity 0.15s; 858} 859 860.demo-popover-close:hover { 861 opacity: 1; 862} 863 864.demo-popover-scroll-area { 865 overflow-y: auto; 866 max-height: 340px; 867} 868 869.demo-comment-item { 870 padding: 12px 14px; 871 border-bottom: 1px solid var(--border); 872} 873 874.demo-comment-item:last-child { 875 border-bottom: none; 876} 877 878.demo-comment-header { 879 display: flex; 880 align-items: center; 881 gap: 8px; 882 margin-bottom: 6px; 883} 884 885.demo-comment-avatar { 886 width: 22px; 887 height: 22px; 888 border-radius: 50%; 889 object-fit: cover; 890 background: var(--accent); 891} 892 893.demo-comment-handle { 894 font-size: 12px; 895 font-weight: 600; 896 color: var(--text-primary); 897} 898 899.demo-comment-text { 900 font-size: 13px; 901 line-height: 1.5; 902 color: var(--text-primary); 903 margin-bottom: 8px; 904} 905 906.demo-comment-actions { 907 display: flex; 908 gap: 8px; 909} 910 911.demo-comment-action-btn { 912 background: none; 913 border: none; 914 padding: 4px 8px; 915 color: var(--text-tertiary); 916 font-size: 11px; 917 cursor: pointer; 918 border-radius: 4px; 919 transition: all 0.15s; 920} 921 922.demo-comment-action-btn:hover { 923 background: var(--bg-hover); 924 color: var(--text-secondary); 925}