Skip to main content

table-filters

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.

Source facts

Repository
shipshitdev/shipcode
Last source activity
June 20, 2026 at 14:24
Detected SKILL.md language
English
Stars
6
Forks
0

Install options

The review-first prompt is selected by default. You can switch to a direct command or download a local copy.

Review the source files

Read SKILL.md and any companion files shown by SkillsMP before deciding whether to install.

File Explorer
3 files

Showing SKILL.md

SKILL.md
Source instructions · Read-only preview
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.
metadata
{"version":"1.0.0","tags":"tables, filters, ux"}
# 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.
View on GitHub