default.tsx
1'use client';23import { Button } from '@/components/ui/button';4import { Tooltip } from '@/components/ui/tooltip';56export function Default() {7 return (8 <Tooltip>9 <Tooltip.Trigger asChild>10 <Button variant="outline">Hover me</Button>11 </Tooltip.Trigger>12 <Tooltip.Content>13 <p>Add to library</p>14 </Tooltip.Content>15 </Tooltip>16 );17}
Instalación
pnpm dlx nachui add tooltipAnatomía
1import { Tooltip } from '@/components/ui/tooltip';
1<Tooltip>2 <Tooltip.Trigger asChild>3 <Button variant="outline">Pasa el mouse</Button>4 </Tooltip.Trigger>5 <Tooltip.Content>6 <p>Texto de tooltip útil</p>7 </Tooltip.Content>8</Tooltip>
Características
- Múltiples posiciones - Colocación arriba, abajo, izquierda o derecha
- Control de retraso - Retraso de hover configurable
- Animaciones suaves - Efectos de entrada con desvanecimiento y desenfoque
- Indicador de flecha - Puntero visual al elemento activador
Variantes
Posiciones (Positions)
positions.tsx
1'use client';23import { Button } from '@/components/ui/button';4import { Tooltip } from '@/components/ui/tooltip';56const positions = [7 { label: 'Top', side: 'top', content: 'Tooltip on top' },8 { label: 'Bottom', side: 'bottom', content: 'Tooltip on bottom' },9 { label: 'Left', side: 'left', content: 'Tooltip on left' },10 { label: 'Right', side: 'right', content: 'Tooltip on right' },11] as const;1213export function Positions() {14 return (15 <div className="flex flex-col items-center gap-10 md:flex-row">16 {positions.map(({ label, side, content }) => (17 <Tooltip key={side}>18 <Tooltip.Trigger asChild>19 <Button variant="outline">{label}</Button>20 </Tooltip.Trigger>21 <Tooltip.Content side={side}>{content}</Tooltip.Content>22 </Tooltip>23 ))}24 </div>25 );26}
Referencia de API
Tooltip
| Prop | Tipo | Por defecto | Descripción |
|---|---|---|---|
delayDuration | number | 200 | Retraso antes de mostrar (ms) |
open | boolean | - | Estado abierto controlado |
onOpenChange | (open: boolean) => void | - | Callback cuando cambia el estado |
Tooltip.Trigger
| Prop | Tipo | Por defecto | Descripción |
|---|---|---|---|
asChild | boolean | false | Renderizar como elemento hijo |
className | string | - | Clases CSS adicionales |
Tooltip.Content
| Prop | Tipo | Por defecto | Descripción |
|---|---|---|---|
side | 'top' | 'bottom' | 'left' | 'right' | 'top' | Posición del tooltip |
sideOffset | number | 4 | Distancia del activador (px) |
className | string | - | Clases CSS adicionales |
Variantes
Diferentes Posiciones
1// Arriba (por defecto)2<Tooltip>3 <Tooltip.Trigger asChild>4 <Button>Arriba</Button>5 </Tooltip.Trigger>6 <Tooltip.Content side="top">7 <p>Tooltip arriba</p>8 </Tooltip.Content>9</Tooltip>1011// Abajo12<Tooltip>13 <Tooltip.Trigger asChild>14 <Button>Abajo</Button>15 </Tooltip.Trigger>16 <Tooltip.Content side="bottom">17 <p>Tooltip abajo</p>18 </Tooltip.Content>19</Tooltip>
Retraso Personalizado
1<Tooltip delayDuration={500}>2 <Tooltip.Trigger asChild>3 <Button>Tooltip lento</Button>4 </Tooltip.Trigger>5 <Tooltip.Content>6 <p>Esto aparece después de 500ms</p>7 </Tooltip.Content>8</Tooltip>
¿Encontraste algo que mejorar?
¿Notaste un error, tipografía o detalle faltante en esta página? Ayúdanos a mejorar la documentación abriendo un issue en GitHub.