Skip to content

Commit aef1765

Browse files
fhirschmannclaude
andcommitted
feat: mobile-friendly control tab (volume buttons + stacked header)
On phones the playback-volume slider is hard to operate, so it is hidden below the md breakpoint and the louder/quieter/EQ buttons fill the row as large tap targets. The control-tab header now stacks vertically on mobile so the '// Control' legend stays on one line with the action buttons (repeat, sleep, night, bluetooth, lock) wrapping below it. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
1 parent d57f24a commit aef1765

2 files changed

Lines changed: 23 additions & 5 deletions

File tree

‎README.md‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -87,6 +87,7 @@ neon logo that doubles as the SVG favicon ([`8d9725c`](../../commit/8d9725c)):
8787
| Button lock (Kindersicherung) toggle directly in the control tab of the web interface with visual lock status indicator | [`ae83116`](../../commit/ae83116) |
8888
| Control buttons (single-track Repeat toggle, Sleep-Timer with dropdown and live remaining countdown, Night Mode/Dimming) directly in the control tab of the web interface | [`6918d36`](../../commit/6918d36) |
8989
| Bluetooth-mode dropdown in the control tab (Normal / Speaker / Headphones), mirroring the sleep-timer dropdown; selecting a mode restarts the device into it and the button highlights the active BT mode | [`b9f1e5c`](../../commit/b9f1e5c) |
90+
| Mobile-optimized control tab: the hard-to-drag volume slider is replaced by full-width louder/quieter (+ EQ) buttons on phones, and the control header stacks so the legend stays on one line with the action buttons below | [`f10bc93`](../../commit/f10bc93) |
9091

9192
#### Feature highlights
9293

‎html/management.html‎

Lines changed: 22 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1150,6 +1150,23 @@
11501150
float: left;
11511151
}
11521152

1153+
/* On mobile the playback-volume slider is hard to control, so it is hidden
1154+
(d-none d-md-block) and the louder/quieter/EQ buttons fill the row instead. */
1155+
@media (max-width: 767.98px) {
1156+
.control-volume {
1157+
gap: 8px;
1158+
}
1159+
1160+
.control-volume>div {
1161+
flex: 1 1 0;
1162+
padding-left: 0 !important;
1163+
}
1164+
1165+
.control-volume .volume-button {
1166+
width: 100%;
1167+
}
1168+
}
1169+
11531170
.slider.slider-horizontal {
11541171
width: 100%;
11551172
}
@@ -1722,9 +1739,9 @@ <h5 class="modal-title" data-i18n="tools.nvs.erase.title"></h5>
17221739
aria-labelledby="nav-control-tab">
17231740
<div class="container" id="navControl">
17241741
<div class="col-md-12">
1725-
<div class="d-flex justify-content-between align-items-center mb-1 pb-1" style="border-bottom: 1px solid var(--cp-border);">
1726-
<legend data-i18n="control.title" style="border-bottom: none; margin-bottom: 0; padding-bottom: 0;"></legend>
1727-
<div class="d-flex align-items-center gap-2" style="margin-bottom: 4px;">
1742+
<div class="d-flex flex-column flex-md-row justify-content-md-between align-items-start align-items-md-center mb-1 pb-1" style="border-bottom: 1px solid var(--cp-border);">
1743+
<legend data-i18n="control.title" style="border-bottom: none; margin-bottom: 0; padding-bottom: 0; white-space: nowrap;"></legend>
1744+
<div class="d-flex align-items-center flex-wrap gap-2 mt-2 mt-md-0" style="margin-bottom: 4px;">
17281745
<!-- Repeat Button -->
17291746
<button type="button" class="btn btn-sm cp-control-button" id="btn-repeat-mode" onclick="toggleRepeatMode()">
17301747
<span id="ico-repeat-mode" class="fas fa-redo"></span>
@@ -1799,14 +1816,14 @@ <h5 class="modal-title" data-i18n="tools.nvs.erase.title"></h5>
17991816
</div>
18001817
<br>
18011818
<legend data-i18n="control.volume" class="col-auto"></legend>
1802-
<div class="slider-container">
1819+
<div class="slider-container control-volume">
18031820
<div class="float-end">
18041821
<button type="button" class="btn btn-primary btn-lg volume-button" onclick="sendControl(177)"
18051822
data-i18n="[title]control.voldown">
18061823
<span class="fas fa-volume-down"></span>
18071824
</button>
18081825
</div>
1809-
<div class="slider-container-inner">
1826+
<div class="slider-container-inner d-none d-md-block">
18101827
<input class="form-control float-end" data-provide="slider" type="number" data-slider-min="1"
18111828
data-slider-max="21" min="1" max="21" id="setVolume" data-slider-value="" value=""
18121829
onchange="sendVolume(Number(this.value))">

0 commit comments

Comments
 (0)