Jake Vanderwerf
6 hours ago 56a9a1ccf764ff7a6af8f8a2292cb07443cb4aa7
src/feed/style.scss
@@ -640,317 +640,679 @@
// }
//}
//
//.feed-block {
// grid-column: full;
// .filters {
//    padding: 1rem 0;
//    max-width:var(--wide);
//    margin: 0 auto;
//
//    .remove-term.remove-term {
//       width: max-content;
//       height: max-content
//    }
// }
// .filter-group {
//    position: relative;
//    padding: 2rem 0;
//    .label {
//       position: absolute;
//       left: 0;
//    }
//    > .label {
//       top: 0;
//    }
//    .btn + label {
//       width: auto;
//    }
//    [type=radio] {
//       position:absolute;
//       left: var(--offScreen);
//    }
//    button, label {
//       position: relative;
//       padding: .5rem;
//       height: max-content;
//       &:hover {
//          color: var(--action-contrast);
//       }
//    }
//    button:hover .label,
//    :checked + label .label,
//    label:hover .label {
//       opacity: 1;
//       visibility: visible;
//    }
//    &:has(label:hover) :checked + label .label,
//    button .label,
//    label .label {
//       --height: max-content;
//       opacity: 0;
//       visibility: hidden;
//       bottom: -2rem;
//       width: max-content;
//       white-space: nowrap;
//       font-weight: var(--fw-b);
//    }
//
//
// }
// h3 {
//    margin: 0 0 .25rem;
//    font-size: var(--medium);
// }
//}
///** PLACEHOLDERS **/
//.placeholder {
// aspect-ratio: 1;
// background: rgb(var(--base));
// border: 1rem solid rgb(var(--base-50));
// border-radius: 1rem;
// display: flex;
// justify-content: center;
// align-items: center;
//
// i.icon {
//    --w: 50%;
//    color: rgb(var(--base-200));
//    animation: dance 2.5s ease-in-out infinite;
// }
//}
//
//.item-grid {
// padding: 0 var(--chip);
// max-width: 100%;
//}
///** FEED ITEM **/
//.feed.item {
// position: relative;
// border-radius: 0.5rem;
// overflow: hidden;
// background: rgb(var(--base-50));
// box-shadow: 0 2px 4px rgba(0,0,0,0.1);
// height: fit-content;
// padding: 0;
// details {
//    z-index: var(--z-2);
//    width: 100%;
//    position: relative;
//    padding: 0;
//    summary {
//       position:absolute;
//       top: -3rem;
//       left:0;
//       width: 100%;
//       background-color: rgba(var(--base),var(--op-2));
//       backdrop-filter: blur(5px);
//       &:hover {
//          background-color: rgba(var(--action-0),var(--op-45));
//       }
//    }
//    &[open] {
//       padding: .25rem .5rem;
//       summary .icon {
//          opacity: 0;
//       }
//    }
//
// }
//
// img {
//    object-fit: cover;
//    width: 100%;
//    height: 100%;
//    //opacity: .7;
//    //filter: grayscale(.5) sepia(.3);
//    &:hover {
//       opacity: .8;
//    }
// }
//
// &[data-timeline] {
//    .images {
//       aspect-ratio: 3/2;
//       padding: 0 0 1rem;
//       span {
//          width: 50%;
//          position: absolute;
//          background-color: rgb(var(--action-0));
//          color: var(--action-contrast);
//          padding: .25rem .5rem;
//          &:first-of-type {
//             bottom: 0;
//             right: 50%;
//             text-align: right;
//          }
//          &:last-of-type {
//             top: 0;
//             left: 50%;
//          }
//       }
//       > a {
//          position: relative;
//          display: flex;
//          flex-wrap: nowrap;
//          width: 100%;
//          height: 100%;
//       }
//    }
//    img {
//       width: 50%;
//       object-fit: cover;
//       height: 100%;
//       &:first-of-type {
//          border-right: 1px solid rgb(var(--action-0));
//       }
//    }
// }
//
//
// a {
//    &::before,
//    &::after {
//       display: none;
//    }
// }
//
// label {
//    font-weight: normal;
//    text-transform: none;
//    .icon {
//       --w: 1.5em;
//    }
// }
//}
//
//
//.item-grid:has([data-timeline]) {
// grid-template-columns: repeat(auto-fill, minmax(250px, 1fr));
//}
//
//.items-wrap [type=radio],
//.items-wrap [type=checkbox] {
// position: absolute;
// opacity: 0;
// left: -200vw;
//}
//
//.items-wrap [type=radio] + label,
//.items-wrap [type=checkbox] + label {
// position: relative;
// cursor: pointer;
//}
//
//.items-wrap [type=radio] + label:hover,
//.items-wrap [type=checkbox] + label:hover {
// color: rgb(var(--action-0));
//}
//
//.items-wrap [type=radio] + label::before,
//.items-wrap [type=checkbox] + label::before,
//.items-wrap [type=radio] + label::after,
//.items-wrap [type=checkbox] + label::after {
// content: '';
// position: absolute;
// top: 50%;
//}
//
//.items-wrap [type=radio] + label::after,
//.items-wrap [type=checkbox] + label::after {
// left: 5px;
// transform: translateY(-70%) rotate(45deg);
// width: 5px;
// height: 10px;
// border: solid var(--light-0);
// border-width: 0 2px 2px 0;
// display: none;
//}
//
//.items-wrap [type=radio] + label::before,
//.items-wrap [type=checkbox] + label::before {
// left: 0;
// transform: translateY(-50%);
// width: 1rem;
// height: 1rem;
// border: 2px solid rgb(var(--contrast-200));
// background-color: rgb(var(--base));
// border-radius: var(--radius);
//}
//
//.items-wrap [type=radio]:hover + label::before,
//.items-wrap [type=checkbox]:hover + label::before {
// border-color: rgb(var(--action-200));
//}
//
//.items-wrap [type=radio]:checked + label::before,
//.items-wrap [type=checkbox]:checked + label::before{
// background-color: rgb(var(--action-0));
// border-color: rgb(var(--action-100));
//}
//
//.items-wrap [type=radio]:checked + label::before {
// border-radius: 50%;
//}
//
//.items-wrap [type=checkbox]:checked + label::after {
// display: block;
// left: 5px;
// top: 50%;
// transform: translateY(-70%) rotate(45deg);
// width: .35rem;
// height: .66rem;
// border: solid var(--light-0);
// border-width: 0 2px 2px 0;
//}
//
//.items-wrap :disabled + label {
// cursor: not-allowed;
// background-color: rgb(var(--base-50));
// color: rgb(var(--base-200));
// border-color: rgb(var(--base-200));
//}
//
//.items-wrap :disabled + label:hover {
// background-color: rgb(var(--base-50));
// color: rgb(var(--base-200));
// border-color: rgb(var(--base-200));
//}
//
//.items-wrap :disabled + label::before {
// border-color: rgb(var(--base-200));
//}
//
//#jvb-selector .items-wrap [type=radio] + label,
//#jvb-selector .items-wrap [type=checkbox] + label{
// flex: 1;
// padding-left: 2rem!important;
// transform-origin: top center;
// will-change: transform;
//}
//
//.feed-block + footer {
// grid-column: full;
// padding: 0!important;
// margin: 0;
// background-color: rgb(var(--base-50));
// z-index: 0;
// display: flex;
// justify-content: flex-end;
// button {
//    width: max-content;
//    margin-left: auto;
//    padding: .35rem .25rem;
//    --w: 1.3em!important;
//    flex-wrap: nowrap;
//    justify-content:flex-start;
//    transition: var(--trans-size);
//    font-size: var(--txt-x-small);
//    min-height: 0;
//    span {
//       display: none;
//       white-space: nowrap;
//    }
//    &:focus span,
//    &:hover span {
//       display: block;
//    }
// }
//}
//
//
//
//.search-container:not(.open) input[type=search],
//.search-container:not(.open) .clear-search {
// transform: scaleX(0);
// transform-origin: left;
// width: 0;
// padding: 0;
// transition: transform var(--trans-base), width var(--trans-base), padding var(--trans-base);
//}
//.search-container button {
// padding: .5rem;
//}
//.search-container .icon {
// --w: 1.5rem;
//}
//.search-container.open input[type=search],
//.search-container.open .clear-search {
// transform: scaleX(1);
// transform-origin: left;
// transition: transform var(--trans-base), width var(--trans-base), padding var(--trans-base);
//}
//.all-filters > .search,
//input[type=search],
//.search-container {
// width: 100%;
//}
//
//
//.all-filters {
// button .label,
// .row:has(label:hover),
// .btn:checked + label .label {
//    --height: max-content;
//    bottom: -2rem;
//    font-weight: var(--fw-b);
//    opacity: 0;
//    visibility: hidden;
//    white-space: nowrap;
//    width: -moz-max-content;
//    width: max-content;
// }
// summary {
//    width: 100%;
//    &:hover {
//       background-color: rgb(var(--action-0));
//       color: rgb(var(--action-contrast));
//       &::after {
//          background-color: rgb(var(--action-contrast));
//       }
//    }
// }
// > .row {
//    width: 100%;
//    margin: 0;
//    .label {
//       width: 20%;
//    }
// }
//}
/***** START FRESH *****/
.feed-block {
   grid-column: full;
   .filters {
      padding: 1rem 0;
      max-width:var(--wide);
      margin: 0 auto;
      .remove-term.remove-term {
         width: max-content;
         height: max-content
      }
   }
   .filter-group {
      position: relative;
      padding: 2rem 0;
      .label {
         position: absolute;
         left: 0;
      }
      > .label {
         top: 0;
      }
      [type=radio] {
         position:absolute;
         left: var(--offScreen);
      }
      button, label {
         position: relative;
         padding: .5rem;
         height: max-content;
         &:hover {
            color: var(--action-contrast);
         }
      }
      button:hover .label,
      :checked + label .label,
      label:hover .label {
         opacity: 1;
         visibility: visible;
      }
      &:has(label:hover) :checked + label .label,
      button .label,
      label .label {
         --height: max-content;
         opacity: 0;
         visibility: hidden;
         bottom: -2rem;
         width: max-content;
         white-space: nowrap;
         font-weight: var(--fw-b);
      }
   }
   h3 {
      margin: 0 0 .25rem;
      font-size: var(--medium);
   }
}
/** PLACEHOLDERS **/
.placeholder {
   aspect-ratio: 1;
   background: rgb(var(--base));
   border: 1rem solid rgb(var(--base-50));
   border-radius: 1rem;
   display: flex;
   justify-content: center;
   align-items: center;
   i.icon {
   .placeholder {
      aspect-ratio: 1;
      background: rgb(var(--base));
      border: 1rem solid rgb(var(--base-50));
      border-radius: 1rem;
      display: flex;
      justify-content: center;
      align-items: center;
      --w: 50%;
      color: rgb(var(--base-200));
      animation: dance 2.5s ease-in-out infinite;
      i.icon {
         animation: dance 2.5s ease-in-out infinite;
      }
   }
}
.item-grid {
   padding: 0 var(--chip);
   max-width: 100%;
}
/** FEED ITEM **/
.feed.item {
   position: relative;
   border-radius: 0.5rem;
   overflow: hidden;
   background: rgb(var(--base-50));
   box-shadow: 0 2px 4px rgba(0,0,0,0.1);
   height: fit-content;
   padding: 0;
   details {
      z-index: var(--z-2);
      width: 100%;
      position: relative;
   .item-grid {
      max-width: var(--full);
      &:has([data-timeline]) {
         grid-template-columns: repeat(auto-fill, minmax(250px, 1fr));
      }
   }
   .item {
      overflow: hidden;
      background: rgb(var(--base-50));
      box-shadow: rgba(var(--base), var(--op-2)) var(--shdw);
      height: fit-content;
      padding: 0;
      summary {
         position:absolute;
         top: -3rem;
         left:0;
      h3 {
         margin: 0;
         font-size: var(--txt-medium);
      }
      details {
         z-index: var(--z-2);
         width: 100%;
         background-color: rgba(var(--base),var(--op-2));
         backdrop-filter: blur(5px);
         &:hover {
            background-color: rgba(var(--action-0),var(--op-45));
         }
      }
      &[open] {
         padding: .25rem .5rem;
         summary .icon {
            opacity: 0;
         }
      }
         position: relative;
         padding: 0;
   }
   img {
      object-fit: cover;
      width: 100%;
      height: 100%;
      //opacity: .7;
      //filter: grayscale(.5) sepia(.3);
      &:hover {
         opacity: .8;
      }
   }
   &[data-timeline] {
      .images {
         aspect-ratio: 3/2;
         padding: 0 0 1rem;
         span {
            width: 50%;
         summary {
            position: absolute;
            background-color: rgb(var(--action-0));
            color: var(--action-contrast);
            padding: .25rem .5rem;
            &:first-of-type {
               bottom: 0;
               right: 50%;
               text-align: right;
            }
            &:last-of-type {
               top: 0;
               left: 50%;
            }
         }
         > a {
            position: relative;
            display: flex;
            flex-wrap: nowrap;
            top: calc(var(--chip_) * -1);
            left: 0;
            width: 100%;
            height: 100%;
            background-color: rgba(var(--base), var(--op-2));
            backdrop-filter: blur(5px);
            &:hover {
               background-color: rgba(var(--action-0), var(--op-45));
            }
         }
         &[open] {
            padding: .25rem .5rem;
         }
      }
      img {
         width: 50%;
         object-fit: cover;
         height: 100%;
         &:first-of-type {
            border-right: 1px solid rgb(var(--action-0));
         &:hover {
            opacity: .8;
         }
      }
   }
      &[data-timeline] {
         .images {
            aspect-ratio: 3/2;
            padding: 0 0 1rem;
   a {
      &::before,
      &::after {
         display: none;
            span {
               width: 50%;
               position: absolute;
               background-color: rgb(var(--action-0));
               color: rgb(var(--action-contrast));
               padding: .25rem .5rem;
               &:first-of-type {
                  bottom: 0;
                  right: 50%;
                  text-align: right;
               }
               &:last-of-type {
                  top: 0;
                  left: 50%;
               }
            }
            //> a {
            // position: relative;
            // display: flex;
            // flex-wrap: nowrap;
            // width: 100%;
            // height: 100%;
            //}
            img {
               width: 50%;
               &:first-of-type {
                  border-right: 2px solid rgb(var(--action-0));
               }
            }
         }
      }
   }
   label {
      font-weight: normal;
      text-transform: none;
      .icon {
      a {
         &::before,
         &::after {
            display: none;
         }
      }
      label {
         font-weight: normal;
         text-transform: none;
         --w: 1.5em;
      }
   }
}
.all-filters {
   font-size: var(--txt-x-small);
   &[open] {
      border: 2px solid rgb(var(--action-0));
      padding: 0;
      border-radius: 0 0 var(--radius-outer) var(--radius-outer);
   }
.item-grid:has([data-timeline]) {
   grid-template-columns: repeat(auto-fill, minmax(250px, 1fr));
}
   summary {
      width: 100%;
   }
.items-wrap [type=radio],
.items-wrap [type=checkbox] {
   position: absolute;
   opacity: 0;
   left: -200vw;
}
   &[open] summary,
   summary:hover {
      background-color: rgb(var(--action-0));
      color: rgb(var(--action-contrast));
      &::after {
         background-color: rgb(var(--action-contrast));
      }
   }
.items-wrap [type=radio] + label,
.items-wrap [type=checkbox] + label {
   position: relative;
   cursor: pointer;
}
   >.row.row {
      padding: 0 .75rem 2rem;
      width: var(--content);
.items-wrap [type=radio] + label:hover,
.items-wrap [type=checkbox] + label:hover {
   color: rgb(var(--action-0));
}
      &.search {
         padding-bottom: 0;
      }
      position: relative;
.items-wrap [type=radio] + label::before,
.items-wrap [type=checkbox] + label::before,
.items-wrap [type=radio] + label::after,
.items-wrap [type=checkbox] + label::after {
   content: '';
   position: absolute;
   top: 50%;
}
.items-wrap [type=radio] + label::after,
.items-wrap [type=checkbox] + label::after {
   left: 5px;
   transform: translateY(-70%) rotate(45deg);
   width: 5px;
   height: 10px;
   border: solid var(--light-0);
   border-width: 0 2px 2px 0;
   display: none;
}
.items-wrap [type=radio] + label::before,
.items-wrap [type=checkbox] + label::before {
   left: 0;
   transform: translateY(-50%);
   width: 1rem;
   height: 1rem;
   border: 2px solid rgb(var(--contrast-200));
   background-color: rgb(var(--base));
   border-radius: var(--radius);
}
.items-wrap [type=radio]:hover + label::before,
.items-wrap [type=checkbox]:hover + label::before {
   border-color: rgb(var(--action-200));
}
.items-wrap [type=radio]:checked + label::before,
.items-wrap [type=checkbox]:checked + label::before{
   background-color: rgb(var(--action-0));
   border-color: rgb(var(--action-100));
}
.items-wrap [type=radio]:checked + label::before {
   border-radius: 50%;
}
.items-wrap [type=checkbox]:checked + label::after {
   display: block;
   left: 5px;
   top: 50%;
   transform: translateY(-70%) rotate(45deg);
   width: .35rem;
   height: .66rem;
   border: solid var(--light-0);
   border-width: 0 2px 2px 0;
}
.items-wrap :disabled + label {
   cursor: not-allowed;
   background-color: rgb(var(--base-50));
   color: rgb(var(--base-200));
   border-color: rgb(var(--base-200));
}
.items-wrap :disabled + label:hover {
   background-color: rgb(var(--base-50));
   color: rgb(var(--base-200));
   border-color: rgb(var(--base-200));
}
.items-wrap :disabled + label::before {
   border-color: rgb(var(--base-200));
}
#jvb-selector .items-wrap [type=radio] + label,
#jvb-selector .items-wrap [type=checkbox] + label{
   flex: 1;
   padding-left: 2rem!important;
   transform-origin: top center;
   will-change: transform;
}
.feed-block + footer {
   grid-column: full;
   padding: 0!important;
   margin: 0;
   background-color: rgb(var(--base-50));
   z-index: 0;
   display: flex;
   justify-content: flex-end;
   button {
      width: max-content;
      margin-left: auto;
      padding: .35rem .25rem;
      --w: 1.3em!important;
      flex-wrap: nowrap;
      justify-content:flex-start;
      transition: var(--trans-size);
      font-size: var(--txt-x-small);
      min-height: 0;
      span {
         display: none;
      > .label,
      > .row > .label {
         font-family: var(--heading);
         font-weight: var(--fw-h-bold);
         text-transform: uppercase;
      }
      > .label {
         width: 20%;
      }
      >.row > .label {
         white-space: nowrap;
      }
      &:focus span,
      &:hover span {
         display: block;
   }
   button,
   .btn + label {
      width: var(--chipchip);
      min-height: var(--chipchip);
      padding: 0;
   }
   button .label,
   .row:has(> .btn:not(:checked) + label:hover) :checked + label .label,
   .btn + label .label {
      position: absolute;
      bottom: -2rem;
      width: max-content;
      white-space: nowrap;
      opacity: 0;
      z-index: var(--z-4);
   }
   button:hover .label,
   .btn:checked + label .label,
   .btn + label:hover .label {
      opacity: 1;
   }
   .search.row,
   .view.row {
      display: none;
   }
}
.search-container:not(.open) input[type=search],
.search-container:not(.open) .clear-search {
   transform: scaleX(0);
   transform-origin: left;
   width: 0;
   padding: 0;
   transition: transform var(--trans-base), width var(--trans-base), padding var(--trans-base);
}
.search-container button {
   padding: .5rem;
}
.search-container .icon {
   --w: 1.5rem;
}
.search-container.open input[type=search],
.search-container.open .clear-search {
   transform: scaleX(1);
   transform-origin: left;
   transition: transform var(--trans-base), width var(--trans-base), padding var(--trans-base);
}
.all-filters > .search,
input[type=search],
.search-container {
   width: 100%;
}
.toggle-text {
   input {
      + label {
         font-weight: normal;
         color: var(--contrast)!important;
         text-transform: none;
         cursor: pointer;
         position: relative;
         padding: .25rem .5rem;
         -webkit-user-select: none;
         -moz-user-select: none;
         -ms-user-select: none;
         user-select: none;
         border: 1px dashed transparent;
         &::before,
         &::after {
            display: none!important;
         }
         .text {
            position: relative;
            margin: 0;
            --gap: 0;
            font-weight: bold;
            width: fit-content;
            padding: 2px 4px;
            border: 1px solid rgb(var(--action-50));
            border-radius: var(--radius);
            color: rgb(var(--action-50));
         }
         .off {
            --mid: -100%;
         }
         .on {
            --mid: 100%;
         }
         .off,
         .on {
            transition: var(--trans-transform), opacity var(--trans-base);
         }
      }
       + label .off,
      &:checked + label .on {
         opacity: 1;
         max-width: 100%;
         transform: translate3d(0,0,0);
      }
       + label .on,
      &:checked + label .off {
         opacity: 0;
         max-width: 0;
         transform: translate3d(0,var(--mid),0);
      }
   }
   &:hover {
      label {
         border-color: rgb(var(--action-200));
      }
      .text {
         background-color: rgb(var(--action-50));
         color: rgb(var(--action-contrast));
         border-color: rgb(var(--action-50));
      }
   }
}