Initial commit: private Texas Hold'em ring game site (lobby + table stub)

- 6-digit access key gate with long-lived HttpOnly cookie, brute-force limits
- Lobby with saved player name and live table list
- Table creation (name, starting stack, blinds, blind timer)
- Table play screen stub (seats, button/SB/BB, phase, blinds, timer)
- Security hardening: strict CSP, origin checks, host pinning, input sanitizing

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
agomizi1cmandClaude Opus 5.5 committed 2026-10-15 16:51:15 +09:00
commit b2c91062f1
22 files changed
+3450

No files matched your search

+60
View File
@@ -0,0 +1,60 @@
<!doctype html>
<html lang="ja">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover">
<meta name="theme-color" content="#24493b">
<meta name="robots" content="noindex, nofollow">
<title>テーブル作成 - Hold'em Night</title>
<link rel="stylesheet" href="/assets/style.css">
</head>
<body>
<main class="wrap">
<div class="topbar">
<a class="icon-btn" href="/" aria-label="戻る">←</a>
<h1>テーブルを作成</h1>
</div>
<form id="form" novalidate>
<label for="table-name">テーブル名</label>
<div class="row">
<input id="table-name" type="text" maxlength="24" required>
<button type="button" class="icon-btn" id="reroll" aria-label="別の名前にする">🎲</button>
</div>
<label for="stack">開始スタック</label>
<input id="stack" type="number" inputmode="numeric" min="10" step="1" value="1000">
<div class="label">開始ブラインド(SB / BB)</div>
<div class="row">
<input id="sb" type="number" inputmode="numeric" min="1" step="1" aria-label="スモールブラインド">
<span class="slash">/</span>
<input id="bb" type="number" inputmode="numeric" min="1" step="1" aria-label="ビッグブラインド">
</div>
<div class="hint" id="blind-hint">スタックに合わせて自動設定(BB ≒ スタックの1/100)</div>
<div class="switch-row">
<span>ブラインドタイマー</span>
<label class="switch">
<input id="timer" type="checkbox" aria-label="ブラインドタイマー">
<span></span>
</label>
</div>
<label for="interval">インターバル</label>
<div class="unit-input">
<input id="interval" type="number" inputmode="numeric" min="1" max="240" step="1" value="10" disabled>
<span class="unit">min</span>
</div>
<div class="schedule" id="schedule" hidden></div>
<div class="error-text" id="error"></div>
<button class="btn btn-orange btn-block mt-8" id="submit" type="submit">テーブルを作成</button>
</form>
</main>
<script src="/assets/common.js"></script>
<script src="/assets/blinds.js"></script>
<script src="/assets/create.js"></script>
</body>
</html>