LogoReactUI Library
HomeComponentsShowcaseThemesNServicesNNextGenNPricingContact

Resources

Theme ExtractorExtract palettes from any site or imageColor LabPick, mix, export & engineer colorsGalleryUI screenshots & inspirationBlogArticles & tutorialsDocumentationGuides & API referenceAboutCompany, mission & teamExamplesReal-world code examples
  1. Home
  2. /Components
  3. /Cards
R
ReactUI

A comprehensive React component library with beautiful design, accessibility, and developer experience in mind.

Product

  • Components
  • Documentation
  • Examples
  • Buttons
  • Cards

Resources

  • Getting Started
  • Installation
  • Theming
  • API Reference
  • Free PDF & Image Tools

Community

  • About Us
  • GitHub
  • Discord
  • Twitter

© 2026 ReactUI Library. All rights reserved.

Privacy PolicyTerms of ServiceRefund Policy
Components/Cards

Cards.

Mouse-tracking spotlight cards, glass profiles, pricing with a working billing toggle, product cards and animated stats — the building blocks users actually interact with.

10 componentsFree · copy-pasteTailwind CSS
ButtonsCardsFormsNavigationData DisplayFeedbackLayoutOverlayHero SectionsDashboardLandingBlog & ContentSettings

Spotlight Cards

Instant setup

Copy the component, paste it in your project, ship it. Zero config.

Responsive by default

Every card adapts from mobile to ultra-wide without extra work.

Accessible

Focus rings, contrast-safe text and semantic markup built in.

A radial glow follows your cursor across the card — move your mouse over them. The modern signature hover effect.

T
spotlight-cards.tsx
1function SpotlightCard({ children }: { children: React.ReactNode }) {
2 const ref = useRef<HTMLDivElement>(null);
3 const [pos, setPos] = useState({ x: -200, y: -200 });
4 
5 return (
6 <div
7 "color:#79c0ff">ref={ref}
8 onMouseMove={(e) => {
9 const r = ref.current!.getBoundingClientRect();
10 setPos({ x: e.clientX - r.left, y: e.clientY - r.top });
11 }}
12 "color:#79c0ff">onMouseLeave={() => setPos({ x: -200, y: -200 })}
13 "color:#79c0ff">className="group relative overflow-hidden rounded-2xl border border-white/10 bg-white/[0.03] p-6"
14 >
15 {/* spotlight */}
16 <div
17 "color:#79c0ff">className="pointer-events-none absolute inset-0 opacity-0 transition-opacity duration-300 group-hover:opacity-100"
18 "color:#79c0ff">style={{
19 background: `radial-gradient(340px circle at ${pos.x}px ${pos.y}px, rgba(139,92,246,0.18), transparent 65%)`,
20 }}
21 />
22 <div "color:#79c0ff">className="relative">{children}</div>
23 </div>
24 );
25}
⬡ UIDrop Component25 lines
TypeScript ReactUTF-8

Pricing Card — Billing Toggle

ProMost popular
$15/monthSAVE 20%

Billed $180 yearly

  • ✓Unlimited projects
  • ✓AI code generation
  • ✓Custom domains
  • ✓Priority support

Flip between monthly and yearly billing — prices and savings badge update live.

T
pricing-card-—-billing-toggle.tsx
1function PricingCard() {
2 const [yearly, setYearly] = useState(true);
3 
4 return (
5 <div "color:#79c0ff">className="w-full max-w-sm rounded-3xl bg-gradient-to-b from-violet-500/40 to-transparent p-px">
6 <div "color:#79c0ff">className="rounded-[23px] bg-[#0b0b16] p-7">
7 <div "color:#79c0ff">className="flex items-center justify-between">
8 <span "color:#79c0ff">className="text-sm font-bold text-white">Pro</span>
9 <button
10 "color:#79c0ff">onClick={() => setYearly(!yearly)}
11 "color:#79c0ff">className="flex items-center gap-2 rounded-full bg-white/[0.06] p-1 text-[10px] font-bold"
12 >
13 <span "color:#79c0ff">className={"rounded-full px-2.5 py-1 " + (!yearly ? "bg-white text-slate-900" : "text-white/45")}>Monthly</span>
14 <span "color:#79c0ff">className={"rounded-full px-2.5 py-1 " + (yearly ? "bg-white text-slate-900" : "text-white/45")}>Yearly</span>
15 </button>
16 </div>
17 <div "color:#79c0ff">className="mt-5 flex items-baseline gap-2">
18 <span "color:#79c0ff">className="text-5xl font-extrabold text-white">${yearly ? 15 : 19}</span>
19 <span "color:#79c0ff">className="text-sm text-white/40">/month</span>
20 {yearly && <span "color:#79c0ff">className="rounded-full bg-emerald-500/15 px-2 py-0.5 text-[10px] font-bold text-emerald-400">SAVE 20%</span>}
21 </div>
22 {/* features + CTA … */}
23 </div>
24 </div>
25 );
26}
⬡ UIDrop Component26 lines
TypeScript ReactUTF-8

