Avatar
gymnopedies/avatarFreeComponent
Avatar — gymnopédies-themed shadcn primitive.
Install it
npx shadcn@latest add https://gymnopedies.shoota.work/r/avatar.jsonSource
1import * as React from "react"2import { Avatar as AvatarPrimitive } from "@base-ui/react/avatar"34import { cn } from "@/lib/utils"56function Avatar({7 className,8 size = "default",9 ...props10}: AvatarPrimitive.Root.Props & {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({ className, ...props }: AvatarPrimitive.Image.Props) {27 return (28 <AvatarPrimitive.Image29 data-slot="avatar-image"30 className={cn(31 "aspect-square size-full rounded-full object-cover",32 className33 )}34 {...props}35 />36 )37}3839function AvatarFallback({40 className,41 ...props42}: AvatarPrimitive.Fallback.Props) {43 return (44 <AvatarPrimitive.Fallback45 data-slot="avatar-fallback"46 className={cn(47 "flex size-full items-center justify-center rounded-full bg-muted text-sm text-muted-foreground group-data-[size=sm]/avatar:text-xs",48 className49 )}50 {...props}51 />52 )53}5455function AvatarBadge({ className, ...props }: React.ComponentProps<"span">) {56 return (57 <span58 data-slot="avatar-badge"59 className={cn(60 "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",61 "group-data-[size=sm]/avatar:size-2 group-data-[size=sm]/avatar:[&>svg]:hidden",62 "group-data-[size=default]/avatar:size-2.5 group-data-[size=default]/avatar:[&>svg]:size-2",63 "group-data-[size=lg]/avatar:size-3 group-data-[size=lg]/avatar:[&>svg]:size-2",64 className65 )}66 {...props}67 />68 )69}7071function AvatarGroup({ className, ...props }: React.ComponentProps<"div">) {72 return (73 <div74 data-slot="avatar-group"75 className={cn(76 "group/avatar-group flex -space-x-2 *:data-[slot=avatar]:ring-2 *:data-[slot=avatar]:ring-background",77 className78 )}79 {...props}80 />81 )82}8384function AvatarGroupCount({85 className,86 ...props87}: React.ComponentProps<"div">) {88 return (89 <div90 data-slot="avatar-group-count"91// … truncated
What it pulls in
npm packages
Other registry items
Files it writes
More from gymnopedies
All 49 items| Component | Registry | Kind | Access | Installs | Command |
|---|---|---|---|---|---|
| Accordionaccordion | gymnopedies | Components | Free | 2 deps | |
| Alertalert | gymnopedies | Components | Free | 1 dep | |
| Alert Dialogalert-dialog | gymnopedies | Components | Free | 1 dep | |
| Articlearticle | gymnopedies | Components | Free | no deps | |
| Aspect Ratioaspect-ratio | gymnopedies | Components | Free | no deps | |
| Badgebadge | gymnopedies | Components | Free | 2 deps | |
| Breadcrumbbreadcrumb | gymnopedies | Components | Free | 2 deps | |
| Buttonbutton | gymnopedies | Components | Free | 2 deps |
