基本スタイルテーブル

営業チームの実績データを見やすく整理した基本テーブル。ヘッダー強調・行区切り・数値の右寄せ・ステータスバッジで、日々のレポート表示にそのまま使えます。

#css#table

ライブデモ

コード

HTML
<!-- 基本スタイルテーブル: 営業実績を見やすく整理した基本のデータテーブル -->
<section class="tb1-wrap">
  <div class="tb1-card">
    <header class="tb1-head">
      <h2 class="tb1-title">営業実績レポート</h2>
      <span class="tb1-period">2026年6月度</span>
    </header>
    <div class="tb1-scroll">
      <table class="tb1-table">
        <caption class="sr-only">担当者ごとの売上・更新日・ステータスの一覧</caption>
        <thead>
          <tr>
            <th scope="col">担当者</th>
            <th scope="col">部署</th>
            <th scope="col" class="tb1-num">売上</th>
            <th scope="col">更新日</th>
            <th scope="col">ステータス</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <th scope="row">佐藤 美咲</th>
            <td>営業部</td>
            <td class="tb1-num">¥1,250,000</td>
            <td>2026-06-28</td>
            <td><span class="tb1-badge tb1-badge--done">完了</span></td>
          </tr>
          <tr>
            <th scope="row">田中 陽一</th>
            <td>マーケティング部</td>
            <td class="tb1-num">¥860,000</td>
            <td>2026-06-27</td>
            <td><span class="tb1-badge tb1-badge--progress">処理中</span></td>
          </tr>
          <tr>
            <th scope="row">鈴木 花</th>
            <td>営業部</td>
            <td class="tb1-num">¥2,430,000</td>
            <td>2026-06-25</td>
            <td><span class="tb1-badge tb1-badge--done">完了</span></td>
          </tr>
          <tr>
            <th scope="row">高橋 健太</th>
            <td>開発部</td>
            <td class="tb1-num">¥540,000</td>
            <td>2026-06-24</td>
            <td><span class="tb1-badge tb1-badge--hold">保留</span></td>
          </tr>
          <tr>
            <th scope="row">伊藤 由紀</th>
            <td>カスタマーサポート部</td>
            <td class="tb1-num">¥980,000</td>
            <td>2026-06-22</td>
            <td><span class="tb1-badge tb1-badge--done">完了</span></td>
          </tr>
          <tr>
            <th scope="row">渡辺 大輔</th>
            <td>営業部</td>
            <td class="tb1-num">¥1,120,000</td>
            <td>2026-06-20</td>
            <td><span class="tb1-badge tb1-badge--progress">処理中</span></td>
          </tr>
          <tr>
            <th scope="row">山本 さくら</th>
            <td>マーケティング部</td>
            <td class="tb1-num">¥670,000</td>
            <td>2026-06-18</td>
            <td><span class="tb1-badge tb1-badge--hold">保留</span></td>
          </tr>
          <tr>
            <th scope="row">中村 蓮</th>
            <td>開発部</td>
            <td class="tb1-num">¥1,890,000</td>
            <td>2026-06-15</td>
            <td><span class="tb1-badge tb1-badge--done">完了</span></td>
          </tr>
        </tbody>
      </table>
    </div>
  </div>
