关于 table-filters
用于分析表格列并设计筛选交互的技能,涵盖筛选类型和界面布局。它还规定筛选标签、菜单、排序控件及无结果状态的行为。
主要功能
- 01按列数据类型选择筛选方式
- 02在统一筛选栏中组合标签与搜索
- 03通过菜单设置单列筛选
- 04将排序放入下拉菜单
- 05定义标签和无结果状态行为
- 06提供语义化 HTML 类名
适用场景
- 01设计商品表格筛选器
- 02构建日期和数值范围控件
- 03用可移除标签展示生效筛选
- 04无匹配行时提供清除操作
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ shipshitdev/ skills --skill table-filters安装后在 Claude Code 中输入/table-filters确认已加载。
附带文件plugin.jsonREADME.md
详细介绍
表格筛选器
当用户构建的表格需要筛选器时,分析各列并设计筛选体验。
第 1 步:分析每一列
对于表格中的每一列,确定筛选类型:
| 数据模式 | 筛选类型 | 示例列 |
|---|---|---|
| 自由文本、名称、描述 | 包含 | 产品名称、备注、客户 |
| 固定值集合(<20 个选项) | 复选框 | 状态、类别、优先级、类型 |
| 数值 | 范围 | 价格、数量、年龄、分数 |
| 日期 | 日期范围 | 创建时间、更新时间、截止日期 |
| 布尔值 | 开关 | 活跃、已验证、已发布 |
第 2 步:实现筛选器布局
┌─────────────────────────────────────────────────────────┐
│ [Filter chips go here...] [🔍 Filter or search...] [✕] │ ← Unified filter field
└─────────────────────────────────────────────────────────┘
Sort by: [Dropdown ▾]
┌──────────────┬──────────────┬──────────────┬──────────────┐
│ Name ▼ │ Status ▼ │ Price ▼ │ Created ▼ │ ← Clickable headers with filter icon
├──────────────┼──────────────┼──────────────┼──────────────┤
│ ... │ ... │ ... │ ... │
关键布局规则:
- 筛选器字段横跨表格宽度,包含标签、搜索输入框和清除按钮
- 排序下拉菜单放在筛选器字段旁边(不要放在表头中)
- 每个表头都可点击,并会打开其筛选菜单
- 筛选时,菜单显示在字段上方(直接插入标签)
第 3 步:构建每种筛选器组件
包含筛选器(文本)
┌─ Product Name ──────────── ✕ ─┐
│ ┌────────────────────────────┐│
│ │ Search... ││
│ └────────────────────────────┘│
└───────────────────────────────┘
标签结果:Product Name: system
复选框筛选器(类别)
┌─ Status ──────────────── ✕ ─┐
│ ☑ Active │
│ ☑ Pending │
│ ☐ Archived │
│ ☐ Deleted │
│ [Clear] [Apply] │
└──────────────────────────────┘
标签结果:Status: Active, Pending 或 Status: Active, +2
范围筛选器(数值)
┌─ Price ─────────────────── ✕ ─┐
│ Min Max │
│ ┌─────┐ ┌─────┐ │
│ │ 0 │ - │ 100 │ │
│ └─────┘ └─────┘ │
│ ○───────────────●─────○ │ ← Optional slider
│ [Apply] │
└───────────────────────────────┘
标签结果:Price: $0 - $100
日期范围筛选器
┌─ Created ─────────────────── ✕ ─┐
│ From To │
│ ┌──────────┐ ┌──────────┐ │
│ │ 01/01/25 │ - │ 12/31/25 │ │
│ └──────────┘ └──────────┘ │
│ [Today] [This week] [This month]│
│ [Apply] │
└─────────────────────────────────┘
标签结果:Created: Jan 1 - Dec 31, 2025
标签设计规则
- 深色背景、浅色文本、圆角胶囊形状
- X 按钮放在对比鲜明的表面上(确保明显可点击)
- 超过 2 个值后截断:
Status: Active, Pending, +3 - 点击标签可重新打开其筛选菜单
空状态
当筛选器没有返回任何结果时:
┌─────────────┐
│ (╯°□°)╯ │
│ ︵ ┻━┻ │
└─────────────┘
No results found
Try adjusting your filters
[Clear all filters]
快速检查清单
实现时,请确认:
- 每一列都已分配合适的筛选类型
- 筛选器字段包含标签(而不是在上方单独显示一行)
- 排序使用下拉菜单,而不是表头中的切换图标
- 标签最多显示 2 个值,之后显示 +N
- 筛选器字段末尾有“全部清除”按钮
- 空状态包含清除操作
HTML 类参考
使用以下类,以兼容 html-style 的样式:
| 元素 | 类 | 用途 |
|---|---|---|
| 筛选器容器 | .filter-bar | 顶层筛选器行 |
| 标签容器 | .filter-chips | 容纳所有已启用的标签 |
| 单个标签 | .chip | 单个筛选器标签 |
| 标签移除按钮 | .chip-remove | 标签上的 X 按钮 |
| 搜索输入框 | .filter-search | 文本搜索字段 |
| 全部清除 | .filter-clear | 清除所有筛选器的按钮 |
| 排序控件 | .sort-control | 排序下拉菜单容器 |
| 筛选菜单 | .filter-menu | 下拉筛选面板 |
| 空状态 | .empty-state | 无结果容器 |
数据属性:
data-column— 标签上的列标识符data-filter-type— 筛选类型(包含/复选框/范围/日期)
样式交接
此技能会输出包含类名的语义化 HTML。要设置视觉样式,请在生成筛选器 HTML 后调用 html-style 技能。
评论
支持 Markdown