feat(ui): unified zone toggle + polished interactions for sidebar/top cards

This commit is contained in:
Ryan
2025-10-23 01:06:07 -04:00
committed by GitHub
parent 371a763fb4
commit 9ef40da5aa
4 changed files with 840 additions and 541 deletions

View File

@@ -1,5 +1,34 @@
# Changelog
## Changes 10/23/2025 (v1.6.1)
feat(ui): unified zone toggle + polished interactions for sidebar/top cards
- Add floating toggle button styling (hover lift, press, focus ring, ripple)
for #zonesToggleFloating and #sidebarToggleFloating (CSS).
- Ensure icons are visible and centered; enforce consistent sizing/color.
- Introduce unified “zones collapsed” state persisted via `localStorage.zonesCollapsed`.
- Update dragAndDrop.js to:
- manage a single floating toggle for both Sidebar and Top Zone
- keep toggle visible when cards are in Top Zone; hide only when both cards are in Header
- rotate icon 90° when both cards are in Top Zone and panels are open
- respect collapsed state during DnD flows and on load
- preserve original DnD behaviors and saved orders (sidebar/header)
- Minor layout/visibility fixes during drag (clear temp heights; honor collapsed).
Notes:
- No breaking API changes; existing `sidebarOrder` / `headerOrder` continue to work.
- New key: `zonesCollapsed` (string '0'/'1') controls visibility of Sidebar + Top Zone.
UX:
- Floating toggle feels more “material”: subtle hover elevation, press feedback,
focus ring, and click ripple to restore the prior interactive feel.
- Icons remain legible on white (explicit color set), centered in the circular button.
---
## Changes 10/22/2025 (v1.6.0)
feat(acl): granular per-folder permissions + stricter gates; WebDAV & UI aligned

View File

@@ -2308,4 +2308,69 @@ body.dark-mode .user-dropdown .user-menu .item:hover {
}
:root { --perm-caret: #444; } /* light */
body.dark-mode { --perm-caret: #ccc; } /* dark */
body.dark-mode { --perm-caret: #ccc; } /* dark */
#zonesToggleFloating,
#sidebarToggleFloating {
transition:
transform 160ms cubic-bezier(.2,.0,.2,1),
box-shadow 160ms cubic-bezier(.2,.0,.2,1),
border-color 160ms cubic-bezier(.2,.0,.2,1),
background-color 160ms cubic-bezier(.2,.0,.2,1);
}
#zonesToggleFloating .material-icons,
#zonesToggleFloating .material-icons-outlined,
#sidebarToggleFloating .material-icons,
#sidebarToggleFloating .material-icons-outlined {
color: #333 !important;
font-size: 22px;
line-height: 1;
display: block;
}
#zonesToggleFloating:hover,
#sidebarToggleFloating:hover {
transform: translateY(-1px);
box-shadow: 0 6px 16px rgba(0,0,0,.14);
border-color: #cfcfcf;
}
#zonesToggleFloating:active,
#sidebarToggleFloating:active {
transform: translateY(0) scale(.96);
box-shadow: 0 3px 8px rgba(0,0,0,.12);
}
#zonesToggleFloating:focus-visible,
#sidebarToggleFloating:focus-visible {
outline: none;
box-shadow:
0 6px 16px rgba(0,0,0,.14),
0 0 0 3px rgba(25,118,210,.25); /* soft brandy ring */
}
#zonesToggleFloating::after,
#sidebarToggleFloating::after {
content: '';
position: absolute;
inset: 0;
border-radius: inherit;
background: radial-gradient(circle, rgba(0,0,0,.12) 0%, rgba(0,0,0,0) 60%);
transform: scale(0);
opacity: 0;
transition: transform 300ms ease, opacity 450ms ease;
pointer-events: none;
}
#zonesToggleFloating:active::after,
#sidebarToggleFloating:active::after {
transform: scale(1.4);
opacity: 1;
}
#zonesToggleFloating.is-collapsed,
#sidebarToggleFloating.is-collapsed {
background: #fafafa;
border-color: #e2e2e2;
}

View File

@@ -4,7 +4,7 @@ import { loadAdminConfigFunc } from './auth.js';
import { showToast, toggleVisibility, attachEnterKeyListener } from './domUtils.js';
import { sendRequest } from './networkUtils.js';
const version = "v1.6.0";
const version = "v1.6.1";
const adminTitle = `${t("admin_panel")} <small style="font-size:12px;color:gray;">${version}</small>`;

File diff suppressed because it is too large Load Diff