Grasco
Profile Picture UI

Svelte

Using Profile Picture components in Svelte

Installation

npm install @grasco/profile-picture

Setup

Add type definitions for custom elements in src/app.d.ts:

declare namespace svelteHTML {
  interface IntrinsicElements {
    'profile-picture': any;
    'profile-picture-group': any;
  }
}

Import

<script>
  import '@grasco/profile-picture/standalone';
  import { setCdnBaseUrl } from '@grasco/profile-picture';
  import { onMount } from 'svelte';

  onMount(() => {
    setCdnBaseUrl('https://api.grasco.dev');
  });
</script>

Usage

<profile-picture
  src="https://example.com/avatar.png"
  alt="Kerry Nicholson"
  size="xl"
  variant="circle"
  border="true"
  border-color="white"
  on:load={() => console.log('loaded')}
  on:profile-picture-click={(e) => console.log('clicked', e.detail)}
/>

Group Example

<profile-picture-group max="4" size="lg" on:avatar-click={(e) => console.log(e.detail.user)}>
  {#each users as user}
    <profile-picture src={user.avatar} alt={user.name} data-user-id={user.id} />
  {/each}
</profile-picture-group>

TypeScript

import type { Size, Variant, PresenceStatus } from '@grasco/profile-picture';

On this page