Preview Card
adn-ui/preview-cardFreeComponent
A popup that appears when a link is hovered, showing a preview snippet.
Live preview
live · rendered by the registry
Rendered by adn-ui on their own page — this is the component running, not a screenshot of it.Install it
npx shadcn@latest add https://ui.awaiden.com/r/preview-card.jsonSource
1"use client";23import "./preview-card.css";4import { PreviewCard as BasePreviewCard } from "@base-ui/react/preview-card";5import type React from "react";6import { cn } from "tailwind-variants";78import { PreviewCardContext, usePreviewCardContext } from "./preview-card.context";9import { previewCardVariants, type PreviewCardVariants } from "./preview-card.variants";1011export type PreviewCardProps = PreviewCardVariants &12 React.ComponentProps<typeof BasePreviewCard.Root>;1314export const PreviewCardRoot = ({ children, size, ...props }: PreviewCardProps) => {15 const slots = previewCardVariants({ size });1617 return (18 <PreviewCardContext.Provider value={{ slots }}>19 <BasePreviewCard.Root {...props}>{children}</BasePreviewCard.Root>20 </PreviewCardContext.Provider>21 );22};2324export type PreviewCardTriggerProps = React.ComponentProps<typeof BasePreviewCard.Trigger>;2526export const PreviewCardTrigger = ({ className, ...props }: PreviewCardTriggerProps) => {27 const { slots } = usePreviewCardContext();28 return <BasePreviewCard.Trigger className={cn(slots.trigger(), className)} {...props} />;29};3031export type PreviewCardPortalProps = React.ComponentProps<typeof BasePreviewCard.Portal>;3233export const PreviewCardPortal = (props: PreviewCardPortalProps) => {34 return <BasePreviewCard.Portal {...props} />;35};3637export type PreviewCardBackdropProps = React.ComponentProps<typeof BasePreviewCard.Backdrop>;3839export const PreviewCardBackdrop = ({ className, ...props }: PreviewCardBackdropProps) => {40 const { slots } = usePreviewCardContext();41 return <BasePreviewCard.Backdrop className={cn(slots.backdrop(), className)} {...props} />;42};4344export type PreviewCardPositionerProps = React.ComponentProps<typeof BasePreviewCard.Positioner>;4546export const PreviewCardPositioner = ({47 className,48 sideOffset = 8,49 ...props50}: PreviewCardPositionerProps) => {51 const { slots } = usePreviewCardContext();52 return (53 <BasePreviewCard.Positioner54 className={cn(slots.positioner(), className)}55 sideOffset={sideOffset}56 {...props}57 />58 );59};6061export type PreviewCardPopupProps = React.ComponentProps<typeof BasePreviewCard.Popup>;6263export const PreviewCardPopup = ({ className, ...props }: PreviewCardPopupProps) => {64 const { slots } = usePreviewCardContext();65 return <BasePreviewCard.Popup className={cn(slots.popup(), className)} {...props} />;66};6768export type PreviewCardArrowProps = React.ComponentProps<typeof BasePreviewCard.Arrow>;6970// … truncated
What it pulls in
npm packages
Files it writes
More from adn-ui
All 46 items| Component | Registry | Kind | Access | Installs | Command |
|---|---|---|---|---|---|
| Accordionaccordion | adn-ui | Components | Free | 2 deps · 5 files | |
| Alert Dialogalert-dialog | adn-ui | Components | Free | 2 deps · 5 files | |
| Aspect Ratioaspect-ratio | adn-ui | Components | Free | 1 dep · 5 files | |
| Autocompleteautocomplete | adn-ui | Components | Free | 2 deps · 5 files | |
| Avataravatar | adn-ui | Components | Free | 2 deps · 5 files | |
| Badgebadge | adn-ui | Components | Free | 1 dep · 5 files | |
| Breadcrumbbreadcrumb | adn-ui | Components | Free | 1 dep · 5 files | |
| Buttonbutton | adn-ui | Components | Free | 1 dep · 4 files |
