Better progressive enhancement and ARIA
This commit is contained in:
parent
e84900a652
commit
ed22306c34
13 changed files with 210 additions and 86 deletions
|
|
@ -25,12 +25,15 @@ import IconTelegram from "../components/icons/brands/IconTelegram.astro";
|
|||
<li class="mb-2 w-max sm:mb-1">
|
||||
<button
|
||||
id="discord"
|
||||
class="text-link mx-1 transition-colors motion-reduce:transition-none"
|
||||
class="text-link group mx-1 select-none transition-colors aria-disabled:cursor-default aria-disabled:select-text aria-disabled:text-stone-700 motion-reduce:transition-none dark:aria-disabled:text-zinc-50"
|
||||
aria-label="Copy my Discord username to clipboard"
|
||||
aria-disabled="true"
|
||||
>
|
||||
<IconDiscord width="1.75rem" height="1.75rem" class="mr-1 inline" />
|
||||
<span class="p-nickname underline">badmanners</span>
|
||||
<IconClone width="0.75rem" height="0.75rem" class="inline" />
|
||||
<span class="p-nickname underline group-aria-disabled:cursor-text group-aria-disabled:no-underline"
|
||||
>badmanners</span
|
||||
>
|
||||
<IconClone width="0.75rem" height="0.75rem" class="inline group-aria-disabled:hidden" />
|
||||
</button>
|
||||
</li>
|
||||
<li class="h-card mb-2 w-max sm:mb-1">
|
||||
|
|
@ -88,13 +91,17 @@ import IconTelegram from "../components/icons/brands/IconTelegram.astro";
|
|||
<li class="mb-2 w-max sm:mb-1">
|
||||
<button
|
||||
id="email"
|
||||
class="text-link mx-1 transition-colors motion-reduce:transition-none"
|
||||
class="text-link group mx-1 transition-colors aria-disabled:cursor-not-allowed aria-disabled:text-stone-700 motion-reduce:transition-none dark:aria-disabled:text-zinc-50"
|
||||
aria-label="Copy my e-mail address to clipboard"
|
||||
aria-disabled="true"
|
||||
>
|
||||
<IconEnvelope width="1.75rem" height="1.75rem" class="mr-1 inline" />
|
||||
<span class="underline" data-user="em" data-website="zyx.srennamdab" aria-label="Obfuscated e-mail address"
|
||||
></span>
|
||||
<IconClone width="0.75rem" height="0.75rem" class="inline" />
|
||||
<span
|
||||
class="underline group-aria-disabled:no-underline"
|
||||
data-user="em"
|
||||
data-website="zyx.srennamdab"
|
||||
aria-label="Obfuscated e-mail address"></span>
|
||||
<IconClone width="0.75rem" height="0.75rem" class="inline group-aria-disabled:hidden" />
|
||||
</button>
|
||||
</li>
|
||||
</ul>
|
||||
|
|
@ -111,7 +118,7 @@ import IconTelegram from "../components/icons/brands/IconTelegram.astro";
|
|||
</style>
|
||||
|
||||
<script>
|
||||
import tippy from "tippy.js";
|
||||
import tippy, { hideAll } from "tippy.js";
|
||||
import "tippy.js/dist/tippy.css";
|
||||
|
||||
(function () {
|
||||
|
|
@ -132,40 +139,52 @@ import IconTelegram from "../components/icons/brands/IconTelegram.astro";
|
|||
discordButton.addEventListener("click", (ev) => {
|
||||
ev.preventDefault();
|
||||
tooltipTimeout && clearTimeout(tooltipTimeout);
|
||||
discordTooltip.hide();
|
||||
emailTooltip.hide();
|
||||
hideAll();
|
||||
const text = discordButton.querySelector("span")!.innerText;
|
||||
navigator.clipboard
|
||||
.writeText(text)
|
||||
.then(() => {
|
||||
discordTooltip.setContent("Username copied to clipboard!");
|
||||
discordTooltip.show();
|
||||
tooltipTimeout = setTimeout(() => {
|
||||
discordTooltip.hide();
|
||||
}, 2000);
|
||||
})
|
||||
.catch((e) => {
|
||||
console.error("Unable to copy text to clipboard", e);
|
||||
console.error("Unable to copy Discord username to clipboard", e);
|
||||
discordTooltip.setContent("Unable to copy username!");
|
||||
discordTooltip.show();
|
||||
tooltipTimeout = setTimeout(() => {
|
||||
discordTooltip.hide();
|
||||
}, 2000);
|
||||
});
|
||||
});
|
||||
discordButton.setAttribute("aria-disabled", "false");
|
||||
|
||||
emailButton.addEventListener("click", (ev) => {
|
||||
ev.preventDefault();
|
||||
tooltipTimeout && clearTimeout(tooltipTimeout);
|
||||
discordTooltip.hide();
|
||||
emailTooltip.hide();
|
||||
hideAll();
|
||||
const emailData = emailButton.querySelector("span")!;
|
||||
const text = `${emailData.dataset.user!.split("").reverse().join("")}@${emailData.dataset.website!.split("").reverse().join("")}`;
|
||||
const text = `${emailData.dataset.website!}@${emailData.dataset.user!}`.split("").reverse().join("");
|
||||
navigator.clipboard
|
||||
.writeText(text)
|
||||
.then(() => {
|
||||
emailTooltip.setContent("E-mail address copied to clipboard!");
|
||||
emailTooltip.show();
|
||||
tooltipTimeout = setTimeout(() => {
|
||||
emailTooltip.hide();
|
||||
}, 2000);
|
||||
})
|
||||
.catch((e) => {
|
||||
console.error("Unable to copy text to clipboard", e);
|
||||
console.error("Unable to copy e-mail address to clipboard", e);
|
||||
emailTooltip.setContent("Unable to copy e-mail address!");
|
||||
emailTooltip.show();
|
||||
tooltipTimeout = setTimeout(() => {
|
||||
emailTooltip.hide();
|
||||
}, 2000);
|
||||
});
|
||||
});
|
||||
emailButton.setAttribute("aria-disabled", "false");
|
||||
})();
|
||||
</script>
|
||||
|
|
|
|||
|
|
@ -42,7 +42,11 @@ import IconItaku from "../components/icons/brands/IconItaku.astro";
|
|||
class="u-logo mx-auto my-4 h-screen max-h-48 rounded-full transition-transform hover:scale-110 motion-reduce:transition-none motion-reduce:hover:scale-100 sm:max-h-72"
|
||||
/>
|
||||
<p class="p-note mt-6 sm:px-5 md:px-6">I'm a safe vore enthusiast, and a furry who occasionally writes stuff.</p>
|
||||
<ul id="links" class="grid grid-cols-3 gap-x-4 gap-y-5 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 gap-y-5 px-4 pt-8 sm:grid-cols-4 sm:px-20 md:px-32"
|
||||
aria-label="Links"
|
||||
>
|
||||
<li>
|
||||
<a
|
||||
class="u-url text-link group p-2 transition-colors motion-reduce:transition-none"
|
||||
|
|
@ -51,7 +55,11 @@ import IconItaku from "../components/icons/brands/IconItaku.astro";
|
|||
rel="me"
|
||||
aria-label="Bluesky"
|
||||
>
|
||||
<IconBluesky height="1.75rem" width="1.75rem" class="inline transition-transform group-hover:scale-150 group-focus:scale-150 motion-reduce:transition-none motion-reduce:group-hover:scale-100 motion-reduce:group-focus:scale-100" />
|
||||
<IconBluesky
|
||||
height="1.75rem"
|
||||
width="1.75rem"
|
||||
class="inline transition-transform group-hover:scale-150 group-focus:scale-150 motion-reduce:transition-none motion-reduce:group-hover:scale-100 motion-reduce:group-focus:scale-100"
|
||||
/>
|
||||
<span class="p-nickname hidden">@badmanners.xyz on Bluesky</span>
|
||||
</a>
|
||||
</li>
|
||||
|
|
@ -63,7 +71,11 @@ import IconItaku from "../components/icons/brands/IconItaku.astro";
|
|||
rel="me"
|
||||
aria-label="Codeberg"
|
||||
>
|
||||
<IconCodeberg height="1.75rem" width="1.75rem" class="inline transition-transform group-hover:scale-150 group-focus:scale-150 motion-reduce:transition-none motion-reduce:group-hover:scale-100 motion-reduce:group-focus:scale-100" />
|
||||
<IconCodeberg
|
||||
height="1.75rem"
|
||||
width="1.75rem"
|
||||
class="inline transition-transform group-hover:scale-150 group-focus:scale-150 motion-reduce:transition-none motion-reduce:group-hover:scale-100 motion-reduce:group-focus:scale-100"
|
||||
/>
|
||||
<span class="p-nickname hidden">BadManners on Codeberg</span>
|
||||
</a>
|
||||
</li>
|
||||
|
|
@ -75,7 +87,11 @@ import IconItaku from "../components/icons/brands/IconItaku.astro";
|
|||
rel="me"
|
||||
aria-label="Eka's Portal"
|
||||
>
|
||||
<IconEkasPortal height="1.75rem" width="1.75rem" class="inline transition-transform group-hover:scale-150 group-focus:scale-150 motion-reduce:transition-none motion-reduce:group-hover:scale-100 motion-reduce:group-focus:scale-100" />
|
||||
<IconEkasPortal
|
||||
height="1.75rem"
|
||||
width="1.75rem"
|
||||
class="inline transition-transform group-hover:scale-150 group-focus:scale-150 motion-reduce:transition-none motion-reduce:group-hover:scale-100 motion-reduce:group-focus:scale-100"
|
||||
/>
|
||||
<span class="p-nickname hidden">BadManners on Eka's Portal</span>
|
||||
</a>
|
||||
</li>
|
||||
|
|
@ -87,7 +103,11 @@ import IconItaku from "../components/icons/brands/IconItaku.astro";
|
|||
rel="me"
|
||||
aria-label="Fur Affinity"
|
||||
>
|
||||
<IconFurAffinity height="1.75rem" width="1.75rem" class="inline transition-transform group-hover:scale-150 group-focus:scale-150 motion-reduce:transition-none motion-reduce:group-hover:scale-100 motion-reduce:group-focus:scale-100" />
|
||||
<IconFurAffinity
|
||||
height="1.75rem"
|
||||
width="1.75rem"
|
||||
class="inline transition-transform group-hover:scale-150 group-focus:scale-150 motion-reduce:transition-none motion-reduce:group-hover:scale-100 motion-reduce:group-focus:scale-100"
|
||||
/>
|
||||
<span class="p-nickname hidden">BadManners on Fur Affinity</span>
|
||||
</a>
|
||||
</li>
|
||||
|
|
@ -99,7 +119,11 @@ import IconItaku from "../components/icons/brands/IconItaku.astro";
|
|||
rel="me"
|
||||
aria-label="GitHub"
|
||||
>
|
||||
<IconGitHub height="1.75rem" width="1.75rem" class="inline transition-transform group-hover:scale-150 group-focus:scale-150 motion-reduce:transition-none motion-reduce:group-hover:scale-100 motion-reduce:group-focus:scale-100" />
|
||||
<IconGitHub
|
||||
height="1.75rem"
|
||||
width="1.75rem"
|
||||
class="inline transition-transform group-hover:scale-150 group-focus:scale-150 motion-reduce:transition-none motion-reduce:group-hover:scale-100 motion-reduce:group-focus:scale-100"
|
||||
/>
|
||||
<span class="p-nickname hidden">BadMannersXYZ on GitHub</span>
|
||||
</a>
|
||||
</li>
|
||||
|
|
@ -111,7 +135,11 @@ import IconItaku from "../components/icons/brands/IconItaku.astro";
|
|||
rel="me"
|
||||
aria-label="GitLab"
|
||||
>
|
||||
<IconGitLab height="1.75rem" width="1.75rem" class="inline transition-transform group-hover:scale-150 group-focus:scale-150 motion-reduce:transition-none motion-reduce:group-hover:scale-100 motion-reduce:group-focus:scale-100" />
|
||||
<IconGitLab
|
||||
height="1.75rem"
|
||||
width="1.75rem"
|
||||
class="inline transition-transform group-hover:scale-150 group-focus:scale-150 motion-reduce:transition-none motion-reduce:group-hover:scale-100 motion-reduce:group-focus:scale-100"
|
||||
/>
|
||||
<span class="p-nickname hidden">Bad_Manners on GitLab</span>
|
||||
</a>
|
||||
</li>
|
||||
|
|
@ -123,7 +151,11 @@ import IconItaku from "../components/icons/brands/IconItaku.astro";
|
|||
rel="me"
|
||||
aria-label="Inkbunny"
|
||||
>
|
||||
<IconInkbunny height="1.75rem" width="1.75rem" class="inline transition-transform group-hover:scale-150 group-focus:scale-150 motion-reduce:transition-none motion-reduce:group-hover:scale-100 motion-reduce:group-focus:scale-100" />
|
||||
<IconInkbunny
|
||||
height="1.75rem"
|
||||
width="1.75rem"
|
||||
class="inline transition-transform group-hover:scale-150 group-focus:scale-150 motion-reduce:transition-none motion-reduce:group-hover:scale-100 motion-reduce:group-focus:scale-100"
|
||||
/>
|
||||
<span class="p-nickname hidden">BadManners on Inkbunny</span>
|
||||
</a>
|
||||
</li>
|
||||
|
|
@ -135,7 +167,11 @@ import IconItaku from "../components/icons/brands/IconItaku.astro";
|
|||
rel="me"
|
||||
aria-label="Itaku"
|
||||
>
|
||||
<IconItaku height="1.75rem" width="1.75rem" class="inline transition-transform group-hover:scale-150 group-focus:scale-150 motion-reduce:transition-none motion-reduce:group-hover:scale-100 motion-reduce:group-focus:scale-100" />
|
||||
<IconItaku
|
||||
height="1.75rem"
|
||||
width="1.75rem"
|
||||
class="inline transition-transform group-hover:scale-150 group-focus:scale-150 motion-reduce:transition-none motion-reduce:group-hover:scale-100 motion-reduce:group-focus:scale-100"
|
||||
/>
|
||||
<span class="p-nickname hidden">badmanners on Itaku</span>
|
||||
</a>
|
||||
</li>
|
||||
|
|
@ -147,7 +183,11 @@ import IconItaku from "../components/icons/brands/IconItaku.astro";
|
|||
rel="me"
|
||||
aria-label="Itch.io"
|
||||
>
|
||||
<IconItchIO height="1.75rem" width="1.75rem" class="inline transition-transform group-hover:scale-150 group-focus:scale-150 motion-reduce:transition-none motion-reduce:group-hover:scale-100 motion-reduce:group-focus:scale-100" />
|
||||
<IconItchIO
|
||||
height="1.75rem"
|
||||
width="1.75rem"
|
||||
class="inline transition-transform group-hover:scale-150 group-focus:scale-150 motion-reduce:transition-none motion-reduce:group-hover:scale-100 motion-reduce:group-focus:scale-100"
|
||||
/>
|
||||
<span class="p-nickname hidden">Bad Manners on Itch.io</span>
|
||||
</a>
|
||||
</li>
|
||||
|
|
@ -159,7 +199,11 @@ import IconItaku from "../components/icons/brands/IconItaku.astro";
|
|||
rel="me"
|
||||
aria-label="Keybase"
|
||||
>
|
||||
<IconKeybase height="1.75rem" width="1.75rem" class="inline transition-transform group-hover:scale-150 group-focus:scale-150 motion-reduce:transition-none motion-reduce:group-hover:scale-100 motion-reduce:group-focus:scale-100" />
|
||||
<IconKeybase
|
||||
height="1.75rem"
|
||||
width="1.75rem"
|
||||
class="inline transition-transform group-hover:scale-150 group-focus:scale-150 motion-reduce:transition-none motion-reduce:group-hover:scale-100 motion-reduce:group-focus:scale-100"
|
||||
/>
|
||||
<span class="p-nickname hidden">badmanners on Keybase</span>
|
||||
</a>
|
||||
</li>
|
||||
|
|
@ -171,7 +215,11 @@ import IconItaku from "../components/icons/brands/IconItaku.astro";
|
|||
rel="me"
|
||||
aria-label="Mastodon"
|
||||
>
|
||||
<IconMastodon height="1.75rem" width="1.75rem" class="inline transition-transform group-hover:scale-150 group-focus:scale-150 motion-reduce:transition-none motion-reduce:group-hover:scale-100 motion-reduce:group-focus:scale-100" />
|
||||
<IconMastodon
|
||||
height="1.75rem"
|
||||
width="1.75rem"
|
||||
class="inline transition-transform group-hover:scale-150 group-focus:scale-150 motion-reduce:transition-none motion-reduce:group-hover:scale-100 motion-reduce:group-focus:scale-100"
|
||||
/>
|
||||
<span class="p-nickname hidden">@BadManners@meow.social on Mastodon</span>
|
||||
</a>
|
||||
</li>
|
||||
|
|
@ -183,7 +231,11 @@ import IconItaku from "../components/icons/brands/IconItaku.astro";
|
|||
rel="me"
|
||||
aria-label="Neocities"
|
||||
>
|
||||
<IconNeocities height="1.75rem" width="1.75rem" class="inline transition-transform group-hover:scale-150 group-focus:scale-150 motion-reduce:transition-none motion-reduce:group-hover:scale-100 motion-reduce:group-focus:scale-100" />
|
||||
<IconNeocities
|
||||
height="1.75rem"
|
||||
width="1.75rem"
|
||||
class="inline transition-transform group-hover:scale-150 group-focus:scale-150 motion-reduce:transition-none motion-reduce:group-hover:scale-100 motion-reduce:group-focus:scale-100"
|
||||
/>
|
||||
<span class="p-nickname hidden">badmanners.neocities.org on Neocities</span>
|
||||
</a>
|
||||
</li>
|
||||
|
|
@ -195,7 +247,11 @@ import IconItaku from "../components/icons/brands/IconItaku.astro";
|
|||
rel="me"
|
||||
aria-label="Picarto"
|
||||
>
|
||||
<IconPicarto height="1.75rem" width="1.75rem" class="inline transition-transform group-hover:scale-150 group-focus:scale-150 motion-reduce:transition-none motion-reduce:group-hover:scale-100 motion-reduce:group-focus:scale-100" />
|
||||
<IconPicarto
|
||||
height="1.75rem"
|
||||
width="1.75rem"
|
||||
class="inline transition-transform group-hover:scale-150 group-focus:scale-150 motion-reduce:transition-none motion-reduce:group-hover:scale-100 motion-reduce:group-focus:scale-100"
|
||||
/>
|
||||
<span class="p-nickname hidden">BadManners on Picarto</span>
|
||||
</a>
|
||||
</li>
|
||||
|
|
@ -207,7 +263,11 @@ import IconItaku from "../components/icons/brands/IconItaku.astro";
|
|||
rel="me"
|
||||
aria-label="Signal"
|
||||
>
|
||||
<IconSignal height="1.75rem" width="1.75rem" class="inline transition-transform group-hover:scale-150 group-focus:scale-150 motion-reduce:transition-none motion-reduce:group-hover:scale-100 motion-reduce:group-focus:scale-100" />
|
||||
<IconSignal
|
||||
height="1.75rem"
|
||||
width="1.75rem"
|
||||
class="inline transition-transform group-hover:scale-150 group-focus:scale-150 motion-reduce:transition-none motion-reduce:group-hover:scale-100 motion-reduce:group-focus:scale-100"
|
||||
/>
|
||||
<span class="p-nickname hidden">badmanners.10 on Signal</span>
|
||||
</a>
|
||||
</li>
|
||||
|
|
@ -219,7 +279,11 @@ import IconItaku from "../components/icons/brands/IconItaku.astro";
|
|||
rel="me"
|
||||
aria-label="SoFurry"
|
||||
>
|
||||
<IconSoFurry height="1.75rem" width="1.75rem" class="inline transition-transform group-hover:scale-150 group-focus:scale-150 motion-reduce:transition-none motion-reduce:group-hover:scale-100 motion-reduce:group-focus:scale-100" />
|
||||
<IconSoFurry
|
||||
height="1.75rem"
|
||||
width="1.75rem"
|
||||
class="inline transition-transform group-hover:scale-150 group-focus:scale-150 motion-reduce:transition-none motion-reduce:group-hover:scale-100 motion-reduce:group-focus:scale-100"
|
||||
/>
|
||||
<span class="p-nickname hidden">Bad Manners on SoFurry</span>
|
||||
</a>
|
||||
</li>
|
||||
|
|
@ -231,7 +295,11 @@ import IconItaku from "../components/icons/brands/IconItaku.astro";
|
|||
rel="me"
|
||||
aria-label="Steam"
|
||||
>
|
||||
<IconSteam height="1.75rem" width="1.75rem" class="inline transition-transform group-hover:scale-150 group-focus:scale-150 motion-reduce:transition-none motion-reduce:group-hover:scale-100 motion-reduce:group-focus:scale-100" />
|
||||
<IconSteam
|
||||
height="1.75rem"
|
||||
width="1.75rem"
|
||||
class="inline transition-transform group-hover:scale-150 group-focus:scale-150 motion-reduce:transition-none motion-reduce:group-hover:scale-100 motion-reduce:group-focus:scale-100"
|
||||
/>
|
||||
<span class="p-nickname hidden">badmanners_ on Steam</span>
|
||||
</a>
|
||||
</li>
|
||||
|
|
@ -243,7 +311,11 @@ import IconItaku from "../components/icons/brands/IconItaku.astro";
|
|||
rel="me"
|
||||
aria-label="SubscribeStar"
|
||||
>
|
||||
<IconSubscribeStar height="1.75rem" width="1.75rem" class="inline transition-transform group-hover:scale-150 group-focus:scale-150 motion-reduce:transition-none motion-reduce:group-hover:scale-100 motion-reduce:group-focus:scale-100" />
|
||||
<IconSubscribeStar
|
||||
height="1.75rem"
|
||||
width="1.75rem"
|
||||
class="inline transition-transform group-hover:scale-150 group-focus:scale-150 motion-reduce:transition-none motion-reduce:group-hover:scale-100 motion-reduce:group-focus:scale-100"
|
||||
/>
|
||||
<span class="p-nickname hidden">Bad Manners on SubscribeStar</span>
|
||||
</a>
|
||||
</li>
|
||||
|
|
@ -255,7 +327,11 @@ import IconItaku from "../components/icons/brands/IconItaku.astro";
|
|||
rel="me"
|
||||
aria-label="Telegram"
|
||||
>
|
||||
<IconTelegram height="1.75rem" width="1.75rem" class="inline transition-transform group-hover:scale-150 group-focus:scale-150 motion-reduce:transition-none motion-reduce:group-hover:scale-100 motion-reduce:group-focus:scale-100" />
|
||||
<IconTelegram
|
||||
height="1.75rem"
|
||||
width="1.75rem"
|
||||
class="inline transition-transform group-hover:scale-150 group-focus:scale-150 motion-reduce:transition-none motion-reduce:group-hover:scale-100 motion-reduce:group-focus:scale-100"
|
||||
/>
|
||||
<span class="p-nickname hidden">@bad_manners on Telegram</span>
|
||||
</a>
|
||||
</li>
|
||||
|
|
@ -267,7 +343,11 @@ import IconItaku from "../components/icons/brands/IconItaku.astro";
|
|||
rel="me"
|
||||
aria-label="Twitch"
|
||||
>
|
||||
<IconTwitch height="1.75rem" width="1.75rem" class="inline transition-transform group-hover:scale-150 group-focus:scale-150 motion-reduce:transition-none motion-reduce:group-hover:scale-100 motion-reduce:group-focus:scale-100" />
|
||||
<IconTwitch
|
||||
height="1.75rem"
|
||||
width="1.75rem"
|
||||
class="inline transition-transform group-hover:scale-150 group-focus:scale-150 motion-reduce:transition-none motion-reduce:group-hover:scale-100 motion-reduce:group-focus:scale-100"
|
||||
/>
|
||||
<span class="p-nickname hidden">bad__manners on Twitch</span>
|
||||
</a>
|
||||
</li>
|
||||
|
|
@ -279,7 +359,11 @@ import IconItaku from "../components/icons/brands/IconItaku.astro";
|
|||
rel="me"
|
||||
aria-label="Weasyl"
|
||||
>
|
||||
<IconWeasyl height="1.75rem" width="1.75rem" class="inline transition-transform group-hover:scale-150 group-focus:scale-150 motion-reduce:transition-none motion-reduce:group-hover:scale-100 motion-reduce:group-focus:scale-100" />
|
||||
<IconWeasyl
|
||||
height="1.75rem"
|
||||
width="1.75rem"
|
||||
class="inline transition-transform group-hover:scale-150 group-focus:scale-150 motion-reduce:transition-none motion-reduce:group-hover:scale-100 motion-reduce:group-focus:scale-100"
|
||||
/>
|
||||
<span class="p-nickname hidden">BadManners on Weasyl</span>
|
||||
</a>
|
||||
</li>
|
||||
|
|
@ -291,7 +375,11 @@ import IconItaku from "../components/icons/brands/IconItaku.astro";
|
|||
rel="me"
|
||||
aria-label="X"
|
||||
>
|
||||
<IconX height="1.75rem" width="1.75rem" class="inline transition-transform group-hover:scale-150 group-focus:scale-150 motion-reduce:transition-none motion-reduce:group-hover:scale-100 motion-reduce:group-focus:scale-100" />
|
||||
<IconX
|
||||
height="1.75rem"
|
||||
width="1.75rem"
|
||||
class="inline transition-transform group-hover:scale-150 group-focus:scale-150 motion-reduce:transition-none motion-reduce:group-hover:scale-100 motion-reduce:group-focus:scale-100"
|
||||
/>
|
||||
<span class="p-nickname hidden">@BadManners__ on X</span>
|
||||
</a>
|
||||
</li>
|
||||
|
|
@ -299,9 +387,13 @@ import IconItaku from "../components/icons/brands/IconItaku.astro";
|
|||
<a
|
||||
class="u-url text-link group p-2 transition-colors motion-reduce:transition-none"
|
||||
href="/contact"
|
||||
aria-label="More options..."
|
||||
aria-label="More socials..."
|
||||
>
|
||||
<IconEllipsis height="1.75rem" width="1.75rem" class="inline transition-transform group-hover:scale-150 group-focus:scale-150 motion-reduce:transition-none motion-reduce:group-hover:scale-100 motion-reduce:group-focus:scale-100" />
|
||||
<IconEllipsis
|
||||
height="1.75rem"
|
||||
width="1.75rem"
|
||||
class="inline transition-transform group-hover:scale-150 group-focus:scale-150 motion-reduce:transition-none motion-reduce:group-hover:scale-100 motion-reduce:group-focus:scale-100"
|
||||
/>
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
|
|
@ -320,4 +412,3 @@ import IconItaku from "../components/icons/brands/IconItaku.astro";
|
|||
});
|
||||
})();
|
||||
</script>
|
||||
|
||||
|
|
|
|||
|
|
@ -29,13 +29,17 @@ import ImageSamRefsheet from "../assets/images/sam_refsheet.webp";
|
|||
src={ImageSamRefsheet}
|
||||
alt="A reference sheet of Sam Brendan, a mimic x maned wolf hybrid. Art by Rimmi."
|
||||
class="max-w-full transition-transform group-hover:scale-105 motion-reduce:transition-none motion-reduce:group-hover:scale-100"
|
||||
loading="lazy"
|
||||
loading="eager"
|
||||
height={512}
|
||||
/>
|
||||
</a>
|
||||
<figcaption class="text-base">
|
||||
A reference sheet of Sam Brendan, by
|
||||
<a class="text-link transition-colors" href="https://linktr.ee/Rimmi1357" target="_blank">
|
||||
<a
|
||||
class="text-link transition-colors motion-reduce:transition-none"
|
||||
href="https://linktr.ee/Rimmi1357"
|
||||
target="_blank"
|
||||
>
|
||||
<span class="underline">Rimmi</span>
|
||||
<IconArrowUpRightFromSquare width="0.75rem" height="0.75rem" class="inline" /></a
|
||||
>. Click to view a high quality version.
|
||||
|
|
@ -83,7 +87,11 @@ import ImageSamRefsheet from "../assets/images/sam_refsheet.webp";
|
|||
</a>
|
||||
<figcaption class="text-base">
|
||||
A set of stickers featuring Sam Brendan, by
|
||||
<a class="text-link transition-colors" href="https://olivecow.carrd.co/" target="_blank">
|
||||
<a
|
||||
class="text-link transition-colors motion-reduce:transition-none"
|
||||
href="https://olivecow.carrd.co/"
|
||||
target="_blank"
|
||||
>
|
||||
<span class="underline">OliveCow</span>
|
||||
<IconArrowUpRightFromSquare width="0.75rem" height="0.75rem" class="inline" /></a
|
||||
>. Click to view a high quality version.
|
||||
|
|
|
|||
|
|
@ -24,28 +24,25 @@ import { SUBSCRIBESTAR_ENABLED } from "../data/subscribestar";
|
|||
class="text-link transition-colors motion-reduce:transition-none"
|
||||
href="https://gallery.badmanners.xyz/stories/1"
|
||||
target="_blank"
|
||||
>
|
||||
<span class="underline">safe vore stories</span>
|
||||
<IconArrowUpRightFromSquare width="0.75rem" height="0.75rem" class="inline" />
|
||||
</a>. Since there's a lot in furry endosoma that I enjoy, my stories tend to
|
||||
><span class="underline">safe vore stories</span>
|
||||
<IconArrowUpRightFromSquare width="0.75rem" height="0.75rem" class="inline" /></a
|
||||
>. Since there's a lot in furry endosoma that I enjoy, my stories tend to
|
||||
<a
|
||||
class="text-link underline transition-colors motion-reduce:transition-none"
|
||||
class="text-link transition-colors motion-reduce:transition-none"
|
||||
href="https://gallery.badmanners.xyz/tags"
|
||||
target="_blank"
|
||||
>
|
||||
<span class="underline">have all sorts of themes and scenarios</span>
|
||||
<IconArrowUpRightFromSquare width="0.75rem" height="0.75rem" class="inline" />
|
||||
</a>, including exotic ones. My content is all tagged with the appropriate content warnings, so if you enjoy
|
||||
safe vore, chances are that you'll find something in my gallery that is right up your alley.
|
||||
><span class="underline">have all sorts of themes and scenarios</span>
|
||||
<IconArrowUpRightFromSquare width="0.75rem" height="0.75rem" class="inline" /></a
|
||||
>, including exotic ones. My content is all tagged with the appropriate content warnings, so if you enjoy safe
|
||||
vore, chances are that you'll find something in my gallery that is right up your alley.
|
||||
</p>
|
||||
<p class="my-4 sm:mb-3 sm:mt-6">
|
||||
I've also made a game called
|
||||
<a
|
||||
class="text-link underline transition-colors motion-reduce:transition-none"
|
||||
class="text-link transition-colors motion-reduce:transition-none"
|
||||
href="https://gallery.badmanners.xyz/games/crossing-over"
|
||||
target="_blank"
|
||||
>
|
||||
<span>"Crossing Over"</span>
|
||||
><span class="underline">"Crossing Over"</span>
|
||||
<IconArrowUpRightFromSquare width="0.75rem" height="0.75rem" class="inline" /></a
|
||||
>, as part of Strawberry Jam 8 (a game jam hosted by eevee on Feb. 2024).
|
||||
</p>
|
||||
|
|
@ -53,10 +50,10 @@ import { SUBSCRIBESTAR_ENABLED } from "../data/subscribestar";
|
|||
You can find my gallery on the following websites, which include all of my content. Aside from the first link,
|
||||
these also include some of the art that I've gotten from others (commissions, gifts, etc.).
|
||||
</p>
|
||||
<ul class="flex flex-col items-center">
|
||||
<ul class="h-card flex flex-col items-center">
|
||||
<li class="mb-2 w-max sm:mb-1">
|
||||
<a
|
||||
class="text-link mx-1 transition-colors motion-reduce:transition-none"
|
||||
class="u-url text-link mx-1 transition-colors motion-reduce:transition-none"
|
||||
href="https://gallery.badmanners.xyz/"
|
||||
target="_blank"
|
||||
>
|
||||
|
|
@ -67,7 +64,7 @@ import { SUBSCRIBESTAR_ENABLED } from "../data/subscribestar";
|
|||
</li>
|
||||
<li class="mb-2 w-max sm:mb-1">
|
||||
<a
|
||||
class="text-link mx-1 transition-colors motion-reduce:transition-none"
|
||||
class="u-url text-link mx-1 transition-colors motion-reduce:transition-none"
|
||||
href="https://www.furaffinity.net/user/BadManners"
|
||||
target="_blank"
|
||||
rel="me"
|
||||
|
|
@ -79,7 +76,7 @@ import { SUBSCRIBESTAR_ENABLED } from "../data/subscribestar";
|
|||
</li>
|
||||
<li class="mb-2 w-max sm:mb-1">
|
||||
<a
|
||||
class="text-link mx-1 transition-colors motion-reduce:transition-none"
|
||||
class="u-url text-link mx-1 transition-colors motion-reduce:transition-none"
|
||||
href="https://aryion.com/g4/user/BadManners"
|
||||
target="_blank"
|
||||
rel="me"
|
||||
|
|
@ -91,7 +88,7 @@ import { SUBSCRIBESTAR_ENABLED } from "../data/subscribestar";
|
|||
</li>
|
||||
<li class="mb-2 w-max sm:mb-1">
|
||||
<a
|
||||
class="text-link mx-1 transition-colors motion-reduce:transition-none"
|
||||
class="u-url text-link mx-1 transition-colors motion-reduce:transition-none"
|
||||
href="https://inkbunny.net/BadManners"
|
||||
target="_blank"
|
||||
rel="me"
|
||||
|
|
@ -103,7 +100,7 @@ import { SUBSCRIBESTAR_ENABLED } from "../data/subscribestar";
|
|||
</li>
|
||||
<li class="mb-2 w-max sm:mb-1">
|
||||
<a
|
||||
class="text-link mx-1 transition-colors motion-reduce:transition-none"
|
||||
class="u-url text-link mx-1 transition-colors motion-reduce:transition-none"
|
||||
href="https://bad-manners.sofurry.com/"
|
||||
target="_blank"
|
||||
rel="me"
|
||||
|
|
@ -115,7 +112,7 @@ import { SUBSCRIBESTAR_ENABLED } from "../data/subscribestar";
|
|||
</li>
|
||||
<li class="mb-2 w-max sm:mb-1">
|
||||
<a
|
||||
class="text-link mx-1 transition-colors motion-reduce:transition-none"
|
||||
class="u-url text-link mx-1 transition-colors motion-reduce:transition-none"
|
||||
href="https://www.weasyl.com/~badmanners"
|
||||
target="_blank"
|
||||
rel="me"
|
||||
|
|
@ -140,36 +137,36 @@ import { SUBSCRIBESTAR_ENABLED } from "../data/subscribestar";
|
|||
</p>
|
||||
) : TOS_COMMISSION_STATUS == "OPEN" ? (
|
||||
<p class="mb-6 mt-2 sm:mt-3">
|
||||
My story commissions are currently open! Feel free to
|
||||
My story commissions are currently open! Feel free to{" "}
|
||||
<a href="/terms_of_service" class="text-link underline transition-colors motion-reduce:transition-none">
|
||||
check out my Terms of Service
|
||||
</a>
|
||||
</a>{" "}
|
||||
if interested.
|
||||
</p>
|
||||
) : TOS_COMMISSION_STATUS == "SEMI_OPEN" ? (
|
||||
<p class="mb-6 mt-2 sm:mt-3">
|
||||
My story commissions are currently semi-open, meaning that I may take some commissions, but might reject or
|
||||
postpone them more easily. Feel free to
|
||||
postpone them more easily. Feel free to{" "}
|
||||
<a href="/terms_of_service" class="text-link underline transition-colors motion-reduce:transition-none">
|
||||
check out my Terms of Service
|
||||
</a>
|
||||
</a>{" "}
|
||||
if interested.
|
||||
</p>
|
||||
) : TOS_COMMISSION_STATUS == "PRIVATE" ? (
|
||||
<p class="mb-6 mt-2 sm:mt-3">
|
||||
My story commissions are currently private, meaning that I'm not offering slots publicly, but I may still
|
||||
work on commissions for specific clients. Regardless of whether this applies to you or not, feel free to
|
||||
work on commissions for specific clients. Regardless of whether this applies to you or not, feel free to{" "}
|
||||
<a href="/terms_of_service" class="text-link underline transition-colors motion-reduce:transition-none">
|
||||
check out my Terms of Service
|
||||
</a>
|
||||
</a>{" "}
|
||||
if interested.
|
||||
</p>
|
||||
) : (
|
||||
<p class="mb-6 mt-2 sm:mt-3">
|
||||
Feel free to
|
||||
Feel free to{" "}
|
||||
<a href="/terms_of_service" class="text-link underline transition-colors motion-reduce:transition-none">
|
||||
check out my Terms of Service
|
||||
</a>
|
||||
</a>{" "}
|
||||
if interested.
|
||||
</p>
|
||||
)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue