Clean up main page links

This commit is contained in:
Bad Manners 2024-09-16 08:54:49 -03:00
parent f23b3774d4
commit aa14b2856a
No known key found for this signature in database
GPG key ID: 8C88292CCB075609
11 changed files with 193 additions and 66 deletions

View file

@ -51,11 +51,11 @@ const sshKey = await readFile("./public/ssh.pub", { encoding: "utf-8" });
title="Gallery feed"
/>
</Fragment>
<article class="h-card" aria-label="Homepage of Bad Manners">
<article id="homepage" class="h-card" aria-label="Homepage of Bad Manners">
<h1 id="title-home" class="pb-4 text-3xl tracking-tight sm:text-5xl">
Hi, I'm <b class="p-name font-medium">Bad Manners</b>!
</h1>
<section>
<section id="homepage-section">
<img
loading="eager"
src="/logo.webp"
@ -65,15 +65,21 @@ const sshKey = await readFile("./public/ssh.pub", { encoding: "utf-8" });
<p class="p-note mt-6 sm:px-5 md:px-6">
I'm a safe vore enthusiast, a furry, a programmer, and occasional writer.
</p>
<ul id="links" class="grid grid-cols-3 gap-x-4 px-4 pt-8 sm:grid-cols-4 sm:px-20 md:px-32" aria-label="Links">
<ul
id="links"
class="grid grid-cols-3 gap-x-4 px-4 pt-8 sm:grid-cols-4 sm:px-20 lg:grid-cols-5"
aria-label="Links"
>
{
Astro.site ? (
<li>
<a
id="permalink"
class="u-url text-link group block w-full py-2 transition-colors motion-reduce:transition-none"
class="u-url contact-link group"
href={Astro.site}
aria-label="Permalink"
title="Permalink"
data-tooltip
data-clipboard={Astro.site}
data-noun="URL"
>
@ -86,10 +92,12 @@ const sshKey = await readFile("./public/ssh.pub", { encoding: "utf-8" });
<li>
<a
id="gallery"
class="u-url text-link group block w-full py-2 transition-colors motion-reduce:transition-none"
class="u-url contact-link group"
href="https://gallery.badmanners.xyz"
rel="me"
aria-label="Main gallery"
title="Main gallery"
data-tooltip
data-age-restricted
>
<IconBriefcase height="1.75rem" width="1.75rem" class="contact-icon" />
@ -99,10 +107,12 @@ const sshKey = await readFile("./public/ssh.pub", { encoding: "utf-8" });
<li>
<a
id="pronouns"
class="u-url text-link group block w-full py-2 transition-colors motion-reduce:transition-none"
class="u-url contact-link group"
href="https://pronouns.cc/@BadManners"
rel="me"
aria-label="Pronouns (he/they)"
title="Pronouns (he/they)"
data-tooltip
>
<IconCommentDots height="1.75rem" width="1.75rem" class="contact-icon" />
<p class="p-nickname sr-only select-none">@BadManners on pronouns.cc</p>
@ -113,10 +123,12 @@ const sshKey = await readFile("./public/ssh.pub", { encoding: "utf-8" });
<li>
<a
id="e-mail"
class="u-email text-link group block w-full py-2 transition-colors motion-reduce:transition-none"
class="u-email contact-link group"
href="mailto:me@badmanners.xyz"
rel="me"
aria-label="E-mail"
title="E-mail"
data-tooltip
data-clipboard="me@badmanners.xyz"
data-noun="E-mail address"
>
@ -127,10 +139,12 @@ const sshKey = await readFile("./public/ssh.pub", { encoding: "utf-8" });
<li>
<a
id="bluesky"
class="u-url text-link group block w-full py-2 transition-colors motion-reduce:transition-none"
class="u-url contact-link group"
href="https://bsky.app/profile/badmanners.xyz"
rel="me"
aria-label="Bluesky"
title="Bluesky"
data-tooltip
>
<IconBluesky height="1.75rem" width="1.75rem" class="contact-icon" />
<p class="p-nickname sr-only select-none">@badmanners.xyz on Bluesky</p>
@ -139,10 +153,12 @@ const sshKey = await readFile("./public/ssh.pub", { encoding: "utf-8" });
<li>
<a
id="codeberg"
class="u-url text-link group block w-full py-2 transition-colors motion-reduce:transition-none"
class="u-url contact-link group"
href="https://codeberg.org/BadManners"
rel="me"
aria-label="Codeberg"
title="Codeberg"
data-tooltip
>
<IconCodeberg height="1.75rem" width="1.75rem" class="contact-icon" />
<p class="p-nickname sr-only select-none">BadManners on Codeberg</p>
@ -153,6 +169,8 @@ const sshKey = await readFile("./public/ssh.pub", { encoding: "utf-8" });
id="discord"
class="text-link group block w-full py-2 transition-colors motion-reduce:transition-none"
aria-label="Discord"
title="Discord"
data-tooltip
data-clipboard="badmanners"
data-noun="Discord username"
aria-disabled="true"
@ -164,10 +182,12 @@ const sshKey = await readFile("./public/ssh.pub", { encoding: "utf-8" });
<li>
<a
id="eka-s-portal"
class="u-url text-link group block w-full py-2 transition-colors motion-reduce:transition-none"
class="u-url contact-link group"
href="https://aryion.com/g4/user/BadManners"
rel="me"
aria-label="Eka's Portal"
title="Eka's Portal"
data-tooltip
>
<IconEkasPortal height="1.75rem" width="1.75rem" class="contact-icon" />
<p class="p-nickname sr-only select-none">BadManners on Eka's Portal</p>
@ -176,10 +196,12 @@ const sshKey = await readFile("./public/ssh.pub", { encoding: "utf-8" });
<li>
<a
id="fur-affinity"
class="u-url text-link group block w-full py-2 transition-colors motion-reduce:transition-none"
class="u-url contact-link group"
href="https://www.furaffinity.net/user/BadManners"
rel="me"
aria-label="Fur Affinity"
title="Fur Affinity"
data-tooltip
>
<IconFurAffinity height="1.75rem" width="1.75rem" class="contact-icon" />
<p class="p-nickname sr-only select-none">BadManners on Fur Affinity</p>
@ -188,10 +210,12 @@ const sshKey = await readFile("./public/ssh.pub", { encoding: "utf-8" });
<li>
<a
id="gitgud"
class="u-url text-link group block w-full py-2 transition-colors motion-reduce:transition-none"
class="u-url contact-link group"
href="https://gitgud.io/BadMannersXYZ"
rel="me"
aria-label="GitGud"
title="GitGud"
data-tooltip
>
<IconGitGud height="1.75rem" width="1.75rem" class="contact-icon" />
<p class="p-nickname sr-only select-none">BadMannersXYZ on GitGud</p>
@ -200,10 +224,12 @@ const sshKey = await readFile("./public/ssh.pub", { encoding: "utf-8" });
<li>
<a
id="github"
class="u-url text-link group block w-full py-2 transition-colors motion-reduce:transition-none"
class="u-url contact-link group"
href="https://github.com/BadMannersXYZ"
rel="me"
aria-label="GitHub"
title="GitHub"
data-tooltip
>
<IconGithub height="1.75rem" width="1.75rem" class="contact-icon" />
<p class="p-nickname sr-only select-none">BadMannersXYZ on GitHub</p>
@ -212,10 +238,12 @@ const sshKey = await readFile("./public/ssh.pub", { encoding: "utf-8" });
<li>
<a
id="gitlab"
class="u-url text-link group block w-full py-2 transition-colors motion-reduce:transition-none"
class="u-url contact-link group"
href="https://gitlab.com/Bad_Manners"
rel="me"
aria-label="GitLab"
title="GitLab"
data-tooltip
>
<IconGitlab height="1.75rem" width="1.75rem" class="contact-icon" />
<p class="p-nickname sr-only select-none">Bad_Manners on GitLab</p>
@ -224,10 +252,12 @@ const sshKey = await readFile("./public/ssh.pub", { encoding: "utf-8" });
<li>
<a
id="gmail"
class="u-email text-link group block w-full py-2 transition-colors motion-reduce:transition-none"
class="u-email contact-link group"
href="mailto:badmanners.vore@gmail.com"
rel="me"
aria-label="Gmail"
title="Gmail"
data-tooltip
data-clipboard="badmanners.vore@gmail.com"
data-noun="Gmail address"
>
@ -238,9 +268,11 @@ const sshKey = await readFile("./public/ssh.pub", { encoding: "utf-8" });
<li>
<a
id="gpg"
class="u-key text-link group block w-full py-2 transition-colors motion-reduce:transition-none"
class="u-key contact-link group"
href="/gpg.pub"
aria-label="GPG public key"
title="GPG public key"
data-tooltip
data-clipboard={gpgKey}
data-noun="GPG key"
>
@ -251,10 +283,12 @@ const sshKey = await readFile("./public/ssh.pub", { encoding: "utf-8" });
<li>
<a
id="inkbunny"
class="u-url text-link group block w-full py-2 transition-colors motion-reduce:transition-none"
class="u-url contact-link group"
href="https://inkbunny.net/BadManners"
rel="me"
aria-label="Inkbunny"
title="Inkbunny"
data-tooltip
>
<IconInkbunny height="1.75rem" width="1.75rem" class="contact-icon" />
<p class="p-nickname sr-only select-none">BadManners on Inkbunny</p>
@ -263,10 +297,12 @@ const sshKey = await readFile("./public/ssh.pub", { encoding: "utf-8" });
<li>
<a
id="itaku"
class="u-url text-link group block w-full py-2 transition-colors motion-reduce:transition-none"
class="u-url contact-link group"
href="https://itaku.ee/profile/badmanners"
rel="me"
aria-label="Itaku"
title="Itaku"
data-tooltip
>
<IconItaku height="1.75rem" width="1.75rem" class="contact-icon" />
<p class="p-nickname sr-only select-none">badmanners on Itaku</p>
@ -275,10 +311,12 @@ const sshKey = await readFile("./public/ssh.pub", { encoding: "utf-8" });
<li>
<a
id="itch"
class="u-url text-link group block w-full py-2 transition-colors motion-reduce:transition-none"
class="u-url contact-link group"
href="https://bad-manners.itch.io"
rel="me"
aria-label="Itch.io"
title="Itch.io"
data-tooltip
>
<IconItchIO height="1.75rem" width="1.75rem" class="contact-icon" />
<p class="p-nickname sr-only select-none">Bad Manners on Itch.io</p>
@ -287,10 +325,12 @@ const sshKey = await readFile("./public/ssh.pub", { encoding: "utf-8" });
<li>
<a
id="keybase"
class="u-url text-link group block w-full py-2 transition-colors motion-reduce:transition-none"
class="u-url contact-link group"
href="https://keybase.io/badmanners"
rel="me"
aria-label="Keybase"
title="Keybase"
data-tooltip
>
<IconKeybase height="1.75rem" width="1.75rem" class="contact-icon" />
<p class="p-nickname sr-only select-none">badmanners on Keybase</p>
@ -299,24 +339,26 @@ const sshKey = await readFile("./public/ssh.pub", { encoding: "utf-8" });
<li>
<a
id="keyoxide"
class="u-url text-link group block w-full py-2 transition-colors motion-reduce:transition-none"
class="u-url contact-link group"
href="https://keyoxide.org/aspe%3Akeyoxide.org%3AUWYBVFCBFXTVUF2U6FS6AYJHLU"
rel="me"
aria-label="Keyoxide"
title="Keyoxide"
data-tooltip
>
<IconKeyoxide height="1.75rem" width="1.75rem" class="contact-icon" />
<p class="sr-only select-none">
<span class="p-uid">aspe:keyoxide.org:UWYBVFCBFXTVUF2U6FS6AYJHLU</span> on Keyoxide
</p>
<p class="p-uid sr-only select-none">aspe:keyoxide.org:UWYBVFCBFXTVUF2U6FS6AYJHLU</p>
</a>
</li>
<li>
<a
id="ko-fi"
class="u-url text-link group block w-full py-2 transition-colors motion-reduce:transition-none"
class="u-url contact-link group"
href="https://ko-fi.com/badmanners"
rel="me"
aria-label="Ko-fi"
title="Ko-fi"
data-tooltip
>
<IconKofi height="1.75rem" width="1.75rem" class="contact-icon" />
<p class="p-nickname sr-only select-none">badmanners on Ko-fi</p>
@ -325,10 +367,12 @@ const sshKey = await readFile("./public/ssh.pub", { encoding: "utf-8" });
<li>
<a
id="mastodon"
class="u-url text-link group block w-full py-2 transition-colors motion-reduce:transition-none"
class="u-url contact-link group"
href="https://meow.social/@BadManners"
rel="me"
aria-label="Mastodon"
title="Mastodon"
data-tooltip
>
<IconMastodon height="1.75rem" width="1.75rem" class="contact-icon" />
<p class="p-nickname sr-only select-none">@BadManners@meow.social on Mastodon</p>
@ -337,10 +381,12 @@ const sshKey = await readFile("./public/ssh.pub", { encoding: "utf-8" });
<li>
<a
id="neocities"
class="u-url text-link group block w-full py-2 transition-colors motion-reduce:transition-none"
class="u-url contact-link group"
href="https://badmanners.neocities.org"
rel="me"
aria-label="Neocities"
title="Neocities"
data-tooltip
>
<IconNeocities height="1.75rem" width="1.75rem" class="contact-icon" />
<p class="p-nickname sr-only select-none">badmanners.neocities.org on Neocities</p>
@ -349,10 +395,12 @@ const sshKey = await readFile("./public/ssh.pub", { encoding: "utf-8" });
<li>
<a
id="picarto"
class="u-url text-link group block w-full py-2 transition-colors motion-reduce:transition-none"
class="u-url contact-link group"
href="https://www.picarto.tv/BadManners"
rel="me"
aria-label="Picarto"
title="Picarto"
data-tooltip
>
<IconPicarto height="1.75rem" width="1.75rem" class="contact-icon" />
<p class="p-nickname sr-only select-none">BadManners on Picarto</p>
@ -361,10 +409,12 @@ const sshKey = await readFile("./public/ssh.pub", { encoding: "utf-8" });
<li>
<a
id="signal"
class="u-url text-link group block w-full py-2 transition-colors motion-reduce:transition-none"
class="u-url contact-link group"
href="https://signal.me/#eu/ytt_rk0fFmAB2JAW-x2PbUiJyc_H3kYmfL_Pq4QNh5QIDsiFtjdFHaqFRs1D36tB"
rel="me"
aria-label="Signal"
title="Signal"
data-tooltip
>
<IconSignal height="1.75rem" width="1.75rem" class="contact-icon" />
<p class="p-nickname sr-only select-none">badmanners.10 on Signal</p>
@ -373,10 +423,12 @@ const sshKey = await readFile("./public/ssh.pub", { encoding: "utf-8" });
<li>
<a
id="sofurry"
class="u-url text-link group block w-full py-2 transition-colors motion-reduce:transition-none"
class="u-url contact-link group"
href="https://bad-manners.sofurry.com"
rel="me"
aria-label="SoFurry"
title="SoFurry"
data-tooltip
>
<IconSoFurry height="1.75rem" width="1.75rem" class="contact-icon" />
<p class="p-nickname sr-only select-none">Bad Manners on SoFurry</p>
@ -385,9 +437,11 @@ const sshKey = await readFile("./public/ssh.pub", { encoding: "utf-8" });
<li>
<a
id="ssh"
class="u-key text-link group block w-full py-2 transition-colors motion-reduce:transition-none"
class="u-key contact-link group"
href="/ssh.pub"
aria-label="SSH public key"
title="SSH public key"
data-tooltip
data-clipboard={sshKey}
data-noun="SSH key"
>
@ -398,10 +452,12 @@ const sshKey = await readFile("./public/ssh.pub", { encoding: "utf-8" });
<li>
<a
id="steam"
class="u-url text-link group block w-full py-2 transition-colors motion-reduce:transition-none"
class="u-url contact-link group"
href="https://steamcommunity.com/id/badmanners_"
rel="me"
aria-label="Steam"
title="Steam"
data-tooltip
>
<IconSteam height="1.75rem" width="1.75rem" class="contact-icon" />
<p class="p-nickname sr-only select-none">badmanners_ on Steam</p>
@ -410,10 +466,12 @@ const sshKey = await readFile("./public/ssh.pub", { encoding: "utf-8" });
<li>
<a
id="subscribestar"
class="u-url text-link group block w-full py-2 transition-colors motion-reduce:transition-none"
class="u-url contact-link group"
href="https://subscribestar.adult/bad-manners"
rel="me"
aria-label="SubscribeStar"
title="SubscribeStar"
data-tooltip
>
<IconSubscribeStar height="1.75rem" width="1.75rem" class="contact-icon" />
<p class="p-nickname sr-only select-none">Bad Manners on SubscribeStar</p>
@ -422,10 +480,12 @@ const sshKey = await readFile("./public/ssh.pub", { encoding: "utf-8" });
<li>
<a
id="telegram"
class="u-url text-link group block w-full py-2 transition-colors motion-reduce:transition-none"
class="u-url contact-link group"
href="https://t.me/bad_manners"
rel="me"
aria-label="Telegram"
title="Telegram"
data-tooltip
>
<IconTelegram height="1.75rem" width="1.75rem" class="contact-icon" />
<p class="p-nickname sr-only select-none">@bad_manners on Telegram</p>
@ -434,10 +494,12 @@ const sshKey = await readFile("./public/ssh.pub", { encoding: "utf-8" });
<li>
<a
id="twitch"
class="u-url text-link group block w-full py-2 transition-colors motion-reduce:transition-none"
class="u-url contact-link group"
href="https://www.twitch.tv/bad__manners"
rel="me"
aria-label="Twitch"
title="Twitch"
data-tooltip
>
<IconTwitch height="1.75rem" width="1.75rem" class="contact-icon" />
<p class="p-nickname sr-only select-none">bad__manners on Twitch</p>
@ -446,10 +508,12 @@ const sshKey = await readFile("./public/ssh.pub", { encoding: "utf-8" });
<li>
<a
id="weasyl"
class="u-url text-link group block w-full py-2 transition-colors motion-reduce:transition-none"
class="u-url contact-link group"
href="https://www.weasyl.com/~badmanners"
rel="me"
aria-label="Weasyl"
title="Weasyl"
data-tooltip
>
<IconWeasyl height="1.75rem" width="1.75rem" class="contact-icon" />
<p class="p-nickname sr-only select-none">BadManners on Weasyl</p>
@ -458,10 +522,12 @@ const sshKey = await readFile("./public/ssh.pub", { encoding: "utf-8" });
<li>
<a
id="youtube"
class="u-url text-link group block w-full py-2 transition-colors motion-reduce:transition-none"
class="u-url contact-link group"
href="https://www.youtube.com/@BadMannersXYZ"
rel="me"
aria-label="YouTube"
title="YouTube"
data-tooltip
>
<IconYouTube height="1.75rem" width="1.75rem" class="contact-icon" />
<p class="p-nickname sr-only select-none">@BadMannersXYZ on YouTube</p>
@ -472,6 +538,13 @@ const sshKey = await readFile("./public/ssh.pub", { encoding: "utf-8" });
</article>
</BaseLayout>
<style>
ul#links > li {
min-width: 6rem;
flex: 1 1 0%;
}
</style>
<script>
import tippy, { hideAll } from "tippy.js";
import "tippy.js/dist/tippy.css";
@ -499,10 +572,13 @@ const sshKey = await readFile("./public/ssh.pub", { encoding: "utf-8" });
});
// Instantiate hover tooltips
tippy("ul#links li > :is(a, button)[aria-label]", {
content: (el) => el.getAttribute("aria-label")!,
const tooltipItems = document.querySelectorAll<HTMLElement>("[title][data-tooltip]");
tooltipItems.forEach((el) => el.setAttribute("data-tooltip", el.title));
tippy(tooltipItems, {
content: (el) => (el as HTMLElement).dataset.tooltip!,
theme: "bm",
});
tooltipItems.forEach((el) => el.removeAttribute("title"));
// Add functionality to custom clipboard items
let tooltipTimeoutTag: TimeoutTag = null;