Tooltip
Tooltip.tsx
import React, { useState } from 'react';
import styles from './Tooltip.module.css';
interface TooltipProps {
text: string;
children: React.ReactNode;
}
const Tooltip = ({ text, children }: TooltipProps) => {
const [showTooltip, setShowTooltip] = useState(false);
const handleMouseEnter = () => {
setShowTooltip(true);
};
const handleMouseLeave = () => {
setShowTooltip(false);
};
return (
<div className={styles.tooltipContainer}>
<div
className={styles.tooltipTrigger}
onMouseEnter={handleMouseEnter}
onMouseLeave={handleMouseLeave}
>
{children}
</div>
{showTooltip && <div className={styles.tooltip}>{text}</div>}
</div>
);
};
export default Tooltip;
Tooltip.module.css
.tooltipContainer {
position: relative;
}
.tooltipTrigger {
display: inline-block;
}
.tooltip {
position: absolute;
top: calc(100% + 5px);
left: 50%;
transform: translateX(-50%);
padding: 5px;
background-color: #333;
color: #fff;
border-radius: 3px;
white-space: nowrap;
}