summaryrefslogtreecommitdiffstats
path: root/src/ui/objects/Emoji.tsx
diff options
context:
space:
mode:
authorVolpeon <git@volpeon.ink>2026-07-22 19:40:59 +0200
committerVolpeon <git@volpeon.ink>2026-07-22 19:40:59 +0200
commitc1e28224aa2e1450031669d9a7e359b63e04687d (patch)
tree68f3d8905c763a91f68001d868197effa92adafa /src/ui/objects/Emoji.tsx
downloadcorvos-website-c1e28224aa2e1450031669d9a7e359b63e04687d.tar.gz
corvos-website-c1e28224aa2e1450031669d9a7e359b63e04687d.tar.bz2
corvos-website-c1e28224aa2e1450031669d9a7e359b63e04687d.zip
Init
Diffstat (limited to 'src/ui/objects/Emoji.tsx')
-rw-r--r--src/ui/objects/Emoji.tsx21
1 files changed, 21 insertions, 0 deletions
diff --git a/src/ui/objects/Emoji.tsx b/src/ui/objects/Emoji.tsx
new file mode 100644
index 0000000..f04f776
--- /dev/null
+++ b/src/ui/objects/Emoji.tsx
@@ -0,0 +1,21 @@
1import site from "@/corvos.config.ts";
2
3export interface Props {
4 pack: string;
5 emoji: string;
6 size?: "125" | "150" | "200";
7 class?: string;
8}
9
10export const Emoji = site.$.component(
11 ({ pack, emoji, size, class: cls, ...props }: Props, pages) => {
12 const query = site.$.query(pages);
13 const sprite = query.type(".svg").match({ emojiPack: pack }).one();
14
15 return (
16 <svg class:list={["o-emoji o-emoji--sprite", { [`o-emoji--${size}`]: size }, cls]} {...props}>
17 <use href={`${sprite.url}#${emoji}`} />
18 </svg>
19 );
20 },
21);