</section>
CSS
/* 基本スタイルテーブル: ヘッダー強調・行区切り・数値右寄せ・ステータスバッジ */
* { box-sizing: border-box; }
body {
  margin: 0;
  min-height: 100vh;
  display: grid;
  place-items: center;
  padding: 28px 16px;
  font-family: "Segoe UI", "Hiragino Kaku Gothic ProN", system-ui, -apple-system, sans-serif;
  background: linear-gradient(160deg, #f7f8fc 0%, #eef0f7 100%);
  color: #1c2033;
}

.sr-only {
  position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0;
}

.tb1-wrap { width: 100%; display: grid; place-items: center; }

.tb1-card {
  width: min(760px, 100%);
  background: #fff;
  border-radius: 18px;
  box-shadow: 0 24px 60px rgba(24, 28, 55, .10), 0 2px 8px rgba(24, 28, 55, .04);
  overflow: hidden;
  animation: tb1-rise .5s cubic-bezier(.22, 1, .36, 1) both;
}

.tb1-head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 12px;
  padding: 20px 24px;
  border-bottom: 1px solid #eef0f6;
}
.tb1-title { margin: 0; font-size: 17px; font-weight: 800; letter-spacing: .01em; }
.tb1-period { font-size: 12.5px; font-weight: 600; color: #8b91a7; }

.tb1-scroll { width: 100%; overflow-x: auto; }

.tb1-table { width: 100%; min-width: 560px; border-collapse: collapse; font-size: 13.5px; }

.tb1-table thead th {
  text-align: left;
  padding: 12px 24px;
  background: #12172b;
  color: #fff;
  font-weight: 700;
  font-size: 12.5px;
  letter-spacing: .03em;
  white-space: nowrap;
}
.tb1-table thead th.tb1-num { text-align: right; }

.tb1-table tbody th,
.tb1-table tbody td {
  padding: 13px 24px;
  border-bottom: 1px solid #eef0f6;
  font-weight: 400;
  text-align: left;
  white-space: nowrap;
}
.tb1-table tbody th { font-weight: 700; color: #1c2033; }
.tb1-table tbody tr:last-child th,
.tb1-table tbody tr:last-child td { border-bottom: none; }

.tb1-num { text-align: right; font-variant-numeric: tabular-nums; font-weight: 600; }

.tb1-badge {
  display: inline-flex;
  align-items: center;
  padding: 4px 12px;
  border-radius: 999px;
  font-size: 11.5px;
  font-weight: 700;
  letter-spacing: .02em;
}
.tb1-badge--done { background: rgba(16, 185, 129, .12); color: #0a8a5f; }
.tb1-badge--progress { background: rgba(59, 130, 246, .12); color: #2563eb; }
.tb1-badge--hold { background: rgba(245, 158, 11, .14); color: #b45309; }

.tb1-table tbody tr {
  opacity: 0;
  animation: tb1-row .45s ease both;
}
.tb1-table tbody tr:nth-child(1) { animation-delay: .04s; }
.tb1-table tbody tr:nth-child(2) { animation-delay: .08s; }
.tb1-table tbody tr:nth-child(3) { animation-delay: .12s; }
.tb1-table tbody tr:nth-child(4) { animation-delay: .16s; }
.tb1-table tbody tr:nth-child(5) { animation-delay: .20s; }
.tb1-table tbody tr:nth-child(6) { animation-delay: .24s; }
.tb1-table tbody tr:nth-child(7) { animation-delay: .28s; }
.tb1-table tbody tr:nth-child(8) { animation-delay: .32s; }

@keyframes tb1-rise { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: none; } }
@keyframes tb1-row { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: none; } }

@media (prefers-reduced-motion: reduce) {
  .tb1-card, .tb1-table tbody tr { animation: none !important; opacity: 1 !important; }
}
JavaScript
// 基本スタイルテーブル: 静的表示のみのため追加のJSは不要

🤖 AIエージェント用プロンプト

このままコピーしてAIに貼り付け「追加する場所」だけ書き換えればOK
あなたは熟練のフロントエンドエンジニアです。私のWebサイトに「基本スタイルテーブル」の効果を追加してください。

# 追加してほしい効果
基本スタイルテーブル(カード & テーブル)
営業チームの実績データを見やすく整理した基本テーブル。ヘッダー強調・行区切り・数値の右寄せ・ステータスバッジで、日々のレポート表示にそのまま使えます。

# 追加する場所
👉【ここに対象箇所を記入:例「トップのヒーローセクション」「お問い合わせボタン」「記事カードの一覧」など】

# 参考実装(この見た目・挙動を再現してください)
【HTML】
<!-- 基本スタイルテーブル: 営業実績を見やすく整理した基本のデータテーブル -->
<section class="tb1-wrap">
  <div class="tb1-card">
    <header class="tb1-head">
      <h2 class="tb1-title">営業実績レポート</h2>
      <span class="tb1-period">2026年6月度</span>
    </header>
    <div class="tb1-scroll">
      <table class="tb1-table">
        <caption class="sr-only">担当者ごとの売上・更新日・ステータスの一覧</caption>
        <thead>
          <tr>
            <th scope="col">担当者</th>
            <th scope="col">部署</th>
            <th scope="col" class="tb1-num">売上</th>
            <th scope="col">更新日</th>
            <th scope="col">ステータス</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <th scope="row">佐藤 美咲</th>
            <td>営業部</td>
            <td class="tb1-num">¥1,250,000</td>
            <td>2026-06-28</td>
            <td><span class="tb1-badge tb1-badge--done">完了</span></td>
          </tr>
          <tr>
            <th scope="row">田中 陽一</th>
            <td>マーケティング部</td>
            <td class="tb1-num">¥860,000</td>
            <td>2026-06-27</td>
            <td><span class="tb1-badge tb1-badge--progress">処理中</span></td>
          </tr>
          <tr>
            <th scope="row">鈴木 花</th>
            <td>営業部</td>
            <td class="tb1-num">¥2,430,000</td>
            <td>2026-06-25</td>
            <td><span class="tb1-badge tb1-badge--done">完了</span></td>
          </tr>
          <tr>
            <th scope="row">高橋 健太</th>
            <td>開発部</td>
            <td class="tb1-num">¥540,000</td>
            <td>2026-06-24</td>
            <td><span class="tb1-badge tb1-badge--hold">保留</span></td>
          </tr>
          <tr>
            <th scope="row">伊藤 由紀</th>
            <td>カスタマーサポート部</td>
            <td class="tb1-num">¥980,000</td>
            <td>2026-06-22</td>
            <td><span class="tb1-badge tb1-badge--done">完了</span></td>
          </tr>
          <tr>
            <th scope="row">渡辺 大輔</th>
            <td>営業部</td>
            <td class="tb1-num">¥1,120,000</td>
            <td>2026-06-20</td>
            <td><span class="tb1-badge tb1-badge--progress">処理中</span></td>
          </tr>
          <tr>
            <th scope="row">山本 さくら</th>
            <td>マーケティング部</td>
            <td class="tb1-num">¥670,000</td>
            <td>2026-06-18</td>
            <td><span class="tb1-badge tb1-badge--hold">保留</span></td>
          </tr>
          <tr>
            <th scope="row">中村 蓮</th>
            <td>開発部</td>
            <td class="tb1-num">¥1,890,000</td>
            <td>2026-06-15</td>
            <td><span class="tb1-badge tb1-badge--done">完了</span></td>
          </tr>
        </tbody>
      </table>
    </div>
  </div>
</section>

【CSS】
/* 基本スタイルテーブル: ヘッダー強調・行区切り・数値右寄せ・ステータスバッジ */
* { box-sizing: border-box; }
body {
  margin: 0;
  min-height: 100vh;
  display: grid;
  place-items: center;
  padding: 28px 16px;
  font-family: "Segoe UI", "Hiragino Kaku Gothic ProN", system-ui, -apple-system, sans-serif;
  background: linear-gradient(160deg, #f7f8fc 0%, #eef0f7 100%);
  color: #1c2033;
}

.sr-only {
  position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0;
}

.tb1-wrap { width: 100%; display: grid; place-items: center; }

.tb1-card {
  width: min(760px, 100%);
  background: #fff;
  border-radius: 18px;
  box-shadow: 0 24px 60px rgba(24, 28, 55, .10), 0 2px 8px rgba(24, 28, 55, .04);
  overflow: hidden;
  animation: tb1-rise .5s cubic-bezier(.22, 1, .36, 1) both;
}

.tb1-head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 12px;
  padding: 20px 24px;
  border-bottom: 1px solid #eef0f6;
}
.tb1-title { margin: 0; font-size: 17px; font-weight: 800; letter-spacing: .01em; }
.tb1-period { font-size: 12.5px; font-weight: 600; color: #8b91a7; }

.tb1-scroll { width: 100%; overflow-x: auto; }

.tb1-table { width: 100%; min-width: 560px; border-collapse: collapse; font-size: 13.5px; }

.tb1-table thead th {
  text-align: left;
  padding: 12px 24px;
  background: #12172b;
  color: #fff;
  font-weight: 700;
  font-size: 12.5px;
  letter-spacing: .03em;
  white-space: nowrap;
}
.tb1-table thead th.tb1-num { text-align: right; }

.tb1-table tbody th,
.tb1-table tbody td {
  padding: 13px 24px;
  border-bottom: 1px solid #eef0f6;
  font-weight: 400;
  text-align: left;
  white-space: nowrap;
}
.tb1-table tbody th { font-weight: 700; color: #1c2033; }
.tb1-table tbody tr:last-child th,
.tb1-table tbody tr:last-child td { border-bottom: none; }

.tb1-num { text-align: right; font-variant-numeric: tabular-nums; font-weight: 600; }

.tb1-badge {
  display: inline-flex;
  align-items: center;
  padding: 4px 12px;
  border-radius: 999px;
  font-size: 11.5px;
  font-weight: 700;
  letter-spacing: .02em;
}
.tb1-badge--done { background: rgba(16, 185, 129, .12); color: #0a8a5f; }
.tb1-badge--progress { background: rgba(59, 130, 246, .12); color: #2563eb; }
.tb1-badge--hold { background: rgba(245, 158, 11, .14); color: #b45309; }

.tb1-table tbody tr {
  opacity: 0;
  animation: tb1-row .45s ease both;
}
.tb1-table tbody tr:nth-child(1) { animation-delay: .04s; }
.tb1-table tbody tr:nth-child(2) { animation-delay: .08s; }
.tb1-table tbody tr:nth-child(3) { animation-delay: .12s; }
.tb1-table tbody tr:nth-child(4) { animation-delay: .16s; }
.tb1-table tbody tr:nth-child(5) { animation-delay: .20s; }
.tb1-table tbody tr:nth-child(6) { animation-delay: .24s; }
.tb1-table tbody tr:nth-child(7) { animation-delay: .28s; }
.tb1-table tbody tr:nth-child(8) { animation-delay: .32s; }

@keyframes tb1-rise { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: none; } }
@keyframes tb1-row { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: none; } }

@media (prefers-reduced-motion: reduce) {
  .tb1-card, .tb1-table tbody tr { animation: none !important; opacity: 1 !important; }
}

【JavaScript】
// 基本スタイルテーブル: 静的表示のみのため追加のJSは不要

# 外部ライブラリ
なし(追加ライブラリ不要)

# 守ってほしいこと
- 既存のHTML構造・レイアウト・デザインを壊さないこと。必要に応じてクラス名・色・サイズを私のサイトに合わせて調整してよい。
- クラス名やidが既存と衝突しないよう、必要なら接頭辞で名前空間を分けること。
- レスポンシブ対応と prefers-reduced-motion への配慮を入れること。
- 私のサイトのフレームワーク(React / Vue / 素のHTML など)に合わせて実装すること。不明な場合は素のHTML/CSS/JSで提示し、組み込み手順も説明すること。
- 変更後の確認手順も簡潔に教えてください。