From 3b1eeaf12deed55197d1508ac3143b975ead6a80 Mon Sep 17 00:00:00 2001 From: Haelnorr Date: Sat, 7 Mar 2026 13:01:08 +1100 Subject: [PATCH] scroll fixes --- internal/embedfs/web/css/input.css | 85 +++++++---------------------- internal/embedfs/web/css/output.css | 63 +++++---------------- internal/view/baseview/footer.templ | 8 +-- internal/view/baseview/layout.templ | 14 +++-- 4 files changed, 49 insertions(+), 121 deletions(-) diff --git a/internal/embedfs/web/css/input.css b/internal/embedfs/web/css/input.css index 2686382..c36d633 100644 --- a/internal/embedfs/web/css/input.css +++ b/internal/embedfs/web/css/input.css @@ -129,72 +129,29 @@ } /* Custom Scrollbar Styles - Catppuccin Theme */ +/* Only applied to specific elements (viewport, dropdowns, modals) to avoid + overriding the browser default scrollbar on the html/body level */ -/* Firefox */ -* { +/* Main content viewport */ +#page-viewport { + --scrollbar-thumb: var(--overlay0); + --scrollbar-track: var(--base); + scrollbar-width: normal; + scrollbar-color: var(--scrollbar-thumb) var(--scrollbar-track); +} + +/* Multi-select dropdowns */ +.multi-select-dropdown { + --scrollbar-thumb: var(--surface2); + --scrollbar-track: var(--base); scrollbar-width: thin; - scrollbar-color: var(--surface1) var(--mantle); + scrollbar-color: var(--scrollbar-thumb) var(--scrollbar-track); } -/* Webkit browsers (Chrome, Safari, Edge) */ -::-webkit-scrollbar { - width: 8px; - height: 8px; -} - -::-webkit-scrollbar-track { - background: var(--mantle); - border-radius: 4px; -} - -::-webkit-scrollbar-thumb { - background: var(--surface1); - border-radius: 4px; - border: 2px solid var(--mantle); -} - -::-webkit-scrollbar-thumb:hover { - background: var(--surface2); -} - -::-webkit-scrollbar-thumb:active { - background: var(--overlay0); -} - -/* Specific styling for multi-select dropdowns */ -.multi-select-dropdown::-webkit-scrollbar { - width: 6px; -} - -.multi-select-dropdown::-webkit-scrollbar-track { - background: var(--base); - border-radius: 3px; -} - -.multi-select-dropdown::-webkit-scrollbar-thumb { - background: var(--surface2); - border-radius: 3px; - border: 1px solid var(--base); -} - -.multi-select-dropdown::-webkit-scrollbar-thumb:hover { - background: var(--overlay0); -} - -/* Specific styling for modal content */ -.modal-scrollable::-webkit-scrollbar { - width: 8px; -} - -.modal-scrollable::-webkit-scrollbar-track { - background: var(--base); -} - -.modal-scrollable::-webkit-scrollbar-thumb { - background: var(--surface1); - border-radius: 4px; -} - -.modal-scrollable::-webkit-scrollbar-thumb:hover { - background: var(--surface2); +/* Modal content */ +.modal-scrollable { + --scrollbar-thumb: var(--surface1); + --scrollbar-track: var(--base); + scrollbar-width: thin; + scrollbar-color: var(--scrollbar-thumb) var(--scrollbar-track); } diff --git a/internal/embedfs/web/css/output.css b/internal/embedfs/web/css/output.css index 555f0fd..8ef9548 100644 --- a/internal/embedfs/web/css/output.css +++ b/internal/embedfs/web/css/output.css @@ -2460,56 +2460,23 @@ font-weight: 700; font-style: italic; } -* { +#page-viewport { + --scrollbar-thumb: var(--overlay0); + --scrollbar-track: var(--base); + scrollbar-width: normal; + scrollbar-color: var(--scrollbar-thumb) var(--scrollbar-track); +} +.multi-select-dropdown { + --scrollbar-thumb: var(--surface2); + --scrollbar-track: var(--base); scrollbar-width: thin; - scrollbar-color: var(--surface1) var(--mantle); + scrollbar-color: var(--scrollbar-thumb) var(--scrollbar-track); } -::-webkit-scrollbar { - width: 8px; - height: 8px; -} -::-webkit-scrollbar-track { - background: var(--mantle); - border-radius: 4px; -} -::-webkit-scrollbar-thumb { - background: var(--surface1); - border-radius: 4px; - border: 2px solid var(--mantle); -} -::-webkit-scrollbar-thumb:hover { - background: var(--surface2); -} -::-webkit-scrollbar-thumb:active { - background: var(--overlay0); -} -.multi-select-dropdown::-webkit-scrollbar { - width: 6px; -} -.multi-select-dropdown::-webkit-scrollbar-track { - background: var(--base); - border-radius: 3px; -} -.multi-select-dropdown::-webkit-scrollbar-thumb { - background: var(--surface2); - border-radius: 3px; - border: 1px solid var(--base); -} -.multi-select-dropdown::-webkit-scrollbar-thumb:hover { - background: var(--overlay0); -} -.modal-scrollable::-webkit-scrollbar { - width: 8px; -} -.modal-scrollable::-webkit-scrollbar-track { - background: var(--base); -} -.modal-scrollable::-webkit-scrollbar-thumb { - background: var(--surface1); - border-radius: 4px; -} -.modal-scrollable::-webkit-scrollbar-thumb:hover { - background: var(--surface2); +.modal-scrollable { + --scrollbar-thumb: var(--surface1); + --scrollbar-track: var(--base); + scrollbar-width: thin; + scrollbar-color: var(--scrollbar-thumb) var(--scrollbar-track); } @property --tw-translate-x { syntax: "*"; diff --git a/internal/view/baseview/footer.templ b/internal/view/baseview/footer.templ index 3347c50..bcb50d9 100644 --- a/internal/view/baseview/footer.templ +++ b/internal/view/baseview/footer.templ @@ -30,10 +30,10 @@ templ Footer() { templ backToTopButton() {
- Back to top - +
} diff --git a/internal/view/baseview/layout.templ b/internal/view/baseview/layout.templ index 96a0c3c..531c87d 100644 --- a/internal/view/baseview/layout.templ +++ b/internal/view/baseview/layout.templ @@ -29,7 +29,7 @@ templ Layout(title string) { } @@ -38,16 +38,20 @@ templ Layout(title string) { @popup.ConfirmModal()
@Navbar() if previewRole != nil { @previewModeBanner(previewRole) } -
- { children... } +
+
+
+ { children... } +
+ @Footer() +
- @Footer()