Files
Guitar-Fretboard-Trainer/index.html
Tobias Nauen e79260231f first commit
2026-04-29 15:57:37 +02:00

102 lines
3.1 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Fretboard Trainer</title>
<link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png" />
<link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png" />
<link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png" />
<link rel="manifest" href="/site.webmanifest" />
<link rel="stylesheet" href="css/style.css" />
</head>
<body>
<h1>Fretboard Trainer</h1>
<p class="subtitle">Learn the notes on your guitar</p>
<div class="mode-tabs">
<button class="mode-tab active" id="tab1">Name the Note</button>
<button class="mode-tab" id="tab2">Find All Occurrences</button>
<button class="mode-tab" id="tabStats">Stats</button>
</div>
<div class="quiz-container" id="quizArea">
<div class="settings-row">
<label>
Strings:
<select id="stringCount">
<option value="6" selected>6-string</option>
<option value="7">7-string</option>
</select>
</label>
<label
><input type="checkbox" id="sharpsOnly" /> Sharps only (no
flats)</label
>
<label
><input type="checkbox" id="naturalOnly" /> Natural notes only</label
>
</div>
<div class="prompt-card">
<div class="prompt-label" id="promptLabel">String &amp; Fret</div>
<div class="prompt-text" id="promptText">Loading…</div>
</div>
<div class="fretboard-wrap">
<div id="fretboardContainer"></div>
</div>
<!-- Mode 1: note answer buttons -->
<div class="note-buttons" id="noteButtons"></div>
<!-- Mode 2: submit / clear -->
<div
id="mode2Controls"
style="
display: none;
flex-direction: column;
align-items: center;
gap: 12px;
"
>
<div style="color: var(--text-dim); font-size: 0.9rem">
Click all positions where the note appears, then submit
</div>
<div style="display: flex; gap: 12px">
<button class="submit-btn" id="submitBtn">Submit Answer</button>
<button class="clear-btn" id="clearBtn">Clear</button>
</div>
</div>
<div class="feedback" id="feedback"></div>
<button class="next-btn" id="nextBtn" disabled>Next →</button>
<div class="kbd-hint">
<kbd>Space</kbd> / <kbd>Enter</kbd> next &nbsp;&nbsp; <kbd>1</kbd><kbd
>9</kbd
>
answer &nbsp;&nbsp; <kbd>Tab</kbd> cycle tabs
</div>
<div class="stats">
Correct: <span id="statCorrect">0</span> &nbsp;/&nbsp; Total:
<span id="statTotal">0</span> &nbsp;|&nbsp; Streak:
<span id="statStreak">0</span>
</div>
</div>
<div
id="statsScreen"
style="
display: none;
flex-direction: column;
align-items: center;
width: 100%;
max-width: 900px;
"
></div>
<script type="module" src="js/app.js"></script>
</body>
</html>