avatar
aomi/avatarFreeComponent
An image element with a fallback for representing the user.
Install it
npx shadcn@latest add https://aomi.dev/r/avatar.jsonSource
1"use client"23import * as React from "react"4import * as AvatarPrimitive from "@radix-ui/react-avatar"56import { cn } from "@aomi-labs/react"78function Avatar({9 className,10 size = "default",11 ...props12}: React.ComponentProps<typeof AvatarPrimitive.Root> & {13 size?: "default" | "sm" | "lg"14}) {15 return (16 <AvatarPrimitive.Root17 data-slot="avatar"18 data-size={size}19 className={cn(20 "group/avatar relative flex size-8 shrink-0 overflow-hidden rounded-full select-none data-[size=lg]:size-10 data-[size=sm]:size-6",21 className22 )}23 {...props}24 />25 )26}2728function AvatarImage({29 className,30 ...props31}: React.ComponentProps<typeof AvatarPrimitive.Image>) {32 return (33 <AvatarPrimitive.Image34 data-slot="avatar-image"35 className={cn("aspect-square size-full", className)}36 {...props}37 />38 )39}4041function AvatarFallback({42 className,43 ...props44}: React.ComponentProps<typeof AvatarPrimitive.Fallback>) {45 return (46 <AvatarPrimitive.Fallback47 data-slot="avatar-fallback"48 className={cn(49 "bg-muted text-muted-foreground flex size-full items-center justify-center rounded-full text-sm group-data-[size=sm]/avatar:text-xs",50 className51 )}52 {...props}53 />54 )55}5657function AvatarBadge({ className, ...props }: React.ComponentProps<"span">) {58 return (59 <span60 data-slot="avatar-badge"61 className={cn(62 "bg-primary text-primary-foreground ring-background absolute right-0 bottom-0 z-10 inline-flex items-center justify-center rounded-full ring-2 select-none",63 "group-data-[size=sm]/avatar:size-2 group-data-[size=sm]/avatar:[&>svg]:hidden",64 "group-data-[size=default]/avatar:size-2.5 group-data-[size=default]/avatar:[&>svg]:size-2",65 "group-data-[size=lg]/avatar:size-3 group-data-[size=lg]/avatar:[&>svg]:size-2",66 className67 )}68 {...props}69 />70 )71}7273function AvatarGroup({ className, ...props }: React.ComponentProps<"div">) {74 return (75 <div76 data-slot="avatar-group"77 className={cn(78 "*:data-[slot=avatar]:ring-background group/avatar-group flex -space-x-2 *:data-[slot=avatar]:ring-2",79 className80 )}81 {...props}82 />83 )84}8586function AvatarGroupCount({87 className,88 ...props89}: React.ComponentProps<"div">) {90 return (91 <div92 data-slot="avatar-group-count"93 className={cn(94// … truncated
What it pulls in
npm packages
Files it writes
More from aomi
All 34 items| Component | Registry | Kind | Access | Installs | Command |
|---|---|---|---|---|---|
| accordionaccordion | aomi | Components | Free | 2 deps | |
| alertalert | aomi | Components | Free | 1 dep | |
| aomi-frameaomi-frame | aomi | Components | Free | 1 dep | |
| aomi-para-provideraomi-para-provider | aomi | Components | Free | 9 deps · 27 files | |
| aomi-privy-provideraomi-privy-provider | aomi | Components | Free | 7 deps · 15 files | |
| aomi-wallet-kitaomi-wallet-kit | aomi | Components | Free | 8 deps · 59 files | |
| aomi-widgetaomi-widget | aomi | Components | Free | 2 deps | |
| assistant-threadassistant-thread | aomi | Components | Free | 6 deps · 23 files |
