refactor: replace preact with react

This commit is contained in:
Stefan Imhoff
2025-01-03 14:39:54 +01:00
parent 1560013a07
commit 756d6b0258
32 changed files with 97 additions and 245 deletions

View File

@@ -29,7 +29,7 @@ const { backLink, class: className, ...props } = Astro.props;
type="button"
tabindex={-1}
>
<ArrowLeft aria-hidden="true" class="icon h-icon w-icon" />
<ArrowLeft aria-hidden="true" className="icon h-icon w-icon" />
</button>
</Link>
)

View File

@@ -16,7 +16,7 @@ const { href, text, ...props } = Astro.props;
<span class="more-icon relative inline-flex mis-[0.2em] block-start-[0.2em]">
<Download
aria-hidden="true"
class="icon h-icon w-icon transition-transform duration-500 ease-in-out group-hover:translate-y-1 group-focus:translate-y-1"
className="icon h-icon w-icon transition-transform duration-500 ease-in-out group-hover:translate-y-1 group-focus:translate-y-1"
/>
</span>
</TextLink>

View File

@@ -18,7 +18,7 @@ const { icon = true, text = 'Email', ...props } = Astro.props;
<span class="more-icon relative inline-flex mis-[0.2em] block-start-[0.3em] inline-start-[0.2em]">
<MailSend
aria-hidden="true"
class="icon h-icon w-icon transition-transform duration-500 ease-in-out group-hover:translate-x-1 group-focus:translate-x-1"
className="icon h-icon w-icon transition-transform duration-500 ease-in-out group-hover:translate-x-1 group-focus:translate-x-1"
/>
</span>
)

View File

@@ -16,7 +16,7 @@ const { href, text, ...props } = Astro.props;
<span class="more-icon relative inline-flex mis-[0.2em] block-start-[0.2em]">
<ArrowRight
aria-hidden="true"
class="icon h-icon w-icon transition-transform duration-500 ease-in-out group-hover:translate-x-1 group-focus:translate-x-1"
className="icon h-icon w-icon transition-transform duration-500 ease-in-out group-hover:translate-x-1 group-focus:translate-x-1"
/>
</span>
</TextLink>

View File

@@ -23,7 +23,7 @@ const { nextText, nextUrl, previousText, previousUrl } = Astro.props;
title={previousText || 'Previous'}
>
<div class="pagination flex h-[40px] w-[40px] cursor-pointer items-center justify-center rounded-[50%] bg-black/5 outline-none transition-opacity duration-500 ease-in-out group-hover:bg-black/20 group-focus:bg-black/20 dark:bg-white/5 dark:group-hover:bg-white/20 dark:group-focus:bg-white/20">
<ArrowLeftS aria-hidden="true" class="icon h-icon w-icon" />
<ArrowLeftS aria-hidden="true" className="icon h-icon w-icon" />
</div>
</a>
)
@@ -39,7 +39,7 @@ const { nextText, nextUrl, previousText, previousUrl } = Astro.props;
title={nextText || 'Next'}
>
<div class="pagination flex h-[40px] w-[40px] cursor-pointer items-center justify-center rounded-[50%] bg-black/5 outline-none transition-opacity duration-500 ease-in-out group-hover:bg-black/20 group-focus:bg-black/20 dark:bg-white/5 dark:group-hover:bg-white/20 dark:group-focus:bg-white/20">
<ArrowRightS aria-hidden="true" class="icon h-icon w-icon" />
<ArrowRightS aria-hidden="true" className="icon h-icon w-icon" />
</div>
</a>
)

View File

