🎨

UI Knihovna

Kolekce nádherných, znovupoužitelných React komponent a CSS fragmentů vytvořená pomocí Tailwind CSS a Framer Motion.

Nápovědy

Krátká, kontextová vysvětlení, která se zobrazí při najetí myší.

Základní nápověda

More information
Delete permanently
Tooltip.tsxLanguage: tsx
import { useState } from 'react'; import { motion, AnimatePresence } from 'framer-motion'; export function Tooltip({ children, text }: { children: React.ReactNode, text: string }) { const [isHovered, setIsHovered] = useState(false); return ( <div className="relative flex items-center justify-center" onMouseEnter={() => setIsHovered(true)} onMouseLeave={() => setIsHovered(false)} > {children} <AnimatePresence> {isHovered && ( <motion.div initial={{ opacity: 0, y: 5 }} animate={{ opacity: 1, y: -5 }} exit={{ opacity: 0, scale: 0.95 }} className="absolute bottom-full mb-2 whitespace-nowrap bg-foreground text-background text-xs font-semibold px-3 py-1.5 rounded-lg shadow-xl" > {text} <div className="absolute top-full left-1/2 -translate-x-1/2 border-4 border-transparent border-t-foreground" /> </motion.div> )} </AnimatePresence> </div> ); } // Usage <Tooltip text="Copy to clipboard"> <button className="p-2 bg-popover border border-border rounded-lg">📋</button> </Tooltip>