Glass Profile Card

AK

Ayush Kumar

Design engineer · @ayushbuilds

128

Posts

12.4k

Followers

842

Following

Gradient banner, ring avatar, stat row and a working follow toggle — frosted glass over a glow.

T
glass-profile-card.tsx
1<div "color:#79c0ff">className="relative w-full max-w-xs overflow-hidden rounded-3xl border border-white/10 bg-white/[0.04] backdrop-blur-xl">
2 {/* banner */}
3 <div "color:#79c0ff">className="h-24 bg-gradient-to-r from-violet-600 via-fuchsia-500 to-cyan-400" />
4 
5 <div "color:#79c0ff">className="-mt-10 px-6 pb-6 text-center">
6 <div "color:#79c0ff">className="mx-auto h-20 w-20 rounded-full bg-gradient-to-br from-violet-500 to-indigo-600 p-1 shadow-xl">
7 <div "color:#79c0ff">className="flex h-full w-full items-center justify-center rounded-full bg-[#0b0b16] text-xl font-black text-white">AK</div>
8 </div>
9 <h3 "color:#79c0ff">className="mt-3 text-lg font-bold text-white">Ayush Kumar</h3>
10 <p "color:#79c0ff">className="text-sm text-white/40">Design engineer · @ayushbuilds</p>
11 
12 <div "color:#79c0ff">className="mt-5 grid grid-cols-3 divide-x divide-white/10 rounded-xl bg-white/[0.04] py-3">
13 {[["128", "Posts"], ["12.4k", "Followers"], ["842", "Following"]].map(([v, l]) => (
14 <div "color:#79c0ff">key={l}>
15 <p "color:#79c0ff">className="text-base font-extrabold text-white">{v}</p>
16 <p "color:#79c0ff">className="text-[10px] uppercase tracking-wider text-white/35">{l}</p>
17 </div>
18 ))}
19 </div>
20 
21 <button "color:#79c0ff">className="mt-5 w-full rounded-xl bg-white py-2.5 text-sm font-bold text-slate-900 transition hover:bg-slate-100 active:scale-[0.99]">
22 Follow
23 </button>
24 </div>
25</div>
⬡ UIDrop Component25 lines
TypeScript ReactUTF-8

Product Card

-25%

Headphones

★ 4.9 (214)

Nebula ANC Pro

$249$329

Image zoom on hover, working wishlist toggle, rating, strikethrough price and an add-to-cart reveal.

