atagen

malice

public
Star0
Watch0
f12c7de2a3ab83d8b3f716f519bb7fcdee39fe58
2
ssh://brewery@pls.lobotomise.me:33/atagen/malice.git

Blame: web/src/lib/Emoji.svelte

544a170ead2catagen2026-10-20 11:47 UTC1
<script lang="ts">
544a170ead2catagen2026-10-20 11:47 UTC2
  import { twemojiUrl } from './twemoji';
544a170ead2catagen2026-10-20 11:47 UTC3
544a170ead2catagen2026-10-20 11:47 UTC4
  export let emoji: string;
544a170ead2catagen2026-10-20 11:47 UTC5
  export let size: number | string = 20;
544a170ead2catagen2026-10-20 11:47 UTC6
  export let label: string | null = null;
544a170ead2catagen2026-10-20 11:47 UTC7
544a170ead2catagen2026-10-20 11:47 UTC8
  let failed = false;
544a170ead2catagen2026-10-20 11:47 UTC9
  $: emoji, (failed = false);
544a170ead2catagen2026-10-20 11:47 UTC10
  $: dim = typeof size === 'number' ? `${size}px` : size;
544a170ead2catagen2026-10-20 11:47 UTC11
  $: align = typeof size === 'number' ? 'middle' : '-0.25em';
544a170ead2catagen2026-10-20 11:47 UTC12
</script>
544a170ead2catagen2026-10-20 11:47 UTC13
544a170ead2catagen2026-10-20 11:47 UTC14
{#if failed}
544a170ead2catagen2026-10-20 11:47 UTC15
  <span class="native" style={`font-size:${dim}`} aria-label={label ?? undefined}>{emoji}</span>
544a170ead2catagen2026-10-20 11:47 UTC16
{:else}
544a170ead2catagen2026-10-20 11:47 UTC17
  <img
544a170ead2catagen2026-10-20 11:47 UTC18
    class="emoji"
544a170ead2catagen2026-10-20 11:47 UTC19
    src={twemojiUrl(emoji)}
544a170ead2catagen2026-10-20 11:47 UTC20
    alt={emoji}
544a170ead2catagen2026-10-20 11:47 UTC21
    aria-label={label ?? undefined}
544a170ead2catagen2026-10-20 11:47 UTC22
    style={`width:${dim};height:${dim};vertical-align:${align}`}
544a170ead2catagen2026-10-20 11:47 UTC23
    draggable="false"
544a170ead2catagen2026-10-20 11:47 UTC24
    loading="lazy"
544a170ead2catagen2026-10-20 11:47 UTC25
    on:error={() => (failed = true)}
544a170ead2catagen2026-10-20 11:47 UTC26
  />
544a170ead2catagen2026-10-20 11:47 UTC27
{/if}
544a170ead2catagen2026-10-20 11:47 UTC28
544a170ead2catagen2026-10-20 11:47 UTC29
<style>
544a170ead2catagen2026-10-20 11:47 UTC30
  .emoji { display: inline-block; object-fit: contain; }
544a170ead2catagen2026-10-20 11:47 UTC31
  .native { display: inline-block; line-height: 1; vertical-align: middle; }
544a170ead2catagen2026-10-20 11:47 UTC32
</style>