fix(ui): center UX 3.5 topbar icons and tighten Settings mobile tabs

Address #396 retest: vertically center menu/logo in the topbar, drop extra Settings track padding, and tighten the page-header gap on phone without changing sticky bleed. Move the sticky changelog entry to 3.5.70.

Refs #396

Thanks: INSOLVE (Honorary); Marco Jakobs (@jacotec); MyNameisStitch (@MyNameisStitch); Redspin (@playerumpknow)
This commit is contained in:
UNITRONIX
2026-09-05 16:06:36 +02:00
parent e978f840e8
commit 4ae5dfb8a3
4 changed files with 49 additions and 7 deletions
+4 -3
View File
@@ -9,6 +9,7 @@
### Fixed
- **Web Remote → WebSocket Mode relay pairing (#397 follow-up):** hbbr now bridges mixed TCP (`:21117`) ↔ WS (`:21119`) sessions with BytesCodec↔message translation (16 MiB peer-frame cap), so panel Web Remote can complete relay to WS-mode peers. Signal exemption for `panel-web-remote` alone was insufficient — pairing previously failed with `Protocol mismatch … tcp <-> ws`. Ships via Go relay restart / panel update.
- **Settings mobile topbar + tab chrome (#396 follow-up):** UX 3.5 menu/logo icons are vertically centered in the topbar; Settings tab track drops extra bottom padding and phone viewports tighten the page-header→tabs gap (sticky bleed unchanged). Ships via panel update. Verify: ≤767px UX 3.5 → hamburger/logo aligned in the 48px topbar; Settings tabs compact with no empty strip under the underline; scroll still keeps tabs flush under the content top.
### Changed
- _(none yet)_
@@ -67,6 +68,9 @@
## [3.5.70] — 2026-08-30
### Fixed
- **Settings tab bar sticky + mobile (#396):** Settings horizontal tabs stay flush under the top of the content scroll area (bleed cancels content padding), keep sticky on narrow/mobile instead of scrolling away, and scroll the active tab into view when switching or opening a hash link. Ships via panel update. Verify: Settings → scroll a long form → tab bar flush at top; ≤900px / mobile → tabs remain visible while scrolling; `/settings#updates` brings Updates into the horizontal track.
### Changed
- _(none yet)_
@@ -77,9 +81,6 @@
### Added
- **Custom download portal product label (#386):** Agent Generator advanced branding can override or hide the product type line (`download.product_*`) on the public download page without rebuilding installers.
### Fixed
- **Settings tab bar sticky + mobile (#396):** Settings horizontal tabs stay flush under the top of the content scroll area (bleed cancels content padding), keep sticky on narrow/mobile instead of scrolling away, and scroll the active tab into view when switching or opening a hash link. Ships via panel update. Verify: Settings → scroll a long form → tab bar flush at top; ≤900px / mobile → tabs remain visible while scrolling; `/settings#updates` brings Updates into the horizontal track.
### Changed
- _(none yet)_
+5
View File
@@ -481,6 +481,11 @@ body.ux35-page .mobile-bottom-nav {
padding-bottom: var(--space-xs);
}
/* Settings sticky track: no extra bottom padding (compact under topbar) */
body.app-page.is-mobile-shell .settings-shell-nav-track {
padding-bottom: 0;
}
body.app-page.is-mobile-shell .settings-shell-nav-track::-webkit-scrollbar,
body.app-page.is-mobile-shell .settings-tabs::-webkit-scrollbar,
body.app-page.is-mobile-shell .server-mgmt-tabs::-webkit-scrollbar {
+5
View File
@@ -3324,6 +3324,11 @@
-webkit-overflow-scrolling: touch;
}
/* Settings track: no extra bottom padding from .mobile-tabs-scroll (keeps bar compact) */
.settings-shell-nav-track.mobile-tabs-scroll {
padding-bottom: 0;
}
.settings-shell-nav .settings-shell-tab,
.settings-shell-nav .settings-tab {
display: flex;
+35 -4
View File
@@ -70,14 +70,27 @@ body.app-page.ux35-page {
white-space: nowrap;
color: inherit;
text-decoration: none;
min-height: var(--ux35-control-size);
}
.ux35-topbar-logo .material-icons { font-size: 22px; }
.ux35-topbar-logo img { height: 24px; width: auto; }
.ux35-topbar-logo .material-icons {
font-size: 22px;
line-height: 1;
width: 22px;
height: 22px;
}
.ux35-topbar-logo img { height: 24px; width: auto; display: block; }
.ux35-topbar-logo .sidebar-logo-svg {
display: flex;
align-items: center;
line-height: 0;
}
.ux35-topbar-logo .brand-text-accent { opacity: 0.85; }
.ux35-topbar-menu-btn {
display: none;
align-items: center;
justify-content: center;
min-width: var(--ux35-control-size);
min-height: var(--ux35-control-size);
background: none;
@@ -88,7 +101,12 @@ body.app-page.ux35-page {
cursor: pointer;
}
.ux35-topbar-menu-btn:hover { background: rgba(255, 255, 255, 0.12); color: var(--ux35-topbar-fg); }
.ux35-topbar-menu-btn .material-icons { font-size: 22px; }
.ux35-topbar-menu-btn .material-icons {
font-size: 22px;
line-height: 1;
width: 22px;
height: 22px;
}
.ux35-topbar-breadcrumb {
display: flex;
@@ -132,11 +150,15 @@ body.app-page.ux35-page {
cursor: pointer;
display: flex;
align-items: center;
justify-content: center;
position: relative;
transition: background var(--ux35-motion-fast), color var(--ux35-motion-fast);
}
.ux35-topbar-btn:hover { background: rgba(255, 255, 255, 0.12); color: var(--ux35-topbar-fg); }
.ux35-topbar-btn .material-icons { font-size: 20px; }
.ux35-topbar-btn .material-icons {
font-size: 20px;
line-height: 1;
}
/* Keyboard focus uses the active brand color without relying on hover. */
.ux35-topbar-btn:focus-visible,
@@ -580,6 +602,11 @@ body.ux35-is-resizing {
padding: var(--ux35-content-padding);
padding-bottom: calc(var(--ux35-content-padding) + 72px);
}
/* Tighten header→tabs gap on phone; bleed still cancels content padding when sticky */
.ux35-page .ux35-content > .page-header,
.ux35-page .ux35-content > .settings-header {
margin-bottom: var(--ux35-space-3);
}
.ux35-page .settings-shell-nav {
--settings-nav-bleed: var(--ux35-content-padding);
--settings-nav-bleed-x: var(--ux35-content-padding);
@@ -598,6 +625,10 @@ body.ux35-is-resizing {
width: 18px;
height: 18px;
}
.ux35-page .settings-shell-nav-track.mobile-tabs-scroll {
padding-bottom: 0;
gap: 4px;
}
.ux35-sidebar {
width: min(86vw, 280px);
min-width: min(86vw, 280px);