基本スタイルテーブル
営業チームの実績データを見やすく整理した基本テーブル。ヘッダー強調・行区切り・数値の右寄せ・ステータスバッジで、日々のレポート表示にそのまま使えます。
ライブデモ
コード
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で提示し、組み込み手順も説明すること。
- 変更後の確認手順も簡潔に教えてください。