mirror of
https://github.com/UNITRONIX/BetterDesk.git
synced 2026-09-10 01:27:11 +00:00
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:
+4
-3
@@ -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)_
|
||||
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user