first commit

This commit is contained in:
Tobias Nauen
2026-04-29 15:57:37 +02:00
commit e79260231f
15 changed files with 1216 additions and 0 deletions

101
index.html Normal file
View File

@@ -0,0 +1,101 @@
<!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>