mcpField
T
table-filters

table-filters

github.com/shipshitdevデザイン・UI38183 回インストール2 日前に更新
リポジトリ

table-filters について

テーブルの列に適したフィルターと画面構成を設計するスキルです。フィルター種別、チップ、メニュー、ソート、結果なし状態の動作を定めます。

主な機能

  1. 01列データに応じたフィルター種別の割り当て
  2. 02チップと検索を一つのバーに集約
  3. 03列ごとのフィルターメニュー
  4. 04ドロップダウンによるソート
  5. 05チップと結果なし状態の動作定義
  6. 06セマンティックな HTML クラス

活用シーン

  1. 01商品テーブルのフィルター設計
  2. 02日付や数値範囲のコントロール作成
  3. 03有効な条件を削除可能なチップで表示
  4. 04一致する行がない場合のクリア操作

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/shipshitdev/skills --skill table-filters

インストール後、Claude Code で/table-filtersを入力して読み込まれたか確認します。

同梱ファイルplugin.jsonREADME.md

詳細

テーブルフィルター

ユーザーがフィルターが必要なテーブルを作成している場合は、列を分析し、フィルターの UX を設計します。

ステップ 1:各列を分析する

テーブルの各列について、フィルターの種類を決定します。

データパターンフィルターの種類列の例
フリーテキスト、名前、説明含むProduct Name、Notes、Customer
固定値の集合(選択肢が 20 個未満)チェックボックスStatus、Category、Priority、Type
数値範囲Price、Quantity、Age、Score
日付日付範囲Created、Updated、Due Date
ブール値切り替えActive、Verified、Published

ステップ 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有効なチップをすべて保持します
個別のチップ.chip1 つのフィルターチップ
チップの削除.chip-removeチップの X ボタン
検索入力欄.filter-searchテキスト検索フィールド
すべてクリア.filter-clearすべてのフィルターをクリアするボタン
並べ替えコントロール.sort-control並べ替えドロップダウンのコンテナー
フィルターメニュー.filter-menuドロップダウン式のフィルターパネル
空の状態.empty-state結果がない場合のコンテナー

データ属性:

  • data-column — チップ上の列識別子
  • data-filter-type — フィルターの種類(contains/checkbox/range/date)

スタイルの引き継ぎ

このスキルは、クラス名を含むセマンティック HTML を出力します。ビジュアルスタイルを適用するには、フィルター HTML の生成後に html-style スキルを呼び出します。

コメント