T
product-card.tsx
1<div "color:#79c0ff">className="group w-full max-w-xs overflow-hidden rounded-2xl border border-white/10 bg-white/[0.03]">
2 {/* image */}
3 <div "color:#79c0ff">className="relative h-48 overflow-hidden">
4 <div "color:#79c0ff">className="absolute inset-0 bg-gradient-to-br from-indigo-500 via-violet-600 to-fuchsia-600 transition-transform duration-500 group-hover:scale-110" />
5 <span "color:#79c0ff">className="absolute left-3 top-3 rounded-full bg-black/50 px-2.5 py-1 text-[10px] font-bold text-white backdrop-blur">-25%</span>
6 <button "color:#79c0ff">className="absolute right-3 top-3 flex h-8 w-8 items-center justify-center rounded-full bg-black/50 text-white/80 backdrop-blur transition hover:text-rose-400">
7 <HeartIcon "color:#79c0ff">className="h-4 w-4" />
8 </button>
9 {/* add-to-cart slides up on hover */}
10 <button "color:#79c0ff">className="absolute inset-x-3 bottom-3 translate-y-14 rounded-xl bg-white py-2.5 text-sm font-bold text-slate-900 opacity-0 transition-all duration-300 group-hover:translate-y-0 group-hover:opacity-100">
11 Add to cart
12 </button>
13 </div>
14 {/* body */}
15 <div "color:#79c0ff">className="p-4">
16 <div "color:#79c0ff">className="flex items-center justify-between">
17 <p "color:#79c0ff">className="text-[11px] font-semibold uppercase tracking-wider text-violet-400">Headphones</p>
18 <div "color:#79c0ff">className="flex items-center gap-1 text-[11px] font-bold text-amber-400">★ 4.9 <span "color:#79c0ff">className="font-medium text-white/30">(214)</span></div>
19 </div>
20 <h3 "color:#79c0ff">className="mt-1 font-bold text-white">Nebula ANC Pro</h3>
21 <div "color:#79c0ff">className="mt-2 flex items-baseline gap-2">
22 <span "color:#79c0ff">className="text-lg font-extrabold text-white">$249</span>
23 <span "color:#79c0ff">className="text-sm text-white/30 line-through">$329</span>
24 </div>
25 </div>
26</div>
⬡ UIDrop Component26 lines
TypeScript ReactUTF-8

Animated Stat Cards

Monthly revenue

$48.2k+18.2%

Active users

12,840+9.4%

Churn rate

1.9%-0.4%

KPI tiles with growing sparkline bars, delta chips and icon accents — the dashboard staple, polished.

T
animated-stat-cards.tsx
1const stats = [
2 { label: "Monthly revenue", value: "$48.2k", delta: "+18.2%", up: true,
3 bars: [35, 55, 42, 68, 50, 78, 64, 92],
4 grad: "from-violet-600 to-fuchsia-500" },
5 { label: "Active users", value: "12,840", delta: "+9.4%", up: true,
6 bars: [30, 44, 38, 56, 48, 62, 60, 74],
7 grad: "from-cyan-500 to-blue-600" },
8 { label: "Churn rate", value: "1.9%", delta: "-0.4%", up: false,
9 bars: [55, 50, 52, 44, 46, 40, 38, 32],
10 grad: "from-emerald-500 to-teal-600" },
11];
12 
13{stats.map((s) => (
14 <div "color:#79c0ff">key={s.label} "color:#79c0ff">className="rounded-2xl border border-white/10 bg-white/[0.03] p-5 transition-colors hover:border-white/20">
15 <p "color:#79c0ff">className="text-xs font-semibold uppercase tracking-wider text-white/40">{s.label}</p>
16 <div "color:#79c0ff">className="mt-2 flex items-baseline gap-2.5">
17 <span "color:#79c0ff">className="text-3xl font-extrabold tracking-tight text-white">{s.value}</span>
18 <span "color:#79c0ff">className={"rounded-full px-2 py-0.5 text-[10px] font-bold " +
19 (s.up ? "bg-emerald-500/15 text-emerald-400" : "bg-rose-500/15 text-rose-400")}>
20 {s.delta}
21 </span>
22 </div>
23 <div "color:#79c0ff">className="mt-4 flex h-10 items-end gap-1">
24 {s.bars.map((h, i) => (
25 <div
26 "color:#79c0ff">key={i}
27 "color:#79c0ff">className={"flex-1 origin-bottom rounded-sm bg-gradient-to-t " + s.grad}
28 "color:#79c0ff">style={{ height: h + "%", animation: "barGrow .7s " + i * 0.06 + "s both" }}
29 />
30 ))}
31 </div>
32 </div>
33))}
34 
35/* @keyframes barGrow { from { transform: scaleY(0); } to { transform: scaleY(1); } } */
⬡ UIDrop Component35 lines
TypeScript ReactUTF-8

Gradient Border Cards

Edge runtime

Deploy to 300+ locations with zero cold starts.

Learn more →

SOC 2 ready

Bank-grade encryption on every request by default.

Learn more →

The p-px gradient wrapper trick — a glowing border with a dark body that lifts on hover.

