This commit is contained in:
sundae 2026-03-06 11:03:17 +02:00
commit 4972cbe693
Signed by: sundae
SSH key fingerprint: SHA256:MsJkKuo4PUdjQDpLeaURy81drKkW14exlTHp+8QFu6M
40 changed files with 499 additions and 286 deletions

Binary file not shown.

View file

@ -14,7 +14,7 @@
}
}
}
& figure {
& a figure {
border-width: 4px;
&:is(:not(a:hover *, a:focus *)) {
border-color: var(--light);
@ -36,7 +36,7 @@
display: flex;
height: 32px;
width: calc(100% + var(--pad-xl) * 2);
margin: -4rem 0 var(--pad-l) calc(var(--pad-xl) * -1);
margin: calc(var(--pad-xxl) * -1) 0 var(--pad-l) calc(var(--pad-xl) * -1);
background-image: var(--border), var(--lined), var(--noise);
background-size: 32px, 32px;
background-blend-mode: darken;

View file

@ -8,8 +8,7 @@ body > nav {
drop-shadow(0px -2px var(--citrus-dark));
color: var(--citrus-light);
}
& a,
button {
& li *:is(a ,button) {
background: var(--button-bg);
box-shadow: var(--button-shine);
border: var(--button-border);

View file

@ -58,7 +58,7 @@ article > .addendum {
article > .postscript {
margin: 0 0 auto auto;
padding: 2rem 0 4rem 0;
padding: var(--pad-xl) 0 var(--pad-xxl) 0;
&::after {
content: "";
position: absolute;

View file

@ -28,6 +28,7 @@ body {
font-size: 100%;
margin: 0;
padding: 0;
& a,
button {
cursor: pointer;
@ -38,19 +39,23 @@ body {
}
}
}
svg {
fill: currentColor;
stroke: currentColor;
stroke-width: 0;
}
header {
padding-top: var(--pad-xl);
padding-left: calc(var(--view) + var(--pad-xl));
& svg {
width: 2rem;
height: 2rem;
margin-right: var(--pad-m);
}
& h1 {
display: inline-flex;
}
@ -68,6 +73,7 @@ footer {
position: sticky;
inset-block: 100%;
text-align: center;
& span {
background-image: var(--transgender);
padding: 0 var(--pad-sm);
@ -92,7 +98,9 @@ details {
.header-anchor {
display: inline-block;
transition: color var(--trans), background-color var(--trans);
transition:
color var(--trans),
background-color var(--trans);
height: max-content;
padding: 0 var(--pad-m);
margin: 0 0 0 calc(var(--pad-xl) * -1);
@ -149,7 +157,9 @@ article {
word-break: break-word;
border-style: solid;
border-width: 2px;
transition: background-color var(--trans), border-color var(--trans);
transition:
background-color var(--trans),
border-color var(--trans);
}
& pre,
@ -167,14 +177,17 @@ article {
display: flex;
flex-direction: column;
}
& ul:not([role="list"]):is(#art *) {
padding: 0;
margin: 0 0 var(--pad-sm) var(--pad-xl);
}
& li:not([role] *, #changelog *) {
&::marker {
content: none;
}
&::before {
content: "";
width: 20px;
@ -186,6 +199,7 @@ article {
margin: 0 0 0 calc(var(--pad-xl) * -1);
}
}
& section {
& a:has(figure) {
height: max-content;
@ -216,9 +230,11 @@ article {
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);
}
@ -226,13 +242,77 @@ img[src*="/assets/img/flag/"] {
.link {
display: inline-flex;
& a {
margin-right: 4px;
}
& img {
position: relative;
vertical-align: sub;
margin: 0 4px;
margin: 0 var(--pad-sm);
}
}
article a:not(.link *, a:has(img)) {
display: inline-flex;
padding: 0 var(--pad-sm);
}
dialog button[commandfor] {
width: max-content;
padding: 0 var(--pad-sm);
margin: 0 auto;
}
dialog#signal {
cursor: default;
background: black;
border: none;
margin: 0 auto;
text-align: center;
max-width: 100%;
max-height: 100%;
width: 100%;
height: 100%;
position: fixed;
padding: var(--pad-xl);
& article {
display: flex;
flex-direction: column;
justify-content: center;
border: 0;
padding: 0;
margin: 0 auto;
max-width: fit-content;
background: none;
word-wrap: break-word;
color: white;
& h1 {
font-size: 4rem;
}
& p {
font-size: 2rem;
}
& a {
margin: auto 0 0 auto;
}
& h1,
p,
a {
font-family: "Times New Roman", Times, serif;
}
& img {
border: 4px solid white;
padding: var(--pad-sm);
max-width: 100%;
max-height: 250px;
}
}
}
@ -240,10 +320,12 @@ img[src*="/assets/img/flag/"] {
body::after {
content: "";
}
footer {
width: 100%;
margin: 0;
}
header {
padding-left: 0;
padding-top: var(--pad-m);

View file

@ -37,6 +37,7 @@
font-size: 1.4rem;
display: flex;
align-items: baseline;
text-decoration-style: none;
}
& .count {
margin: auto 0 0 auto;
@ -48,7 +49,10 @@
display: flex;
flex-direction: column;
width: fit-content;
h3 {
& p {
max-width: var(--post);
}
& h3 {
display: flex;
gap: var(--pad-sm);
}
@ -77,6 +81,9 @@
}
}
@media screen and (max-width: 920px) {
#art p {
max-width: auto;
}
#art a:has(img) {
width: auto;
}

View file

@ -69,8 +69,7 @@ body > nav {
font-size: 1.4rem;
}
& a,
button {
& li *:is(a ,button) {
display: flex;
font-size: 1.125rem;
width: 100%;
@ -86,8 +85,7 @@ body {
border-right-width: 1px;
border-right-style: solid;
& a,
button {
& li *:is(a ,button) {
align-items: center;
border-style: solid;
border-width: 2px;
@ -118,7 +116,7 @@ body {
overflow: initial;
flex-direction: row;
justify-content: start;
& a, button {
& li *:is(a ,button) {
line-height: initial;
}
& details {

View file

@ -69,7 +69,7 @@
/* default.css */
body {
background-color: var(--secondary-100);
& :is(a, button):not(span *, .postscript *),
& :is(a, button):not(span *, .postscript *, dialog *),
span:has(a) {
color: var(--secondary-light-400);
border-color: var(--secondary-600);

View file

@ -69,7 +69,7 @@
/* default.css */
body {
background-color: var(--primary-100);
& :is(a, button):not(span *, .postscript *),
& :is(a, button):not(span *, .postscript *, dialog *),
span:has(a) {
color: var(--primary-dark-400);
border-color: var(--primary-600);

View file

@ -43,6 +43,7 @@
--image: 24rem;
--post: 75ch;
--round: 16px;
--pad-xxl: 4rem;
--pad-xl: 2rem;
--pad-lm: 1.4rem;
--pad-l: 1rem;
@ -128,18 +129,12 @@
src: url("/assets/fonts/Urbanist-Bold.ttf") format("truetype");
}
@font-face {
font-family: Pangolin;
src: url("/assets/fonts/Pangolin-Regular.ttf") format("truetype");
}
@font-face {
font-family: Terminess;
src: url("/assets/fonts/TerminessNerdFont-Regular.ttf") format("truetype");
}
@font-face {
font-family: Nosey Rodent;
src: url("/assets/fonts/noseyrodent.ttf") format("truetype");
src: url("/assets/fonts/noseyrodent-Regular.ttf") format("truetype");
}
@font-face {
font-family: Impact;
src: url("/assets/fonts/Impact-Regular.ttf") format("truetype");
}

Binary file not shown.

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 938 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 230 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

View file

@ -0,0 +1,5 @@
<svg xmlns="http://www.w3.org/2000/svg"
aria-label="Signal" role="img"
viewBox="0 0 512 512"><path
d="m0 0H512V512H0"
fill="#3b45fd"/><path d="M256 100A156 156 0 00124 339l-15 64 64-15a156 156 0 1083-288z" fill="#fff"/><path fill="none" stroke-dasharray="54.5,17" stroke="#fff" stroke-width="18" d="M403 147A183 183 0 0097 346l-18 76c0 3 0 6 3 8a9 9 0 008 3l76-18A183 183 0 00402 146M79 422c0 3 0 6 3 8a9 9 0 008 3"/></svg>

After

Width:  |  Height:  |  Size: 423 B

View file

@ -1,2 +1,2 @@
/* this is for neocities. if you self-host, there's no need to use this hack */
export const audioPath = "https://bunsin.space/forgejo/sundae/website/raw/branch/main/_src/assets/audio/";
export const audioPath = "/assets/audio/";

32
_src/assets/js/what.js Normal file
View file

@ -0,0 +1,32 @@
import { audioPath } from "./path.js";
let what = document.querySelector('[commandfor="signal"]');
let guardian = document.createElement("audio");
let dialog = document.getElementById("signal");
let funny = document.getElementById("funny");
let invis;
guardian.src = `${audioPath}sanctuary_guardian.ogg`;
guardian.preload = "";
what.appendChild(guardian);
function codzombies(mutations) {
if (dialog.open) {
guardian.play();
if (funny) {
funny.style.opacity = 0;
invis = setTimeout(() => {
funny.style.opacity = 1;
}, 2200);
}
} else {
guardian.pause();
guardian.currentTime = 0;
clearTimeout(invis);
}
}
const observer = new MutationObserver(codzombies);
observer.observe(dialog, {
attributes: true,
});