mirror of
https://github.com/BetterSEQTA/BetterSEQTA-Plus.git
synced 2026-08-28 17:21:05 +00:00
feat: sidebar cleanup + fixes
This commit is contained in:
+30
-27
@@ -635,16 +635,14 @@ html.bsplus-custom-sidebar-pending #menu > .icon-cover,
|
||||
clip: rect(0, 0, 0, 0) !important;
|
||||
}
|
||||
|
||||
/* Custom Svelte sidebar: SEQTA-like `#menu > ul > li.item` / `.sub` for theme CSS. */
|
||||
/* Custom Svelte sidebar: keep `#menu > ul > li.item` / `.sub` shape for theme CSS. */
|
||||
#menu.bsplus-custom-sidebar {
|
||||
/* SEQTA uses absolute top/bottom:0 — do not switch to relative or height collapses. */
|
||||
position: absolute !important;
|
||||
top: 0 !important;
|
||||
bottom: 0 !important;
|
||||
left: 0 !important;
|
||||
display: flex !important;
|
||||
flex-direction: column !important;
|
||||
/* No padding-top: logo `ul::before` + theme `.sub { top: 71.5px }` match native. */
|
||||
box-sizing: border-box !important;
|
||||
height: auto !important;
|
||||
max-height: none !important;
|
||||
@@ -659,23 +657,20 @@ html.bsplus-custom-sidebar-pending #menu > .icon-cover,
|
||||
position: relative;
|
||||
}
|
||||
|
||||
/* Theme drill panels assume static hasChildren + absolute .sub filling #menu. */
|
||||
li.hasChildren {
|
||||
position: static !important;
|
||||
}
|
||||
|
||||
/*
|
||||
* Native SEQTA leaves `li.hasChildren.active` on the hidden list after click-through.
|
||||
* Global `#menu:has(> ul > li.hasChildren.active) > ul > li:not(.hasChildren.active)`
|
||||
* then sets pointer-events:none on our custom root rows. Override that here; drill
|
||||
* locking only follows the custom list's own active folder.
|
||||
*/
|
||||
/* Native list may keep `.active` after click-through; force our rows clickable,
|
||||
then lock siblings only while a custom drill `.sub` is open. */
|
||||
> #bsplus-sidebar-root > li.item {
|
||||
pointer-events: auto !important;
|
||||
width: auto !important;
|
||||
max-width: none !important;
|
||||
margin: 2px 6px !important;
|
||||
box-sizing: border-box !important;
|
||||
}
|
||||
|
||||
/* Only lock siblings while a drill `.sub` is open — not when a folder is
|
||||
merely route-highlighted with `.active` at the root list. */
|
||||
&:has(> #bsplus-sidebar-root > li.hasChildren.active > .sub)
|
||||
> #bsplus-sidebar-root
|
||||
> li:not(.hasChildren.active),
|
||||
@@ -692,40 +687,42 @@ html.bsplus-custom-sidebar-pending #menu > .icon-cover,
|
||||
|
||||
> #bsplus-sidebar-root li.hasChildren.active > .sub {
|
||||
pointer-events: auto;
|
||||
/* Let the #menu chrome (gradient / theme) show through — themes often paint
|
||||
`.sub` with flat `--background-primary` which reads as a white slab. */
|
||||
background: transparent !important;
|
||||
background-image: none !important;
|
||||
animation: bsplus-submenu-enter 0.32s cubic-bezier(0.22, 1, 0.36, 1);
|
||||
}
|
||||
|
||||
> #bsplus-sidebar-root li.hasChildren.active > .sub:has(.hasChildren.active) {
|
||||
pointer-events: none !important;
|
||||
animation: none;
|
||||
}
|
||||
|
||||
> #bsplus-sidebar-root li.hasChildren.active .hasChildren.active > .sub {
|
||||
pointer-events: auto !important;
|
||||
background: transparent !important;
|
||||
background-image: none !important;
|
||||
}
|
||||
|
||||
/* One-shot enter — not tied to `.active` (SEQTA strips/restores that on every
|
||||
nested click, which would restart the animation). */
|
||||
> #bsplus-sidebar-root .sub.bsplus-sub-enter {
|
||||
animation: bsplus-submenu-enter 0.32s cubic-bezier(0.22, 1, 0.36, 1);
|
||||
}
|
||||
|
||||
/* Keep folder + leaf rows on the same rhythm (themes often only style
|
||||
`:not(.hasChildren)`, which left folders centred / differently spaced). */
|
||||
> #bsplus-sidebar-root li.item {
|
||||
width: auto !important;
|
||||
max-width: none !important;
|
||||
margin: 2px 6px !important;
|
||||
box-sizing: border-box !important;
|
||||
}
|
||||
|
||||
/* Folder label stays in flow so sidebar-animation translateX can run.
|
||||
Visually covered by the absolute `.sub` panel. */
|
||||
> #bsplus-sidebar-root > li.hasChildren.active > label {
|
||||
pointer-events: none !important;
|
||||
}
|
||||
|
||||
/* Theme decorations on root leaves (Beach palm/sand) must not show through
|
||||
the transparent drill `.sub` panel. */
|
||||
> #bsplus-sidebar-root:has(> li.hasChildren.active > .sub)
|
||||
> li:not(.hasChildren.active)::before,
|
||||
> #bsplus-sidebar-root:has(> li.hasChildren.active > .sub)
|
||||
> li:not(.hasChildren.active)::after {
|
||||
content: none !important;
|
||||
display: none !important;
|
||||
animation: none !important;
|
||||
opacity: 0 !important;
|
||||
}
|
||||
|
||||
#bsplus-sidebar-root .sub .back {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
@@ -849,6 +846,12 @@ body.icon-only-sidebar:not(:has(#menu li.hasChildren.active)) {
|
||||
display: none !important;
|
||||
}
|
||||
|
||||
/* Compact BetterSEQTA mark instead of the full wordmark. */
|
||||
&.student #menu > ul::before {
|
||||
background-size: 36px 36px !important;
|
||||
background-position: center center !important;
|
||||
}
|
||||
|
||||
}
|
||||
[class*="notifications__items___"] {
|
||||
-ms-overflow-style: none !important;
|
||||
|
||||
@@ -8,12 +8,16 @@
|
||||
}
|
||||
|
||||
#menu > ul:has(li.hasChildren.active) > li::before,
|
||||
#menu > ul:has(li.hasChildren.active) > li::after,
|
||||
#menu > ul ul:has(li.hasChildren.active) > li::before,
|
||||
#menu > ul ul:has(li.hasChildren.active) > li::after,
|
||||
#menu > ul:has(li.hasChildren.active) > li > label,
|
||||
#menu > ul:has(li.hasChildren.active) > li > svg,
|
||||
#menu > ul ul:has(li.hasChildren.active) > li > label,
|
||||
#menu > ul ul:has(li.hasChildren.active) > li > svg {
|
||||
transform: translateX(-320px);
|
||||
/* !important beats theme animations (e.g. Beach palm-slide forwards). */
|
||||
transform: translateX(-320px) !important;
|
||||
animation: none !important;
|
||||
}
|
||||
|
||||
#menu li.hasChildren:not(.active) li .sub {
|
||||
|
||||
Reference in New Issue
Block a user