T
gradient-border-cards.tsx
1<div "color:#79c0ff">className="group rounded-2xl bg-gradient-to-br from-violet-500/60 via-transparent to-cyan-400/60 p-px transition-transform hover:-translate-y-1">
2 <div "color:#79c0ff">className="rounded-[15px] bg-[#0b0b16] p-6">
3 <div "color:#79c0ff">className="flex h-10 w-10 items-center justify-center rounded-xl bg-gradient-to-br from-violet-600 to-indigo-600 shadow-lg shadow-violet-500/30">
4 <BoltIcon "color:#79c0ff">className="h-5 w-5 text-white" />
5 </div>
6 <h3 "color:#79c0ff">className="mt-4 font-bold text-white">Edge runtime</h3>
7 <p "color:#79c0ff">className="mt-1.5 text-sm leading-relaxed text-white/45">
8 Deploy to 300+ locations with zero cold starts.
9 </p>
10 <span "color:#79c0ff">className="mt-4 inline-flex items-center gap-1 text-xs font-bold text-violet-300">
11 Learn more <span "color:#79c0ff">className="transition-transform group-hover:translate-x-1">→</span>
12 </span>
13 </div>
14</div>
⬡ UIDrop Component14 lines
TypeScript ReactUTF-8

Testimonial Card

“
★★★★★
Swapped our entire design system for these components. Shipped the redesign in a week instead of a quarter.
SR

Sarah Rodriguez

CTO, Lumina Labs

Star rating, oversized quote mark and a verified author row on frosted glass.

T
testimonial-card.tsx
1<figure "color:#79c0ff">className="relative w-full max-w-sm rounded-3xl border border-white/10 bg-white/[0.04] p-7 backdrop-blur">
2 <span "color:#79c0ff">className="absolute -top-1 right-6 select-none text-7xl font-black leading-none text-violet-500/20">"</span>
3 <div "color:#79c0ff">className="flex gap-0.5 text-amber-400">★★★★★</div>
4 <blockquote "color:#79c0ff">className="mt-4 text-[15px] leading-relaxed text-white/80">
5 Swapped our entire design system for these components.
6 Shipped the redesign in a week instead of a quarter.
7 </blockquote>
8 <figcaption "color:#79c0ff">className="mt-6 flex items-center gap-3">
9 <div "color:#79c0ff">className="flex h-10 w-10 items-center justify-center rounded-full bg-gradient-to-br from-cyan-500 to-blue-600 text-xs font-black text-white">SR</div>
10 <div>
11 <p "color:#79c0ff">className="flex items-center gap-1.5 text-sm font-bold text-white">
12 Sarah Rodriguez
13 <VerifiedIcon "color:#79c0ff">className="h-3.5 w-3.5 text-sky-400" />
14 </p>
15 <p "color:#79c0ff">className="text-xs text-white/40">CTO, Lumina Labs</p>
16 </div>
17 </figcaption>
18</figure>
⬡ UIDrop Component18 lines
TypeScript ReactUTF-8

AI Usage Card

AI Credits

✦ GPT-5 Turbo
72%used
Chat48.2k
Image12.9k
Code31.5k

Animated SVG progress ring, token meters and a model badge — for AI product dashboards.