@@ -8,7 +8,7 @@ import Subsubheadline from './Subsubheadline.astro';
<aside class="grow mbe-5 sm:mbe-0">
<Subsubheadline as="h2">Stay up to date.</Subsubheadline>
<p>
<Rss aria-hidden="true" class="icon inline h-icon w-icon" />{' '}
<Rss aria-hidden="true" className="icon inline h-icon w-icon" />{' '}
<Link
class="font-light decoration-4 underline-offset-auto hover:underline hover:decoration-shibui-900/20 focus:underline focus:decoration-shibui-900/20 dark:hover:decoration-shibui-100/20 dark:focus:decoration-shibui-100/20"
data-umami-event="RSS"

View File

@@ -18,6 +18,6 @@ import Link from './Link.astro';
tabindex={-1}
type="button"
>
<Search aria-hidden="true" class="icon h-icon w-icon" />
<Search aria-hidden="true" className="icon h-icon w-icon" />
</button>
</Link>

View File

@@ -18,7 +18,7 @@ import { Close } from './icons';
aria-label="Close Search Modal"
class="flex h-[2em] w-[2em] cursor-pointer items-center justify-center text-shibui-950 dark:text-shibui-200/[0.87]"
>
<Close class="icon h-[2em] w-[2em]" />
<Close className="icon h-[2em] w-[2em]" />
</button>
</Link>
</header>

View File

@@ -7,7 +7,7 @@ import Link from '../components/Link.astro';
<nav class="flex flex-1 sm:justify-center" aria-label="Social Links">
<Link
aria-label="Mail"
class="flex h-clickarea w-clickarea cursor-pointer items-center justify-center"
class="flex h-clickarea w-clickarea cursor-pointer items-center justify-center transition-transform duration-500 ease-in-out hover:scale-125 focus:scale-125"
data-umami-event="Mail"
href="#protected-email"
title="Mail"
@@ -16,33 +16,33 @@ import Link from '../components/Link.astro';
data-tld="de"
onclick="window.open(`mailto:${this.dataset.name}@${this.dataset.domain}.${this.dataset.tld}`, '_blank')"
>
<Mail aria-hidden="true" class="icon h-icon-small w-icon-small" />
<Mail aria-hidden="true" className="icon h-icon-small w-icon-small" />
</Link>
<Link
aria-label="𝕏"
class="flex h-clickarea w-clickarea cursor-pointer items-center justify-center"
class="flex h-clickarea w-clickarea cursor-pointer items-center justify-center transition-transform duration-500 ease-in-out hover:scale-125 focus:scale-125"
data-umami-event="𝕏"
href="https://x.com/kogakure"
title="𝕏"
>
<TwitterX aria-hidden="true" class="icon h-icon-small w-icon-small" />
<TwitterX aria-hidden="true" className="icon h-icon-small w-icon-small" />
</Link>
<Link
aria-label="Instagram"
class="flex h-clickarea w-clickarea cursor-pointer items-center justify-center"
class="flex h-clickarea w-clickarea cursor-pointer items-center justify-center transition-transform duration-500 ease-in-out hover:scale-125 focus:scale-125"
data-umami-event="Instagram"
href="https://instagram.com/kogakure"
title="Instagram"
>
<Instagram aria-hidden="true" class="icon h-icon-small w-icon-small" />
<Instagram aria-hidden="true" className="icon h-icon-small w-icon-small" />
</Link>
<Link
aria-label="GitHub"
class="flex h-clickarea w-clickarea cursor-pointer items-center justify-center"
class="flex h-clickarea w-clickarea cursor-pointer items-center justify-center transition-transform duration-500 ease-in-out hover:scale-125 focus:scale-125"
data-umami-event="GitHub"
href="https://github.com/kogakure"
title="GitHub"
>
<Github aria-hidden="true" class="icon h-icon-small w-icon-small" />
<Github aria-hidden="true" className="icon h-icon-small w-icon-small" />
</Link>
</nav>

View File

@@ -13,7 +13,7 @@ import { Circle } from './icons';
>
<Circle
aria-hidden="true"
class="icon h-icon w-icon transition-transform duration-500 ease-in-out group-hover:scale-125 group-focus:scale-125"
className="icon h-icon w-icon transition-transform duration-500 ease-in-out group-hover:scale-125 group-focus:scale-125"
/>
</button>
</theme-toggle>

