diff --git a/app.js b/app.js index f981420..e5602e3 100644 --- a/app.js +++ b/app.js @@ -442,8 +442,8 @@ function renderTable() { ${esc(nameRaw)} ${esc(sourceRaw)} ${esc(keyStr)} - ${esc(entry?.instrument_name ?? '')} - ${esc(entry?.tuning ?? '')} + ${esc(entry?.instrument_name ?? '')} + ${esc(entry?.tuning ?? '')} ${pillStatus(entry?.status)} ${hasNotes ? `` @@ -1092,8 +1092,9 @@ function callSelect(value, modal) { } } -$('btn-call').addEventListener('click', () => openCallModal('callable')); -$('btn-learn').addEventListener('click', () => openCallModal('to_learn')); +$('btn-call').addEventListener('click', () => openCallModal('callable')); +$('btn-review').addEventListener('click', () => openCallModal('review')); +$('btn-learn').addEventListener('click', () => openCallModal('to_learn')); $('call-close').addEventListener('click', () => callModal.close()); $('call-back').addEventListener('click', () => { callStep--; diff --git a/index.html b/index.html index b2aab72..f38b339 100644 --- a/index.html +++ b/index.html @@ -14,8 +14,9 @@
+ - +
diff --git a/style.css b/style.css index 6236ee7..7cade91 100644 --- a/style.css +++ b/style.css @@ -29,6 +29,7 @@ header { padding: .75rem 1.25rem; display: flex; align-items: center; + flex-wrap: wrap; gap: .75rem; } @@ -39,8 +40,11 @@ header h1 { font-size: 1.4rem; white-space: nowrap; } gap: .6rem; align-items: center; flex-shrink: 0; + margin-left: auto; /* right-aligns on same line; left-fills when alone on a row */ } + + #filter-search { flex: 1; background: var(--bg); @@ -228,8 +232,10 @@ th.sort-desc .sort-indicator::after { content: '▼'; } text-overflow: ellipsis; white-space: nowrap; } -.cell-name-content { max-width: min(22vw, 260px); } -.cell-source-content { max-width: min(26vw, 200px); } +.cell-name-content { max-width: min(14vw, 200px); } +.cell-source-content { max-width: min(11vw, 160px); } +.cell-inst-content { max-width: min(11vw, 130px); } +.cell-tuning-content { max-width: min(9vw, 110px); } .pill { display: inline-block; @@ -451,11 +457,12 @@ fieldset.active .fs-body { display: contents; } body { height: 100dvh; overflow: hidden; } main { overflow-y: auto; } - /* Header: h1 + actions on line 1, search full-width on line 2 */ - header { flex-wrap: wrap; } - header h1 { order: 1; flex: 1; } - #header-actions { order: 2; flex-shrink: 0; } - #filter-search { order: 3; flex-basis: 100%; } + /* Search drops to its own full-width row */ + #filter-search { order: 3; flex-basis: 100%; } + /* Actions fill remaining space; each button gets an equal share; ☰ stays natural size */ + #header-actions { flex: 1; margin-left: 0; } + #header-actions > button { flex: 1; min-width: 0; white-space: nowrap; overflow: hidden; } + #btn-bulk-edit { flex: none; } /* Table: block layout so the card has a concrete width to truncate against */ #tune-table, @@ -563,7 +570,8 @@ fieldset.active .fs-body { display: contents; } #btn-bulk-edit { background: transparent; border: 1px solid var(--border); color: var(--text); font-size: 1rem; padding: .3rem .65rem; } #btn-call { background: #1b4332; color: #74c69d; border: 1px solid #2d6a4f; font-weight: 600; } -#btn-learn { background: #3d2e10; color: #f2c94c; border: 1px solid #4d3a1e; font-weight: 600; } +#btn-review { background: #3d2e10; color: #f2c94c; border: 1px solid #4d3a1e; font-weight: 600; } +#btn-learn { background: #2a1a4e; color: #c4b5fd; border: 1px solid #3d2562; font-weight: 600; } /* ── Call modal ───────────────────────────────────────────── */ #call-modal {