What this family solves
Canonical identity family with a base Avatar component, two scoped compositions, and thin semantic wrappers for profile, presence, and team contexts.
Marwes documentation
Canonical identity family with a base Avatar component, two scoped compositions, and thin semantic wrappers for profile, presence, and team contexts.
Canonical identity family with a base Avatar component, two scoped compositions, and thin semantic wrappers for profile, presence, and team contexts.
Choose the purpose wrapper that matches the meaning; use Avatar as the deliberate primitive escape hatch.
A person's identity image, initials, or icon fallback
An avatar with an online, away, or offline status indicator
A compact overlapping group of members with an overflow count
Base avatar for custom contexts; the deliberate escape hatch
Choose an adapter in the verified examples. The inventory below reflects each framework package exactly.
@marwes-ui/reactAvatar, AvatarBadge, AvatarGroup, PresenceAvatar, ProfileAvatar, TeamAvatarGroup
AvatarBadgeProps, AvatarGroupItem, AvatarGroupProps, AvatarProps, PresenceAvatarProps, ProfileAvatarProps, TeamAvatarGroupProps
AvatarSize, AvatarType
@marwes-ui/vueAvatar, AvatarBadge, AvatarGroup, PresenceAvatar, ProfileAvatar, TeamAvatarGroup
AvatarBadgeProps, AvatarGroupItem, AvatarGroupProps, AvatarProps, PresenceAvatarProps, ProfileAvatarProps, TeamAvatarGroupProps
AvatarSize, AvatarType
@marwes-ui/svelteAvatar, AvatarBadge, AvatarGroup, PresenceAvatar, ProfileAvatar, TeamAvatarGroup
AvatarBadgeProps, AvatarGroupItem, AvatarGroupProps, AvatarProps, PresenceAvatarProps, ProfileAvatarProps, TeamAvatarGroupProps
AvatarSize, AvatarType
These examples come from the same fixtures verified by the repository checks.
import { Avatar, AvatarBadge, AvatarGroup } from "@marwes-ui/react"
export function Example() {
return (
<>
<AvatarGroup
items={[
{ initials: "MO" },
{ initials: "MO" },
{ initials: "MO" },
{ type: "icon", label: "Guest member" },
]}
overflowCount={3}
/>
<AvatarBadge initials="MO" statusLabel="Online" />
<Avatar src="/avatar.png" alt="User" />
<Avatar initials="MO" size="small" />
<Avatar type="icon" label="User icon fallback" />
</>
)
}<script setup lang="ts">
import { Avatar, AvatarBadge, AvatarGroup } from "@marwes-ui/vue"
</script>
<template>
<AvatarGroup
:items="[
{ initials: 'MO' },
{ initials: 'MO' },
{ initials: 'MO' },
{ type: 'icon', label: 'Guest member' },
]"
:overflow-count="3"
/>
<AvatarBadge initials="MO" status-label="Online" />
<Avatar src="/avatar.png" alt="User" />
<Avatar initials="MO" size="small" />
<Avatar type="icon" label="User icon fallback" />
</template><script lang="ts">
import { Avatar, AvatarBadge, AvatarGroup } from "@marwes-ui/svelte"
</script>
<AvatarGroup
items={[
{ initials: "MO" },
{ initials: "MO" },
{ initials: "MO" },
{ type: "icon", label: "Guest member" },
]}
overflowCount={3}
/>
<AvatarBadge initials="MO" statusLabel="Online" />
<Avatar src="/avatar.png" alt="User" />
<Avatar initials="MO" size="small" />
<Avatar type="icon" label="User icon fallback" />Avatar uses Marwes preset CSS and theme variables. Customize it through the theme passed to MarwesProvider; do not add a second component stylesheet. See the theming guide for configuration and token details.