Compare commits
2 Commits
97be729014
...
2d8fa1d7bc
| Author | SHA1 | Date | |
|---|---|---|---|
|
2d8fa1d7bc
|
|||
|
be3293c53b
|
@@ -1,7 +1,8 @@
|
|||||||
import js from "@eslint/js";
|
import js from "@eslint/js";
|
||||||
import { defineConfig } from "eslint/config";
|
|
||||||
import eslintPluginAstro from "eslint-plugin-astro";
|
import eslintPluginAstro from "eslint-plugin-astro";
|
||||||
import eslintPluginPrettierRecommended from "eslint-plugin-prettier/recommended";
|
import eslintPluginPrettierRecommended from "eslint-plugin-prettier/recommended";
|
||||||
|
import { defineConfig } from "eslint/config";
|
||||||
|
import jsxA11y from "eslint-plugin-jsx-a11y";
|
||||||
|
|
||||||
export default defineConfig([
|
export default defineConfig([
|
||||||
{
|
{
|
||||||
@@ -9,6 +10,12 @@ export default defineConfig([
|
|||||||
plugins: { js },
|
plugins: { js },
|
||||||
extends: ["js/recommended"],
|
extends: ["js/recommended"],
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
files: ["**/*.{astro,html}"],
|
||||||
|
plugins: {
|
||||||
|
"jsx-a11y": jsxA11y,
|
||||||
|
},
|
||||||
|
},
|
||||||
...eslintPluginAstro.configs.recommended,
|
...eslintPluginAstro.configs.recommended,
|
||||||
eslintPluginPrettierRecommended,
|
eslintPluginPrettierRecommended,
|
||||||
]);
|
]);
|
||||||
|
|||||||
@@ -17,13 +17,16 @@
|
|||||||
"tailwindcss": "^4.2.1"
|
"tailwindcss": "^4.2.1"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
|
"@astrojs/ts-plugin": "^1.10.6",
|
||||||
"@eslint/js": "^10.0.1",
|
"@eslint/js": "^10.0.1",
|
||||||
"@markuplint/astro-parser": "^4.6.23",
|
"@markuplint/astro-parser": "^4.6.23",
|
||||||
"@markuplint/ml-config": "^4.8.15",
|
"@markuplint/ml-config": "^4.8.15",
|
||||||
|
"@typescript-eslint/parser": "^8.56.1",
|
||||||
"cspell": "^9.7.0",
|
"cspell": "^9.7.0",
|
||||||
"eslint": "^10.0.2",
|
"eslint": "^10.0.2",
|
||||||
"eslint-config-prettier": "^10.1.8",
|
"eslint-config-prettier": "^10.1.8",
|
||||||
"eslint-plugin-astro": "^1.6.0",
|
"eslint-plugin-astro": "^1.6.0",
|
||||||
|
"eslint-plugin-jsx-a11y": "^6.10.2",
|
||||||
"eslint-plugin-prettier": "^5.5.5",
|
"eslint-plugin-prettier": "^5.5.5",
|
||||||
"markuplint": "^4.14.1",
|
"markuplint": "^4.14.1",
|
||||||
"postcss-html": "^1.8.1",
|
"postcss-html": "^1.8.1",
|
||||||
|
|||||||
1201
pnpm-lock.yaml
generated
1201
pnpm-lock.yaml
generated
File diff suppressed because it is too large
Load Diff
@@ -1,12 +1,20 @@
|
|||||||
---
|
---
|
||||||
const { ariaLabel, cssClass, href } = Astro.props;
|
import type { HTMLAttributes } from "astro/types";
|
||||||
|
|
||||||
|
interface Props extends HTMLAttributes<"a"> {
|
||||||
|
cssClass: string;
|
||||||
|
href: string;
|
||||||
|
title: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
const { cssClass, href, title } = Astro.props;
|
||||||
---
|
---
|
||||||
|
|
||||||
<a
|
<a
|
||||||
aria-label={ariaLabel}
|
|
||||||
class:list={[
|
class:list={[
|
||||||
cssClass,
|
cssClass,
|
||||||
"flex min-w-full items-center gap-4 rounded px-6 py-2 text-lg sm:px-24",
|
"flex min-w-full items-center justify-center gap-4 rounded px-6 py-2 text-lg sm:px-24",
|
||||||
]}
|
]}
|
||||||
{href}><slot /></a
|
{href}
|
||||||
|
{title}><slot name="logo" /><slot /></a
|
||||||
>
|
>
|
||||||
|
|||||||
12
src/components/inline-svg.astro
Normal file
12
src/components/inline-svg.astro
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
---
|
||||||
|
import type { SvgComponent } from "astro/types";
|
||||||
|
|
||||||
|
interface Props {
|
||||||
|
SvgComponent: SvgComponent;
|
||||||
|
svgSize?: number;
|
||||||
|
}
|
||||||
|
|
||||||
|
const { SvgComponent, svgSize = 24 } = Astro.props;
|
||||||
|
---
|
||||||
|
|
||||||
|
<SvgComponent height={svgSize} width={svgSize} role="presentation" />
|
||||||
@@ -1,6 +1,7 @@
|
|||||||
---
|
---
|
||||||
import { Image } from "astro:assets";
|
import { Image } from "astro:assets";
|
||||||
import ExternalLink from "../components/external-link.astro";
|
import ExternalLink from "../components/external-link.astro";
|
||||||
|
import InlineSvg from "../components/inline-svg.astro";
|
||||||
import avatar from "../images/Icon Alec 150.png";
|
import avatar from "../images/Icon Alec 150.png";
|
||||||
import MastodonLogo from "../images/mastodon-logo-white.svg";
|
import MastodonLogo from "../images/mastodon-logo-white.svg";
|
||||||
import "../styles/global.css";
|
import "../styles/global.css";
|
||||||
@@ -31,24 +32,40 @@ const svgSize = 24;
|
|||||||
/>
|
/>
|
||||||
<hgroup>
|
<hgroup>
|
||||||
<h1>f1r3w4rr10r</h1>
|
<h1>f1r3w4rr10r</h1>
|
||||||
<p class="text-zinc-600">aka Alec the zebra</p>
|
<p class="text-soft">aka Alec the zebra</p>
|
||||||
</hgroup>
|
</hgroup>
|
||||||
<p class="text-zinc-600">
|
<section class="text-soft">
|
||||||
A zebra from Germany – (Web-)dev by day, furry, gamer and game master
|
<p>A zebra from Germany</p>
|
||||||
by night
|
<p>(Web-)dev by day – furry, gamer and game master by night</p>
|
||||||
</p>
|
</section>
|
||||||
<ul>
|
<ul class="flex flex-col gap-2">
|
||||||
|
<li>
|
||||||
|
<ExternalLink
|
||||||
|
cssClass="link-matrix"
|
||||||
|
href="https://matrix.to/#/@f1r3w4rr10r:bark.lgbt"
|
||||||
|
title="My matrix account"
|
||||||
|
>
|
||||||
|
<span>@f1r3w4rr10r:bark.lgbt</span>
|
||||||
|
</ExternalLink>
|
||||||
|
</li>
|
||||||
<li>
|
<li>
|
||||||
<ExternalLink
|
<ExternalLink
|
||||||
ariaLabel="Link to Mastodon"
|
|
||||||
cssClass="link-mastodon"
|
cssClass="link-mastodon"
|
||||||
href="https://bark.lgbt/@f1r3w4rr10r"
|
href="https://bark.lgbt/@f1r3w4rr10r"
|
||||||
><MastodonLogo
|
title="My Mastodon account"
|
||||||
height={svgSize}
|
|
||||||
width={svgSize}
|
|
||||||
aria-label="Mastodon Logo"
|
|
||||||
/> @f1r3w4rr10r@bark.lgbt</ExternalLink
|
|
||||||
>
|
>
|
||||||
|
<InlineSvg SvgComponent={MastodonLogo} slot="logo" />
|
||||||
|
<span>@f1r3w4rr10r@bark.lgbt</span>
|
||||||
|
</ExternalLink>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<ExternalLink
|
||||||
|
cssClass="link-fur-affinity"
|
||||||
|
href="https://www.furaffinity.net/user/f1r3w4rr10r/"
|
||||||
|
title="My Fur Affinity account"
|
||||||
|
>
|
||||||
|
<span>f1r3w4rr10r</span>
|
||||||
|
</ExternalLink>
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
</article>
|
</article>
|
||||||
|
|||||||
@@ -7,6 +7,10 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
@layer base {
|
@layer base {
|
||||||
|
body {
|
||||||
|
@apply bg-neutral-50 text-black dark:bg-neutral-800 dark:text-white;
|
||||||
|
}
|
||||||
|
|
||||||
h1 {
|
h1 {
|
||||||
@apply text-5xl font-bold;
|
@apply text-5xl font-bold;
|
||||||
}
|
}
|
||||||
@@ -16,4 +20,14 @@
|
|||||||
.link-mastodon {
|
.link-mastodon {
|
||||||
@apply bg-mastodon-dark hover:bg-mastodon-dark-hover text-white;
|
@apply bg-mastodon-dark hover:bg-mastodon-dark-hover text-white;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.link-matrix {
|
||||||
|
@apply bg-black text-white hover:bg-zinc-950;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@layer utilities {
|
||||||
|
.text-soft {
|
||||||
|
@apply text-zinc-600 dark:text-zinc-400;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,5 +1,9 @@
|
|||||||
{
|
{
|
||||||
"extends": "astro/tsconfigs/strict",
|
"$schema": "https://json.schemastore.org/tsconfig.json",
|
||||||
|
"extends": "astro/tsconfigs/strictest",
|
||||||
"include": [".astro/types.d.ts", "**/*"],
|
"include": [".astro/types.d.ts", "**/*"],
|
||||||
"exclude": ["dist"]
|
"exclude": ["dist"],
|
||||||
|
"compilerOptions": {
|
||||||
|
"plugins": [{ "name": "@astrojs/ts-plugin" }]
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user