Data Table CRUD Interface

A full-featured data table CRUD interface with column filters, inline row editing, bulk actions, add/delete controls, CSV export, and pagination for SaaS admin screens.

SaaSMediumsaas
Compatible with:ChatGPTv0Bolt.newCursorGitHub Copilot
Patterns:table, form, sidebar
Prompt
Build a data table CRUD interface for a SaaS admin panel managing "Team Members". The page should include:

1. **Page header** — Title "Team Members" (text-2xl, font-bold) on the left. On the right: a global search input "Search members…" (240px, left-aligned icon), an "Export CSV" ghost button with a download icon, and a "+ Add member" solid blue-600 button.

2. **Filter toolbar** — Below the header, a row of filter controls:
   - "Role: All ▾" dropdown (options: All, Admin, Editor, Viewer, Billing)
   - "Status: All ▾" dropdown (options: All, Active, Inactive, Invited)
   - "Joined: All time ▾" date range dropdown
   - Active filter chips if filters are applied (with × to dismiss)
   - "Showing 1–10 of 38 members" text at right

3. **Data table:** Full-width, white background, 1px zinc-200 borders, alternating zinc-50 row backgrounds.
   - Columns: ☐ (checkbox), Avatar + Name, Email, Role, Status, Joined, Last Active, Actions
   - 8 data rows:
     1. ☑ Alex Rivera | alex@company.co | Admin | 🟢 Active | Jan 5, 2025 | Today | [Edit][⋯]
     2. ☐ Jordan Kim | jordan@company.co | Editor | 🟢 Active | Mar 12, 2025 | Feb 19, 2026 | [Edit][⋯]
     3. ☐ Priya Nair | priya@company.co | Viewer | 🟢 Active | Apr 2, 2025 | Feb 18, 2026 | [Edit][⋯]
     4. ☐ Sam Torres | sam@company.co | Editor | 🟡 Invited | Feb 20, 2026 | Never | [Resend][⋯]
     5. ☐ Chris Obi | chris@company.co | Viewer | 🔴 Inactive | Jun 14, 2025 | Dec 3, 2025 | [Edit][⋯]
     6. ☐ Maya Patel | maya@company.co | Billing | 🟢 Active | Jul 8, 2025 | Feb 20, 2026 | [Edit][⋯]
     7. ☐ Luca Rossi | luca@company.co | Editor | 🟢 Active | Sep 1, 2025 | Feb 21, 2026 | [Edit][⋯]
     8. ☐ Sofia Mendes | sofia@company.co | Viewer | 🟡 Invited | Feb 21, 2026 | Never | [Resend][⋯]

4. **Inline row editing** — Clicking "Edit" on a row turns that row into an inline editable form: name and email fields become text inputs, role becomes a select dropdown, status becomes a toggle. Row shows "Save" (blue-600) and "Cancel" (ghost) buttons at the right action cell. Other rows remain read-only.

5. **Bulk actions bar** — Appears at the top of the table when 1+ checkboxes are selected. Slides down, pushing the table down:
   - "1 member selected" (or "3 members selected")
   - Action buttons: "Change role ▾", "Deactivate", "Remove" (red ghost button), "Export selection"
   - An × to dismiss/deselect all

6. **"Add Member" slide-over panel** — Clicking "+ Add member" opens a 400px right-side drawer (not a modal):
   - "Add Team Member" heading and × close button
   - Fields: Full name, Work email, Role (select), Send invite email (toggle, on by default)
   - "Add member" button (blue-600, full-width) and "Cancel" link

7. **Confirm delete modal** — Clicking "Remove" in bulk actions shows a centered confirmation modal:
   - "Remove 1 member?" heading
   - "Alex Rivera will lose access to all workspaces immediately."
   - "Cancel" ghost button and "Remove member" red button

8. **Pagination controls** — Below the table: "← Previous" | Page 1 of 4 | "Next →". Page number buttons 1–4 with active page highlighted in blue-600.

**Design:** White background, zinc-50 alternating rows, blue-600 primary, red-600 for destructive actions, Inter font. Row hover state: zinc-50 → zinc-100. Column header: zinc-700 font-semibold text-sm uppercase tracking-wide. Status badges use colored pill chips (green/yellow/red). Responsive: on mobile, table scrolls horizontally with frozen first column.
Mockdown
[PAGE HEADER]
  Team Members                 [Search members…]  [↓ Export CSV]  [+ Add member]

[FILTER TOOLBAR]
  [Role: All ▾]  [Status: All ▾]  [Joined: All time ▾]       Showing 1–10 of 38 members

