カンバンボード Kanban Board

タスクをカラム別に分けて表示するボード。ステータス管理やワークフロー可視化に最適。

使用場面: プロジェクト管理でタスクのステータス(Todo/進行中/完了)を可視化する場面 採用例: Trello, Notion

ライブデモ

Todo 3
LP デザイン作成
design
APIエンドポイント設計
backend
テストケース作成
qa
In Progress 2
認証機能の実装
frontend
DB スキーマ設計
backend
Done 1
要件定義書作成
docs

ソースコード

<div class="demo-kanban">
  <div class="demo-kanban-col">
    <div class="demo-kanban-header">
      <span class="demo-kanban-dot" style="background:var(--ui-primary);"></span>
      <span class="demo-kanban-title">Todo</span>
      <span class="demo-kanban-count">3</span>
    </div>
    <div class="demo-kanban-cards">
      <div class="demo-kanban-card" draggable="true">
        <div class="demo-kanban-card-title">LP デザイン作成</div>
        <div class="demo-kanban-card-tags"><span class="demo-kanban-tag">design</span></div>
      </div>
      <div class="demo-kanban-card" draggable="true">
        <div class="demo-kanban-card-title">APIエンドポイント設計</div>
        <div class="demo-kanban-card-tags"><span class="demo-kanban-tag">backend</span></div>
      </div>
      <div class="demo-kanban-card" draggable="true">
        <div class="demo-kanban-card-title">テストケース作成</div>
        <div class="demo-kanban-card-tags"><span class="demo-kanban-tag">qa</span></div>
      </div>
    </div>
  </div>
  <div class="demo-kanban-col">
    <div class="demo-kanban-header">
      <span class="demo-kanban-dot" style="background:#f59e0b;"></span>
      <span class="demo-kanban-title">In Progress</span>
      <span class="demo-kanban-count">2</span>
    </div>
    <div class="demo-kanban-cards">
      <div class="demo-kanban-card" draggable="true">
        <div class="demo-kanban-card-title">認証機能の実装</div>
        <div class="demo-kanban-card-tags"><span class="demo-kanban-tag">frontend</span></div>
      </div>
      <div class="demo-kanban-card" draggable="true">
        <div class="demo-kanban-card-title">DB スキーマ設計</div>
        <div class="demo-kanban-card-tags"><span class="demo-kanban-tag">backend</span></div>
      </div>
    </div>
  </div>
  <div class="demo-kanban-col">
    <div class="demo-kanban-header">
      <span class="demo-kanban-dot" style="background:#10b981;"></span>
      <span class="demo-kanban-title">Done</span>
      <span class="demo-kanban-count">1</span>
    </div>
    <div class="demo-kanban-cards">
      <div class="demo-kanban-card" draggable="true">
        <div class="demo-kanban-card-title">要件定義書作成</div>
        <div class="demo-kanban-card-tags"><span class="demo-kanban-tag">docs</span></div>
      </div>
    </div>
  </div>
</div>
.demo-kanban {
  display: flex; gap: 12px; overflow-x: auto;
  padding-bottom: 4px;
}
.demo-kanban-col {
  flex: 1; min-width: 160px;
  background: #f3f4f6; border-radius: 10px; padding: 12px;
}
.demo-kanban-header {
  display: flex; align-items: center; gap: 8px;
  margin-bottom: 12px;
}
.demo-kanban-dot {
  width: 10px; height: 10px; border-radius: 50%;
}
.demo-kanban-title {
  font-size: 13px; font-weight: 700; color: #333; flex: 1;
}
.demo-kanban-count {
  font-size: 11px; color: #999; background: #e5e7eb;
  padding: 1px 8px; border-radius: 10px;
}
.demo-kanban-cards {
  display: flex; flex-direction: column; gap: 8px;
  min-height: 40px;
}
.demo-kanban-card {
  background: #fff; border-radius: 8px; padding: 10px 12px;
  box-shadow: 0 1px 3px rgba(0,0,0,0.06);
  cursor: grab; transition: box-shadow 0.2s, transform 0.15s;
}
.demo-kanban-card:hover {
  box-shadow: 0 3px 8px rgba(0,0,0,0.1);
  transform: translateY(-1px);
}
.demo-kanban-card.dragging {
  opacity: 0.5; transform: rotate(2deg);
}
.demo-kanban-card-title {
  font-size: 13px; font-weight: 600; color: #333;
}
.demo-kanban-card-tags { margin-top: 8px; }
.demo-kanban-tag {
  font-size: 10px; padding: 2px 8px; border-radius: 4px;
  background: color-mix(in srgb, var(--ui-primary) 10%, transparent);
  color: var(--ui-primary); font-weight: 500;
}
.demo-kanban-col.drag-over {
  background: color-mix(in srgb, var(--ui-primary) 8%, #f3f4f6);
}
(function(){
  const cards = document.querySelectorAll('.demo-kanban-card');
  const cols = document.querySelectorAll('.demo-kanban-cards');
  let dragged = null;
  cards.forEach(card => {
    card.addEventListener('dragstart', function(){ dragged = this; this.classList.add('dragging'); });
    card.addEventListener('dragend', function(){ this.classList.remove('dragging'); dragged = null;
      document.querySelectorAll('.demo-kanban-col').forEach(c => c.classList.remove('drag-over'));
    });
  });
  cols.forEach(col => {
    col.addEventListener('dragover', function(e){ e.preventDefault(); this.closest('.demo-kanban-col').classList.add('drag-over'); });
    col.addEventListener('dragleave', function(){ this.closest('.demo-kanban-col').classList.remove('drag-over'); });
    col.addEventListener('drop', function(e){ e.preventDefault();
      this.closest('.demo-kanban-col').classList.remove('drag-over');
      if(dragged) this.appendChild(dragged);
    });
  });
})();

AIプロンプト

Basic
カンバンボードをHTML/CSSで作ってください。Todo・進行中・完了の3カラムでタスクカードを表示します。
Custom
以下の仕様でカンバンボードを実装してください。
- 3カラム構成(Todo/In Progress/Done)
- カードにタイトル・担当者・タグ・期限を表示
- ドラッグ&ドロップでカード移動
- プライマリカラー: #2563eb
- カード追加ボタン付き
- カラムヘッダーにタスク数バッジ
Advanced
高機能なカンバンボードを実装してください。
- ドラッグ&ドロップ(カード移動 + カラム並替え)
- カードの追加・編集・削除(インラインエディット)
- フィルタリング(担当者・タグ・期限で絞り込み)
- WIPリミット(カラムごとのカード数上限)
- ローカルストレージによる状態永続化
- キーボード操作対応
- リアルタイム更新のシミュレーション