initial commit

This commit is contained in:
laura 2025-10-27 04:10:26 -03:00
commit 30f2b4714d
Signed by: w
GPG key ID: BCD2117C99E69817
43 changed files with 3654 additions and 0 deletions

37
islands/Name.tsx Normal file
View file

@ -0,0 +1,37 @@
/**
* Copyright (c) 2025 xwra
* SPDX-License-Identifier: AGPL-3.0-or-later
*/
import { useEffect, useState } from "preact/hooks";
export default function Name() {
const names = ["muxiepuff", "lívia", "aury"];
const ipas = ["/ˈmuˌksipʌf/", "/li.vjɐ/", "/ˈaʊ̯ˌɾi/"]
;
const [currentIndex, setCurrentIndex] = useState(0);
const [isAnimating, setIsAnimating] = useState(false);
useEffect(() => {
const interval = setInterval(() => {
setIsAnimating(true);
setTimeout(() => {
setCurrentIndex((prev) => (prev + 1) % names.length);
setIsAnimating(false);
}, 200);
}, 2000);
return () => clearInterval(interval);
}, []);
return (
<span class="name-scroller">
<span class={`name-wrapper ${isAnimating ? "animating" : ""}`}>
<span class="name-text">
{names[currentIndex]}
<span class="name-underline"></span>
</span>{" "}
<span class="alt alt-font">({ipas[currentIndex]}, she/her)</span>
</span>
</span>
);
}