MicroClub Hover Card
mcoli-ui-registry/mc-hover-cardFreeComponent
A hover card component for MicroClub UI
Live preview
live · rendered by the registry
Rendered by mcoli-ui-registry on their own page — this is the component running, not a screenshot of it.Install it
npx shadcn@latest add https://mcoli-ui.microclub.info/r/mc-hover-card.jsonSource
1'use client';23import { PreviewCard as PreviewCardPrimitive } from '@base-ui/react/preview-card';45import { cn } from '@/lib/utils';67function McHoverCard({ ...props }: PreviewCardPrimitive.Root.Props) {8 return <PreviewCardPrimitive.Root data-slot="hover-card" {...props} />;9}1011function McHoverCardTrigger({ ...props }: PreviewCardPrimitive.Trigger.Props) {12 return <PreviewCardPrimitive.Trigger data-slot="hover-card-trigger" {...props} />;13}1415function McHoverCardContent({16 className,17 side = 'bottom',18 sideOffset = 4,19 align = 'center',20 alignOffset = 4,21 textAlign = 'start',22 imageSrc = null,23 imageposition = 'top',24 title,25 subtitle,26 description,27 ...props28}: PreviewCardPrimitive.Popup.Props &29 Pick<PreviewCardPrimitive.Positioner.Props, 'align' | 'alignOffset' | 'side' | 'sideOffset'> & {30 textAlign?: 'start' | 'center';31 imageSrc?: string | null;32 imageposition?: 'top' | 'bottom';33 title?: string;34 subtitle?: string;35 description?: string;36 }) {37 return (38 <PreviewCardPrimitive.Portal data-slot="hover-card-portal">39 <PreviewCardPrimitive.Positioner40 align={align}41 alignOffset={alignOffset}42 side={side}43 sideOffset={sideOffset}44 className="isolate z-50 w-76 origin-(--transform-origin) rounded-lg bg-card p-4 text-sm text-popover-foreground shadow-md ring-inset ring-1 ring-border flex flex-col "45 >46 <div className={`${imageposition === 'top' ? 'flex-col' : 'flex-col-reverse'} flex gap-4`}>47 {imageSrc && <img src={imageSrc} alt="Profile" className={`w-full `} />}48 <div49 className={`${textAlign === 'start' ? 'items-start' : 'items-center'} flex flex-col gap-2`}50 >51 {title && <h4 className="font-semibold text-card-foreground">{title}</h4>}52 <div53 className={`${textAlign === 'start' ? 'items-start' : 'text-center'} flex flex-col`}54 >55 {subtitle && <p className=" font-regular text-card-foreground">{subtitle}</p>}56 {description && <p className="font-regular text-card-foreground">{description}</p>}57 </div>58 </div>59 </div>6061 <PreviewCardPrimitive.Popup62 data-slot="hover-card-content"63 className={cn(64 ' outline-hidden duration-100 ',65 ' data-[side=bottom]:slide-in-from-top-2 data-[side=inline-end]:slide-in-from-left-2 data-[side=inline-start]:slide-in-from-right-2 ',66// … truncated
What it pulls in
npm packages
Files it writes
More from mcoli-ui-registry
All 42 items| Component | Registry | Kind | Access | Installs | Command |
|---|---|---|---|---|---|
| MicroClub Accordionmc-accordion | mcoli-ui-registry | Components | Free | 2 deps | |
| MicroClub Alertmc-alert | mcoli-ui-registry | Components | Free | 1 dep | |
| MicroClub Alert Dialogmc-alert-dialog | mcoli-ui-registry | Components | Free | 1 dep | |
| MicroClub Avatarmc-avatar | mcoli-ui-registry | Components | Free | 1 dep | |
| MicroClub Badgemc-badge | mcoli-ui-registry | Components | Free | 1 dep | |
| MicroClub Breadcrumbmc-breadcrumb | mcoli-ui-registry | Components | Free | 2 deps | |
| MicroClub Buttonmc-button | mcoli-ui-registry | Components | Free | 2 deps | |
| MicroClub Calendarmc-calendar | mcoli-ui-registry | Components | Free | 3 deps |
