Diff
1diff --git a/ui.go b/ui.go
2index 328ec1b4e31bc20b7eb768d1e9cca9a22fb21a03..2d9197612ff1a9f2dc0dc2bc56668e0f2d6b8b37 100644
3--- a/ui.go
4+++ b/ui.go
5@@ -64,11 +64,18 @@ var fields = []fieldSpec{
6 {"Artist", pointsArtist, func(s Song) string { return s.Artist }},
7 }
8
9+const labelWidth = 6 // width of the longest field label ("Artist")
10+
11+// fieldPrompt renders a padded "Label: " prompt so all input fields align.
12+func fieldPrompt(f fieldSpec) string {
13+ return fmt.Sprintf("%-*s: ", labelWidth, f.label)
14+}
15+
16 func newModel(catalog []Song, rounds int) model {
17 inputs := make([]textinput.Model, len(fields))
18 for i, f := range fields {
19 inputs[i] = textinput.New()
20- inputs[i].Prompt = f.label + ": "
21+ inputs[i].Prompt = fieldPrompt(f)
22 }
23
24 m := model{
25@@ -316,7 +323,7 @@ func (m model) View() string {
26 if i > 0 {
27 b.WriteString("\n")
28 }
29- label := f.label + ": "
30+ label := fieldPrompt(f)
31 answer := f.value(m.answer)
32 switch {
33 case m.fieldCorrect[i]: