コメントスレッド Comment Thread

コメントとその返信をツリー構造で表示するUI。議論の流れを視覚的に追える。

使用場面: ブログ記事やSNS投稿、コードレビューでのコメントと返信表示 採用例: Reddit, GitHub Issues

ライブデモ

A
山田太郎 2時間前

このプロジェクトの進め方はとても効率的だと思います。特にスプリント計画が素晴らしいですね。

B
佐藤花子 1時間前

ありがとうございます!チーム全員の協力のおかげです。

C
鈴木一郎 30分前

次のスプリントでも同じ方法で進めましょう!

ソースコード

<div class="demo-thread">
  <div class="demo-thread-comment">
    <div class="demo-thread-avatar">A</div>
    <div class="demo-thread-body">
      <div class="demo-thread-meta">
        <span class="demo-thread-author">山田太郎</span>
        <span class="demo-thread-date">2時間前</span>
      </div>
      <p class="demo-thread-text">このプロジェクトの進め方はとても効率的だと思います。特にスプリント計画が素晴らしいですね。</p>
      <div class="demo-thread-actions">
        <button class="demo-thread-action-btn demo-thread-like-btn">&#9825; 5</button>
        <button class="demo-thread-action-btn demo-thread-reply-btn">返信</button>
      </div>
      <div class="demo-thread-replies">
        <div class="demo-thread-comment">
          <div class="demo-thread-avatar">B</div>
          <div class="demo-thread-body">
            <div class="demo-thread-meta">
              <span class="demo-thread-author">佐藤花子</span>
              <span class="demo-thread-date">1時間前</span>
            </div>
            <p class="demo-thread-text">ありがとうございます!チーム全員の協力のおかげです。</p>
            <div class="demo-thread-actions">
              <button class="demo-thread-action-btn demo-thread-like-btn">&#9825; 3</button>
              <button class="demo-thread-action-btn demo-thread-reply-btn">返信</button>
            </div>
          </div>
        </div>
        <div class="demo-thread-comment">
          <div class="demo-thread-avatar">C</div>
          <div class="demo-thread-body">
            <div class="demo-thread-meta">
              <span class="demo-thread-author">鈴木一郎</span>
              <span class="demo-thread-date">30分前</span>
            </div>
            <p class="demo-thread-text">次のスプリントでも同じ方法で進めましょう!</p>
            <div class="demo-thread-actions">
              <button class="demo-thread-action-btn demo-thread-like-btn">&#9825; 1</button>
              <button class="demo-thread-action-btn demo-thread-reply-btn">返信</button>
            </div>
          </div>
        </div>
      </div>
    </div>
  </div>
</div>
.demo-thread { padding: 8px; }
.demo-thread-comment { display: flex; gap: 10px; }
.demo-thread-avatar {
  width: 34px; height: 34px; border-radius: 50%; flex-shrink: 0;
  background: color-mix(in srgb, var(--ui-primary) 15%, #fff);
  color: var(--ui-primary); display: flex; align-items: center;
  justify-content: center; font-weight: 700; font-size: 14px;
}
.demo-thread-body { flex: 1; min-width: 0; }
.demo-thread-meta { display: flex; align-items: center; gap: 8px; }
.demo-thread-author { font-size: 13px; font-weight: 600; color: #111; }
.demo-thread-date { font-size: 11px; color: #999; }
.demo-thread-text { margin: 4px 0 8px; font-size: 13px; color: #444; line-height: 1.6; }
.demo-thread-actions { display: flex; gap: 12px; margin-bottom: 12px; }
.demo-thread-action-btn {
  border: none; background: none; font-size: 12px; color: #888;
  cursor: pointer; padding: 2px 6px; border-radius: 4px;
  transition: color 0.2s, background 0.2s;
}
.demo-thread-action-btn:hover { color: var(--ui-primary); background: color-mix(in srgb, var(--ui-primary) 8%, transparent); }
.demo-thread-action-btn.liked { color: #ef4444; }
.demo-thread-replies {
  border-left: 2px solid color-mix(in srgb, var(--ui-primary) 20%, transparent);
  padding-left: 16px; display: flex; flex-direction: column; gap: 12px;
}
(function(){
  document.querySelectorAll('.demo-thread-like-btn').forEach(function(btn){
    btn.addEventListener('click', function(){
      this.classList.toggle('liked');
      var text = this.textContent.trim();
      var num = parseInt(text.replace(/[^0-9]/g,''));
      if(this.classList.contains('liked')){
        this.textContent = '\u2665 ' + (num+1);
      } else {
        this.textContent = '\u2661 ' + num;
      }
    });
  });
})();

AIプロンプト

Basic
コメントスレッドをHTML/CSSで作ってください。親コメントに対してネストされた返信が表示されるツリー構造です。
Custom
以下の仕様でコメントスレッドを実装してください。
- アバター、ユーザー名、日時の表示
- ネストされた返信(左ボーダーでインデント)
- いいねボタン(カウント付き)
- 返信ボタン
- プライマリカラー: #2563eb
- いいねのトグル機能(クリックで切り替え)
Advanced
本格的なコメントスレッドを実装してください。
- 無限ネスト対応(レベルに応じたインデント)
- コメント投稿フォーム(インライン返信)
- Markdown対応のコメント本文
- いいね/ダウンボートの投票機能
- コメントの折りたたみ/展開
- ソート機能(新着順、人気順、古い順)
- リアルタイム更新(WebSocket / SSE)
- コメントの編集・削除機能