[BULK ACTION BAR — appears on checkbox select]
  ✕  1 member selected    [Change role ▾]  [Deactivate]  [Remove]  [Export selection]

[DATA TABLE]
  ☐   Name / Email                Role      Status      Joined        Last Active    Actions
  ─────────────────────────────────────────────────────────────────────────────────────────────
  ☑  [●] Alex Rivera              Admin     🟢 Active    Jan 5, 2025   Today          [Edit][⋯]
      alex@company.co
  ─────────────────────────────────────────────────────────────────────────────────────────────
  ☐  [●] Jordan Kim               Editor    🟢 Active    Mar 12, 2025  Feb 19, 2026   [Edit][⋯]
      jordan@company.co
  ─────────────────────────────────────────────────────────────────────────────────────────────
  ☐  [●] Priya Nair               Viewer    🟢 Active    Apr 2, 2025   Feb 18, 2026   [Edit][⋯]
      priya@company.co
  ─────────────────────────────────────────────────────────────────────────────────────────────
  ☐  [●] Sam Torres               Editor    🟡 Invited   Feb 20, 2026  Never          [Resend][⋯]
      sam@company.co
  ─────────────────────────────────────────────────────────────────────────────────────────────
  ☐  [●] Chris Obi                Viewer    🔴 Inactive  Jun 14, 2025  Dec 3, 2025    [Edit][⋯]
      chris@company.co (row: zinc-50 faded)
  ─────────────────────────────────────────────────────────────────────────────────────────────
  ☐  [●] Maya Patel               Billing   🟢 Active    Jul 8, 2025   Feb 20, 2026   [Edit][⋯]
      maya@company.co
  ─────────────────────────────────────────────────────────────────────────────────────────────
  ☐  [●] Luca Rossi               Editor    🟢 Active    Sep 1, 2025   Feb 21, 2026   [Edit][⋯]
      luca@company.co
  ─────────────────────────────────────────────────────────────────────────────────────────────
  ☐  [●] Sofia Mendes             Viewer    🟡 Invited   Feb 21, 2026  Never          [Resend][⋯]
      sofia@company.co
  ─────────────────────────────────────────────────────────────────────────────────────────────

  [INLINE EDIT STATE — row 2 while editing]
  ☐  [●] [Jordan Kim_____]  [jordan@company.co___]  [Editor ▾]  Active  Mar 12  Feb 19  [Save][Cancel]

[PAGINATION]
                      [← Previous]  [1]  [2]  [3]  [4]  [Next →]

[ADD MEMBER SLIDE-OVER — right drawer]
  ┌───────────────────────────────────────┐
  │ Add Team Member                  [×] │
  │ ─────────────────────────────────── │
  │ Full name                           │
  │ [________________________________]  │
  │                                     │
  │ Work email                          │
  │ [________________________________]  │
  │                                     │
  │ Role                                │
  │ [Viewer                         ▾]  │
  │                                     │
  │ Send invite email   [● ON]          │
  │                                     │
  │ [Add member                      ]  │
  │         Cancel                      │
  └───────────────────────────────────────┘

[CONFIRM DELETE MODAL]
  ┌───────────────────────────────────┐
  │       Remove 1 member?            │
  │                                   │
  │ Alex Rivera will lose access to   │
  │ all workspaces immediately.       │
  │                                   │
  │  [Cancel]    [Remove member 🔴]   │
  └───────────────────────────────────┘
Data Table CRUD Interface
┌──────────┬────────────────────────────────────┐
│ ◉ App    │  Search [____________]  🔔  👤    │
│          ├────────────────────────────────────┤
│ ● Home   │                                    │
│ ○ Inbox  │  ┌───────────────────────────────┐│
│ ○ Tasks  │  │  ⌘K  Quick Actions            ││
│ ○ Docs   │  │  ─────────────────────────    ││
│ ○ Team   │  │  📄 New Document              ││
│ ○ API    │  │  👥 Invite Team Member        ││
│          │  │  ⚙  Open Settings             ││
│ ──────── │  │  📊 View Analytics            ││
│ Settings │  │  ...                           ││
│ Help     │  └───────────────────────────────┘│
│          │                                    │
│          │  ┌──────────┐ ┌──────────────────┐│
│          │  │ Projects │ │  Recent Activity ││
│          │  │ ──────── │ │  ─────────────── ││
│          │  │ ▸ Alpha  │ │  ● Deploy v2.1   ││
│          │  │ ▸ Beta   │ │  ○ PR merged     ││
│          │  │ ▸ Gamma  │ │  ○ Issue #42     ││
│          │  └──────────┘ └──────────────────┘│
└──────────┴────────────────────────────────────┘

