avatar
amarjay-ui/avatarFreeComponent
Avatar component with image and fallback support.
Live preview
live · rendered by the registry
Rendered by amarjay-ui on their own page — this is the component running, not a screenshot of it.Install it
npx shadcn@latest add https://ui.amarjay.com/r/avatar.jsonSource
1import * as React from "react"2import { Avatar as AvatarPrimitive } from "radix-ui"34import { cn } from "@/lib/utils"56function Avatar({7 className,8 size = "default",9 ...props10}: React.ComponentProps<typeof AvatarPrimitive.Root> & {11 size?: "default" | "sm" | "lg"12}) {13 return (14 <AvatarPrimitive.Root15 data-slot="avatar"16 data-size={size}17 className={cn(18 "group/avatar relative flex size-8 shrink-0 rounded-full select-none after:absolute after:inset-0 after:rounded-full after:border after:border-border after:mix-blend-darken data-[size=lg]:size-10 data-[size=sm]:size-6 dark:after:mix-blend-lighten",19 className20 )}21 {...props}22 />23 )24}2526function AvatarImage({27 className,28 ...props29}: React.ComponentProps<typeof AvatarPrimitive.Image>) {30 return (31 <AvatarPrimitive.Image32 data-slot="avatar-image"33 className={cn(34 "aspect-square size-full rounded-full object-cover",35 className36 )}37 {...props}38 />39 )40}4142function AvatarFallback({43 className,44 ...props45}: React.ComponentProps<typeof AvatarPrimitive.Fallback>) {46 return (47 <AvatarPrimitive.Fallback48 data-slot="avatar-fallback"49 className={cn(50 "flex size-full items-center justify-center rounded-full bg-muted text-sm text-muted-foreground group-data-[size=sm]/avatar:text-xs",51 className52 )}53 {...props}54 />55 )56}5758function AvatarBadge({ className, ...props }: React.ComponentProps<"span">) {59 return (60 <span61 data-slot="avatar-badge"62 className={cn(63 "absolute right-0 bottom-0 z-10 inline-flex items-center justify-center rounded-full bg-primary text-primary-foreground bg-blend-color ring-2 ring-background select-none",64 "group-data-[size=sm]/avatar:size-2 group-data-[size=sm]/avatar:[&>svg]:hidden",65 "group-data-[size=default]/avatar:size-2.5 group-data-[size=default]/avatar:[&>svg]:size-2",66 "group-data-[size=lg]/avatar:size-3 group-data-[size=lg]/avatar:[&>svg]:size-2",67 className68 )}69 {...props}70 />71 )72}7374function AvatarGroup({ className, ...props }: React.ComponentProps<"div">) {75 return (76 <div77 data-slot="avatar-group"78 className={cn(79 "group/avatar-group flex -space-x-2 *:data-[slot=avatar]:ring-2 *:data-[slot=avatar]:ring-background",80 className81 )}82 {...props}83 />84 )85}8687function AvatarGroupCount({88 className,89 ...props90}: React.ComponentProps<"div">) {91 return (92// … truncated
What it pulls in
npm packages
Other registry items
Files it writes
More from amarjay-ui
All 18 items| Component | Registry | Kind | Access | Installs | Command |
|---|---|---|---|---|---|
| alertalert | amarjay-ui | Components | Free | 1 dep | |
| badgebadge | amarjay-ui | Components | Free | 2 deps | |
| buttonbutton | amarjay-ui | Components | Free | 2 deps | |
| cardcard | amarjay-ui | Components | Free | no deps | |
| chartchart | amarjay-ui | Components | Free | 1 dep | |
| context-menucontext-menu | amarjay-ui | Components | Free | 2 deps | |
| dialogdialog | amarjay-ui | Components | Free | 2 deps | |
| dropdown-menudropdown-menu | amarjay-ui | Components | Free | 2 deps |
