avatargroupe
Utilisation
Enveloppez plusieurs Avatar dans un AvatarGroup pour les empiler.
<template>
<UAvatarGroup>
<UAvatar src="https://github.com/benjamincanac.png" alt="Benjamin Canac" />
<UAvatar src="https://github.com/HugoRCD.png" alt="Hugo Richard" />
<UAvatar src="https://github.com/atinux.png" alt="Sébastien Chopin" />
</UAvatarGroup>
</template>taille
Utilisez le prop size pour modifier la taille de tous les avatars.
<template>
<UAvatarGroup size="xl">
<UAvatar src="https://github.com/benjamincanac.png" alt="Benjamin Canac" loading="lazy" />
<UAvatar src="https://github.com/HugoRCD.png" alt="Hugo Richard" loading="lazy" />
<UAvatar src="https://github.com/atinux.png" alt="Sébastien Chopin" loading="lazy" />
</UAvatarGroup>
</template>max
Utilisez la prop max pour limiter le nombre d'avatars affichés. Le reste est affiché comme un avatar +X.
<template>
<UAvatarGroup :max="2">
<UAvatar src="https://github.com/benjamincanac.png" alt="Benjamin Canac" loading="lazy" />
<UAvatar src="https://github.com/HugoRCD.png" alt="Hugo Richard" loading="lazy" />
<UAvatar src="https://github.com/atinux.png" alt="Sébastien Chopin" loading="lazy" />
</UAvatarGroup>
</template>Couleur: badge{label="4.8+" class="align-text-top"}
Utilisez le prop color pour changer la couleur de tous les avatars.
<template>
<UAvatarGroup color="primary">
<UAvatar alt="Benjamin Canac" />
<UAvatar alt="Hugo Richard" />
<UAvatar alt="Sébastien Chopin" />
</UAvatarGroup>
</template>exemples
Avec tooltip
Enveloppez chaque avatar avec un Tooltip pour afficher une infobulle en survol.
<template>
<UAvatarGroup>
<UTooltip text="benjamincanac">
<UAvatar
src="https://github.com/benjamincanac.png"
alt="Benjamin Canac"
loading="lazy"
/>
</UTooltip>
<UTooltip text="HugoRCD">
<UAvatar
src="https://github.com/HugoRCD.png"
alt="Hugo Richard"
loading="lazy"
/>
</UTooltip>
<UTooltip text="atinux">
<UAvatar
src="https://github.com/atinux.png"
alt="Sébastien Chopin"
loading="lazy"
/>
</UTooltip>
</UAvatarGroup>
</template>
Avec chip
Enveloppez chaque avatar avec un Chip pour afficher une puce autour de l'avatar.
<template>
<UAvatarGroup>
<UAvatar
src="https://github.com/benjamincanac.png"
alt="Benjamin Canac"
loading="lazy"
:chip="{ inset: true, color: 'success' }"
/>
<UAvatar
src="https://github.com/HugoRCD.png"
alt="Hugo Richard"
loading="lazy"
:chip="{ inset: true, color: 'warning' }"
/>
<UAvatar
src="https://github.com/atinux.png"
alt="Sébastien Chopin"
loading="lazy"
:chip="{ inset: true, color: 'error' }"
/>
</UAvatarGroup>
</template>
Avec le lien
Envelopper chaque avatar avec un Link pour les rendre cliquables.
<template>
<UAvatarGroup>
<ULink
to="https://github.com/benjamincanac"
target="_blank"
class="hover:ring-primary transition"
raw
>
<UAvatar
src="https://github.com/benjamincanac.png"
alt="Benjamin Canac"
loading="lazy"
/>
</ULink>
<ULink
to="https://github.com/HugoRCD"
target="_blank"
class="hover:ring-primary transition"
raw
>
<UAvatar
src="https://github.com/HugoRCD.png"
alt="Hugo Richard"
loading="lazy"
/>
</ULink>
<ULink
to="https://github.com/atinux"
target="_blank"
class="hover:ring-primary transition"
raw
>
<UAvatar
src="https://github.com/atinux.png"
alt="Sébastien Chopin"
loading="lazy"
/>
</ULink>
</UAvatarGroup>
</template>
avec masque
Enveloppez un avatar avec un masque CSS pour l'afficher avec une forme personnalisée.
<template>
<UAvatarGroup :ui="{ base: 'rounded-none squircle' }">
<UAvatar
src="https://github.com/benjamincanac.png"
alt="Benjamin Canac"
loading="lazy"
class="rounded-none squircle"
/>
<UAvatar
src="https://github.com/HugoRCD.png"
alt="Hugo Richard"
loading="lazy"
class="rounded-none squircle"
/>
<UAvatar
src="https://github.com/atinux.png"
alt="Sébastien Chopin"
loading="lazy"
class="rounded-none squircle"
/>
</UAvatarGroup>
</template>
<style>
.squircle {
mask-image: url("data:image/svg+xml,%3csvg width='200' height='200' xmlns='http://www.w3.org/2000/svg'%3e%3cpath d='M100 0C20 0 0 20 0 100s20 100 100 100 100-20 100-100S180 0 100 0Z'/%3e%3c/svg%3e");
mask-size: contain;
mask-position: center;
mask-repeat: no-repeat;
}
</style>
chip ne fonctionne pas correctement lors de l'utilisation d'un masque. Des copeaux peuvent être coupés en fonction de la forme du masque.api
Projets
| Prop | Default | Type |
|---|---|---|
as | 'div' | anyThe element or component this component should render as. |
size | 'md' | "md" | "xs" | "sm" | "lg" | "xl" | "3xs" | "2xs" | "2xl" | "3xl" |
color | 'neutral' | "error" | "primary" | "secondary" | "success" | "info" | "warning" | "neutral" |
max | string | numberThe maximum number of avatars to display. | |
ui | { root?: SlotClass; base?: SlotClass; } |
Slots électroniques
| Slot | Type |
|---|---|
default | {} |
Thème
export default defineAppConfig({
ui: {
avatarGroup: {
slots: {
root: 'inline-flex flex-row-reverse justify-end',
base: 'relative rounded-full ring-bg first:me-0'
},
variants: {
size: {
'3xs': {
base: 'ring -me-0.5'
},
'2xs': {
base: 'ring -me-0.5'
},
xs: {
base: 'ring -me-0.5'
},
sm: {
base: 'ring-2 -me-1.5'
},
md: {
base: 'ring-2 -me-1.5'
},
lg: {
base: 'ring-2 -me-1.5'
},
xl: {
base: 'ring-3 -me-2'
},
'2xl': {
base: 'ring-3 -me-2'
},
'3xl': {
base: 'ring-3 -me-2'
}
},
color: {
primary: '',
secondary: '',
success: '',
info: '',
warning: '',
error: '',
neutral: ''
}
},
defaultVariants: {
size: 'md',
color: 'neutral'
}
}
}
})import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
import ui from '@nuxt/ui/vite'
export default defineConfig({
plugins: [
vue(),
ui({
ui: {
avatarGroup: {
slots: {
root: 'inline-flex flex-row-reverse justify-end',
base: 'relative rounded-full ring-bg first:me-0'
},
variants: {
size: {
'3xs': {
base: 'ring -me-0.5'
},
'2xs': {
base: 'ring -me-0.5'
},
xs: {
base: 'ring -me-0.5'
},
sm: {
base: 'ring-2 -me-1.5'
},
md: {
base: 'ring-2 -me-1.5'
},
lg: {
base: 'ring-2 -me-1.5'
},
xl: {
base: 'ring-3 -me-2'
},
'2xl': {
base: 'ring-3 -me-2'
},
'3xl': {
base: 'ring-3 -me-2'
}
},
color: {
primary: '',
secondary: '',
success: '',
info: '',
warning: '',
error: '',
neutral: ''
}
},
defaultVariants: {
size: 'md',
color: 'neutral'
}
}
}
})
]
})