-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
feat(component): Add SNS component (#44)
Render SNS icon and link.
- Loading branch information
Showing
5 changed files
with
173 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,61 @@ | ||
--- | ||
import { Icon } from "astro-icon/components"; | ||
import { type contact, getContact } from "../../libs/contact.ts"; | ||
import type { serviceName } from "../../types/services.ts"; | ||
import "../../styles/global.css"; | ||
export type Props = { service: serviceName; id: string }; | ||
const { service, id } = Astro.props; | ||
const { url, icon, color }: contact = getContact(service, id); | ||
--- | ||
|
||
<a | ||
href={url} | ||
target="_blank" | ||
rel="noopener noreferrer" | ||
aria-label={`Go to ${id}'s profile on ${service}`} | ||
> | ||
<Icon name={icon} /> | ||
<span>{id}</span> | ||
</a> | ||
|
||
<style define:vars={{ "accent-color": color }}> | ||
a { | ||
display: inline-flex; | ||
align-items: center; | ||
gap: 0.5rem; | ||
text-decoration: none; | ||
color: var(--foreground); | ||
border-bottom: 2px solid | ||
color-mix(in srgb, var(--foreground) 30%, transparent); | ||
transition: | ||
color 0.3s ease-in-out, | ||
border-color 0.3s ease-in-out; | ||
|
||
&:hover, | ||
&:focus-visible { | ||
color: color-mix(in srgb, var(--accent-color) 20%, var(--foreground)); | ||
border-color: color-mix( | ||
in srgb, | ||
var(--accent-color) 60%, | ||
var(--foreground) | ||
); | ||
} | ||
} | ||
|
||
svg { | ||
width: 1.5rem; | ||
height: auto; | ||
opacity: 80%; | ||
} | ||
|
||
span { | ||
font-family: "LINE Seed JP", sans-serif; | ||
font-size: 1rem; | ||
font-style: normal; | ||
font-weight: bold; | ||
line-height: normal; | ||
} | ||
</style> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,16 @@ | ||
import SNS from "./SNS.astro"; | ||
import * as stories from "./story.ts"; | ||
|
||
export default { | ||
title: "SNS Links", | ||
component: SNS, | ||
}; | ||
|
||
export const Bluesky = { args: stories.Bluesky }; | ||
export const Facebook = { args: stories.Facebook }; | ||
export const GitHub = { args: stories.GitHub }; | ||
export const Instagram = { args: stories.Instagram }; | ||
export const Mastodon = { args: stories.Mastodon }; | ||
export const Misskey = { args: stories.Misskey }; | ||
export const Posts = { args: stories.Posts }; | ||
export const Twitter = { args: stories.Twitter }; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,38 @@ | ||
import { experimental_AstroContainer as AstroContainer } from "astro/container"; | ||
import { describe, expect, test } from "vitest"; | ||
|
||
import SNS from "./SNS.astro"; | ||
import * as stories from "./story.ts"; | ||
|
||
describe("SNS", () => { | ||
describe("Valid service and ID", () => { | ||
for (const [name, props] of Object.entries(stories)) { | ||
test(name, async () => { | ||
const container: AstroContainer = await AstroContainer.create(); | ||
const result: string = await container.renderToString(SNS, { | ||
props, | ||
}); | ||
|
||
expect(result).toMatchSnapshot(); | ||
}); | ||
} | ||
}); | ||
|
||
describe("Invalid service or ID", () => { | ||
const invalidProps: { service: string; id: string }[] = [ | ||
{ service: "Mastodon", id: "invalid-id" }, | ||
{ service: "Misskey", id: "invalid-id" }, | ||
{ service: "invalid-service", id: "id" }, | ||
]; | ||
|
||
for (const props of invalidProps) { | ||
test(props.service, async () => { | ||
const container: AstroContainer = await AstroContainer.create(); | ||
|
||
await expect( | ||
container.renderToString(SNS, { props }), | ||
).rejects.toThrow(); | ||
}); | ||
} | ||
}); | ||
}); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,17 @@ | ||
// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html | ||
|
||
exports[`SNS > Valid service and ID > Bluesky 1`] = `"<a href="https://bsky.app/profile/bsky.app" target="_blank" rel="noopener noreferrer" aria-label="Go to bsky.app's profile on Bluesky" data-astro-cid-ilwnnabb style="--accent-color: #0285FF;"> <svg width="1em" height="1em" data-astro-cid-ilwnnabb data-icon="mingcute:bluesky-social-line"> <symbol id="ai:mingcute:bluesky-social-line" viewBox="0 0 24 24"><g fill="none" fill-rule="evenodd"><path d="m12.594 23.258l-.012.002l-.071.035l-.02.004l-.014-.004l-.071-.036q-.016-.004-.024.006l-.004.01l-.017.428l.005.02l.01.013l.104.074l.015.004l.012-.004l.104-.074l.012-.016l.004-.017l-.017-.427q-.004-.016-.016-.018m.264-.113l-.014.002l-.184.093l-.01.01l-.003.011l.018.43l.005.012l.008.008l.201.092q.019.005.029-.008l.004-.014l-.034-.614q-.005-.019-.02-.022m-.715.002a.02.02 0 0 0-.027.006l-.006.014l-.034.614q.001.018.017.024l.015-.002l.201-.093l.01-.008l.003-.011l.018-.43l-.003-.012l-.01-.01z"/><path fill="currentColor" d="M4.747 5.105a.94.94 0 0 0-.41.892l.314 3.287A3 3 0 0 0 7.637 12H9a1 1 0 0 1 .371 1.928l-2.34.937c-.885.354-1.122 1.32-.664 1.932c.288.384.576.731.84.996c.233.233.532.485.865.74c.619.475 1.625.214 1.94-.734l1.04-3.115a1 1 0 0 1 1.897 0l1.038 3.115c.316.948 1.322 1.21 1.941.735a9 9 0 0 0 .865-.741c.265-.265.553-.612.84-.996c.458-.612.222-1.578-.664-1.932l-2.34-.937A1 1 0 0 1 15 12h1.363a3 3 0 0 0 2.986-2.716l.314-3.287a.94.94 0 0 0-.41-.892a.75.75 0 0 0-.858-.001c-2.645 1.708-4.05 3.442-5.5 6.343a1 1 0 0 1-1.79 0c-1.45-2.901-2.855-4.635-5.5-6.343a.75.75 0 0 0-.858.001m-2.4 1.082C2.13 3.913 4.567 2.053 6.69 3.424C9.13 5 10.662 6.639 12 8.9c1.338-2.261 2.87-3.9 5.31-5.476c2.123-1.371 4.56.49 4.344 2.763l-.314 3.287a5 5 0 0 1-2.783 4.02c1.329 1.039 1.818 2.978.677 4.502c-.317.423-.669.853-1.027 1.211c-.317.317-.69.628-1.062.914c-1.88 1.441-4.375.35-5.055-1.69l-.09-.269l-.09.27c-.68 2.04-3.175 3.13-5.055 1.689a11 11 0 0 1-1.062-.914a11.5 11.5 0 0 1-1.027-1.211c-1.141-1.524-.651-3.463.678-4.502a5 5 0 0 1-2.784-4.02z"/></g></symbol><use href="#ai:mingcute:bluesky-social-line"></use> </svg> <span data-astro-cid-ilwnnabb style="--accent-color: #0285FF;">bsky.app</span> </a> "`; | ||
|
||
exports[`SNS > Valid service and ID > Facebook 1`] = `"<a href="https://www.facebook.com/facebook" target="_blank" rel="noopener noreferrer" aria-label="Go to facebook's profile on Facebook" data-astro-cid-ilwnnabb style="--accent-color: #0866FF;"> <svg width="1em" height="1em" data-astro-cid-ilwnnabb data-icon="mingcute:facebook-line"> <symbol id="ai:mingcute:facebook-line" viewBox="0 0 24 24"><g fill="none" fill-rule="evenodd"><path d="m12.593 23.258l-.011.002l-.071.035l-.02.004l-.014-.004l-.071-.035q-.016-.005-.024.005l-.004.01l-.017.428l.005.02l.01.013l.104.074l.015.004l.012-.004l.104-.074l.012-.016l.004-.017l-.017-.427q-.004-.016-.017-.018m.265-.113l-.013.002l-.185.093l-.01.01l-.003.011l.018.43l.005.012l.008.007l.201.093q.019.005.029-.008l.004-.014l-.034-.614q-.005-.018-.02-.022m-.715.002a.02.02 0 0 0-.027.006l-.006.014l-.034.614q.001.018.017.024l.015-.002l.201-.093l.01-.008l.004-.011l.017-.43l-.003-.012l-.01-.01z"/><path fill="currentColor" d="M4 12a8 8 0 1 1 9 7.938V14h2a1 1 0 1 0 0-2h-2v-2a1 1 0 0 1 1-1h.5a1 1 0 1 0 0-2H14a3 3 0 0 0-3 3v2H9a1 1 0 1 0 0 2h2v5.938A8 8 0 0 1 4 12m8 10c5.523 0 10-4.477 10-10S17.523 2 12 2S2 6.477 2 12s4.477 10 10 10"/></g></symbol><use href="#ai:mingcute:facebook-line"></use> </svg> <span data-astro-cid-ilwnnabb style="--accent-color: #0866FF;">facebook</span> </a> "`; | ||
|
||
exports[`SNS > Valid service and ID > GitHub 1`] = `"<a href="https://github.com/github" target="_blank" rel="noopener noreferrer" aria-label="Go to github's profile on GitHub" data-astro-cid-ilwnnabb style="--accent-color: #181717;"> <svg width="1em" height="1em" data-astro-cid-ilwnnabb data-icon="mingcute:github-line"> <symbol id="ai:mingcute:github-line" viewBox="0 0 24 24"><g fill="none"><path d="m12.593 23.258l-.011.002l-.071.035l-.02.004l-.014-.004l-.071-.035q-.016-.005-.024.005l-.004.01l-.017.428l.005.02l.01.013l.104.074l.015.004l.012-.004l.104-.074l.012-.016l.004-.017l-.017-.427q-.004-.016-.017-.018m.265-.113l-.013.002l-.185.093l-.01.01l-.003.011l.018.43l.005.012l.008.007l.201.093q.019.005.029-.008l.004-.014l-.034-.614q-.005-.018-.02-.022m-.715.002a.02.02 0 0 0-.027.006l-.006.014l-.034.614q.001.018.017.024l.015-.002l.201-.093l.01-.008l.004-.011l.017-.43l-.003-.012l-.01-.01z"/><path fill="currentColor" d="M6.315 6.176c-.25-.638-.24-1.367-.129-2.034a6.8 6.8 0 0 1 2.12 1.07c.28.214.647.283.989.18A9.3 9.3 0 0 1 12 5c.961 0 1.874.14 2.703.391c.342.104.709.034.988-.18a6.8 6.8 0 0 1 2.119-1.07c.111.667.12 1.396-.128 2.033c-.15.384-.075.826.208 1.14C18.614 8.117 19 9.04 19 10c0 2.114-1.97 4.187-5.134 4.818c-.792.158-1.101 1.155-.495 1.726c.389.366.629.882.629 1.456v3a1 1 0 0 0 2 0v-3c0-.57-.12-1.112-.334-1.603C18.683 15.35 21 12.993 21 10c0-1.347-.484-2.585-1.287-3.622c.21-.82.191-1.646.111-2.28c-.071-.568-.17-1.312-.57-1.756c-.595-.659-1.58-.271-2.28-.032a9 9 0 0 0-2.125 1.045A11.4 11.4 0 0 0 12 3c-.994 0-1.953.125-2.851.356a9 9 0 0 0-2.125-1.045c-.7-.24-1.686-.628-2.281.031c-.408.452-.493 1.137-.566 1.719l-.005.038c-.08.635-.098 1.462.112 2.283C3.484 7.418 3 8.654 3 10c0 2.992 2.317 5.35 5.334 6.397A4 4 0 0 0 8 17.98l-.168.034c-.717.099-1.176.01-1.488-.122c-.76-.322-1.152-1.133-1.63-1.753c-.298-.385-.732-.866-1.398-1.088a1 1 0 0 0-.632 1.898c.558.186.944 1.142 1.298 1.566c.373.448.869.916 1.58 1.218c.682.29 1.483.393 2.438.276V21a1 1 0 0 0 2 0v-3c0-.574.24-1.09.629-1.456c.607-.572.297-1.568-.495-1.726C6.969 14.187 5 12.114 5 10c0-.958.385-1.881 1.108-2.684c.283-.314.357-.756.207-1.14"/></g></symbol><use href="#ai:mingcute:github-line"></use> </svg> <span data-astro-cid-ilwnnabb style="--accent-color: #181717;">github</span> </a> "`; | ||
|
||
exports[`SNS > Valid service and ID > Instagram 1`] = `"<a href="https://www.instagram.com/instagram" target="_blank" rel="noopener noreferrer" aria-label="Go to instagram's profile on Instagram" data-astro-cid-ilwnnabb style="--accent-color: #E4405F;"> <svg width="1em" height="1em" data-astro-cid-ilwnnabb data-icon="mingcute:ins-line"> <symbol id="ai:mingcute:ins-line" viewBox="0 0 24 24"><g fill="none" fill-rule="evenodd"><path d="m12.593 23.258l-.011.002l-.071.035l-.02.004l-.014-.004l-.071-.035q-.016-.005-.024.005l-.004.01l-.017.428l.005.02l.01.013l.104.074l.015.004l.012-.004l.104-.074l.012-.016l.004-.017l-.017-.427q-.004-.016-.017-.018m.265-.113l-.013.002l-.185.093l-.01.01l-.003.011l.018.43l.005.012l.008.007l.201.093q.019.005.029-.008l.004-.014l-.034-.614q-.005-.018-.02-.022m-.715.002a.02.02 0 0 0-.027.006l-.006.014l-.034.614q.001.018.017.024l.015-.002l.201-.093l.01-.008l.004-.011l.017-.43l-.003-.012l-.01-.01z"/><path fill="currentColor" d="M16 3a5 5 0 0 1 5 5v8a5 5 0 0 1-5 5H8a5 5 0 0 1-5-5V8a5 5 0 0 1 5-5zm0 2H8a3 3 0 0 0-3 3v8a3 3 0 0 0 3 3h8a3 3 0 0 0 3-3V8a3 3 0 0 0-3-3m-4 3a4 4 0 1 1 0 8a4 4 0 0 1 0-8m0 2a2 2 0 1 0 0 4a2 2 0 0 0 0-4m4.5-3.5a1 1 0 1 1 0 2a1 1 0 0 1 0-2"/></g></symbol><use href="#ai:mingcute:ins-line"></use> </svg> <span data-astro-cid-ilwnnabb style="--accent-color: #E4405F;">instagram</span> </a> "`; | ||
|
||
exports[`SNS > Valid service and ID > Mastodon 1`] = `"<a href="https://mastodon.social/@Mastodon@mastodon.social" target="_blank" rel="noopener noreferrer" aria-label="Go to @Mastodon@mastodon.social's profile on Mastodon" data-astro-cid-ilwnnabb style="--accent-color: #6364FF;"> <svg width="1em" height="1em" data-astro-cid-ilwnnabb data-icon="mingcute:mastodon-line"> <symbol id="ai:mingcute:mastodon-line" viewBox="0 0 24 24"><g fill="none"><path d="m12.594 23.258l-.012.002l-.071.035l-.02.004l-.014-.004l-.071-.036q-.016-.004-.024.006l-.004.01l-.017.428l.005.02l.01.013l.104.074l.015.004l.012-.004l.104-.074l.012-.016l.004-.017l-.017-.427q-.004-.016-.016-.018m.264-.113l-.014.002l-.184.093l-.01.01l-.003.011l.018.43l.005.012l.008.008l.201.092q.019.005.029-.008l.004-.014l-.034-.614q-.005-.019-.02-.022m-.715.002a.02.02 0 0 0-.027.006l-.006.014l-.034.614q.001.018.017.024l.015-.002l.201-.093l.01-.008l.003-.011l.018-.43l-.003-.012l-.01-.01z"/><path fill="currentColor" d="M16.432 2.415a5.11 5.11 0 0 1 4.163 4.142c.431 2.361.528 4.682.04 7.108c-.406 2.023-2.006 3.532-4.01 3.893c-1.55.278-3.105.424-4.667.42c.722.144 1.471.17 2.21.186l.632.012l.395.002c.536.007 1.097.048 1.533.34c.266.178.535.51.533.985c0 .429-.231.732-.364.878c-.468.513-1.19.784-1.832.994c-1.042.339-2.46.6-4.06.607c-3.428.016-6.644-2.263-7.478-5.75c-.749-3.133-.743-6.648-.145-9.781a5.03 5.03 0 0 1 4.094-4.02a25.9 25.9 0 0 1 8.956-.016M7.822 4.4a3.03 3.03 0 0 0-2.475 2.424c-.552 2.89-.55 6.117.125 8.942c.602 2.514 2.951 4.227 5.523 4.215q.351-.001.684-.02a5.86 5.86 0 0 1-2.959-1.498c-.519-.495-1.115-1.254-.791-2.014c.201-.471.702-.721 1.2-.657c2.383.31 4.759.224 7.142-.204c1.223-.22 2.165-1.127 2.404-2.318c.426-2.119.35-4.177-.047-6.355a3.11 3.11 0 0 0-2.537-2.53a23.9 23.9 0 0 0-8.269.015M14 6a3 3 0 0 1 3 3v4a1 1 0 1 1-2 0V9a1 1 0 1 0-2 0v3a1 1 0 1 1-2 0V9a1 1 0 1 0-2 0v4a1 1 0 1 1-2 0V9a3 3 0 0 1 5-2.236A3 3 0 0 1 14 6"/></g></symbol><use href="#ai:mingcute:mastodon-line"></use> </svg> <span data-astro-cid-ilwnnabb style="--accent-color: #6364FF;">@Mastodon@mastodon.social</span> </a> "`; | ||
|
||
exports[`SNS > Valid service and ID > Misskey 1`] = `"<a href="https://misskey.io/@support@misskey.io" target="_blank" rel="noopener noreferrer" aria-label="Go to @support@misskey.io's profile on Misskey" data-astro-cid-ilwnnabb style="--accent-color: #A1CA03;"> <svg width="1em" height="1em" data-astro-cid-ilwnnabb data-icon="simple-icons:misskey"> <symbol id="ai:simple-icons:misskey" viewBox="0 0 24 24"><path fill="currentColor" d="M8.91 16.892c-1.039.003-1.931-.63-2.352-1.366c-.225-.322-.67-.437-.676 0v2.014q0 1.215-.876 2.1q-.85.86-2.078.86q-1.2 0-2.077-.86A2.93 2.93 0 0 1 0 17.54V6.46q0-.936.526-1.695a2.86 2.86 0 0 1 1.402-1.088a2.9 2.9 0 0 1 1-.177q1.353 0 2.253 1.063l2.997 3.515c.067.05.263.437.732.437c.47 0 .692-.386.758-.437l2.972-3.515Q13.567 3.5 14.918 3.5q.501 0 1.001.177a2.73 2.73 0 0 1 1.377 1.088q.55.758.55 1.695v11.08q0 1.215-.875 2.1q-.852.86-2.078.86q-1.201 0-2.078-.86a2.93 2.93 0 0 1-.85-2.1v-2.014c-.05-.55-.531-.204-.702 0c-.45.843-1.313 1.361-2.352 1.366M21.448 8.61q-1.05 0-1.802-.733q-.726-.759-.726-1.822c0-1.063.242-1.307.726-1.796a2.44 2.44 0 0 1 1.802-.758q1.05 0 1.803.758q.75.735.75 1.796q0 1.063-.75 1.822q-.751.732-1.803.733m.025.507q1.05 0 1.777.758q.75.759.751 1.822v6.248q0 1.064-.75 1.821a2.4 2.4 0 0 1-1.778.734q-1.05 0-1.802-.733a2.5 2.5 0 0 1-.75-1.822v-6.248a2.5 2.5 0 0 1 .75-1.822a2.44 2.44 0 0 1 1.802-.758"/></symbol><use href="#ai:simple-icons:misskey"></use> </svg> <span data-astro-cid-ilwnnabb style="--accent-color: #A1CA03;">@support@misskey.io</span> </a> "`; | ||
|
||
exports[`SNS > Valid service and ID > Posts 1`] = `"<a href="https://posts.cv/support" target="_blank" rel="noopener noreferrer" aria-label="Go to support's profile on Posts" data-astro-cid-ilwnnabb style="--accent-color: #111111;"> <svg width="1em" height="1em" data-astro-cid-ilwnnabb data-icon="simple-icons:readdotcv"> <symbol id="ai:simple-icons:readdotcv" viewBox="0 0 24 24"><path fill="currentColor" d="M20.832 3.367L8.668.108a3.15 3.15 0 0 0-3.856 2.226L.943 16.777a3.15 3.15 0 0 0 2.226 3.856l12.163 3.259a3.15 3.15 0 0 0 3.855-2.226l3.87-14.443a3.15 3.15 0 0 0-2.226-3.856M6.332 2.741A1.574 1.574 0 0 1 8.26 1.628l12.163 3.26a1.574 1.574 0 0 1 1.113 1.927l-3.87 14.444a1.574 1.574 0 0 1-1.928 1.113l-12.163-3.26a1.574 1.574 0 0 1-1.113-1.927zm2.634 2.336a.787.787 0 1 0-.407 1.52l9.122 2.444a.787.787 0 1 0 .407-1.52zM6.985 9.434a.787.787 0 0 1 .963-.557l9.123 2.445a.787.787 0 0 1-.408 1.52l-9.122-2.444a.787.787 0 0 1-.556-.964m-.055 3.244a.787.787 0 0 0-.407 1.52l5.32 1.427a.787.787 0 0 0 .408-1.52z"/></symbol><use href="#ai:simple-icons:readdotcv"></use> </svg> <span data-astro-cid-ilwnnabb style="--accent-color: #111111;">support</span> </a> "`; | ||
|
||
exports[`SNS > Valid service and ID > Twitter 1`] = `"<a href="https://twitter.com/twitter" target="_blank" rel="noopener noreferrer" aria-label="Go to twitter's profile on Twitter" data-astro-cid-ilwnnabb style="--accent-color: #1D9BF0;"> <svg width="1em" height="1em" data-astro-cid-ilwnnabb data-icon="mingcute:twitter-line"> <symbol id="ai:mingcute:twitter-line" viewBox="0 0 24 24"><g fill="none" fill-rule="evenodd"><path d="m12.593 23.258l-.011.002l-.071.035l-.02.004l-.014-.004l-.071-.035q-.016-.005-.024.005l-.004.01l-.017.428l.005.02l.01.013l.104.074l.015.004l.012-.004l.104-.074l.012-.016l.004-.017l-.017-.427q-.004-.016-.017-.018m.265-.113l-.013.002l-.185.093l-.01.01l-.003.011l.018.43l.005.012l.008.007l.201.093q.019.005.029-.008l.004-.014l-.034-.614q-.005-.018-.02-.022m-.715.002a.02.02 0 0 0-.027.006l-.006.014l-.034.614q.001.018.017.024l.015-.002l.201-.093l.01-.008l.004-.011l.017-.43l-.003-.012l-.01-.01z"/><path fill="currentColor" d="M17.817 6.989c-.353-.508-1.297-1.222-2.826-.914c-.892.179-1.425.62-1.764 1.202c-.361.62-.536 1.463-.536 2.444a1 1 0 0 1-1 1c-2.366 0-4.618-.703-6.513-2.604a10.5 10.5 0 0 0-.168 2.34c.053 1.086.312 2.175.927 3.108c.605.917 1.6 1.757 3.264 2.285a1 1 0 0 1 .41 1.655a8.5 8.5 0 0 1-1.796 1.405c1.06.11 2.082.118 3.03.032c1.92-.174 3.449-.723 4.405-1.5c2.013-1.632 3.09-4.066 2.89-8.144c-.034-.67.613-1.393.925-1.942c-.471.088-.943.072-1.248-.367M4.594 4.984a1 1 0 0 1 .941.429C7.011 7.572 8.783 8.47 10.75 8.674c.096-.841.323-1.672.75-2.404c.626-1.074 1.644-1.864 3.098-2.156c2.01-.404 3.54.324 4.427 1.215l1.792-.335a1 1 0 0 1 1.053 1.478l-1.72 3.022c.157 4.361-1.055 7.405-3.639 9.502c-1.37 1.112-3.332 1.743-5.485 1.938c-2.17.196-4.623-.041-7.061-.753a1 1 0 0 1 .007-1.922c1.226-.349 2.16-.65 3.003-1.177c-1.199-.636-2.082-1.468-2.707-2.416c-.868-1.318-1.19-2.788-1.254-4.113S3.141 8 3.343 7.115c.115-.505.249-1.011.434-1.495a1 1 0 0 1 .818-.636Z"/></g></symbol><use href="#ai:mingcute:twitter-line"></use> </svg> <span data-astro-cid-ilwnnabb style="--accent-color: #1D9BF0;">twitter</span> </a> "`; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,41 @@ | ||
import type { Props } from "./SNS.astro"; | ||
|
||
export const Bluesky: Props = { | ||
service: "Bluesky", | ||
id: "bsky.app", | ||
}; | ||
|
||
export const Facebook: Props = { | ||
service: "Facebook", | ||
id: "facebook", | ||
}; | ||
|
||
export const GitHub: Props = { | ||
service: "GitHub", | ||
id: "github", | ||
}; | ||
|
||
export const Instagram: Props = { | ||
service: "Instagram", | ||
id: "instagram", | ||
}; | ||
|
||
export const Mastodon: Props = { | ||
service: "Mastodon", | ||
id: "@Mastodon@mastodon.social", | ||
}; | ||
|
||
export const Misskey: Props = { | ||
service: "Misskey", | ||
id: "@support@misskey.io", | ||
}; | ||
|
||
export const Posts: Props = { | ||
service: "Posts", | ||
id: "support", | ||
}; | ||
|
||
export const Twitter: Props = { | ||
service: "Twitter", | ||
id: "twitter", | ||
}; |