@akhatmirzo/ui

Tooltip

Hover yoki fokusda chiqadigan qisqa izoh; klaviatura yorlig'i bilan.

Import

import { Tooltip, TooltipProvider } from '@akhatmirzo/ui';

Qachon ishlatish

  • Ikonka tugmani tushuntirish — IconButton ning vazifasini so'z bilan aytish va qisqa yo'lni (⌘C) ko'rsatish uchun eng ko'p ishlatiladi.
  • Faqat qisqa matn. Ichida tugma yoki havola bo'lmaydi — interaktiv kontent kerak bo'lsa, Popover oling.
  • Muhim ma'lumotni yashirmang. Telefonda tooltip umuman chiqmaydi, shuning uchun usiz ham tushunarli bo'lmagan matnni sahifaning o'ziga yozing.
  • aria-label ning o'rnini bosmaydi. Ikonka tugmaga baribir aria-label yozing; tooltip — ko'zi ko'radigan foydalanuvchi uchun qo'shimcha.

TooltipProvider

Ilova ildiziga bitta TooltipProvider qo'ying: barcha tooltiplar umumiy kechikishni bo'lishadi va biridan ikkinchisiga o'tganda kechikishsiz ochiladi (yuqoridagi misolda tugmalar orasida yurib ko'ring). Provider bo'lmasa ham tooltip ishlaydi — har biri o'z provider'ini yaratadi, faqat bu "kechikishsiz o'tish" yo'qoladi.

app/providers.tsx
'use client';

import { TooltipProvider } from '@akhatmirzo/ui';
import type { ReactNode } from 'react';

export function Providers({ children }: { children: ReactNode }) {
  return <TooltipProvider delay={300}>{children}</TooltipProvider>;
}

Tomonlar

side — top (standart), right, bottom, left. Ekran chetiga yetsa, tooltip o'zi teskari tomonga o'tadi.

Kechikish va uzun matn

delay — ochilishdan oldingi kutish, ms. Standart qiymat provider'dan olinadi (300). Matn 240px dan uzun bo'lsa, keyingi qatorga o'raladi — lekin tooltip matni bir-ikki qatordan oshmagani ma'qul.

O'chirilgan tugmada

O'chirilgan (disabled) tugma hodisalarni qabul qilmaydi, shuning uchun tooltip unga to'g'ridan- to'g'ri ishlamaydi. Tugmani tabIndex={0} li span ga o'rang — klaviatura foydalanuvchisi ham sababni ko'radi.

Boshqariladigan rejim va disabled

open + onOpenChange bilan tooltipni koddan ochasiz. disabled tooltipni vaqtincha o'chiradi — trigger o'zgarishsiz qoladi. content bo'sh bo'lsa ham tooltip chizilmaydi.

Props

Tooltip

Radix Tooltip.Content ning qolgan prop'lari (alignOffset, avoidCollisions, onEscapeKeyDown ...) va className tooltip paneliga uzatiladi.

PropTipStandartTavsif
contentmajburiyReactNode—Qisqa matn. Bo'sh bo'lsa — tooltip chiqmaydi
childrenmajburiyReactElement—Trigger — ref va hodisalarni qabul qiladigan bitta element
side'top' | 'right' | 'bottom' | 'left''top'Qaysi tomonda chiqadi
align'start' | 'center' | 'end''center'Trigger bo'ylab tekislash
sideOffsetnumber6Triggerdan masofa, px
collisionPaddingnumber8Ekran chetidan minimal masofa, px
delaynumber—Ochilish kechikishi, ms (standart — provider'dan yoki 300)
shortcutstring[]—Matn yonida Kbd: ['mod', 'C']
openboolean—Boshqariladigan rejim
defaultOpenbooleanfalseBoshida ochiq
onOpenChange(open: boolean) => void—Ochilib-yopilganda
disabledbooleanfalseTooltipni vaqtincha o'chiradi

TooltipProvider

Tooltip.Provider nomi bilan ham mavjud.

PropTipStandartTavsif
delaynumber300Ochilish kechikishi, ms
skipDelaynumber300Shu vaqt ichida qo'shni tooltip kechikishsiz ochiladi, ms
childrenmajburiyReactNode—Ilova

Data atributlari

AtributQayerdaQiymat
data-statepaneldelayed-open · instant-open · closed
data-sidepaneltop · right · bottom · left
data-slotpaneltooltip

Klaviatura

TugmaHarakat
Tab (fokus)Trigger fokus olganda tooltip chiqadi
EscTooltipni yopadi

Accessibility

  • Bog'lanish. Ochiq paytda trigger aria-describedby orqali tooltip matniga ulanadi — ekran o'quvchi tugma nomidan keyin izohni o'qiydi.
  • Klaviatura fokusida ham chiqadi, faqat sichqoncha uchun emas.
  • Sensorli qurilmalarda (hover yo'q, qo'pol ko'rsatkich) tooltip ochilmaydi — barmoq bosishi tugmaning o'zini ishga tushiradi.
  • Rang. Teskari rangda chiziladi (bg-text, text-background) — yorug' va qorong'i rejimda kontrast saqlanadi.
  • Kamroq harakat. prefers-reduced-motion da faqat shaffoflik animatsiyasi.

Sahifada