Files
speedcode/public/index.html
T
2026-04-04 12:28:36 -05:00

99 lines
3.9 KiB
HTML

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>typeup</title>
<link rel="stylesheet" href="styles.css" />
</head>
<body>
<main class="layout">
<section class="panel panel-main">
<header class="game-head">
<div class="head-actions">
<a href="stats.html" class="btn btn-ghost">stats</a>
<button id="settingsBtn" class="btn btn-ghost" type="button">settings</button>
<button id="newRoundBtn" class="btn" type="button">reset</button>
</div>
</header>
<div class="stats-grid">
<article class="stat-card"><p>wpm</p><strong id="wpm">0</strong></article>
<article class="stat-card"><p>accuracy</p><strong id="accuracy">100%</strong></article>
<article class="stat-card"><p>combo</p><strong id="combo">x0</strong></article>
<article class="stat-card"><p>time</p><strong id="time">60s</strong></article>
</div>
<section class="text-shell" id="textDisplay" aria-live="polite"></section>
<label class="input-wrap" for="typeInput">
<input
id="typeInput"
type="text"
autocomplete="off"
autocorrect="off"
autocapitalize="off"
spellcheck="false"
placeholder="start typing to begin..."
/>
</label>
<section class="results" id="results" hidden>
<h2>round complete!</h2>
<p id="resultsSummary"></p>
<button id="playAgainBtn" class="btn">go again</button>
</section>
</section>
<aside class="panel panel-side">
<section class="profile">
<h2 id="profileTitle">rookie typer</h2>
<div class="level-line"><span id="levelText">level 1</span><span id="xpText">0 / 120 xp</span></div>
<div class="level-line"><span id="shardText">shards: 0</span></div>
<div class="xp-bar"><div id="xpFill"></div></div>
<p id="xpGain" class="xp-gain">+0 xp last round</p>
</section>
<ul></ul>
<section>
<div id="perks" class="perks"></div>
</section>
</aside>
</main>
<div id="settingsModal" class="modal" hidden>
<div class="modal-card" role="dialog" aria-modal="true" aria-labelledby="settingsTitle">
<div class="modal-head">
<h2 id="settingsTitle">settings</h2>
<button id="closeSettingsBtn" class="btn btn-ghost" type="button">close</button>
</div>
<div class="settings-grid">
<label for="profileName">name</label>
<input id="profileName" type="text" maxlength="24" placeholder="enter your name..." />
<label for="difficultySelect">difficulty</label>
<select id="difficultySelect">
<option value="easy">easy</option>
<option value="normal" selected>normal</option>
<option value="hard">hard</option>
<option value="expert">expert</option>
</select>
<p id="difficultyBonus" class="setting-note">xp bonus: x1.00</p>
<button id="resetProgressBtn" class="btn btn-ghost" type="button">reset save</button>
</div>
</div>
</div>
<div id="resetConfirmModal" class="modal" hidden>
<div class="modal-card" role="dialog" aria-modal="true" aria-labelledby="resetConfirmTitle">
<div class="modal-head"><h2 id="resetConfirmTitle">reset progress?</h2></div>
<p class="setting-note">this will erase your level, xp, perks, and history.</p>
<div class="modal-actions">
<button id="cancelResetBtn" class="btn btn-ghost" type="button">cancel</button>
<button id="confirmResetBtn" class="btn" type="button">yes, reset</button>
</div>
</div>
</div>
<script src="app.js"></script>
</body>
</html>