UserStyles.world – Wide Compact [Ath]

Wide compact layout for UserStyles.world with extras. Supports all pages. Many configurable options: page width, form column width, fixed toolbar, fonts etc.

/* ==UserStyle==
@name           UserStyles.world – Wide Compact [Ath]
@namespace      athari
@version        1.2.0
@description    Wide compact layout for UserStyles.world with extras. Supports all pages. Many configurable options: page width, form column width, fixed toolbar, fonts etc.
@author         Athari (https://github.com/Athari)
@homepageURL    https://github.com/Athari/AthariUserCSS
@supportURL     https://github.com/Athari/AthariUserCSS/issues
@license        MIT
@preprocessor   default
@var            number   ath-page-thumbs-width  "Page max width (thumbnails)" [10000, 1000, 1000000, 20, 'px']
@var            number   ath-page-width         "Page max width (content)"    [2000, 1000, 4000, 20, 'px']
@var            number   form-max-width         "Form column width"           [600, 400, 900, 20, 'px']
@var            number   card-min-width         "Thumbnail width"             [300, 180, 400, 10, 'px']
@var            select   ath-thumb-fit          "Thumbnail fit"               ["contain:Contain*", "cover:Cover", "fill:Fill", "scale_down:Scale down"]
@var            select   ath-resize-preview     "Resize preview on"           ["never:Never", "hover:Hover", "active:Click*"]
@var            checkbox ath-fixed-toolbar      "Fixed toolbar"               1
@var            checkbox ath-show-empty         "Show empty sections"         0
@var            checkbox ath-show-footer        "Show footer"                 1
@var            checkbox ath-show-external-link "Show 🔗 on external links"   1
@var            text     font-sans              "Font - Sans-serif"           "Segoe UI, Inter, -apple-system, Roboto, Helvetica, Arial, Droid Sans, sans-serif"
@var            text     font-mono              "Font - Monospace"            "Cascadia Code, Iosevka, Fira Code, Fira Mono, Droid Mono, Ubuntu Mono, Monaco, monospace"
@var            text     font-emoji             "Font - Emoji"                "Apple Color Emoji, Segoe UI Emoji, Segoe UI Symbol"
==/UserStyle== */

