Claude Code Plugins

Community-maintained marketplace

Feedback

Designs optimal filtering UX for data tables. Use when building a table that needs filters - analyzes the data columns and determines the best filter type for each. Outputs a unified filter field with inline header filters.

Install Skill

1Download skill
2Enable skills in Claude

Open claude.ai/settings/capabilities and find the "Skills" section

3Upload to Claude

Click "Upload skill" and select the downloaded ZIP file

Note: Please verify skill by going through its instructions before using it.

SKILL.md

name table-filters
description Designs optimal filtering UX for data tables. Use when building a table that needs filters - analyzes the data columns and determines the best filter type for each. Outputs a unified filter field with inline header filters.

Table Filters

When the user is building a table that needs filters, analyze the columns and design the filtering UX.

Step 1: Analyze Each Column

For each column in the table, determine the filter type:

Data Pattern Filter Type Example Columns
Free text, names, descriptions Contains Product Name, Notes, Customer
Fixed set of values (<20 options) Checkboxes Status, Category, Priority, Type
Numeric values Range Price, Quantity, Age, Score
Dates Date Range Created, Updated, Due Date
Boolean Toggle Active, Verified, Published

Step 2: Implement the Filter Layout

┌─────────────────────────────────────────────────────────┐
│ [Filter chips go here...] [🔍 Filter or search...]  [✕] │  ← Unified filter field
└─────────────────────────────────────────────────────────┘
                                          Sort by: [Dropdown ▾]

┌──────────────┬──────────────┬──────────────┬──────────────┐
│ Name       ▼ │ Status     ▼ │ Price      ▼ │ Created    ▼ │  ← Clickable headers with filter icon
├──────────────┼──────────────┼──────────────┼──────────────┤
│ ...          │ ...          │ ...          │ ...          │

Key layout rules:

  • Filter field spans table width, contains chips + search input + clear button
  • Sort dropdown next to filter field (not in headers)
  • Each header is clickable and opens its filter menu
  • Menu appears ABOVE field when filtering (inserts chip directly)

Step 3: Build Each Filter Component

Contains Filter (text)

┌─ Product Name ──────────── ✕ ─┐
│ ┌────────────────────────────┐│
│ │ Search...                  ││
│ └────────────────────────────┘│
└───────────────────────────────┘

Chip result: Product Name: system

Checkbox Filter (categories)

┌─ Status ──────────────── ✕ ─┐
│ ☑ Active                     │
│ ☑ Pending                    │
│ ☐ Archived                   │
│ ☐ Deleted                    │
│            [Clear] [Apply]   │
└──────────────────────────────┘

Chip result: Status: Active, Pending or Status: Active, +2

Range Filter (numeric)

┌─ Price ─────────────────── ✕ ─┐
│  Min         Max              │
│ ┌─────┐     ┌─────┐           │
│ │ 0   │  -  │ 100 │           │
│ └─────┘     └─────┘           │
│ ○───────────────●─────○       │  ← Optional slider
│              [Apply]          │
└───────────────────────────────┘

Chip result: Price: $0 - $100

Date Range Filter

┌─ Created ─────────────────── ✕ ─┐
│  From           To              │
│ ┌──────────┐   ┌──────────┐     │
│ │ 01/01/25 │ - │ 12/31/25 │     │
│ └──────────┘   └──────────┘     │
│ [Today] [This week] [This month]│
│                [Apply]          │
└─────────────────────────────────┘

Chip result: Created: Jan 1 - Dec 31, 2025

Chip Design Rules

  • Dark background, light text, rounded pill shape
  • X button on contrasting surface (clearly clickable)
  • Truncate after 2 values: Status: Active, Pending, +3
  • Clicking chip reopens its filter menu

Empty State

When filters return no results:

     ┌─────────────┐
     │   (╯°□°)╯   │
     │   ︵ ┻━┻    │
     └─────────────┘
   No results found
   Try adjusting your filters

   [Clear all filters]

Quick Checklist

When implementing, verify:

  • Each column has appropriate filter type assigned
  • Filter field contains chips (not separate row above)
  • Sort is dropdown, not toggle icons in headers
  • Chip shows max 2 values, then +N
  • Clear all button at end of filter field
  • Empty state has clear action

HTML Class Reference

Use these classes for styling compatibility with html-style:

Element Class Purpose
Filter container .filter-bar Top-level filter row
Chip container .filter-chips Holds all active chips
Individual chip .chip Single filter chip
Chip remove .chip-remove X button on chip
Search input .filter-search Text search field
Clear all .filter-clear Clear all filters button
Sort control .sort-control Sort dropdown container
Filter menu .filter-menu Dropdown filter panel
Empty state .empty-state No results container

Data attributes:

  • data-column — Column identifier on chips
  • data-filter-type — Filter type (contains/checkbox/range/date)

Styling Handoff

This skill outputs semantic HTML with class names. For visual styling, invoke the html-style skill after generating filter HTML.