Related Layouts

┌──────────┬────────────────────────────────────┐
│ ◉ App    │  Search [____________]  🔔  👤    │
│          ├────────────────────────────────────┤
│ ● Home   │                                    │
│ ○ Inbox  │  ┌───────────────────────────────┐│
│ ○ Tasks  │  │  ⌘K  Quick Actions            ││
│ ○ Docs   │  │  ─────────────────────────    ││
│ ○ Team   │  │  📄 New Document              ││
│ ○ API    │  │  👥 Invite Team Member        ││
│          │  │  ⚙  Open Settings             ││
│ ──────── │  │  📊 View Analytics            ││
│ Settings │  │  ...                           ││
│ Help     │  └───────────────────────────────┘│
│          │                                    │
│          │  ┌──────────┐ ┌──────────────────┐│
│          │  │ Projects │ │  Recent Activity ││
│          │  │ ──────── │ │  ─────────────── ││
│          │  │ ▸ Alpha  │ │  ● Deploy v2.1   ││
│          │  │ ▸ Beta   │ │  ○ PR merged     ││
│          │  │ ▸ Gamma  │ │  ○ Issue #42     ││
│          │  └──────────┘ └──────────────────┘│
└──────────┴────────────────────────────────────┘
SaaS

Inbox and Messaging Layout

A three-pane inbox and messaging layout with a contacts sidebar, thread list panel, and full conversation view — modeled after Gmail, Linear, and Intercom.

--inbox--messaging--three-pane
Complex
┌──────────┬────────────────────────────────────┐
│ ◉ App    │  Search [____________]  🔔  👤    │
│          ├────────────────────────────────────┤
│ ● Home   │                                    │
│ ○ Inbox  │  ┌───────────────────────────────┐│
│ ○ Tasks  │  │  ⌘K  Quick Actions            ││
│ ○ Docs   │  │  ─────────────────────────    ││
│ ○ Team   │  │  📄 New Document              ││
│ ○ API    │  │  👥 Invite Team Member        ││
│          │  │  ⚙  Open Settings             ││
│ ──────── │  │  📊 View Analytics            ││
│ Settings │  │  ...                           ││
│ Help     │  └───────────────────────────────┘│
│          │                                    │
│          │  ┌──────────┐ ┌──────────────────┐│
│          │  │ Projects │ │  Recent Activity ││
│          │  │ ──────── │ │  ─────────────── ││
│          │  │ ▸ Alpha  │ │  ● Deploy v2.1   ││
│          │  │ ▸ Beta   │ │  ○ PR merged     ││
│          │  │ ▸ Gamma  │ │  ○ Issue #42     ││
│          │  └──────────┘ └──────────────────┘│
└──────────┴────────────────────────────────────┘
SaaS

Kanban Task Board

A Kanban task board with draggable columns, task cards with assignees and labels, add task inline, and a board header with sprint controls and filter bar.

--kanban--task--board
Medium
┌──────────┬────────────────────────────────────┐
│ ◉ App    │  Search [____________]  🔔  👤    │
│          ├────────────────────────────────────┤
│ ● Home   │                                    │
│ ○ Inbox  │  ┌───────────────────────────────┐│
│ ○ Tasks  │  │  ⌘K  Quick Actions            ││
│ ○ Docs   │  │  ─────────────────────────    ││
│ ○ Team   │  │  📄 New Document              ││
│ ○ API    │  │  👥 Invite Team Member        ││
│          │  │  ⚙  Open Settings             ││
│ ──────── │  │  📊 View Analytics            ││
│ Settings │  │  ...                           ││
│ Help     │  └───────────────────────────────┘│
│          │                                    │
│          │  ┌──────────┐ ┌──────────────────┐│
│          │  │ Projects │ │  Recent Activity ││
│          │  │ ──────── │ │  ─────────────── ││
│          │  │ ▸ Alpha  │ │  ● Deploy v2.1   ││
│          │  │ ▸ Beta   │ │  ○ PR merged     ││
│          │  │ ▸ Gamma  │ │  ○ Issue #42     ││
│          │  └──────────┘ └──────────────────┘│
└──────────┴────────────────────────────────────┘
SaaS

SaaS App Shell with Command Palette

A complete SaaS application shell featuring a collapsible sidebar, command palette (⌘K), notification drawer, and multi-workspace switcher — the skeleton for any SaaS product.

--app-shell--sidebar--command-palette
Complex