This component no longer exists. It was in shadcn/ui’s manifest when we first indexed it and is not there now — the registry served its inventory on 2026-08-13 and this item was not on it. The install command below will fail. It is kept here because a tutorial somewhere still tells people to run it.
Hover Effect
zenithui-chandubobbili/card-hover-effectRemovedComponent
Hover over the cards and the effect slides to the currently hovered card.
Install it
npx shadcn@latest add https://zenithui.chandubobbili.dev/r/card-hover-effect.jsonSource
1import { cn } from "@/lib/utils"2import { AnimatePresence, motion } from "motion/react"34import { useState } from "react"56export const HoverEffect = ({7 items,8 className,9}: {10 items: {11 title: string12 description: string13 link: string14 }[]15 className?: string16}) => {17 let [hoveredIndex, setHoveredIndex] = useState<number | null>(null)1819 return (20 <div21 className={cn(22 "grid grid-cols-1 py-10 md:grid-cols-2 lg:grid-cols-3",23 className,24 )}25 >26 {items.map((item, idx) => (27 <a28 href={item?.link}29 key={item?.link}30 className="group relative block h-full w-full p-2"31 onMouseEnter={() => setHoveredIndex(idx)}32 onMouseLeave={() => setHoveredIndex(null)}33 >34 <AnimatePresence>35 {hoveredIndex === idx && (36 <motion.span37 className="absolute inset-0 block h-full w-full rounded-3xl bg-neutral-200 dark:bg-slate-800/[0.8]"38 layoutId="hoverBackground"39 initial={{ opacity: 0 }}40 animate={{41 opacity: 1,42 transition: { duration: 0.15 },43 }}44 exit={{45 opacity: 0,46 transition: { duration: 0.15, delay: 0.2 },47 }}48 />49 )}50 </AnimatePresence>51 <Card>52 <CardTitle>{item.title}</CardTitle>53 <CardDescription>{item.description}</CardDescription>54 </Card>55 </a>56 ))}57 </div>58 )59}6061export const Card = ({62 className,63 children,64}: {65 className?: string66 children: React.ReactNode67}) => {68 return (69 <div70 className={cn(71 "relative z-20 h-full w-full overflow-hidden rounded-2xl border border-transparent bg-black p-4 group-hover:border-slate-700 dark:border-white/[0.2]",72 className,73 )}74 >75 <div className="relative z-50">76 <div className="p-4">{children}</div>77 </div>78 </div>79 )80}81export const CardTitle = ({82 className,83 children,84}: {85 className?: string86 children: React.ReactNode87}) => {88 return (89 <h4 className={cn("mt-4 font-bold tracking-wide text-zinc-100", className)}>90 {children}91 </h4>92 )93}94export const CardDescription = ({95 className,96 children,97}: {98 className?: string99 children: React.ReactNode100}) => {101 return (102 <p103 className={cn(104// … truncated
What it pulls in
npm packages
