Mini Card
tdds/mini-cardFreeComponent
Compact card with Treasury seal watermark and color variants
Install it
npx shadcn@latest add https://raw.githubusercontent.com/gjohnsx/ttb-label-verification/main/tdds-registry/public/r/mini-card.jsonSource
1import * as React from "react"2import { cva, type VariantProps } from "class-variance-authority"3import { cn } from "@/lib/utils"45const miniCardVariants = cva(6 "relative overflow-hidden flex flex-col justify-end",7 {8 variants: {9 variant: {10 primary: "bg-treasury-primary",11 "primary-dark": "bg-treasury-primary-dark",12 secondary: "bg-treasury-secondary",13 "secondary-dark": "bg-treasury-secondary-dark",14 "base-dark": "bg-treasury-base-dark",15 "base-darkest": "bg-treasury-base-darkest",16 },17 size: {18 default: "p-4 min-h-[120px]",19 sm: "p-3 min-h-[80px]",20 },21 },22 defaultVariants: {23 variant: "primary",24 size: "default",25 },26 }27)2829export interface MiniCardProps30 extends React.HTMLAttributes<HTMLDivElement>,31 VariantProps<typeof miniCardVariants> {32 icon?: React.ReactNode33 title: string34 href?: string35}3637function MiniCard({38 className,39 variant,40 size,41 icon,42 title,43 href,44 ...props45}: MiniCardProps) {46 const content = (47 <>48 {/* Treasury Seal Background */}49 <div50 className="absolute inset-0 opacity-20 pointer-events-none"51 style={{52 backgroundImage: "url('/images/treasury-seal.png')",53 backgroundPosition: "bottom right",54 backgroundRepeat: "no-repeat",55 backgroundSize: "auto 120%",56 }}57 aria-hidden="true"58 />5960 {/* Content */}61 <div className="relative z-10 flex flex-col gap-2">62 {icon && (63 <div className="text-treasury-paper [&_svg]:size-8 [&_svg]:stroke-[1.5]">64 {icon}65 </div>66 )}67 <h3 className="text-treasury-paper text-lg font-semibold leading-tight">68 {title}69 </h3>70 </div>71 </>72 )7374 const cardClasses = cn(miniCardVariants({ variant, size, className }))7576 if (href) {77 return (78 <a79 href={href}80 className={cn(81 cardClasses,82 "transition-all hover:brightness-110 focus:outline-none focus:ring-2 focus:ring-treasury-paper focus:ring-offset-2"83 )}84 {...(props as React.AnchorHTMLAttributes<HTMLAnchorElement>)}85 >86 {content}87 </a>88 )89 }9091 return (92 <div className={cardClasses} {...props}>93 {content}94 </div>95 )96}9798export { MiniCard, miniCardVariants }
What it pulls in
npm packages
Other registry items
Files it writes
More from tdds
All 43 items| Component | Registry | Kind | Access | Installs | Command |
|---|---|---|---|---|---|
| Accordionaccordion | tdds | Components | Free | 2 deps | |
| Alertalert | tdds | Components | Free | 1 dep | |
| Alert Dialogalert-dialog | tdds | Components | Free | 1 dep | |
| Avataravatar | tdds | Components | Free | 1 dep | |
| Badgebadge | tdds | Components | Free | 1 dep | |
| Breadcrumbbreadcrumb | tdds | Components | Free | 2 deps | |
| Buttonbutton | tdds | Components | Free | 2 deps | |
| Button Groupbutton-group | tdds | Components | Free | 1 dep |
