comparison mrjunejune/src/jrpg/jrpg.css @ 262:0f45474c1b1a

Add cyberpunk JRPG blog browser Show the latest posts in the JRPG preview and render the full blog archive and sanitized post details in the Inspect modal. Co-authored-by: Copilot <[email protected]>
author MrJuneJune <mrjunejune@users.noreply.github.com>
date Thu, 06 Aug 2026 04:08:45 -0700
parents b401627fc49e
children ee04e4e69fed
comparison
equal deleted inserted replaced
261:b401627fc49e 262:0f45474c1b1a
532 532
533 .jrpg-preview-dialog dialog > p { 533 .jrpg-preview-dialog dialog > p {
534 margin-bottom: var(--zenbu-sys-space-content); 534 margin-bottom: var(--zenbu-sys-space-content);
535 } 535 }
536 536
537 .jrpg-preview-dialog dialog.jrpg-resume-dialog { 537 .jrpg-preview-dialog dialog.jrpg-detail-dialog {
538 width: min(94vw, 72rem); 538 width: min(94vw, 72rem);
539 max-height: calc(100dvh - var(--zenbu-sys-space-container)); 539 max-height: calc(100dvh - var(--zenbu-sys-space-container));
540 overflow: hidden; 540 overflow: hidden;
541 } 541 }
542 542
543 .jrpg-preview-dialog dialog.jrpg-resume-dialog[open] { 543 .jrpg-preview-dialog dialog.jrpg-detail-dialog[open] {
544 display: grid; 544 display: grid;
545 grid-template-rows: auto auto minmax(0, 1fr) auto; 545 grid-template-rows: auto auto minmax(0, 1fr) auto;
546 gap: var(--zenbu-sys-space-group); 546 gap: var(--zenbu-sys-space-group);
547 } 547 }
548 548
554 background: var(--mjj-jrpg-surface-sunken); 554 background: var(--mjj-jrpg-surface-sunken);
555 scrollbar-color: var(--mjj-jrpg-frame) transparent; 555 scrollbar-color: var(--mjj-jrpg-frame) transparent;
556 } 556 }
557 557
558 .jrpg-resume-dossier[hidden], 558 .jrpg-resume-dossier[hidden],
559 .jrpg-blog-browser[hidden],
559 [data-dialog-copy][hidden], 560 [data-dialog-copy][hidden],
561 [data-blog-status][hidden],
560 [data-resume-status][hidden], 562 [data-resume-status][hidden],
561 [data-resume-download][hidden] { 563 [data-resume-download][hidden] {
562 display: none; 564 display: none;
563 } 565 }
564 566
653 655
654 .jrpg-dialog-actions { 656 .jrpg-dialog-actions {
655 display: grid; 657 display: grid;
656 grid-template-columns: repeat(2, minmax(0, 1fr)); 658 grid-template-columns: repeat(2, minmax(0, 1fr));
657 gap: var(--zenbu-sys-space-control); 659 gap: var(--zenbu-sys-space-control);
660 }
661
662 .jrpg-blog-browser {
663 display: grid;
664 grid-template-columns: minmax(12rem, 0.35fr) minmax(0, 1fr);
665 gap: var(--zenbu-sys-space-group);
666 min-height: 0;
667 overflow: hidden;
668 }
669
670 .jrpg-blog-browser > aside,
671 .jrpg-blog-browser > article {
672 min-height: 0;
673 padding: var(--zenbu-sys-padding-md);
674 overflow: auto;
675 border: var(--zenbu-sys-stroke-width) solid var(--mjj-jrpg-frame-soft);
676 background: var(--mjj-jrpg-surface-sunken);
677 scrollbar-color: var(--mjj-jrpg-frame) transparent;
678 }
679
680 .jrpg-blog-browser h3,
681 .jrpg-blog-browser [data-blog-status] {
682 margin-top: 0;
683 color: var(--mjj-jrpg-highlight);
684 }
685
686 .jrpg-blog-browser [data-blog-list] {
687 display: grid;
688 gap: var(--zenbu-sys-space-control);
689 margin: 0;
690 padding: 0;
691 list-style: none;
692 }
693
694 .jrpg-blog-browser [data-blog-list] zen-button,
695 .jrpg-blog-browser [data-blog-list] button {
696 width: 100%;
697 }
698
699 .jrpg-blog-browser [data-blog-list] button {
700 display: grid;
701 justify-items: start;
702 gap: var(--zenbu-sys-space-icon-label);
703 border: var(--zenbu-sys-stroke-width) solid var(--mjj-jrpg-frame-soft);
704 border-radius: 0;
705 background: var(--mjj-jrpg-panel);
706 color: var(--mjj-jrpg-primary);
707 text-align: left;
708 cursor: pointer;
709 }
710
711 .jrpg-blog-browser [data-blog-list] button:hover,
712 .jrpg-blog-browser [data-blog-list] button[aria-pressed="true"] {
713 border-color: var(--mjj-jrpg-accent);
714 background: var(--mjj-jrpg-surface-raised);
715 }
716
717 .jrpg-blog-browser [data-blog-list] small {
718 color: var(--mjj-jrpg-text-muted);
719 font-size: var(--zenbu-sys-font-size-xs);
720 }
721
722 .jrpg-blog-browser [data-blog-content] {
723 color: var(--mjj-jrpg-text);
724 line-height: var(--zenbu-sys-line-height-lg);
725 }
726
727 .jrpg-blog-browser [data-blog-content] :where(h1, h2, h3, h4) {
728 color: var(--mjj-jrpg-primary);
729 }
730
731 .jrpg-blog-browser [data-blog-content] a {
732 color: var(--mjj-jrpg-primary);
733 text-decoration-color: var(--mjj-jrpg-accent);
734 text-underline-offset: var(--zenbu-sys-space-icon-label);
735 }
736
737 .jrpg-blog-browser [data-blog-content] :where(img, video) {
738 display: block;
739 max-width: 100%;
740 height: auto;
741 margin-inline: auto;
742 }
743
744 .jrpg-blog-browser [data-blog-content] :where(pre, blockquote) {
745 max-width: 100%;
746 padding: var(--zenbu-sys-padding-md);
747 overflow: auto;
748 border-left: var(--zenbu-sys-stroke-width-emphasis) solid var(--mjj-jrpg-accent);
749 background: var(--mjj-jrpg-panel);
750 }
751
752 .jrpg-blog-browser [data-blog-content] code {
753 color: var(--mjj-jrpg-success);
754 white-space: pre-wrap;
755 overflow-wrap: anywhere;
658 } 756 }
659 757
660 mjj-jrpg-composer { 758 mjj-jrpg-composer {
661 grid-area: composer; 759 grid-area: composer;
662 display: block; 760 display: block;
946 1044
947 .jrpg-composer zen-button > button { 1045 .jrpg-composer zen-button > button {
948 width: 100%; 1046 width: 100%;
949 } 1047 }
950 1048
1049 .jrpg-blog-browser {
1050 grid-template-columns: 1fr;
1051 overflow: auto;
1052 }
1053
1054 .jrpg-blog-browser > aside {
1055 max-height: 16rem;
1056 }
1057
951 mjj-jrpg-menu ul { 1058 mjj-jrpg-menu ul {
952 grid-template-columns: 1fr; 1059 grid-template-columns: 1fr;
953 } 1060 }
954 1061
955 .jrpg-preview-dialog dialog { 1062 .jrpg-preview-dialog dialog {