gallery categories modularized, removed music lists, added listenbrainz to outgoing, icons, css cleanup

This commit is contained in:
sundae 2026-06-04 14:05:36 +03:00
commit d376e04015
24 changed files with 474 additions and 606 deletions

View file

@ -63,24 +63,23 @@ main article {
color-mix(in lch, var(--citrus-mix-dark), var(--citrus-mix)),
var(--citrus-mix-dark)
);
}
& a:has(figure) {
font-family: "Urbanist", sans-serif;
transition:
border-color var(--trans),
background-color var(--trans);
box-shadow: var(--shadow-light);
&:is(:hover, :focus) {
& figure {
transition: inherit;
border-color: currentColor;
& a:has(figure) {
transition:
border-color var(--trans),
background-color var(--trans);
box-shadow: var(--shadow-light);
&:is(:hover, :focus) {
& figure {
transition: inherit;
border-color: currentColor;
}
}
&:is(:not(:hover, :focus)) {
border-color: var(--light);
background-color: var(--light);
}
}
}
& a:is(:not(:hover, :focus)) figure {
border-color: var(--light);
background-color: var(--light);
}
}
:is(#art li, #art section a):nth-child(odd) {
transform: var(--rot-minus);
@ -90,11 +89,11 @@ main article {
background-image: var(--noise), var(--paper);
background-size: auto, 4px;
box-shadow: var(--shadow-light);
margin-bottom: var(--pad-xl);
padding: var(--pad-xl);
transform: var(--rot-plus);
& p {
line-height: 32px;
padding: 0;
}
}
#blog {
@ -151,24 +150,7 @@ main article {
& s {
text-decoration-color: #d00;
}
& .postscript {
& span:has([alt]) {
&::after {
content: "";
width: var(--avatar);
height: var(--avatar);
position: absolute;
margin: 5px;
background-image:
radial-gradient(circle at 0px 0px, var(--light), transparent 50%),
linear-gradient(
135deg,
transparent 15%,
var(--light) 20%,
color-mix(in lch, var(--light), transparent 90%) 50%
);
}
}
& .postscript {
& [alt="Profile picture"] {
color: unset;
border-radius: inherit;
@ -182,15 +164,8 @@ main article {
border-width: 3px;
box-sizing: inherit;
padding: 2px;
background-image:
radial-gradient(
ellipse at 50% -0%,
var(--light) 20%,
var(--dark) 150%
),
var(--pansexual);
background-blend-mode: overlay, normal;
background-size: cover, 100%;
background-image: var(--agender);
background-size: 100%;
background-position: center;
background-repeat: no-repeat;
box-shadow:
@ -222,9 +197,6 @@ main article {
}
}
@media screen and (min-width: 916px) {
nav#default {
height: max-content;
}
header {
margin-top: 0;
}

View file

@ -47,15 +47,15 @@ header {
background-image: var(--nav-bg);
background-size: 6px;
}
#floating,
#default {
#floating {
border-bottom-style: solid;
border-right-style: solid;
border-bottom-width: 4px;
border-right-width: 4px;
}
#default {
border-bottom-right-radius: var(--pad-l);
border-right-style: solid;
border-right-width: 4px;
}
body {
position: relative;

View file

@ -6,49 +6,60 @@ body {
font-size: 100%;
margin: 0;
padding: 0;
& a,
button {
cursor: pointer;
}
}
main {
overflow: hidden;
padding: var(--pad-xl) var(--pad-xl) 0 calc(var(--view) + var(--pad-xl));
position: relative;
width: fit-content;
margin-bottom: var(--pad-xl);
& ul[role="list"] {
display: flex;
flex-wrap: wrap;
margin: 0;
padding: 0;
}
& article {
color: inherit;
height: max-content;
max-width: var(--main);
padding: var(--pad-xl);
width: auto;
&:not(:last-child) {
margin-bottom: var(--pad-l);
}
& s {
text-decoration-style: line-through;
text-decoration-thickness: 0.1em;
}
& u {
text-decoration-style: double;
text-decoration-thickness: 2px;
}
& em {
font-weight: 200;
}
& p {
word-wrap: break-word;
&:not(li p):not(:last-child) {
padding-bottom: var(--pad-m);
}
}
& pre {
display: flex;
width: auto;
@ -56,51 +67,63 @@ main {
white-space: pre-wrap;
word-break: break-word;
}
& a {
padding: 2px;
& > img {
display: inline-flex;
height: auto;
vertical-align: middle;
padding-right: 2px;
}
&:has(figure) {
height: fit-content;
}
& a>img {
display: inline-flex;
height: auto;
vertical-align: middle;
padding-right: 2px;
}
& a:has(figure) {
height: fit-content;
}
& figure {
margin: 0;
padding: var(--pad-m);
border-radius: inherit;
display: flex;
flex-direction: column;
& figcaption {
width: 100%;
padding-top: inherit;
}
}
}
}
header {
& a {
display: flex;
}
& svg {
width: 32px;
height: 32px;
margin-right: var(--pad-m);
}
}
footer {
color: var(--dark);
display: inline-flex;
display: flex;
flex-wrap: wrap;
font-family: "Nosey Rodent", sans-serif;
inset-block: 100%;
margin: 0 auto;
justify-content: center;
margin-left: var(--view);
overflow-y: hidden;
position: sticky;
width: 100%;
text-align: center;
width: calc(100% - var(--view));
word-break: break-all;
z-index: -1;
& span {
width: inherit;
& #message {
background-image: var(--transgender);
padding: 0 var(--pad-s);
}
}
h1,
h2,
h3,
@ -113,28 +136,35 @@ h6 {
margin: 0;
width: fit-content;
}
details {
cursor: pointer;
display: flex;
flex-direction: column;
& summary::marker {
content: none;
}
}
svg {
fill: currentColor;
stroke: currentColor;
stroke-width: 0;
}
p {
margin: 0;
}
.paws {
margin: 0;
padding: 0 var(--pad-xl);
& li::marker {
content: none;
}
& li::before {
content: "";
width: 20px;
@ -146,32 +176,39 @@ p {
margin: 0 0 0 calc(var(--pad-xl) * -1);
}
}
img[src*="/assets/img/flag/"] {
height: 32px;
border-radius: 2px;
&:first-child {
margin-left: var(--pad-m);
}
&:not(:last-child) {
margin-right: var(--pad-m);
}
}
/* home.html */
#bio .emoji {
display: inline-flex;
height: 20px;
vertical-align: middle;
width: 20px;
&::after,
img {
filter: drop-shadow(0 0 0.5px #000a);
}
}
#badges ul {
gap: var(--pad-s);
padding: 0;
}
#interests {
#interests details {
& a {
align-items: center;
display: inline-flex;
@ -179,9 +216,11 @@ img[src*="/assets/img/flag/"] {
height: auto;
text-align: center;
width: 120px;
&:not(:hover, :focus) {
background: transparent;
}
& span:has(img)::after {
background-image: url("/assets/img/icon/shortcut.png");
background-size: 100%;
@ -196,12 +235,15 @@ img[src*="/assets/img/flag/"] {
}
}
}
.games img {
height: 48px;
}
.manga img {
height: 128px;
}
#pkmn {
background-image: url("/assets/img/pkmn/bg/box.png");
border-bottom-color: #78a068;
@ -213,107 +255,128 @@ img[src*="/assets/img/flag/"] {
border-width: 3px;
margin: var(--pad-l) 0 0 0;
width: fit-content;
& li {
display: flex;
margin-left: -12px;
margin-top: -8px;
& span:hover {
filter: drop-shadow(0 -2px 0 #fff) drop-shadow(0 2px 0 #fff)
drop-shadow(2px 0 0 #fff) drop-shadow(-2px 0 0 #fff)
drop-shadow(0 2px 3px #000a);
filter: drop-shadow(0 -2px 0 #fff) drop-shadow(0 2px 0 #fff) drop-shadow(2px 0 0 #fff) drop-shadow(-2px 0 0 #fff) drop-shadow(0 2px 3px #000a);
animation: jump 200ms infinite alternate;
}
}
}
#agender {
background-image: var(--agender);
}
#aromantic {
background-image: var(--aromantic);
}
#pansexual {
background-image: var(--pansexual);
}
#badges img {
max-height: 31px;
width: 88px;
}
/* changelog.html */
#changelog li {
&::before {
content: none;
}
&::marker {
content: initial;
}
}
/* gallery.html */
#art {
& h1,
p {
margin: 0;
& h1 {
display: inline-flex;
}
& p {
max-width: var(--post);
}
& section:has(a:nth-child(n + 2)) {
display: flex;
flex-direction: row;
gap: var(--pad-l);
}
& section:has(a:nth-child(n + 3)) {
flex-direction: column;
}
& section {
margin-top: var(--pad-l);
&:not(:last-child) {
margin-bottom: var(--pad-l);
}
& a {
display: flex;
width: calc(var(--post) - var(--view));
flex-direction: column;
height: fit-content;
}
& time {
margin: var(--pad-m) 0 0;
}
}
& figure img {
width: 100%;
}
}
#artworks {
& ul {
display: grid;
grid-template-columns: repeat(
auto-fill,
minmax(min(var(--thumb), 100%), 1fr)
);
grid-template-columns: repeat(auto-fill,
minmax(min(var(--thumb), 100%), 1fr));
gap: var(--pad-l);
& a {
display: block;
}
}
& figure {
margin: 0;
& img {
width: 100%;
height: var(--thumb);
object-fit: cover;
}
& figcaption {
display: inline-flex;
font-size: 1.4rem;
}
& .count {
margin: auto 0 0 auto;
}
& img {
width: 100%;
height: var(--thumb);
object-fit: cover;
}
& figcaption {
display: inline-flex;
font-size: 1.4rem;
}
& .count {
margin: auto 0 0 auto;
}
}
/* blog.html */
#blog {
& main article {
max-width: var(--post);
& .postscript {
margin: 0 0 auto auto;
padding: var(--pad-xl) 0 var(--pad-xxl) 0;
&::after {
content: "";
position: absolute;
@ -324,6 +387,7 @@ img[src*="/assets/img/flag/"] {
mask-repeat: no-repeat;
transform: rotate(15deg);
}
& p {
display: flex;
flex-direction: column;
@ -340,6 +404,7 @@ img[src*="/assets/img/flag/"] {
color: #fff;
font-size: 0.8rem;
word-wrap: anywhere;
&:hover {
background-color: #3a76f0;
}
@ -350,7 +415,8 @@ img[src*="/assets/img/flag/"] {
align-items: center;
gap: var(--pad-m);
}
& > img {
&>img {
transition:
height var(--trans),
border-radius var(--trans),
@ -360,32 +426,30 @@ img[src*="/assets/img/flag/"] {
max-height: var(--image);
}
}
& span:has([alt="Profile picture"]) {
width: var(--avatar);
height: var(--avatar);
display: flex;
float: right;
& [alt="Profile picture"] {
display: flex;
box-sizing: content-box;
margin: 0 0 0 auto;
width: inherit;
height: inherit;
}
}
}
& .postscript::after {
background-color: var(--primary);
}
& section:has(figure) {
display: flex;
gap: var(--pad-l);
}
& aside {
float: right;
border-radius: var(--round);
width: 66%;
}
h1,
h2,
h3,
@ -394,10 +458,12 @@ img[src*="/assets/img/flag/"] {
h6 {
margin-bottom: var(--pad-m);
}
& .post-warning {
font-size: 1.4rem;
font-weight: bold;
text-align: center;
&::before,
&::after {
content: "";
@ -406,7 +472,15 @@ img[src*="/assets/img/flag/"] {
border-style: dashed;
}
}
.addendum,
.post-warning,
aside {
margin: var(--pad-l) 0;
padding: var(--pad-l);
}
}
& #posts {
& ul {
display: flex;
@ -424,6 +498,7 @@ img[src*="/assets/img/flag/"] {
padding: var(--pad-m);
text-decoration: none;
word-break: break-word;
& time,
p {
display: flex;
@ -433,12 +508,7 @@ img[src*="/assets/img/flag/"] {
}
}
}
.addendum,
.post-warning,
#blog main article aside {
margin: var(--pad-l) 0;
padding: var(--pad-l);
}
/* easter egg :) */
#signal {
background: black;
@ -452,6 +522,7 @@ img[src*="/assets/img/flag/"] {
max-width: 100%;
position: fixed;
width: 100%;
& article {
align-content: center;
display: flex;
@ -460,23 +531,28 @@ img[src*="/assets/img/flag/"] {
justify-content: center;
margin: 0 auto;
width: fit-content;
& h1 {
display: inline-flex;
font-size: 4rem;
margin: 0 auto;
}
& p {
font-size: 2rem;
}
& a {
margin: auto 0 0 auto;
}
& img {
border: 4px solid white;
max-height: 250px;
max-width: 100%;
padding: var(--pad-s);
}
& button {
inset-block: 100%;
bottom: 0;
@ -486,18 +562,23 @@ img[src*="/assets/img/flag/"] {
}
}
}
@media screen and (min-width: 916px) {
#sidebar {
display: flex;
}
#floating {
display: none;
}
#default button[popovertarget] {
display: none;
}
}
@media screen and (max-width: 916px) {
/* Reset */
header,
footer,
@ -506,40 +587,52 @@ img[src*="/assets/img/flag/"] {
padding: 0;
width: auto;
}
footer span {
footer #message {
margin: 0 auto;
width: 100%;
}
article {
margin: var(--pad-m);
padding: var(--pad-l);
}
header {
margin: calc(var(--pad-xxl) + var(--pad-l)) 0 0 0;
& h1 {
margin: auto 0 0 auto;
padding-right: var(--pad-m);
}
}
#default::before {
content: none;
}
body::after {
content: "";
}
#blog {
& main article {
max-width: initial;
& aside {
float: unset;
width: fit-content;
}
& section {
flex-direction: column;
}
& .postscript {
& p {
margin-right: var(--pad-sm);
& > a img {
&>a img {
height: auto;
max-height: var(--view);
}
@ -547,15 +640,18 @@ img[src*="/assets/img/flag/"] {
}
}
}
#art {
& p {
max-width: auto;
}
& a:has(img) {
width: auto;
}
& section:has(a:nth-child(n + 2)) {
flex-direction: column;
}
}
}
}

View file

@ -14,9 +14,10 @@
background-repeat: no-repeat;
background-position: center;
background-size: contain;
line-height: 0.5;
& footer {
position: sticky;
bottom: 0;
bottom: 1rem;
}
& header {
top: 0;

View file

@ -1,7 +1,7 @@
@media (prefers-reduced-motion: no-preference) {
/* Scrolling pride flag text */
#bio span[id],
footer span {
footer #message {
font-family: "Nosey Rodent", sans-serif;
font-weight: bold;
color: transparent;
@ -13,6 +13,9 @@
animation: slide 5s linear infinite;
transition: color var(--trans);
}
body {
animation: mainbg 10s infinite linear
}
}
@media (prefers-reduced-motion: reduce) {
/* Buttons */
@ -59,9 +62,6 @@
position: relative;
}
}
footer span {
width: 100%;
}
#aromantic::before {
background-image: url("/assets/img/flag/aromantic.svg");
}

View file

@ -53,7 +53,7 @@
}
body {
background-color: var(--secondary-100);
& a,
& a:not([class]),
button {
color: var(--secondary-light-400);
border-color: var(--secondary-600);

View file

@ -53,7 +53,7 @@
}
body {
background-color: var(--primary-100);
& a,
& a:not([class]),
button {
color: var(--primary-dark-400);
border-color: var(--primary-600);

View file

@ -39,7 +39,7 @@
--secondary-700: color-mix(in lch, var(--secondary), var(--dark) 30%);
--secondary-800: color-mix(in lch, var(--secondary), var(--dark) 20%);
--secondary-900: color-mix(in lch, var(--secondary), var(--dark) 10%);
--avatar: 3rem; /* Blog avatar */
--avatar: 64px; /* Blog avatar */
--flag: 45deg; /* Pride flag */
--image: 24rem; /* Postscript images */
--main: 108rem; /* Main width */
@ -111,6 +111,16 @@
background-position: 200% 100%;
}
}
@keyframes mainbg {
0% {
background-position: 0rem 0rem;
}
100% {
background-position: 256px 256px;
}
}
@keyframes jump {
0% {
transform: translateY(0);