Avatar
Um elemento de imagem com um fallback para representar o usuário.
"use client";
import {
Avatar,
AvatarFallback,
AvatarImage,
} from "@blips/ui/components/avatar";
export default function AvatarDemo() {
return (
<Avatar>
<AvatarImage src="https://github.com/shadcn.png" alt="@shadcn" />
<AvatarFallback>CN</AvatarFallback>
</Avatar>
);
}
Instalação
Uso
import { Avatar, AvatarFallback, AvatarImage } from "@blips/ui/components/avatar"<Avatar>
<AvatarImage src="https://github.com/shadcn.png" />
<AvatarFallback>CN</AvatarFallback>
</Avatar>Exemplos
Básico
Um componente de avatar básico com uma imagem e um fallback.
import {
Avatar,
AvatarFallback,
AvatarImage,
} from "@blips/ui/components/avatar";
export default function AvatarDemo() {
return (
<Avatar>
<AvatarImage
src="https://github.com/shadcn.png"
alt="@shadcn"
className="grayscale"
/>
<AvatarFallback>CN</AvatarFallback>
</Avatar>
);
}
Badge
Use o componente AvatarBadge para adicionar um badge ao avatar. O badge é posicionado no canto inferior direito do avatar.
import {
Avatar,
AvatarBadge,
AvatarFallback,
AvatarImage,
} from "@blips/ui/components/avatar";
export function AvatarWithBadge() {
return (
<Avatar>
<AvatarImage src="https://github.com/shadcn.png" alt="@shadcn" />
<AvatarFallback>CN</AvatarFallback>
<AvatarBadge className="bg-green-600 dark:bg-green-800" />
</Avatar>
);
}
Badge com Ícone
Você também pode usar um ícone dentro de <AvatarBadge>.
import {
Avatar,
AvatarBadge,
AvatarFallback,
AvatarImage,
} from "@blips/ui/components/avatar";
import { Plus } from "@phosphor-icons/react";
export function AvatarBadgeIconExample() {
return (
<Avatar className="grayscale">
<AvatarImage src="https://github.com/pranathip.png" alt="@pranathip" />
<AvatarFallback>PP</AvatarFallback>
<AvatarBadge>
<Plus />
</AvatarBadge>
</Avatar>
);
}
Grupo de Avatares
Use o componente AvatarGroup para adicionar um grupo de avatares.
import {
Avatar,
AvatarFallback,
AvatarGroup,
AvatarImage,
} from "@blips/ui/components/avatar";
export function AvatarGroupExample() {
return (
<AvatarGroup className="grayscale">
<Avatar>
<AvatarImage src="https://github.com/shadcn.png" alt="@shadcn" />
<AvatarFallback>CN</AvatarFallback>
</Avatar>
<Avatar>
<AvatarImage src="https://github.com/maxleiter.png" alt="@maxleiter" />
<AvatarFallback>LR</AvatarFallback>
</Avatar>
<Avatar>
<AvatarImage
src="https://github.com/evilrabbit.png"
alt="@evilrabbit"
/>
<AvatarFallback>ER</AvatarFallback>
</Avatar>
</AvatarGroup>
);
}
Contagem do Grupo de Avatares
Use <AvatarGroupCount> para adicionar uma contagem ao grupo.
import {
Avatar,
AvatarFallback,
AvatarGroup,
AvatarGroupCount,
AvatarImage,
} from "@blips/ui/components/avatar";
export function AvatarGroupCountExample() {
return (
<AvatarGroup className="grayscale">
<Avatar>
<AvatarImage src="https://github.com/shadcn.png" alt="@shadcn" />
<AvatarFallback>CN</AvatarFallback>
</Avatar>
<Avatar>
<AvatarImage src="https://github.com/maxleiter.png" alt="@maxleiter" />
<AvatarFallback>LR</AvatarFallback>
</Avatar>
<Avatar>
<AvatarImage
src="https://github.com/evilrabbit.png"
alt="@evilrabbit"
/>
<AvatarFallback>ER</AvatarFallback>
</Avatar>
<AvatarGroupCount>+3</AvatarGroupCount>
</AvatarGroup>
);
}
Grupo de Avatares com Ícone
Você também pode usar um ícone dentro de <AvatarGroupCount>.
import {
Avatar,
AvatarFallback,
AvatarGroup,
AvatarGroupCount,
AvatarImage,
} from "@blips/ui/components/avatar";
import { Plus } from "@phosphor-icons/react";
export function AvatarGroupCountIconExample() {
return (
<AvatarGroup className="grayscale">
<Avatar>
<AvatarImage src="https://github.com/shadcn.png" alt="@shadcn" />
<AvatarFallback>CN</AvatarFallback>
</Avatar>
<Avatar>
<AvatarImage src="https://github.com/maxleiter.png" alt="@maxleiter" />
<AvatarFallback>LR</AvatarFallback>
</Avatar>
<Avatar>
<AvatarImage
src="https://github.com/evilrabbit.png"
alt="@evilrabbit"
/>
<AvatarFallback>ER</AvatarFallback>
</Avatar>
<AvatarGroupCount>
<Plus />
</AvatarGroupCount>
</AvatarGroup>
);
}
Tamanhos
Use a prop size para alterar o tamanho do avatar.
import {
Avatar,
AvatarFallback,
AvatarImage,
} from "@blips/ui/components/avatar";
export function AvatarSizeExample() {
return (
<div className="flex flex-wrap items-center gap-2 grayscale">
<Avatar size="sm">
<AvatarImage src="https://github.com/shadcn.png" alt="@shadcn" />
<AvatarFallback>CN</AvatarFallback>
</Avatar>
<Avatar>
<AvatarImage src="https://github.com/shadcn.png" alt="@shadcn" />
<AvatarFallback>CN</AvatarFallback>
</Avatar>
<Avatar size="lg">
<AvatarImage src="https://github.com/shadcn.png" alt="@shadcn" />
<AvatarFallback>CN</AvatarFallback>
</Avatar>
</div>
);
}
Dropdown
Você pode usar o componente Avatar como gatilho para um menu dropdown.
import {
Avatar,
AvatarFallback,
AvatarImage,
} from "@blips/ui/components/avatar";
import { Button } from "@blips/ui/components/button";
import {
DropdownMenu,
DropdownMenuContent,
DropdownMenuGroup,
DropdownMenuItem,
DropdownMenuSeparator,
DropdownMenuTrigger,
} from "@blips/ui/components/dropdown-menu";
export function AvatarDropdown() {
return (
<DropdownMenu>
<DropdownMenuTrigger asChild>
<Button variant="ghost" size="icon" className="rounded-full">
<Avatar>
<AvatarImage src="https://github.com/shadcn.png" alt="shadcn" />
<AvatarFallback>CN</AvatarFallback>
</Avatar>
</Button>
</DropdownMenuTrigger>
<DropdownMenuContent className="w-32">
<DropdownMenuGroup>
<DropdownMenuItem>Profile</DropdownMenuItem>
<DropdownMenuItem>Billing</DropdownMenuItem>
<DropdownMenuItem>Settings</DropdownMenuItem>
</DropdownMenuGroup>
<DropdownMenuSeparator />
<DropdownMenuGroup>
<DropdownMenuItem variant="destructive">Log out</DropdownMenuItem>
</DropdownMenuGroup>
</DropdownMenuContent>
</DropdownMenu>
);
}
Referência da API
Avatar
O componente Avatar é o componente raiz que envolve a imagem do avatar e o fallback.
AvatarImage
O componente AvatarImage exibe a imagem do avatar. Ele aceita todas as props de Radix UI Avatar Image.
AvatarFallback
O componente AvatarFallback exibe um fallback quando a imagem falha ao carregar. Ele aceita todas as props de Radix UI Avatar Fallback.
AvatarBadge
O componente AvatarBadge exibe um indicador de badge no avatar, normalmente posicionado no canto inferior direito.
AvatarGroup
O componente AvatarGroup exibe um grupo de avatares com estilo sobreposto.
AvatarGroupCount
O componente AvatarGroupCount exibe um indicador de contagem em um grupo de avatares, normalmente mostrando o número de avatares adicionais.
Para mais informações sobre as props de Radix UI Avatar, consulte a documentação do Radix UI.