Saksham Kushwaha

User Table

Component

About

A user table with avatar identities, roles, and account status.

Built with React and Tailwind. Copy the prompt and paste it into Claude Code, Cursor or Lovable: your agent adds User Table to your project and fits it to your theme.

Code

How User Table is used: the demo's code. The component's own source comes with a free account.

Usage.tsx

import { UserTable, type UserTableRow } from "@/components/ui/user-table";

export const DEMO_PEOPLE = {
  gagandeepKang: "Gagandeep Kang",
  janakiAmmal: "Janaki Ammal",
  kalpanaChawla: "Kalpana Chawla",
  rajReddy: "Raj Reddy",
  srinivasaRamanujan: "Srinivasa Ramanujan",
  vikramSarabhai: "Vikram Sarabhai",
} as const;

const WHITESPACE_PATTERN = /\s+/;

export const getFirstName = (name: string): string =>
  name.trim().split(WHITESPACE_PATTERN)[0] ?? name;

const USERS: readonly UserTableRow[] = [
	{
		avatar: {
			name: getFirstName(DEMO_PEOPLE.janakiAmmal),
			palette: ["#e7efff", "#91bafa"],
		},
		email: "janaki@example.com",
		id: "janaki",
		lastSeen: "2m ago",
		name: DEMO_PEOPLE.janakiAmmal,
		role: "Owner",
		status: "active",
	},
	{
		avatar: {
			name: getFirstName(DEMO_PEOPLE.vikramSarabhai),
			palette: ["#e3fff4", "#46c888"],
		},
		email: "vikram@example.com",
		id: "vikram",
		lastSeen: "1h ago",
		name: DEMO_PEOPLE.vikramSarabhai,
		role: "Admin",
		status: "active",
	},
	{
		avatar: {
			name: getFirstName(DEMO_PEOPLE.kalpanaChawla),
			palette: ["#e1fff9", "#4bd3b5"],
		},
		email: "kalpana@example.com",
		id: "kalpana",
		lastSeen: "yesterday",
		name: DEMO_PEOPLE.kalpanaChawla,
		role: "Developer",
		status: "active",
	},
	{
		avatar: {
			name: getFirstName(DEMO_PEOPLE.srinivasaRamanujan),
			palette: ["#e5f9ff", "#32c4d6"],
		},
		email: "srinivasa@example.com",
		id: "srinivasa",
		lastSeen: "never",
		name: DEMO_PEOPLE.srinivasaRamanujan,
		role: "Developer",
		status: "invited",
	},
	{
		avatar: {
			name: getFirstName(DEMO_PEOPLE.gagandeepKang),
			palette: ["#fff0dc", "#e7ad55"],
		},
		email: "gagandeep@example.com",
		id: "gagandeep",
		lastSeen: "3 weeks ago",
		name: DEMO_PEOPLE.gagandeepKang,
		role: "Billing",
		status: "suspended",
	},
];

export function UserTableExample() {
	return <UserTable className="max-w-3xl" users={USERS} />;
}

export default UserTableExample;

Dependencies

More by Saksham Kushwaha

View all
  • Group Chat

    Group Chat

  • Avatar Team List

    Avatar Team List

  • Avatar Select

    Avatar Select

  • Avatar Account Menu

    Avatar Account Menu

  • Presence Avatar

    Presence Avatar

  • Avatar Social Proof

    Avatar Social Proof

  • Avatar Chip

    Avatar Chip

  • Avatar Badge

    Avatar Badge