AA
JD
AA
AH
JDpackage examples import "github.com/axadrn/shadcn-templ/v2/components/avatar"package examples import "github.com/axadrn/shadcn-templ/v2/components/avatar" templ AvatarDemo() { <div class="flex flex-row flex-wrap items-center gap-6 md:gap-12"> @avatar.Avatar() { @avatar.Image(avatar.ImageProps{ Src: "https://github.com/axadrn.png", Alt: "@axadrn", Class: "grayscale", }) @avatar.Fallback() { AA } } @avatar.Avatar() { @avatar.Image(avatar.ImageProps{ Src: "https://github.com/joerdav.png", Alt: "@joerdav", }) @avatar.Fallback() { JD } @avatar.Badge(avatar.BadgeProps{Class: "bg-green-600 dark:bg-green-800"}) } @avatar.Group(avatar.GroupProps{Class: "grayscale"}) { @avatar.Avatar() { @avatar.Image(avatar.ImageProps{ Src: "https://github.com/axadrn.png", Alt: "@axadrn", }) @avatar.Fallback() { AA } } @avatar.Avatar() { @avatar.Image(avatar.ImageProps{ Src: "https://github.com/a-h.png", Alt: "@a-h", }) @avatar.Fallback() { AH } } @avatar.Avatar() { @avatar.Image(avatar.ImageProps{ Src: "https://github.com/joerdav.png", Alt: "@joerdav", }) @avatar.Fallback() { JD } } @avatar.GroupCount() { +3 } } </div>}Installation
Usage
Composition
Use the following composition to build an Avatar:
Use the following composition to build an avatar.Group:
Basic
A basic avatar component with an image and a fallback.
AApackage examples import "github.com/axadrn/shadcn-templ/v2/components/avatar"package examples import "github.com/axadrn/shadcn-templ/v2/components/avatar" templ AvatarBasic() { @avatar.Avatar() { @avatar.Image(avatar.ImageProps{ Src: "https://github.com/axadrn.png", Alt: "@axadrn", Class: "grayscale", }) @avatar.Fallback() { AA } }}Badge
Use the avatar.Badge component to add a badge to the avatar. The badge is positioned at the bottom right of the avatar.
AA package examples import "github.com/axadrn/shadcn-templ/v2/components/avatar"package examples import "github.com/axadrn/shadcn-templ/v2/components/avatar" templ AvatarBadgeExample() { @avatar.Avatar() { @avatar.Image(avatar.ImageProps{ Src: "https://github.com/axadrn.png", Alt: "@axadrn", }) @avatar.Fallback() { AA } @avatar.Badge(avatar.BadgeProps{Class: "bg-green-600 dark:bg-green-800"}) }}Use the Class prop to add custom styles to the badge such as custom colors, sizes, etc.
Badge with Icon
You can also use an icon inside avatar.Badge.
AA package examples import (package examples import ( "github.com/axadrn/shadcn-templ/v2/components/avatar" "github.com/axadrn/shadcn-templ/v2/components/icon") templ AvatarBadgeIcon() { @avatar.Avatar(avatar.Props{Class: "grayscale"}) { @avatar.Image(avatar.ImageProps{ Src: "https://github.com/axadrn.png", Alt: "@axadrn", }) @avatar.Fallback() { AA } @avatar.Badge() { @icon.Plus() } }}Avatar Group
Use the avatar.Group component to add a group of avatars.
AA
AH
JDpackage examples import "github.com/axadrn/shadcn-templ/v2/components/avatar"package examples import "github.com/axadrn/shadcn-templ/v2/components/avatar" templ AvatarGroup() { @avatar.Group(avatar.GroupProps{Class: "grayscale"}) { @avatar.Avatar() { @avatar.Image(avatar.ImageProps{ Src: "https://github.com/axadrn.png", Alt: "@axadrn", }) @avatar.Fallback() { AA } } @avatar.Avatar() { @avatar.Image(avatar.ImageProps{ Src: "https://github.com/a-h.png", Alt: "@a-h", }) @avatar.Fallback() { AH } } @avatar.Avatar() { @avatar.Image(avatar.ImageProps{ Src: "https://github.com/joerdav.png", Alt: "@joerdav", }) @avatar.Fallback() { JD } } }}Avatar Group Count
Use avatar.GroupCount to add a count to the group.
AA
AH
JDpackage examples import "github.com/axadrn/shadcn-templ/v2/components/avatar"package examples import "github.com/axadrn/shadcn-templ/v2/components/avatar" templ AvatarGroupCount() { @avatar.Group(avatar.GroupProps{Class: "grayscale"}) { @avatar.Avatar() { @avatar.Image(avatar.ImageProps{ Src: "https://github.com/axadrn.png", Alt: "@axadrn", }) @avatar.Fallback() { AA } } @avatar.Avatar() { @avatar.Image(avatar.ImageProps{ Src: "https://github.com/a-h.png", Alt: "@a-h", }) @avatar.Fallback() { AH } } @avatar.Avatar() { @avatar.Image(avatar.ImageProps{ Src: "https://github.com/joerdav.png", Alt: "@joerdav", }) @avatar.Fallback() { JD } } @avatar.GroupCount() { +3 } }}Avatar Group with Icon
You can also use an icon inside avatar.GroupCount.
AA
AH
JDpackage examples import (package examples import ( "github.com/axadrn/shadcn-templ/v2/components/avatar" "github.com/axadrn/shadcn-templ/v2/components/icon") templ AvatarGroupCountIcon() { @avatar.Group(avatar.GroupProps{Class: "grayscale"}) { @avatar.Avatar() { @avatar.Image(avatar.ImageProps{ Src: "https://github.com/axadrn.png", Alt: "@axadrn", }) @avatar.Fallback() { AA } } @avatar.Avatar() { @avatar.Image(avatar.ImageProps{ Src: "https://github.com/a-h.png", Alt: "@a-h", }) @avatar.Fallback() { AH } } @avatar.Avatar() { @avatar.Image(avatar.ImageProps{ Src: "https://github.com/joerdav.png", Alt: "@joerdav", }) @avatar.Fallback() { JD } } @avatar.GroupCount() { @icon.Plus() } }}Sizes
Use the Size prop to change the size of the avatar.
AA
AA
AApackage examples import "github.com/axadrn/shadcn-templ/v2/components/avatar"package examples import "github.com/axadrn/shadcn-templ/v2/components/avatar" templ AvatarSize() { <div class="flex flex-wrap items-center gap-2 grayscale"> @avatar.Avatar(avatar.Props{Size: avatar.SizeSm}) { @avatar.Image(avatar.ImageProps{ Src: "https://github.com/axadrn.png", Alt: "@axadrn", }) @avatar.Fallback() { AA } } @avatar.Avatar() { @avatar.Image(avatar.ImageProps{ Src: "https://github.com/axadrn.png", Alt: "@axadrn", }) @avatar.Fallback() { AA } } @avatar.Avatar(avatar.Props{Size: avatar.SizeLg}) { @avatar.Image(avatar.ImageProps{ Src: "https://github.com/axadrn.png", Alt: "@axadrn", }) @avatar.Fallback() { AA } } </div>}Dropdown
You can use the Avatar component as a trigger for a dropdown menu.
package examples import (package examples import ( "github.com/axadrn/shadcn-templ/v2/components/avatar" "github.com/axadrn/shadcn-templ/v2/components/button" "github.com/axadrn/shadcn-templ/v2/components/dropdownmenu") templ AvatarDropdown() { @dropdownmenu.DropdownMenu() { @button.Button(button.Props{ Variant: button.VariantGhost, Size: button.SizeIcon, Class: "rounded-full", Attributes: dropdownmenu.Trigger(ctx), }) { @avatar.Avatar() { @avatar.Image(avatar.ImageProps{ Src: "https://github.com/axadrn.png", Alt: "axadrn", }) @avatar.Fallback() { AA } } } @dropdownmenu.Content(dropdownmenu.ContentProps{Class: "w-32"}) { @dropdownmenu.Group() { @dropdownmenu.Item() { Profile } @dropdownmenu.Item() { Billing } @dropdownmenu.Item() { Settings } } @dropdownmenu.Separator() @dropdownmenu.Group() { @dropdownmenu.Item(dropdownmenu.ItemProps{Variant: dropdownmenu.ItemVariantDestructive}) { Log out } } } }}API Reference
Avatar
The Avatar component is the root component that wraps the avatar image and fallback.
Image
The avatar.Image component displays the avatar image.
Fallback
The avatar.Fallback component displays a fallback when the image fails to load.
Badge
The avatar.Badge component displays a badge indicator on the avatar, typically positioned at the bottom right.
Group
The avatar.Group component displays a group of avatars with overlapping styling.
GroupCount
The avatar.GroupCount component displays a count indicator in an avatar group, typically showing the number of additional avatars.