shadcn-remix
GitHub

Hover Card

For sighted users to preview content available behind a link.

@nextjs
VC

@nextjs

The React Framework – created and maintained by @vercel.

Joined December 2021
import { css } from 'remix/component'

import { Avatar, AvatarFallback, AvatarImage } from '#app/ui/avatar.tsx'
import { buttonVariants } from '#app/ui/button.tsx'
import { HoverCard, HoverCardContent, HoverCardTrigger } from '#app/ui/hover-card.tsx'
import { css } from 'remix/component'

import { Avatar, AvatarFallback, AvatarImage } from '#app/ui/avatar.tsx'
import { buttonVariants } from '#app/ui/button.tsx'
import { HoverCard, HoverCardContent, HoverCardTrigger } from '#app/ui/hover-card.tsx'

export function HoverCardDemo() {
  return () => (
    <HoverCard>
      <HoverCardTrigger
        href="https://nextjs.org"
        data-slot="button"
        mix={buttonVariants({ variant: 'link' })}
      >
        @nextjs
      </HoverCardTrigger>
      <HoverCardContent mix={css({ width: '20rem' })}>
        <div mix={css({ display: 'flex', justifyContent: 'space-between', gap: '1rem' })}>
          <Avatar>
            <AvatarImage src="https://github.com/vercel.png" />
            <AvatarFallback>VC</AvatarFallback>
          </Avatar>
          <div mix={css({ '& > :not(:last-child)': { marginBlockEnd: '0.25rem' } })}>
            <h4 mix={css({ fontSize: '0.875rem', lineHeight: 'calc(1.25 / 0.875)', fontWeight: 600 })}>
              @nextjs
            </h4>
            <p mix={css({ fontSize: '0.875rem', lineHeight: 'calc(1.25 / 0.875)' })}>
              The React Framework – created and maintained by @vercel.
            </p>
            <div
              mix={css({
                fontSize: '0.75rem',
                lineHeight: 'calc(1 / 0.75)',
                color: 'var(--muted-foreground)',
              })}
            >
              Joined December 2021
            </div>
          </div>
        </div>
      </HoverCardContent>
    </HoverCard>
  )
}

Installation

$ pnpm dlx shadcn@latest add https://www.shadcn-remix.com/r/hover-card.json

Usage

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

API Reference

HoverCard

PropTypeDefault
openboolean-
defaultOpenboolean-
onOpenChange((open: boolean) => void)-
openDelaynumber-
closeDelaynumber-

HoverCardTrigger

Renders an <a> like Radix. shadcn's asChild maps to mix: <HoverCardTrigger href="…" mix={buttonVariants({ variant: 'link' })}>@nextjs</HoverCardTrigger>.

PropTypeDefault
mixMixValue-

HoverCardContent

PropTypeDefault
sideSide"bottom"
alignAlign"center"
sideOffsetnumber4
alignOffsetnumber0
mixMixValue-