Cards

Registry Card

A compact metadata card for previewing copy-ready UI components.

ReactavailableBeginner
cardregistrymetadata
Author: Prism Bits @saiusesgithub
Live React preview
Loading preview…
"use client";

type RegistryCardProps = {
  eyebrow?: string;
  title?: string;
  description?: string;
  tags?: string[];
  href?: string;
};

export default function RegistryCard({
  eyebrow = "Buttons",
  title = "Glass CTA",
  description = "A polished call-to-action pair for dark landing pages.",
  tags = ["react", "beginner"],
  href = "#",
}: RegistryCardProps) {
  return (
    <a
      href={href}
      className="group block w-full max-w-72 rounded-2xl border border-white/12 bg-white/[0.05] p-5 shadow-2xl shadow-purple-950/20 transition duration-200 hover:-translate-y-1 hover:border-white/25 hover:bg-white/[0.08] focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-white/70"
    >
      <p className="text-xs font-medium uppercase tracking-[0.14em] text-cyan-200/70">{eyebrow}</p>
      <h3 className="mt-2 text-xl font-semibold text-white">{title}</h3>
      <p className="mt-2 text-sm leading-6 text-white/55">{description}</p>
      <div className="mt-4 flex flex-wrap gap-2">
        {tags.map((tag) => (
          <span key={tag} className="rounded-full bg-white/[0.07] px-2.5 py-1 text-xs text-white/60">
            {tag}
          </span>
        ))}
      </div>
      <p className="mt-5 text-sm font-medium text-white/70 transition group-hover:text-white">
        View component <span aria-hidden="true">→</span>
      </p>
    </a>
  );
}