@-moz-document domain("userstyles.world") {
  :root {
    --bg-a: light-dark(#fff, #000);
    --bg-0: light-dark(#eee, #111);
    --layout-max-width: var(--ath-page-thumbs-width);
  }

  @container style(--ath-thumb-fit: scale_down) { body { --ath-thumb-fit: scale-down } }

  select.Form-select, input:not([type=checkbox], [type=radio]) {
    padding: 3px 10px !important;
    min-height: 0;
    min-width: 200px;
  }
  h1 {
    font-size: 1.3rem !important;
  }
  h2 {
    text-decoration: none !important;
    font-size: 1.2rem;
  }

  .md:not(#\0) {
    font-size: 0.95rem;
    line-height: 1.3;
    max-height: none;
    :not(a) {
      font-size: inherit;
      line-height: 1.3;
      color: var(--fg-2);
    }
    p, li {
      margin: 0.3rem 0;
    }
    code, pre {
      font-size: 0.9rem;
    }
    :is(h1, h2, h3, h4, h5, h6) {
      margin: 0.4em 0 0.3em;
    }
    h1 {
      font-size: 1.6rem !important;
    }
    h2 {
      font-size: 1.4rem !important;
    }
    h3 {
      font-size: 1.2rem !important;
    }
    h4 {
      font-size: 1.1rem !important;
    }
    h5 {
      font-size: 1.0rem !important;
    }
    h6 {
      font-size: 0.9rem !important;
    }
  }

  body {
    display: flex !important;
    flex-flow: column !important;
    min-height: 100vh;
    padding: 0 !important;
    overflow: hidden scroll;
    font-size: 15px;
  }
  @container style(--ath-show-external-link: 0) {
    a:is([href^='/link/'], [href^='http'])::after {
      content: unset;
    }
  }
  @container style(--ath-show-external-link: 1) {
    a:is([href^='/link/'], [href^='http'])::after {
      content: " 🔗";
      color: #000a;
      vertical-align: initial;
    }
  }
  #navbar, .navbar {
    position: static;
    display: flex;
    flex-flow: row;
    align-items: center;
    justify-content: space-between;
    max-width: none;
    padding: 0 20px;
    background: var(--bg-0);
    border: solid 1px var(--bg-2);
    border-width: 0 0 1px 0;
    box-shadow: 0 0 4px light-dark(#0008, #000);
    .menu {
      display: contents;
      .Dropdown {
        display: flex;
        flex-flow: row;
        gap: 20px;
        padding: 2px;
        .btn {
          display: none;
        }
        ul {
          display: flex;
          flex-flow: row;
          li {
            margin: 0;
            a {
              padding: 7px 10px;
            }
          }
        }
      }
    }
    .wrapper /*old toolbar layout*/ {
      padding: 2px 0;
      display: flex;
      align-items: center;
      > a {
        padding: 0;
      }
      li {
        &:has(a[href^="/user/"]) {
          margin-left: auto;
        }
        a {
          margin: 0;
          padding: 5px 10px;
          text-decoration: none;
        }
      }
      form {
        margin: 0;
        padding: 0;
        max-width: 16em;
        input {
          margin: 0 !important;
          background: rgb(from var(--bg-1) r g b / 0.3);
          &:focus {
            background: rgb(from var(--bg-1) r g b / 0.7);
          }
          &::placeholder {
            color: var(--fg-3);
          }
          &::-webkit-search-cancel-button {
            cursor: pointer;
            margin: 0 24px 0 0;
            opacity: 0.6;
          }
        }
        button {
          margin: 0 !important;
          right: 0;
          background: rgb(from var(--bg-1) r g b / 0.4);
        }
      }
    }
  }
  @container style(--ath-fixed-toolbar: 1) {
    #navbar, .navbar {
      position: fixed;
      inset: 0 0 auto 0;
      z-index: 1000;
      background: rgb(from var(--bg-0) r g b / 0.6);
      border-color: rgb(from var(--bg-2) r g b / 0.6);
      backdrop-filter: brightness(1.5) saturate(3) blur(10px);
      .menu a:hover {
        background: rgb(from var(--bg-5) r g b / 0.3);
      }
    }
    body {
      padding-top: calc(1rem + 25px) !important;
    }
  }
  main#content {
    flex: 1;
    display: flex !important;
    gap: 0;
    min-height: 0;
    margin: 0 0 20px 0;
    padding: 0 !important;
    section:has(h1):not([id]) /*header*/ {
      display: flex;
      flex-flow: row wrap;
      margin: 5px;
      gap: 5px 20px;
      align-items: baseline;
      p {
        margin: 0;
      }
    }
    section:has(h1) + section:not([class]):not([id]):has(.grid.flex .card) /*main after header*/ {
      margin: calc(0px - 1.3rem - 12px) 0 0 0;
    }
    .grid.flex /*style list*/ {
      display: grid;
      grid-template-columns: repeat(auto-fill, minmax(var(--card-min-width), 1fr));
      justify-content: space-between;
      gap: 10px;
      margin: 10px 0;
      .card.col {
        display: subgrid;
        margin: 0;
        picture img {
          background: #000;
          object-fit: var(--ath-thumb-fit);
          object-position: center;
        }
        * {
          font-size: 0.8rem;
        }
        .card-body {
          display: flex;
          flex-flow: row wrap;
          padding: 4px 8px;
          align-items: baseline;
          > small {
            span {
              font-size: 0;
            }
            order: 3;
            width: auto;
            margin: 0 0 0 auto;
          }
          > a {
            order: 1;
            font-size: 0.95rem;
            font-weight: 500;
          }
          > span {
            order: 2;
            width: auto;
          }
        }
        .card-footer {
          padding: 4px 8px;
        }
      }
    }
    &:has(#preview) /*style page*/ {
      max-width: var(--ath-page-width);
      margin: 0 auto !important;
      padding: 0 !important;
      #preview {
        --ath-resize-preview-enabled: 0;
        --ath-resize-preview-cursor: default;
        @container style(--ath-resize-preview: hover) {
          &:has(.card:hover) {
            --ath-resize-preview-enabled: 1;
          }
        }
        @container style(--ath-resize-preview: active) {
          & {
            --ath-resize-preview-cursor: pointer;
          }
          &:has(.card:active) {
            --ath-resize-preview-enabled: 1;
          }
        }
        position: relative;
        display: flex !important;
        flex-flow: row;
        gap: 20px;
        align-items: baseline;
        margin: 10px 0;
        padding: 0;
        h1 {
          margin: 0 auto 0 20px !important;
        }
        p {
          color: var(--fg-3);
        }
        p:has(code) {
          margin: 0 20px 0 0;
        }
        p:not(:has(code)) {
          text-align: center;
        }
        .card {
          position: absolute;
          inset: calc(3.3rem + 41px) 50% auto auto;
          min-width: 0;
          margin: 0 0 0 20px;
          display: flex;
          flex-flow: column;
          z-index: 100;
          font-size: 0;
          cursor: var(--ath-resize-preview-cursor);
          .screenshot {
            padding: 0;
            .blurred {
              display: none;
            }
            picture {
              position: static;
              display: block;
            }
          }
        }
        @container style(--ath-resize-preview-enabled: 1) {
          .card {
            right: auto;
            left: 0;
            min-width: calc(50% - 20px);
            max-width: calc(100vw - 50px);
            picture {
              text-align: right;
            }
          }
        }
      }
      .header {
        padding: 0 20px !important;
      }
      section {
        margin: 0;
        &[id]:not(#preview) {
          display: inline-block;
          width: fit-content;
          max-width: calc(min(50vw - 40px, var(--ath-page-width) / 2));
          margin: 10px 20px 0 calc(50% + 10px);
          padding: 3px 10px;
          background: var(--bg-2);
          border: solid 1px var(--bg-3);
          border-radius: 10px;
        }
        &#stats {
          position: absolute;
          inset: 140px calc(50vw - min(50vw, var(--ath-page-width) / 2 + 10px)) auto auto;
          h2 + p {
            height: 2lh;
            line-height: 1.3;
            text-align: right;
            overflow: clip;
          }
          a {
            display: block;
          }
        }
        &:is(#details, #stats) {
          p {
            margin: 0;
            font-size: 0.95rem;
            color: var(--fg-1);
            &:not(:has(.minw)) {
              color: var(--fg-5);
            }
            .minw {
              color: var(--fg-3);
            }
          }
        }
        @supports (position-anchor: --a) {
          &#details {
            anchor-name: --ath-anchor-details;
          }
          &#stats {
            position-anchor: --ath-anchor-details;
            left: anchor(right);
            top: anchor(top);
            height: anchor-size(height);
            bottom: anchor(bottom);
            margin: 0 0 0 10px !important;
          }
        }
        &#code {
          order: 100;
          max-width: calc(min(100vw, var(--ath-page-width)) - 60px) !important;
          margin-inline: auto 20px !important;
          &:hover {
            z-index: 100;
          }
          .Style-source {
            border: none;
          }
          pre {
            position: static;
            font-size: 0.8rem;
            height: 80vh;
            white-space: pre-wrap;
            overflow-wrap: break-word;
            text-align: left;
            border: none;
          }
        }
        @supports (position-anchor: --a) {
          &#reviews {
            anchor-name: --ath-anchor-reviews;
          }
          &#preview .card {
            anchor-name: --ath-anchor-preview;
          }
          &#code {
            anchor-name: --ath-anchor-code;
            position: absolute;
            top: max(anchor(--ath-anchor-preview bottom), anchor(--ath-anchor-reviews bottom));
            left: 0;
            right: 0;
            margin-inline: auto !important;
          }
        }
        &:is(#notes, #description, #reviews) {
          width: calc(var(--ath-page-width) / 2 - 30px) !important;
          &:has(i:nth-child(2)):not(:has(i + *)) {
            i {
              color: var(--fg-4);
            }
          }
        }
        @container style(--ath-show-empty: 0) {
          &:is(#notes, #description):has(i:nth-child(2)):not(:has(i + *)) {
            display: none !important;
          }
        }
        #share {
          max-width: none;
        }
        h2 {
          font-size: 1rem;
          margin: 0;
        }
      }
    }
    &:has(#password) /*settings page*/ {
      display: block !important;
      margin-inline: auto !important;
      column-width: var(--form-max-width);
      column-gap: 20px;
      column-fill: balance;
      section {
        break-inside: avoid;
        > :is(h2, p) {
          break-after: avoid;
          .minw {
            color: var(--fg-3);
          }
        }
        > form {
          break-before: avoid;
        }
        .Form-box {
          display: flex;
          flex-flow: row wrap;
          align-items: flex-end;
          gap: 10px;
          padding: 10px 12px 14px;
          &:has(.checkbox.iflex) {
            justify-content: space-between;
            label {
              margin: 0;
            }
          }
          > label {
            margin: 0;
          }
          .Form-section {
            flex: 1;
            display: flex;
            flex-flow: row wrap;
            align-items: baseline;
            gap: 0 20px;
            margin: 0;
            &:has(#current-password) {
              flex: 100%;
            }
            i {
              margin: 0 0 0 auto;
            }
            input {
              width: 100%;
            }
          }
          .Form-control {
            margin: 0;
            width: 100%;
          }
          button[type=submit] {
            margin-right: 100px;
          }
        }
      }
      #welcome {
        column-span: all;
      }
    }
    &:has(#details .joined):not(:has(#password)) /*profile page*/ {
      /*display: flex !important;
      flex-flow: row wrap;
      justify-content: center;
      align-items: baseline;*/
      display: grid !important;
      grid-template-areas:
        "detail bio    links "
        "styles styles styles";
      grid-template-columns: 1fr auto 1fr;
      grid-template-rows: auto 1fr;
      gap: 10px;
      #details {
        grid-area: detail;
        justify-self: flex-end;
      }
      #biography {
        grid-area: bio;
      }
      #links {
        grid-area: links;
        justify-self: flex-start;
        div {
          display: flex;
          gap: 10px;
          flex-flow: column;
        }
      }
      #styles {
        grid-area: styles;
        margin-bottom: auto;
      }
      section:not(#styles) {
        width: auto;
        margin: 0;
        h1, h2 {
          margin: 0 0 10px 0;
        }
        p {
          margin: 0;
          .minw {
            color: var(--fg-3);
          }
        }
      }
    }
    article.docs.md /*help docs*/ {
      max-width: var(--ath-page-width);
    }
  }
  footer.Footer {
    background: var(--bg-0);
    margin: 10px 0 0 0;
    .Footer-wrapper {
      display: flex;
      flex-flow: column;
      padding: 15px 20px;
      margin: 0;
      .Footer-list {
        display: flex;
        flex-flow: row;
        gap: 20px;
        margin: 2px 0;
        padding: 2px 10px;
        &.half /*about line*/ {
          justify-content: space-between;
          order: 3;
          color: var(--fg-5);
        }
        &:not(.half) {
          -border-bottom: solid 1px var(--bg-2);
        }
        &:nth-child(3) {
          background: var(--bg-1);
        }
        li {
          padding: 0;
          margin: 0;
          a, b {
            padding: 0;
            margin: 0;
          }
          b {
            color: var(--fg-2);
          }
        }
        .about {
          max-width: none !important;
        }
        li:has(.copyright) {
          margin-left: auto;
        }
      }
    }
    @supports (position-anchor: --a) {
      :has(section#preview) & {
        position: absolute;
        top: anchor(--ath-anchor-code bottom);
        left: 0;
        right: 0;
      }
    }
  }
  @container style(--ath-show-footer: 0) {
    footer.Footer {
      display: none;
    }
  }

  :is(form, .form-wrapper):not(.Form) {
    max-width: calc(100vw - 50px);
    display: block;
    margin-inline: 15px !important;
    column-width: var(--form-max-width);
    column-gap: 10px;
    column-fill: balance;
    label, i {
      break-after: avoid;
    }
    input {
      break-before: avoid;
    }
    button[type=submit] {
      column-span: all;
      margin: 10px auto 0;
    }
  }
}

QingJ © 2025

镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址