bigbullui logobigbullui
Componentticket-stub

Id Card

Employee ID card with hologram shine sweep and barcode.

Preview

Live Preview
Premium Headphones
25%

Premium Headphones

$299$399

Jordan Daisy

Product Designer

AvailableRemote
The Future of Design Systems

The Future of Design Systems

Alex Rivera8 min read
Oc
t 14

Tech Conference 2026

21:00
Berlin Arena
Invoice #INV-2026-0987draft
Date: 2026-09-15Due: 2026-10-15
ItemQtyPrice
Design Services1$150
Development Hours5$100
SubtotalNaN
Tax (10%)NaN
TotalNaN
THERMAL RECEIPT#CAAHO6
Design Consultation$150
Development Hours$200
Total$385.00
Thank you for your purchase!
Premium Headphones
1
Phone Case
2
Subtotal$377.00
Tax$30.16
Total$407.16
Color
Size
Order #102938Processing
Design Services1x
Development5x
VIP

LOYALTY TIER

$100

Jordan Daisy

Happy Birthday!

J

Jordan Daisy

Product Designer

UX

Badge: EMP-8942

Wedding Reception

Please confirm your attendance

Installation

Tokens guide →

Add to your project via CLI (zero dependencies, code you own):

npx bigbullui add id-card

Or install the full npm package:

npm install bigbullui

Usage

import { IdCard } from "@/components/ui/id-card";

<IdCard />

Source code

id-card.tsx

Zero dependencies (only React + utils). Copy and paste directly into your project:

"use client";

import * as React from "react";
import { cn } from "./lib/utils";

export interface IdCardProps {
  name: string;
  role: string;
  department: string;
  badgeNumber: string;
  className?: string;
}

const Entrance = "id-card-entrance";
const ScaleIn = "id-card-scale-in";

export function IdCard({
  name,
  role,
  department,
  badgeNumber,
  className,
}: IdCardProps) {
  return (
    <div
      className={cn(
        "rounded-lg border border-foreground bg-card text-card-foreground p-6 relative overflow-hidden transition-all duration-300 hover:translate-y-1 hover:shadow-lg motion-reduce:transition-none motion-reduce:translate-y-0 motion-reduce:shadow-none",
        className
      )}
    >
      {/* Top accent bar */}
      <div
        className={cn(
          "absolute -inset-1 bg-accent opacity-10",
          ScaleIn
        )}
      />

      {/* Avatar */}
      <div className="relative w-16 h-16 rounded-full bg-secondary flex items-center justify-center mx-auto mb-4">
        <span className={cn("text-xl font-bold")}>{name.split(" ")[0].charAt(0)}</span>
      </div>

      {/* Name */}
      <h3 className="font-medium text-center text-lg line-clamp-2 mb-1">{name}</h3>

      {/* Role */}
      <p className="text-sm text-muted-foreground text-center mb-3">{role}</p>

      {/* Department */}
      <p className="text-xs uppercase tracking-wider text-muted-foreground text-center">
        {department}
      </p>

      {/* Badge number */}
      <div className="mt-4 pt-4 border-t border-border/50">
        <span className="font-mono text-sm font-bold">Badge: {badgeNumber}</span>
      </div>
    </div>
  );
}

Props

PropTypeDescription
namestringHolder name (required).
rolestringJob title (required).
departmentstringDepartment (required).
badgeNumberstringBadge ID (required).