Tooltip Component
CSS-only Tailwind CSS tooltip with top, bottom, left, and right placement. Color variants, no JavaScript required. WCAG AA accessible, works with Django, HTMX, Laravel, React, and any stack.
Araç ipucu bileşenleri, kullanıcılar bir öğenin üzerine geldiğinde veya bir öğeye odaklandığında ek bilgiler görüntüler. Anlamsal HTML nitelikleri ve CSS ile oluşturulan araç ipuçları, arayüzü karmaşıklaştırmadan bağlama özel yardım sağlayarak kullanıcı deneyimini geliştirir. Frutjam araç ipucu sistemi, kusursuz bilgi keşfi için birden fazla konumu, özel içeriği ve akıcı animasyonları destekler.
Yalnızca CSS, JavaScript gerekmez. WCAG AA erişilebilir ve çerçeveden bağımsız — Django, HTMX, Laravel, React ve tüm yığınlarla çalışır.
Not: Araç ipuçları, dokunmatik/mobil cihazlarda bulunmayan :hover ve :focus öğelerini kullanır. Mobil öncelikli düzenler için, duyarlı değişken lg:tooltip'i kullanın, böylece araç ipucu yalnızca masaüstünde (büyük ekranlar ve üstü) etkinleştirilir. Daha küçük ekranlarda, popover veya modal gibi farklı bir açıklama modeli kullanmayı düşünün.
| Sınıf | Tip | Tanım |
|---|---|---|
| tooltip | Temel | Fareyle üzerine gelindiğinde/odaklandığında veri ipucu içeriğini gösteren sarmalayıcı |
| tooltip-content | Değiştirici | Araç ipucu balonunun içindeki özel HTML içeriği |
| tooltip-top | Değiştirici | Tetikleyicinin üstünde açılır (varsayılan) |
| tooltip-bottom | Değiştirici | Tetikleyicinin altında açılır |
| tooltip-left | Değiştirici | Tetiğin solunda açılır |
| tooltip-right | Değiştirici | Tetiğin sağında açılır |
| tooltip-start | Değiştirici | Mantıksal başlangıç tarafına açılır |
| tooltip-end | Değiştirici | Mantıksal son tarafa açılır |
| tooltip-primary | Renk | Birincil tema renk balonu |
| tooltip-secondary | Renk | İkincil tema renk balonu |
| tooltip-accent | Renk | Vurgu teması renk balonu |
| tooltip-neutral | Renk | Nötr tema renk balonu |
| tooltip-info | Renk | Bilgi anlamsal renk balonu |
| tooltip-success | Renk | Başarı anlamsal renk balonu |
| tooltip-warning | Renk | Uyarı anlamsal renk balonu |
| tooltip-error | Renk | Hata anlamsal renk balonu |
İpucu
1 2 3 | <div class="tooltip" data-tip="Tooltip"> <button class="btn">Hover me</button> </div> |
1 2 3 | <div className="tooltip" data-tip="Tooltip"> <button className="btn">Hover me</button> </div> |
Özel Araç İpucu İçeriği
1 2 3 4 5 6 7 | <div class="tooltip tooltip-end"> <div class="tooltip-content"> <div class="text-xl">❤️</div> <div>Like</div> </div> <button class="btn">Hover me</button> </div> |
Simgeli Araç İpucu
1 2 3 4 5 6 | <div class="tooltip" data-tip="Menu"> <button class="btn btn-sm"> <svg xmlns="http://www.w3.org/2000/svg" width="22" height="22" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M4 5h16"/><path d="M4 12h16"/><path d="M4 19h16"/></svg> <span class="sr-only">Menu</span> </button> </div> |
İpucunu Açmaya Zorla
1 2 3 | <div class="tooltip tooltip-open" data-tip="hello"> <button class="btn">Force open</button> </div> |
Araç İpucu Konumlandırma Seçenekleri
En İyi Yerleşim
1 2 3 | <div class="tooltip tooltip-top tooltip-open" data-tip="Tooltip top"> <button class="btn">Top position</button> </div> |
Doğru Yerleştirme
1 2 3 | <div class="tooltip tooltip-right tooltip-open" data-tip="Tooltip right"> <button class="btn">Right position</button> </div> |
Yerleşimi Sonlandır
1 2 3 | <div class="tooltip tooltip-end tooltip-open" data-tip="Tooltip end"> <button class="btn">End position</button> </div> |
Alt Yerleştirme
1 2 3 | <div class="tooltip tooltip-bottom tooltip-open" data-tip="Tooltip bottom"> <button class="btn">Bottom position</button> </div> |
Sol Yerleştirme
1 2 3 | <div class="tooltip tooltip-left tooltip-open" data-tip="Tooltip left"> <button class="btn">Left position</button> </div> |
Yerleşimi Başlat
1 2 3 | <div class="tooltip tooltip-start tooltip-open" data-tip="Tooltip start"> <button class="btn">Start position</button> </div> |
Araç İpucu Renk Çeşitleri
Ana Renk
1 2 3 | <div class="tooltip tooltip-primary tooltip-open" data-tip="Primary"> <button class="btn btn-xs">Primary color</button> </div> |
İkincil Renk
1 2 3 | <div class="tooltip tooltip-secondary tooltip-open" data-tip="Secondary"> <button class="btn btn-xs">Secondary color</button> </div> |
Vurgu Rengi
1 2 3 | <div class="tooltip tooltip-accent tooltip-open" data-tip="Accent"> <button class="btn btn-xs">Accent color</button> </div> |
Bilgi Rengi
1 2 3 | <div class="tooltip tooltip-info tooltip-open" data-tip="Info"> <button class="btn btn-xs">Info color</button> </div> |
Başarı Rengi
1 2 3 | <div class="tooltip tooltip-success tooltip-open" data-tip="Success"> <button class="btn btn-xs">Success color</button> </div> |
Uyarı Rengi
1 2 3 | <div class="tooltip tooltip-warning tooltip-open" data-tip="Warning"> <button class="btn btn-xs">Warning color</button> </div> |
Hata Rengi
1 2 3 | <div class="tooltip tooltip-error tooltip-open" data-tip="Error"> <button class="btn btn-xs">Error color</button> </div> |
Nötr Renk
1 2 3 | <div class="tooltip tooltip-neutral tooltip-open" data-tip="Neutral"> <button class="btn btn-xs">Neutral color</button> </div> |
Duyarlı Araç İpuçları
lg:tooltip ile yalnızca büyük ekranlarda göster
1 2 3 | <div class="lg:tooltip" data-tip="Hey there!"> <button class="btn">Hover me</button> </div> |
JS ve Tepki Yardımcısı
Bir araç ipucunu programlı olarak göstermek veya gizlemek için frutjam/js'den createTooltip'i veya frutjam/react'tan useTooltip'i kullanın; rehberli turlar veya tetiklenen yardım metni için kullanışlıdır.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | <div class="flex gap-2 mb-4"> <button class="btn btn-sm" id="tip-show">Show</button> <button class="btn btn-sm" id="tip-hide">Hide</button> <button class="btn btn-sm" id="tip-toggle">Toggle</button> </div> <div class="tooltip" data-tip="Programmatic tooltip" id="js-tooltip"> <button class="btn">Target</button> </div> <script type="module"> import { createTooltip } from 'frutjam/js' const tip = createTooltip(document.getElementById('js-tooltip')) document.getElementById('tip-show').onclick = () => tip.show() document.getElementById('tip-hide').onclick = () => tip.hide() document.getElementById('tip-toggle').onclick = () => tip.toggle() </script> |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | import { useTooltip } from 'frutjam/react' export default function TooltipDemo() { const tooltip = useTooltip() return ( <> <div className="flex gap-2 mb-4"> <button className="btn btn-sm" onClick={tooltip.show}>Show</button> <button className="btn btn-sm" onClick={tooltip.hide}>Hide</button> <button className="btn btn-sm" onClick={tooltip.toggle}>Toggle</button> </div> <div ref={tooltip.ref} className="tooltip" data-tip="Programmatic tooltip"> <button className="btn">Target</button> </div> </> ) } |