View File

@@ -22,7 +22,7 @@ const { ...props } = Astro.props;
aria-hidden="true"
class="flex h-clickarea w-clickarea cursor-pointer items-center justify-center"
>
<ArrowUp aria-hidden="true" class="icon h-icon w-icon" />
<ArrowUp aria-hidden="true" className="icon h-icon w-icon" />
</button>
</Link>
</div>

View File

@@ -1,4 +1,4 @@
import type { SVGProps } from 'preact/compat';
import type { SVGProps } from 'react';
const ArrowLeft = (props: SVGProps<SVGSVGElement>) => (
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" {...props}>
<path d="M7.828 11H20v2H7.828l5.364 5.364-1.414 1.414L4 12l7.778-7.778 1.414 1.414z" />

View File

@@ -1,4 +1,4 @@
import type { SVGProps } from 'preact/compat';
import type { SVGProps } from 'react';
const ArrowLeftS = (props: SVGProps<SVGSVGElement>) => (
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" {...props}>
<path d="m10.828 12 4.95 4.95-1.414 1.415L8 12l6.364-6.364 1.414 1.414z" />

View File

@@ -1,4 +1,4 @@
import type { SVGProps } from 'preact/compat';
import type { SVGProps } from 'react';
const ArrowRight = (props: SVGProps<SVGSVGElement>) => (
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" {...props}>
<path d="m16.172 11-5.364-5.364 1.414-1.414L20 12l-7.778 7.778-1.414-1.414L16.172 13H4v-2z" />

View File

@@ -1,4 +1,4 @@
import type { SVGProps } from 'preact/compat';
import type { SVGProps } from 'react';
const ArrowRightS = (props: SVGProps<SVGSVGElement>) => (
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" {...props}>
<path d="m13.171 12-4.95-4.95 1.415-1.413L16 12l-6.364 6.364-1.414-1.415z" />

View File

@@ -1,4 +1,4 @@
import type { SVGProps } from 'preact/compat';
import type { SVGProps } from 'react';
const ArrowUp = (props: SVGProps<SVGSVGElement>) => (
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" {...props}>
<path d="M13 7.828V20h-2V7.828l-5.364 5.364-1.414-1.414L12 4l7.778 7.778-1.414 1.414z" />

View File

@@ -1,4 +1,4 @@
import type { SVGProps } from 'preact/compat';
import type { SVGProps } from 'react';
const Circle = (props: SVGProps<SVGSVGElement>) => (
<svg
xmlns="http://www.w3.org/2000/svg"

View File

@@ -1,4 +1,4 @@
import type { SVGProps } from 'preact/compat';
import type { SVGProps } from 'react';
const Close = (props: SVGProps<SVGSVGElement>) => (
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" {...props}>
<path d="m12 10.587 4.95-4.95 1.415 1.414-4.95 4.95 4.95 4.95-1.415 1.414-4.95-4.95-4.95 4.95-1.413-1.415 4.95-4.95-4.95-4.95L7.05 5.638z" />

View File

@@ -1,4 +1,4 @@
import type { SVGProps } from 'preact/compat';
import type { SVGProps } from 'react';
const Download = (props: SVGProps<SVGSVGElement>) => (
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" {...props}>
<path d="M3 19h18v2H3zm10-5.828L19.071 7.1l1.414 1.414L12 17 3.515 8.515 4.929 7.1 11 13.173V2h2z" />

View File

@@ -1,7 +1,7 @@
import type { SVGProps } from 'preact/compat';
import type { SVGProps } from 'react';
const Github = (props: SVGProps<SVGSVGElement>) => (
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" {...props}>
<path d="M5.884 18.653c-.3-.2-.558-.456-.86-.816a50.59 50.59 0 0 1-.466-.579c-.463-.575-.755-.841-1.056-.95a1 1 0 1 1 .675-1.882c.752.27 1.261.735 1.947 1.588-.094-.117.34.427.433.539.19.227.33.365.44.438.204.137.588.196 1.15.14.024-.382.094-.753.202-1.096-2.968-.725-4.648-2.64-4.648-6.396 0-1.238.37-2.355 1.058-3.291-.218-.894-.185-1.975.302-3.192a1 1 0 0 1 .63-.583c.081-.024.127-.034.208-.047.803-.123 1.937.17 3.415 1.097a11.731 11.731 0 0 1 2.687-.308c.912 0 1.819.103 2.684.308 1.477-.933 2.614-1.227 3.422-1.097.085.014.158.032.218.051a1 1 0 0 1 .616.58c.487 1.215.52 2.296.302 3.19.691.936 1.058 2.045 1.058 3.292 0 3.758-1.674 5.666-4.642 6.393.125.415.19.878.19 1.38 0 .664-.002 1.299-.007 2.01 0 .19-.002.394-.005.706a1 1 0 0 1-.018 1.957c-1.14.228-1.984-.532-1.984-1.524l.002-.447.005-.705c.005-.707.008-1.338.008-1.997 0-.697-.184-1.152-.426-1.361-.661-.57-.326-1.654.541-1.751 2.966-.334 4.336-1.483 4.336-4.66 0-.955-.312-1.745-.913-2.405a1 1 0 0 1-.189-1.044c.166-.415.236-.957.095-1.614l-.01.002c-.491.14-1.11.44-1.858.95a1 1 0 0 1-.833.135 9.626 9.626 0 0 0-2.592-.35c-.89 0-1.772.12-2.592.35a1 1 0 0 1-.829-.133c-.753-.507-1.374-.807-1.87-.947-.143.653-.072 1.194.093 1.607a1 1 0 0 1-.189 1.044c-.597.656-.913 1.459-.913 2.404 0 3.172 1.371 4.33 4.322 4.66.865.098 1.202 1.178.545 1.749-.193.167-.43.732-.43 1.364v3.149c0 .986-.834 1.726-1.96 1.529a1 1 0 0 1-.04-1.963v-.99c-.91.062-1.661-.087-2.254-.484" />
<path d="M5.884 18.653c-.3-.2-.558-.456-.86-.816a51 51 0 0 1-.466-.579c-.463-.575-.755-.841-1.056-.95a1 1 0 1 1 .675-1.882c.752.27 1.261.735 1.947 1.588-.094-.117.34.427.433.539.19.227.33.365.44.438.204.137.588.196 1.15.14.024-.382.094-.753.202-1.096-2.968-.725-4.648-2.64-4.648-6.396 0-1.238.37-2.355 1.058-3.291-.218-.894-.185-1.975.302-3.192a1 1 0 0 1 .63-.583c.081-.024.127-.034.208-.047.803-.123 1.937.17 3.415 1.097a11.7 11.7 0 0 1 2.687-.308c.912 0 1.819.103 2.684.308 1.477-.933 2.614-1.227 3.422-1.097q.128.022.218.051a1 1 0 0 1 .616.58c.487 1.215.52 2.296.302 3.19.691.936 1.058 2.045 1.058 3.292 0 3.758-1.674 5.666-4.642 6.393.125.415.19.878.19 1.38 0 .664-.002 1.299-.007 2.01 0 .19-.002.394-.005.706a1 1 0 0 1-.018 1.957c-1.14.228-1.984-.532-1.984-1.524l.002-.447.005-.705c.005-.707.008-1.338.008-1.997 0-.697-.184-1.152-.426-1.361-.661-.57-.326-1.654.541-1.751 2.966-.334 4.336-1.483 4.336-4.66 0-.955-.312-1.745-.913-2.405a1 1 0 0 1-.189-1.044c.166-.415.236-.957.095-1.614l-.01.002c-.491.14-1.11.44-1.858.95a1 1 0 0 1-.833.135 9.6 9.6 0 0 0-2.592-.35c-.89 0-1.772.12-2.592.35a1 1 0 0 1-.829-.133c-.753-.507-1.374-.807-1.87-.947-.143.653-.072 1.194.093 1.607a1 1 0 0 1-.189 1.044c-.597.656-.913 1.459-.913 2.404 0 3.172 1.371 4.33 4.322 4.66.865.098 1.202 1.178.545 1.749-.193.167-.43.732-.43 1.364v3.149c0 .986-.834 1.726-1.96 1.529a1 1 0 0 1-.04-1.963v-.99c-.91.062-1.661-.087-2.254-.484" />
</svg>
);
export default Github;

View File

@@ -1,7 +1,7 @@
import type { SVGProps } from 'preact/compat';
import type { SVGProps } from 'react';
const Instagram = (props: SVGProps<SVGSVGElement>) => (
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" {...props}>
<path d="M12.001 9a3 3 0 1 0 0 6 3 3 0 0 0 0-6m0-2a5 5 0 1 1 0 10 5 5 0 0 1 0-10m6.5-.25a1.25 1.25 0 0 1-2.5 0 1.25 1.25 0 0 1 2.5 0M12.001 4c-2.474 0-2.878.007-4.029.058-.784.037-1.31.142-1.798.332-.434.168-.747.369-1.08.703a2.89 2.89 0 0 0-.704 1.08c-.19.49-.295 1.015-.331 1.798C4.007 9.075 4 9.461 4 12c0 2.475.007 2.878.058 4.029.037.783.142 1.31.331 1.797.17.435.37.748.702 1.08.337.336.65.537 1.08.703.494.191 1.02.297 1.8.333 1.104.052 1.49.058 4.029.058 2.475 0 2.878-.007 4.029-.058.782-.037 1.308-.142 1.797-.331.433-.169.748-.37 1.08-.703.337-.336.538-.649.704-1.08.19-.492.296-1.018.332-1.8.052-1.103.058-1.49.058-4.028 0-2.474-.007-2.878-.058-4.029-.037-.782-.143-1.31-.332-1.798a2.912 2.912 0 0 0-.703-1.08 2.884 2.884 0 0 0-1.08-.704c-.49-.19-1.016-.295-1.798-.331C14.926 4.006 14.54 4 12 4m0-2c2.717 0 3.056.01 4.123.06 1.064.05 1.79.217 2.427.465.66.254 1.216.598 1.772 1.153a4.908 4.908 0 0 1 1.153 1.772c.247.637.415 1.363.465 2.428.047 1.066.06 1.405.06 4.122 0 2.717-.01 3.056-.06 4.122-.05 1.065-.218 1.79-.465 2.428a4.884 4.884 0 0 1-1.153 1.772 4.915 4.915 0 0 1-1.772 1.153c-.637.247-1.363.415-2.427.465-1.067.047-1.406.06-4.123.06-2.717 0-3.056-.01-4.123-.06-1.064-.05-1.789-.218-2.427-.465a4.89 4.89 0 0 1-1.772-1.153 4.905 4.905 0 0 1-1.153-1.772c-.248-.637-.415-1.363-.465-2.428-.048-1.066-.06-1.405-.06-4.122 0-2.717.01-3.056.06-4.122.05-1.065.217-1.79.465-2.428a4.88 4.88 0 0 1 1.153-1.772 4.897 4.897 0 0 1 1.772-1.153c.637-.248 1.362-.415 2.427-.465C8.945 2.013 9.284 2 12.001 2" />
<path d="M12.001 9a3 3 0 1 0 0 6 3 3 0 0 0 0-6m0-2a5 5 0 1 1 0 10 5 5 0 0 1 0-10m6.5-.25a1.25 1.25 0 0 1-2.5 0 1.25 1.25 0 0 1 2.5 0M12.001 4c-2.474 0-2.878.007-4.029.058-.784.037-1.31.142-1.798.332-.434.168-.747.369-1.08.703a2.9 2.9 0 0 0-.704 1.08c-.19.49-.295 1.015-.331 1.798C4.007 9.075 4 9.461 4 12c0 2.475.007 2.878.058 4.029.037.783.142 1.31.331 1.797.17.435.37.748.702 1.08.337.336.65.537 1.08.703.494.191 1.02.297 1.8.333 1.104.052 1.49.058 4.029.058 2.475 0 2.878-.007 4.029-.058.782-.037 1.308-.142 1.797-.331.433-.169.748-.37 1.08-.703.337-.336.538-.649.704-1.08.19-.492.296-1.018.332-1.8.052-1.103.058-1.49.058-4.028 0-2.474-.007-2.878-.058-4.029-.037-.782-.143-1.31-.332-1.798a2.9 2.9 0 0 0-.703-1.08 2.9 2.9 0 0 0-1.08-.704c-.49-.19-1.016-.295-1.798-.331C14.926 4.006 14.54 4 12 4m0-2c2.717 0 3.056.01 4.123.06 1.064.05 1.79.217 2.427.465.66.254 1.216.598 1.772 1.153a4.9 4.9 0 0 1 1.153 1.772c.247.637.415 1.363.465 2.428.047 1.066.06 1.405.06 4.122s-.01 3.056-.06 4.122-.218 1.79-.465 2.428a4.9 4.9 0 0 1-1.153 1.772 4.9 4.9 0 0 1-1.772 1.153c-.637.247-1.363.415-2.427.465-1.067.047-1.406.06-4.123.06s-3.056-.01-4.123-.06c-1.064-.05-1.789-.218-2.427-.465a4.9 4.9 0 0 1-1.772-1.153 4.9 4.9 0 0 1-1.153-1.772c-.248-.637-.415-1.363-.465-2.428-.048-1.066-.06-1.405-.06-4.122s.01-3.056.06-4.122.217-1.79.465-2.428a4.9 4.9 0 0 1 1.153-1.772 4.9 4.9 0 0 1 1.772-1.153c.637-.248 1.362-.415 2.427-.465C8.945 2.013 9.284 2 12.001 2" />
</svg>
);
export default Instagram;

View File

@@ -1,4 +1,4 @@
import type { SVGProps } from 'preact/compat';
import type { SVGProps } from 'react';
const Mail = (props: SVGProps<SVGSVGElement>) => (
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" {...props}>
<path d="M3 3h18a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1m17 4.238-7.928 7.1L4 7.216V19h16zM4.511 5l7.55 6.662L19.502 5z" />

View File

@@ -1,4 +1,4 @@
import type { SVGProps } from 'preact/compat';
import type { SVGProps } from 'react';
const MailSend = (props: SVGProps<SVGSVGElement>) => (
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" {...props}>
<path d="M21 3a1 1 0 0 1 1 1v16.007a1 1 0 0 1-.992.993H2.992A.993.993 0 0 1 2 20.007V19h18V7.3l-8 7.2-10-9V4a1 1 0 0 1 1-1zM8 15v2H0v-2zm-3-5v2H0v-2zm14.566-5H4.434L12 11.81z" />

View File

@@ -1,4 +1,4 @@
import type { SVGProps } from 'preact/compat';
import type { SVGProps } from 'react';
const Rss = (props: SVGProps<SVGSVGElement>) => (
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" {...props}>
<path d="M3 17a4 4 0 0 1 4 4H3zm0-7c6.075 0 11 4.925 11 11h-2a9 9 0 0 0-9-9zm0-7c9.941 0 18 8.059 18 18h-2c0-8.837-7.163-16-16-16z" />

View File

@@ -1,7 +1,7 @@
import type { SVGProps } from 'preact/compat';
import type { SVGProps } from 'react';
const Search = (props: SVGProps<SVGSVGElement>) => (
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" {...props}>
<path d="m18.031 16.617 4.283 4.282-1.415 1.415-4.282-4.283A8.96 8.96 0 0 1 11 20c-4.968 0-9-4.032-9-9s4.032-9 9-9 9 4.032 9 9a8.96 8.96 0 0 1-1.969 5.617m-2.006-.742A6.977 6.977 0 0 0 18 11c0-3.867-3.133-7-7-7s-7 3.133-7 7 3.133 7 7 7a6.977 6.977 0 0 0 4.875-1.975z" />
<path d="m18.031 16.617 4.283 4.282-1.415 1.415-4.282-4.283A8.96 8.96 0 0 1 11 20c-4.968 0-9-4.032-9-9s4.032-9 9-9 9 4.032 9 9a8.96 8.96 0 0 1-1.969 5.617m-2.006-.742A6.98 6.98 0 0 0 18 11c0-3.867-3.133-7-7-7s-7 3.133-7 7 3.133 7 7 7a6.98 6.98 0 0 0 4.875-1.975z" />
</svg>
);
export default Search;

View File

@@ -1,7 +1,7 @@
import type { SVGProps } from 'preact/compat';
import type { SVGProps } from 'react';
const Twitter = (props: SVGProps<SVGSVGElement>) => (
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" {...props}>
<path d="M15.35 5.55a2.9 2.9 0 0 0-2.9 2.846l-.028 1.575a.6.6 0 0 1-.68.584l-1.562-.213c-2.053-.28-4.021-1.225-5.91-2.798-.597 3.31.57 5.603 3.383 7.372L9.4 16.014a.6.6 0 0 1 .035.992L7.843 18.17c.947.06 1.846.018 2.592-.13 4.718-.942 7.855-4.492 7.855-10.348 0-.478-1.013-2.141-2.94-2.141m-4.9 2.81a4.9 4.9 0 0 1 8.385-3.355c.711-.005 1.316.175 2.668-.646-.334 1.64-.5 2.353-1.213 3.332 0 7.641-4.697 11.358-9.464 12.309-3.267.652-8.02-.419-9.38-1.842.693-.053 3.513-.356 5.143-1.55-1.38-.91-6.868-4.14-3.261-12.822 1.693 1.977 3.41 3.322 5.15 4.037 1.157.475 1.442.465 1.973.538" />
<path d="M15.35 5.55a2.9 2.9 0 0 0-2.9 2.846l-.028 1.575a.6.6 0 0 1-.68.584l-1.562-.213c-2.053-.28-4.021-1.225-5.91-2.798-.597 3.31.57 5.603 3.383 7.372L9.4 16.014a.6.6 0 0 1 .035.992L7.843 18.17c.947.06 1.846.018 2.592-.13 4.718-.942 7.855-4.492 7.855-10.348 0-.478-1.013-2.141-2.94-2.141m-4.9 2.81a4.9 4.9 0 0 1 8.385-3.355c.711-.005 1.316.175 2.668-.646-.334 1.64-.5 2.353-1.213 3.332 0 7.641-4.697 11.358-9.464 12.309-3.267.652-8.02-.419-9.38-1.842.693-.053 3.513-.356 5.143-1.55-1.38-.91-6.868-4.14-3.261-12.822q2.54 2.965 5.15 4.037c1.157.475 1.442.465 1.973.538" />
</svg>
);
export default Twitter;

View File

@@ -1,4 +1,4 @@
import type { SVGProps } from 'preact/compat';
import type { SVGProps } from 'react';
const TwitterX = (props: SVGProps<SVGSVGElement>) => (
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" {...props}>
<path d="M8 2H1l8.26 11.015L1.45 22H4.1l6.388-7.349L16 22h7l-8.608-11.478L21.8 2h-2.65l-5.986 6.886zm9 18L5 4h2l12 16z" />