144 lines
4.9 KiB
HTML
144 lines
4.9 KiB
HTML
<!doctype html>
|
|
<html lang="fr">
|
|
<head>
|
|
<meta charset="UTF-8" />
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
<meta
|
|
name="description"
|
|
content="Phase chrono de ChessCubing Arena avec gros boutons face-à-face."
|
|
/>
|
|
<title>ChessCubing Arena | Phase Chrono</title>
|
|
<link rel="stylesheet" href="styles.css" />
|
|
</head>
|
|
<body data-page="chrono" class="phase-body">
|
|
<main class="phase-shell">
|
|
<header class="phase-header">
|
|
<a class="brand-link" href="index.html">Configuration</a>
|
|
<div class="phase-title">
|
|
<p class="eyebrow">Phase chrono</p>
|
|
<h1 id="chronoTitle">Block 1</h1>
|
|
<p id="chronoSubtitle" class="phase-subtitle"></p>
|
|
</div>
|
|
<button class="button ghost small utility-button" id="openArbiterButton" type="button">
|
|
Arbitre
|
|
</button>
|
|
</header>
|
|
|
|
<section class="status-strip">
|
|
<article class="status-card">
|
|
<span>Temps block</span>
|
|
<strong id="blockTimer">03:00</strong>
|
|
</article>
|
|
<article class="status-card">
|
|
<span>Temps coup</span>
|
|
<strong id="moveTimer">00:20</strong>
|
|
</article>
|
|
<article class="status-card wide">
|
|
<span id="chronoCenterLabel">Trait</span>
|
|
<strong id="chronoCenterValue">Blanc</strong>
|
|
</article>
|
|
</section>
|
|
|
|
<section class="faceoff-board">
|
|
<article class="player-zone opponent-zone" id="blackZone">
|
|
<div class="zone-inner mirrored-mobile">
|
|
<div class="zone-head">
|
|
<div>
|
|
<span class="seat-tag dark-seat">Noir</span>
|
|
<h2 id="blackNameChrono">Noir</h2>
|
|
</div>
|
|
<div class="zone-stats">
|
|
<strong id="blackMovesChrono">0 / 6</strong>
|
|
<span id="blackClockChrono"></span>
|
|
</div>
|
|
</div>
|
|
|
|
<button class="zone-button dark-button" id="blackMoveButton" type="button">
|
|
En attente
|
|
</button>
|
|
|
|
<p class="zone-foot" id="blackHintChrono"></p>
|
|
</div>
|
|
</article>
|
|
|
|
<article class="phase-spine">
|
|
<div class="spine-card">
|
|
<p class="micro-label" id="spineLabel">État du block</p>
|
|
<strong id="spineHeadline">Prêt à démarrer</strong>
|
|
<p id="spineText"></p>
|
|
</div>
|
|
|
|
<button class="button primary spine-button" id="primaryChronoButton" type="button">
|
|
Démarrer le block
|
|
</button>
|
|
</article>
|
|
|
|
<article class="player-zone" id="whiteZone">
|
|
<div class="zone-inner">
|
|
<div class="zone-head">
|
|
<div>
|
|
<span class="seat-tag light-seat">Blanc</span>
|
|
<h2 id="whiteNameChrono">Blanc</h2>
|
|
</div>
|
|
<div class="zone-stats">
|
|
<strong id="whiteMovesChrono">0 / 6</strong>
|
|
<span id="whiteClockChrono"></span>
|
|
</div>
|
|
</div>
|
|
|
|
<button class="zone-button light-button" id="whiteMoveButton" type="button">
|
|
En attente
|
|
</button>
|
|
|
|
<p class="zone-foot" id="whiteHintChrono"></p>
|
|
</div>
|
|
</article>
|
|
</section>
|
|
</main>
|
|
|
|
<section class="modal hidden" id="arbiterModal" aria-hidden="true">
|
|
<div class="modal-backdrop" data-close-modal="true"></div>
|
|
<div class="modal-card">
|
|
<div class="modal-head">
|
|
<div>
|
|
<p class="eyebrow">Outils arbitre</p>
|
|
<h2>Contrôles avancés</h2>
|
|
</div>
|
|
<button class="button ghost small" id="closeArbiterButton" type="button">Fermer</button>
|
|
</div>
|
|
|
|
<p class="section-copy" id="arbiterStatus"></p>
|
|
|
|
<div class="modal-actions">
|
|
<button class="button secondary" id="arbiterPauseButton" type="button">
|
|
Pause / reprise
|
|
</button>
|
|
<button class="button secondary" id="arbiterCloseBlockButton" type="button">
|
|
Clore le block
|
|
</button>
|
|
<button class="button secondary" id="arbiterTimeoutButton" type="button">
|
|
Dépassement 20 s
|
|
</button>
|
|
<button class="button secondary" id="arbiterSwitchTurnButton" type="button">
|
|
Corriger le trait
|
|
</button>
|
|
<button class="button ghost" id="arbiterWhiteWinButton" type="button">
|
|
Blanc gagne
|
|
</button>
|
|
<button class="button ghost" id="arbiterBlackWinButton" type="button">
|
|
Noir gagne
|
|
</button>
|
|
<button class="button ghost danger" id="arbiterStopButton" type="button">
|
|
Abandon / arrêt
|
|
</button>
|
|
<button class="button ghost" id="arbiterResetButton" type="button">
|
|
Réinitialiser le match
|
|
</button>
|
|
</div>
|
|
</div>
|
|
</section>
|
|
|
|
<script type="module" src="app.js"></script>
|
|
</body>
|
|
</html>
|