共通コンポーネントのライブ見本 — 各ブロックのコードをコピーして使う
<tool-name>/index.html を作成--color に未使用カラーを設定(CLAUDE.md の一覧参照)tools/index.html にカードを追加レイアウト・基本部品は ../_common.css 済み。.btn-primary やアラート等は _common.css 外なので「コンポーネント CSS」を併せてコピー。
:root { --color: #8a94a6; }
使用済みカラーは CLAUDE.md 参照。重複しない色を選ぶこと。
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>ツール名</title>
<link rel="icon" href="data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'><text y='.9em' font-size='90'>🛠️</text></svg>">
<link rel="stylesheet" href="../_common.css">
<style>
:root { --color: #8a94a6; } /* 未使用カラーに変更 */
body { padding: 48px 20px 80px; }
.wrap { width: 100%; max-width: 640px; display: flex; flex-direction: column; gap: 20px; }
.card { padding: 26px; }
/* ここに「コンポーネント CSS」と固有スタイルを貼る */
</style>
</head>
<body>
<a class="back" href="../">← ツール一覧</a>
<header>
<h1>🛠️ ツール名</h1>
<p>一行説明</p>
</header>
<div class="wrap">
<div class="card">
<div class="field">
<span class="field-label">入力</span>
<input type="text" id="src" oninput="update()" placeholder="...">
</div>
</div>
<div class="card">
<div class="section-title">結果</div>
<div class="output" id="out"></div>
</div>
</div>
<script>
function update() {
document.getElementById('out').textContent = document.getElementById('src').value;
}
update();
</script>
<script src="../_feedback.js"></script>
</body>
</html>
末尾の <script src="../_feedback.js"> は必須。
<a class="tool-card" href="<tool-name>/" style="border-top: 3px solid #8a94a6;" data-category="general"> <span class="icon">🛠️</span> <span class="name">ツール名</span> <span class="desc">説明文</span> </a>
data-category: general / dev / entertainment
下のボタンでこのページの <style> 全体をコピーし、ツールの <style> に貼り付ける。