T
ai-usage-card.tsx
1<div "color:#79c0ff">className="w-full max-w-sm rounded-3xl border border-white/10 bg-white/[0.03] p-6">
2 <div "color:#79c0ff">className="flex items-center justify-between">
3 <p "color:#79c0ff">className="text-sm font-bold text-white">AI Credits</p>
4 <span "color:#79c0ff">className="rounded-full border border-violet-400/30 bg-violet-500/10 px-2.5 py-1 text-[10px] font-bold text-violet-300">✦ GPT-5 Turbo</span>
5 </div>
6 
7 <div "color:#79c0ff">className="mt-5 flex items-center gap-6">
8 {/* progress ring: r=44 → C ≈ 276; offset = C × (1 − 0.72) ≈ 77 */}
9 <div "color:#79c0ff">className="relative h-28 w-28">
10 <svg viewBox="0 0 100 100" "color:#79c0ff">className="h-full w-full -rotate-90">
11 <circle cx="50" cy="50" r="44" fill="none" stroke="rgba(255,255,255,0.08)" strokeWidth="9" />
12 <circle cx="50" cy="50" r="44" fill="none" stroke="url(#g)" strokeWidth="9"
13 strokeLinecap="round" strokeDasharray="276" strokeDashoffset="77" />
14 <defs>
15 <linearGradient "color:#79c0ff">id="g" x1="0" y1="0" x2="1" y2="1">
16 <stop offset="0%" stopColor="#8b5cf6" /><stop offset="100%" stopColor="#22d3ee" />
17 </linearGradient>
18 </defs>
19 </svg>
20 <div "color:#79c0ff">className="absolute inset-0 flex flex-col items-center justify-center">
21 <span "color:#79c0ff">className="text-2xl font-extrabold text-white">72%</span>
22 <span "color:#79c0ff">className="text-[9px] uppercase tracking-wider text-white/35">used</span>
23 </div>
24 </div>
25 
26 <div "color:#79c0ff">className="flex-1 space-y-3">
27 {[["Chat", "48.2k", "w-3/4 from-violet-500 to-fuchsia-500"],
28 ["Image", "12.9k", "w-1/2 from-cyan-500 to-blue-500"],
29 ["Code", "31.5k", "w-2/3 from-emerald-500 to-teal-500"]].map(([l, v, w]) => (
30 <div "color:#79c0ff">key={l}>
31 <div "color:#79c0ff">className="flex justify-between text-[11px]"><span "color:#79c0ff">className="text-white/50">{l}</span><span "color:#79c0ff">className="font-bold text-white/80">{v}</span></div>
32 <div "color:#79c0ff">className="mt-1 h-1.5 rounded-full bg-white/8">
33 <div "color:#79c0ff">className={"h-full rounded-full bg-gradient-to-r " + w} />
34 </div>
35 </div>
36 ))}
37 </div>
38 </div>
39 
40 <button "color:#79c0ff">className="mt-5 w-full rounded-xl bg-gradient-to-r from-violet-600 to-indigo-600 py-2.5 text-sm font-bold text-white shadow-lg shadow-violet-500/25 transition hover:shadow-violet-500/50">
41 Upgrade plan
42 </button>
43</div>
⬡ UIDrop Component43 lines
TypeScript ReactUTF-8

Content Card

Engineering
Jul 7, 2026·6 min read

Designing components for the AI-native web

Prompt bars, streaming states and thinking indicators are the new dropdowns. Here is how we design them.

Cover gradient with floating tag, meta row and an underline-on-hover title.

T
content-card.tsx
1<article "color:#79c0ff">className="group w-full max-w-sm cursor-pointer overflow-hidden rounded-2xl border border-white/10 bg-white/[0.03] transition-all hover:-translate-y-1 hover:border-white/20 hover:shadow-2xl">
2 <div "color:#79c0ff">className="relative h-40 overflow-hidden">
3 <div "color:#79c0ff">className="absolute inset-0 bg-gradient-to-br from-fuchsia-600 via-violet-600 to-indigo-700 transition-transform duration-500 group-hover:scale-105" />
4 <span "color:#79c0ff">className="absolute left-4 top-4 rounded-full bg-black/45 px-3 py-1 text-[10px] font-bold uppercase tracking-wider text-white backdrop-blur">Engineering</span>
5 </div>
6 <div "color:#79c0ff">className="p-5">
7 <div "color:#79c0ff">className="flex items-center gap-2 text-[11px] text-white/35">
8 <span>Jul 7, 2026</span><span>·</span><span>6 min read</span>
9 </div>
10 <h3 "color:#79c0ff">className="mt-2 text-lg font-bold leading-snug text-white decoration-violet-400 underline-offset-4 group-hover:underline">
11 Designing components for the AI-native web
12 </h3>
13 <p "color:#79c0ff">className="mt-2 line-clamp-2 text-sm text-white/45">
14 Prompt bars, streaming states and thinking indicators are the new dropdowns…
15 </p>
16 </div>
17</article>
⬡ UIDrop Component17 lines
TypeScript ReactUTF-8

Previous

←Buttons

Shimmer, glow, gradient, 3D and stateful buttons

Next

Forms→

AI prompt bars, floating inputs, OTP and steppers