Jake Vanderwerf
6 hours ago 56a9a1ccf764ff7a6af8f8a2292cb07443cb4aa7
src/feed/style.scss
@@ -35,7 +35,7 @@
// position: sticky;
// top: 3rem;
// z-index: 15;
// background: rgba(var(--base-rgb),var(--op-6));
// background: rgba(var(--base),var(--op-6));
// padding: .25rem 3rem;
// details[open] summary {
//    background-color: var(--overlay);
@@ -72,7 +72,7 @@
//
// details[open],
// summary:hover {
//    background-color: rgba(var(--base-rgb),var(--op-6));
//    background-color: rgba(var(--base),var(--op-6));
// }
//
// &:has(#favourites) {
@@ -155,7 +155,7 @@
// grid-column: 1/-1;
// text-align: center;
// padding: 2rem;
// background: var(--base-100);
// background: rgb(var(--base-100));
// border-radius: var(--radius);
// margin: 0 auto;
// max-width: 600px;
@@ -165,8 +165,8 @@
// */
//.placeholder {
// aspect-ratio: 1;
// background: var(--base);
// border: 1rem solid var(--base-50);
// background: rgb(var(--base));
// border: 1rem solid rgb(var(--base-50));
// border-radius: 1rem;
// display: flex;
// justify-content: center;
@@ -174,7 +174,7 @@
//
// .icon {
//    --w: 50%;
//    color: var(--base-200);
//    color: rgb(var(--base-200));
//    animation: dance 2.5s ease-in-out infinite;
//
// }
@@ -187,7 +187,7 @@
// position: relative;
// border-radius: 0.5rem;
// overflow: hidden;
// background: var(--base-50);
// background: rgb(var(--base-50));
// box-shadow: 0 2px 4px rgba(0,0,0,0.1);
// opacity: 0;
// transition: opacity var(--trans-base) var(--delay);
@@ -242,7 +242,7 @@
//       bottom: 0;
//       left: 0;
//       right: 0;
//       background-color: rgba(var(--base-rgb),var(--op-3));
//       background-color: rgba(var(--base),var(--op-3));
//       backdrop-filter: blur(5px);
//       border-radius: var(--radius);
//       z-index: 1;
@@ -278,8 +278,8 @@
// align-items: center;
// gap: .5rem;
// padding: .75rem 1.5rem;
// background: var(--base);
// color: var(--contrast);
// background: rgb(var(--base));
// color: rgb(var(--contrast));
// border-radius: 4px;
// font-size: var(--txt-medium);
// transition: all var(--trans-base);
@@ -290,7 +290,7 @@
// }
// &:hover {
//    background: var(--pink-50);
//    border-color: var(--contrast);
//    border-color: rgb(var(--contrast));
//    color: var(--white);
// }
//}
@@ -302,9 +302,9 @@
// top: .5rem;
// right: .5rem;
// z-index: 10;
// background: rgba(var(--base-rgb),var(--op-4));
// background: rgba(var(--base),var(--op-4));
// border-radius: 50%;
// box-shadow: rgba(var(--base-rgb),var(--op-45)) var(--shdw-subtle);
// box-shadow: rgba(var(--base),var(--op-45)) var(--shdw-subtle);
// border: none;
// width: 2rem;
// height: 2rem;
@@ -317,7 +317,7 @@
// &:hover {
//    transform: scale(1.1);
//    color: var(--pink-0);
//    background: var(--base);
//    background: rgb(var(--base));
//    box-shadow: 0 4px 8px rgba(0,0,0,0.15);
// }
//
@@ -383,7 +383,7 @@
///** Item Information **/
//.item-info {
// padding: .25rem;
// border-left: 1px solid var(--base-200);
// border-left: 1px solid rgb(var(--base-200));
// >div + div {
//    margin-top: .5em;
//    position: relative;
@@ -395,7 +395,7 @@
//       top: -.3em;
//       left: -.25rem;
//       width: 66.6%;
//       border-bottom: 1px solid var(--base-200);
//       border-bottom: 1px solid rgb(var(--base-200));
//    }
// }
// h3 {
@@ -443,8 +443,8 @@
//    &:hover,
//    &:focus {
//       background-color: transparent;
//       border-color: var(--contrast);
//       color: var(--contrast);
//       border-color: rgb(var(--contrast));
//       color: rgb(var(--contrast));
//    }
// }
//}
@@ -461,7 +461,7 @@
// left: 0;
// right: 0;
// bottom: 0;
// background-color: rgba(var(--base-rgb),var(--op-4));
// background-color: rgba(var(--base),var(--op-4));
// display: flex;
// align-items: center;
// justify-content: center;
@@ -487,7 +487,7 @@
// }
//
// .wrapper {
//    background-color: rgba(var(--base-rgb),var(--op-6));
//    background-color: rgba(var(--base),var(--op-6));
//    padding: 2rem;
//    border-radius: var(--radius);
//    text-align: center;
@@ -536,12 +536,12 @@
//
//       h3 {
//          margin: 1.5rem 0 .25rem!important;
//          color: var(--contrast-200);
//          color: rgb(var(--contrast-200));
//       }
//       .message {
//          margin: 0;
//          max-width: 275px;
//          color: var(--contrast-100);
//          color: rgb(var(--contrast-100));
//          font-size: var(--txt-x-small);
//          animation: flicker 2s infinite;
//       }
@@ -624,7 +624,7 @@
//.feed-block .item {
// summary {
//    a {
//       background-color: var(--action-0);
//       background-color: rgb(var(--action-0));
//       display: flex;
//       gap: .25rem;
//       flex-wrap: nowrap;
@@ -640,187 +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;
   }
   .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: var(--base);
   border: 1rem solid 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: var(--base-200);
      animation: dance 2.5s ease-in-out infinite;
      color: rgb(var(--base-200));
      i.icon {
         animation: dance 2.5s ease-in-out infinite;
      }
   }
}
.item-grid {
   padding: 0 var(--chip);
   max-width: none;
}
/** FEED ITEM **/
.feed.item {
   position: relative;
   border-radius: 0.5rem;
   overflow: hidden;
   background: 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-rgb),var(--op-2));
         backdrop-filter: blur(5px);
         &:hover {
            background-color: rgba(var(--action-rgb),var(--op-45));
         }
      }
      &[open] {
         padding: .25rem .5rem;
         summary .icon {
            opacity: 0;
         }
      }
         position: relative;
         padding: 0;
   }
   img {
      object-fit: cover;
      //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: 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 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(1, 1fr);
}
   summary {
      width: 100%;
   }
@media (min-width:768px) {
   .item-grid:has([data-timeline]) {
      grid-template-columns: repeat(2, 1fr);
   &[open] summary,
   summary:hover {
      background-color: rgb(var(--action-0));
      color: rgb(var(--action-contrast));
      &::after {
         background-color: rgb(var(--action-contrast));
      }
   }
   >.row.row {
      padding: 0 .75rem 2rem;
      width: var(--content);
      &.search {
         padding-bottom: 0;
      }
      position: relative;
      > .label,
      > .row > .label {
         font-family: var(--heading);
         font-weight: var(--fw-h-bold);
         text-transform: uppercase;
      }
      > .label {
         width: 20%;
      }
      >.row > .label {
         white-space: nowrap;
      }
   }
   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));
      }
   }
}