Warcraft Avatar
warcraftcn/avatarFreeComponent
A Warcraft-themed avatar component with fantasy styling
Live preview
live · rendered by the registry
Rendered by warcraftcn on their own page — this is the component running, not a screenshot of it.Install it
npx shadcn@latest add https://www.warcraftcn.com/r/avatar.jsonSource
1import * as React from "react";2import { cva, type VariantProps } from "class-variance-authority";3import { cn } from "@/lib/utils";45import "@/components/ui/warcraftcn/styles/warcraft.css";67const avatarVariants = cva("fantasy relative", {8 variants: {9 faction: {10 default: "wc-avatar-default",11 orc: "wc-avatar-orc",12 elf: "wc-avatar-elf",13 human: "wc-avatar-human",14 undead: "wc-avatar-undead",15 },16 size: {17 sm: "w-16 h-16 sm:w-20 sm:h-20 md:w-24 md:h-24 lg:w-32 lg:h-32 xl:w-36 xl:h-36",18 md: "w-24 h-24 sm:w-32 sm:h-32 md:w-40 md:h-40 lg:w-48 lg:h-48 xl:w-56 xl:h-56",19 lg: "w-40 h-40 sm:w-56 sm:h-56 md:w-72 md:h-72 lg:w-96 lg:h-96 xl:w-[30rem] xl:h-[30rem]",20 },21 },22 defaultVariants: {23 faction: "default",24 size: "md",25 },26});2728export interface AvatarProps29 extends Omit<React.ComponentProps<"div">, "children">,30 VariantProps<typeof avatarVariants> {31 src?: string; // Avatar image URL32 alt?: string; // Alt text33 fallback?: React.ReactNode; // Fallback if no image34 faction?: "default" | "orc" | "elf" | "human" | "undead";35 size?: "sm" | "md" | "lg";36}3738export const Avatar: React.FC<AvatarProps> = ({39 className,40 src,41 alt = "",42 fallback,43 faction = "default",44 size = "md",45 ...props46}) => {47 const frameClasses = avatarVariants({ faction, size });4849 return (50 <div className={cn(frameClasses, className)} {...props}>51 <div className="absolute inset-[20%] overflow-hidden">52 {src ? (53 <img54 src={src}55 alt={alt}56 className="w-full h-full object-cover mt-0 mb-0"57 draggable={false}58 />59 ) : fallback ? (60 <div className="flex items-center justify-center w-full h-full text-2xl select-none">61 {fallback}62 </div>63 ) : null}64 </div>6566 <div className="pointer-events-none absolute inset-0 scale-[1.05] wc-avatar-frame" />67 </div>68 );69};7071export { avatarVariants };
Files it writes
More from warcraftcn
All 16 items| Component | Registry | Kind | Access | Installs | Command |
|---|---|---|---|---|---|
| Warcraft Accordionaccordion | warcraftcn | Components | Free | 1 dep · 7 files | |
| Warcraft Badgebadge | warcraftcn | Components | Free | no deps · 4 files | |
| Warcraft Buttonbutton | warcraftcn | Components | Free | no deps · 6 files | |
| Warcraft Cardcard | warcraftcn | Components | Free | no deps · 3 files | |
| Warcraft Checkboxcheckbox | warcraftcn | Components | Free | 1 dep · 12 files | |
| Warcraft Cursorcursor | warcraftcn | Components | Free | no deps · 6 files | |
| Warcraft Dropdown Menudropdown-menu | warcraftcn | Components | Free | 2 deps · 3 files | |
| Warcraft Inputinput | warcraftcn | Components | Free | no deps · 3 files |
