311 lines
5.4 KiB
CSS
311 lines
5.4 KiB
CSS
@import url(base.css);
|
|
@import url(nsfw-warning.css);
|
|
|
|
:root {
|
|
--image-size: 200px;
|
|
--gap: 1em;
|
|
}
|
|
|
|
@media (min-width: 1000px) {
|
|
.page { max-width: 80%; }
|
|
}
|
|
|
|
#filters {
|
|
margin: 1em 0 2em 0;
|
|
}
|
|
|
|
#filters div {
|
|
display: grid;
|
|
grid-template-columns: 15% auto;
|
|
align-items: baseline;
|
|
grid-gap: 0.75em;
|
|
}
|
|
|
|
#filters h3 {
|
|
margin: 0;
|
|
}
|
|
|
|
#filters h3 {
|
|
text-align: right;
|
|
grid-area: auto / 1;
|
|
}
|
|
|
|
.filterlist {
|
|
display: flex;
|
|
flex-flow: row wrap;
|
|
/* justify-content: space-between; */
|
|
padding: 0;
|
|
|
|
font-weight: 500;
|
|
font-size: 90%;
|
|
grid-gap: 0.5em 1em;
|
|
}
|
|
|
|
.filterlist input {
|
|
appearance: none;
|
|
}
|
|
|
|
.filterlist li:not([hidden]) {
|
|
display: block;
|
|
}
|
|
|
|
.filterlist li:focus-within {
|
|
color: var(--focus-text);
|
|
}
|
|
|
|
.filterlist label {
|
|
padding: 0.15em 0.4em;
|
|
border-radius: var(--button-radius);
|
|
background: var(--button-bg);
|
|
border: var(--button-border);
|
|
}
|
|
|
|
.filterlist label::before {
|
|
content: url('/style/unchecked.svg');
|
|
display: inline-block;
|
|
height: 1em;
|
|
width: 1em;
|
|
vertical-align: -15%;
|
|
padding-right: 0.25em;
|
|
text-shadow: none;
|
|
}
|
|
.filterlist :checked + label::before { content: url('/style/checked.svg'); }
|
|
|
|
.filterlist label:not([data-count="1"])::after {
|
|
content: attr(data-count);
|
|
font-size: 80%;
|
|
font-weight: 400;
|
|
padding: 0 0.5em;
|
|
}
|
|
|
|
.filterlist [data-count="1"] {
|
|
font-size: 85%;
|
|
padding-right: 0.8em;
|
|
}
|
|
|
|
.filterlist input {
|
|
margin: 0;
|
|
}
|
|
|
|
#filterstuff {
|
|
padding: 0;
|
|
grid-area: auto / span 2;
|
|
display: flex;
|
|
justify-content: center;
|
|
margin-top: 0;
|
|
grid-gap: 2em;
|
|
}
|
|
|
|
#filterstuff li {
|
|
list-style: none;
|
|
display: inline-block;
|
|
padding: var(--button-pad);
|
|
border-radius: var(--button-radius);
|
|
background: var(--button-bg);
|
|
border: var(--button-border);
|
|
}
|
|
|
|
#filterstuff a {
|
|
font-weight: 500;
|
|
text-decoration: none;
|
|
}
|
|
|
|
|
|
@media (max-width: 80rem) {
|
|
#filters div {
|
|
grid-template-columns: auto;
|
|
}
|
|
|
|
#filters h3 {
|
|
text-align: left;
|
|
grid-area: unset;
|
|
}
|
|
|
|
#filterstuff {
|
|
grid-area: unset;
|
|
flex-flow: column;
|
|
grid-gap: 0.2em;
|
|
}
|
|
|
|
#filterstuff li {
|
|
border-radius: 1em;
|
|
}
|
|
}
|
|
|
|
|
|
.grid {
|
|
padding: 0;
|
|
display: grid;
|
|
grid-template-columns: repeat(auto-fill, var(--image-size));
|
|
grid-gap: var(--gap);
|
|
justify-content: center;
|
|
}
|
|
|
|
.item {
|
|
--border-thickness: 2px;
|
|
list-style: none;
|
|
|
|
width: var(--image-size);
|
|
height: var(--image-size);
|
|
overflow: hidden;
|
|
|
|
position: relative;
|
|
}
|
|
|
|
.item:not(.year-marker) {
|
|
box-shadow: var(--text-shadow);
|
|
border: var(--border-thickness) solid var(--border-col);
|
|
border-radius: 0.5em;
|
|
background: hsl(340, 45%, 65%);
|
|
}
|
|
|
|
.item:focus-within {
|
|
box-shadow: var(--focus-box);
|
|
}
|
|
|
|
figure {
|
|
margin: 0;
|
|
padding: 0;
|
|
}
|
|
|
|
figcaption .date, figcaption .title {
|
|
position: absolute;
|
|
width: 100%;
|
|
border: 1px solid var(--border-col);
|
|
display: block;
|
|
text-align: center;
|
|
background: hsl(0, 0%, 0%, 75%);
|
|
text-shadow: none;
|
|
}
|
|
|
|
figcaption .date { top: -1px; left: -1px; }
|
|
figcaption .title { bottom: -1px; left: -1px; }
|
|
|
|
.date { text-transform: lowercase; }
|
|
|
|
.year-marker {
|
|
/* uncomment to reenable line breaks before year markers */
|
|
/* grid-area: auto / 1; */
|
|
padding: var(--border-thickness);
|
|
}
|
|
|
|
.year-text {
|
|
--gap: 0.2em;
|
|
display: grid;
|
|
grid-template-columns: repeat(2, calc(50% - 3 * var(--gap)));
|
|
grid-gap: var(--gap);
|
|
align-items: center;
|
|
justify-content: center;
|
|
height: 100%;
|
|
width: 100%;
|
|
}
|
|
|
|
.year-marker .y {
|
|
display: block;
|
|
text-align: center;
|
|
font-size: calc(var(--image-size) * 0.6);
|
|
line-height: 0;
|
|
font-weight: 800;
|
|
transform: scaleX(110%);
|
|
}
|
|
|
|
.item.nsfw::before, .item[data-updated="true"]::after {
|
|
height: var(--size);
|
|
width: var(--size);
|
|
transform: var(--base-transform);
|
|
|
|
display: inline-block;
|
|
position: absolute;
|
|
|
|
mix-blend-mode: hard-light;
|
|
}
|
|
|
|
.item.nsfw::before {
|
|
--size: calc(1/4 * var(--image-size));
|
|
--base-transform: rotate(var(--nsfw-sticker-rotate));
|
|
content: url(../18_plus_white.svg);
|
|
top: calc(1em + 3px);
|
|
right: 3px;
|
|
}
|
|
|
|
.item[data-updated="true"]::after {
|
|
--size: calc(1/4 * var(--image-size));
|
|
--base-transform: rotate(-8deg);
|
|
content: url(../sparkles.svg);
|
|
bottom: calc(1em + 3px);
|
|
right: 3px;
|
|
}
|
|
|
|
footer {
|
|
font-size: 90%;
|
|
text-align: center;
|
|
margin-top: 1em;
|
|
}
|
|
|
|
|
|
@media (hover) and (pointer: fine) {
|
|
.item:hover .date, .item:hover .title,
|
|
.item:hover::before, .item:hover::after {
|
|
filter: opacity(20%);
|
|
}
|
|
|
|
@media (prefers-reduced-motion: no-preference) {
|
|
figcaption .date, figcaption .title, .item::before, .item::after {
|
|
transition-property: filter, transform;
|
|
transition-duration: 0.15s;
|
|
transition-timing-function: ease-in-out;
|
|
}
|
|
|
|
.item:hover .title {
|
|
transform: translate(-20%, 80%) rotateZ(7deg);
|
|
}
|
|
|
|
.item:hover .date {
|
|
transform: translate(20%, -80%) rotateZ(7deg);
|
|
}
|
|
|
|
.item:hover::before {
|
|
transform: translate(1.5em, -1.5em) var(--base-transform);
|
|
}
|
|
|
|
.item:hover::after {
|
|
transform: translate(1.5em, 1.5em) var(--base-transform);
|
|
}
|
|
}
|
|
}
|
|
|
|
@media (not hover), (pointer: coarse) {
|
|
.item:not(.year-marker) {
|
|
height: min-content;
|
|
}
|
|
|
|
figcaption .date, figcaption .title {
|
|
position: initial;
|
|
}
|
|
|
|
figcaption .date {
|
|
border-bottom: none;
|
|
}
|
|
figcaption .title {
|
|
border-top: none;
|
|
}
|
|
|
|
figcaption .date::after {
|
|
content: ':';
|
|
}
|
|
|
|
.item a {
|
|
display: block;
|
|
height: var(--image-size);
|
|
}
|
|
|
|
.item img {
|
|
margin-bottom: 0;
|
|
}
|
|
}
|
|
|
|
@media (pointer: coarse) {
|
|
#filters label {
|
|
font-size: 150%;
|
|
}
|
|
}
|