सामग्री पर जाएँ

होवर कार्ड

होवर करने पर खुलने वाला एक फ्लोटिंग पूर्वावलोकन — प्रोफ़ाइल झलकियाँ, लिंक पूर्वावलोकन, शब्दावली शब्द — नियोब्रूटलिस्ट बॉर्डर्स-और-शैडोज़ ट्रीटमेंट के साथ।

import {
  Avatar,
  AvatarFallback,

होवर कार्ड ट्रिगर पर पॉइंटर रुकने पर पेज पर समृद्ध प्रीव्यू कंटेंट का पैनल तैरता है — क्लिक की ज़रूरत नहीं। यह Base UI Preview Card प्रिमिटिव पर बना है और नियोब्रूटलिस्ट रेसिपी के अनुसार स्टाइल किया गया है: मोटे बॉर्डर, कठोर छायाएँ और बोल्ड टाइपोग्राफ़ी।

इसे इन स्थितियों में चुनें:

  • प्रोफ़ाइल झलक — @mention या अवतार पर होवर करके बायो, स्टैट और follow बटन दिखाएँ।
  • लिंक प्रीव्यू — क्लिक से पहले पेज का टाइटल और सार दिखाएँ।
  • ग्लॉसरी शब्द — डॉक्स में jargon इनलाइन परिभाषित करें, बिना कहीं और गए।

इंस्टॉलेशन

pnpm dlx shadcn@latest add https://neobrutalism.com/r/base/hover-card.json
npx shadcn@latest add https://neobrutalism.com/r/base/hover-card.json
yarn dlx shadcn@latest add https://neobrutalism.com/r/base/hover-card.json
bunx --bun shadcn@latest add https://neobrutalism.com/r/base/hover-card.json

निम्नलिखित डिपेंडेंसी इंस्टॉल करें:

pnpm add @base-ui/react
npm install @base-ui/react
yarn add @base-ui/react
bun add @base-ui/react

निम्नलिखित कोड को अपने प्रोजेक्ट में कॉपी और पेस्ट करें.

components/ui/hover-card.tsx
"use client"

import * as React from "react"
import { HoverCard as HoverCardPrimitive } from "radix-ui"

import { cn } from "@/lib/utils"

function HoverCard({
  ...props
}: React.ComponentProps<typeof HoverCardPrimitive.Root>) {
  return <HoverCardPrimitive.Root data-slot="hover-card" {...props} />
}

function HoverCardTrigger({
  ...props
}: React.ComponentProps<typeof HoverCardPrimitive.Trigger>) {
  return (
    <HoverCardPrimitive.Trigger data-slot="hover-card-trigger" {...props} />
  )
}

function HoverCardContent({
  className,
  align = "center",
  sideOffset = 4,
  ...props
}: React.ComponentProps<typeof HoverCardPrimitive.Content>) {
  return (
    <HoverCardPrimitive.Portal data-slot="hover-card-portal">
      <HoverCardPrimitive.Content
        data-slot="hover-card-content"
        align={align}
        sideOffset={sideOffset}
        className={cn(
          "z-50 w-64 origin-(--radix-hover-card-content-transform-origin) rounded border-2 bg-popover p-2.5 text-sm text-popover-foreground shadow-md outline-hidden duration-100 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95",
          className
        )}
        {...props}
      />
    </HoverCardPrimitive.Portal>
  )
}

export { HoverCard, HoverCardTrigger, HoverCardContent }

अपने प्रोजेक्ट सेटअप के अनुसार इंपोर्ट पाथ अपडेट करें.

उपयोग

import {
  HoverCard,
  HoverCardContent,
  HoverCardTrigger,
} from "@/components/ui/hover-card"
<HoverCard>
  <HoverCardTrigger>Hover</HoverCardTrigger>
  <HoverCardContent>
    The React Framework – created and maintained by @vercel.
  </HoverCardContent>
</HoverCard>

कंपोज़िशन

HoverCard बनाने के लिए निम्नलिखित कंपोज़िशन का उपयोग करें:

HoverCard
├── HoverCardTrigger
└── HoverCardContent

ट्रिगर डिले

कार्ड कब खुलता और बंद होता है यह नियंत्रित करने के लिए ट्रिगर पर delay और closeDelay का उपयोग करें.

<HoverCard>
  <HoverCardTrigger delay={100} closeDelay={200}>
    Hover
  </HoverCardTrigger>
  <HoverCardContent>Content</HoverCardContent>
</HoverCard>

पोज़िशनिंग

प्लेसमेंट नियंत्रित करने के लिए HoverCardContent पर side और align प्रॉप्स का उपयोग करें.

<HoverCard>
  <HoverCardTrigger>Hover</HoverCardTrigger>
  <HoverCardContent side="top" align="start">
    Content
  </HoverCardContent>
</HoverCard>

उदाहरण

बुनियादी

import {
  Avatar,
  AvatarFallback,

Sides

import { Button } from "@/components/ui/button"
import {
  HoverCard,

RTL

Neobrutalism में RTL सपोर्ट सक्षम करने के लिए, RTL कॉन्फ़िगरेशन गाइड देखें.

"use client"

import {

एक्सेसिबिलिटी

होवर कार्ड के लिए समर्पित WAI-ARIA पैटर्न नहीं है — सबसे करीब Tooltip पैटर्न है। Base UI प्रिमिटिव ट्रिगर के कीबोर्ड फ़ोकस पर कार्ड खोलता है और Escape से बंद करता है। फिर भी कंटेंट को दृष्टि वाले उपयोगकर्ताओं के लिए पूरक समझें और ट्रिगर असली लिंक रखें ताकि पूरा कंटेंट गंतव्य पर पहुँच-योग्य रहे।

कीबोर्ड इंटरैक्शन:

कुंजीक्रिया
Tab / Shift + Tabट्रिगर पर फ़ोकस ले जाएँ — फ़ोकस से कार्ड खुलता है, छोड़ने पर बंद
Escapeकार्ड बंद करें
Enterट्रिगर लिंक का पालन करें

API रेफ़रेंस

अधिक जानकारी के लिए Base UI डॉक्युमेंटेशन देखें.