Warcraft Tooltip
warcraftcn/tooltipFreeComponent
A Warcraft-themed tooltip component with item-quality rarity variants (default, uncommon, rare, epic, legendary) and side positioning support
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/tooltip.jsonSource
1"use client";23import * as React from "react";4import * as TooltipPrimitive from "@radix-ui/react-tooltip";5import { cva, type VariantProps } from "class-variance-authority";67import { cn } from "@/lib/utils";89import "@/components/ui/warcraftcn/styles/warcraft.css";1011type TooltipVariant = "default" | "uncommon" | "rare" | "epic" | "legendary";1213const TooltipVariantContext = React.createContext<TooltipVariant>("default");1415const tooltipContentVariants = cva(16 "fantasy z-50 w-fit max-w-xs rounded px-4 py-3 text-sm text-amber-100 wc-tooltip-base",17 {18 variants: {19 variant: {20 default: "wc-tooltip",21 uncommon: "wc-tooltip-uncommon",22 rare: "wc-tooltip-rare",23 epic: "wc-tooltip-epic",24 legendary: "wc-tooltip-legendary",25 },26 },27 defaultVariants: {28 variant: "default",29 },30 }31);3233const TOOLTIP_TITLE_COLORS: Record<TooltipVariant, string> = {34 default: "text-amber-400",35 uncommon: "text-green-400",36 rare: "text-blue-400",37 epic: "text-purple-400",38 legendary: "text-orange-400",39};4041function TooltipProvider({42 delayDuration = 0,43 ...props44}: React.ComponentProps<typeof TooltipPrimitive.Provider>) {45 return (46 <TooltipPrimitive.Provider47 data-slot="tooltip-provider"48 delayDuration={delayDuration}49 {...props}50 />51 );52}5354function Tooltip({55 ...props56}: React.ComponentProps<typeof TooltipPrimitive.Root>) {57 return (58 <TooltipProvider>59 <TooltipPrimitive.Root data-slot="tooltip" {...props} />60 </TooltipProvider>61 );62}6364function TooltipTrigger({65 ...props66}: React.ComponentProps<typeof TooltipPrimitive.Trigger>) {67 return (68 <TooltipPrimitive.Trigger data-slot="tooltip-trigger" {...props} />69 );70}7172function TooltipContent({73 className,74 variant = "default",75 sideOffset = 8,76 children,77 ...props78}: React.ComponentProps<typeof TooltipPrimitive.Content> &79 VariantProps<typeof tooltipContentVariants>) {80 return (81 <TooltipPrimitive.Portal>82 <TooltipPrimitive.Content83 data-slot="tooltip-content"84 sideOffset={sideOffset}85 className={cn(86 tooltipContentVariants({ variant }),87 "animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95",88 "data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",89 className90 )}91// … truncated
What it pulls in
npm packages
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 Avataravatar | warcraftcn | Components | Free | no deps · 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 |
