From 3eada67b9aa90fc2a3f959702e75c9b43b72d762 Mon Sep 17 00:00:00 2001 From: boban Date: Sun, 17 May 2026 14:34:33 +0200 Subject: [PATCH] fix(sidebar): remove collapse, fix mobile overlay and blur effect MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Remove desktop collapse feature — sidebar always open at 264px - Simplify Alpine sidebar store to mobileOpen only - Fix mobile overlay: add x-data to #nim-app so Alpine processes x-show/x-transition - Mobile overlay uses direct backdrop-filter: blur(4px) bypassing Tailwind v4 CSS variable chain - Fix close/workspace-trigger overlap: restructure header as flex row with close as sibling - Clicking overlay (z-30) closes sidebar; sidebar stays at z-40 Co-Authored-By: Claude Sonnet 4.6 --- resources/js/bootstrap.js | 25 +------ resources/views/components/sidebar.blade.php | 74 ++++++++------------ resources/views/layouts/nimuli-app.blade.php | 66 ++++------------- 3 files changed, 46 insertions(+), 119 deletions(-) diff --git a/resources/js/bootstrap.js b/resources/js/bootstrap.js index f50391a..f7de2c2 100644 --- a/resources/js/bootstrap.js +++ b/resources/js/bootstrap.js @@ -61,34 +61,11 @@ document.addEventListener('alpine:init', () => { Alpine.store('sidebar', { mobileOpen: false, - collapsed: localStorage.getItem('sidebarCollapsed') === 'true', - isMobile: window.innerWidth < 768, - isCollapsed: false, init() { - this.isCollapsed = this.collapsed && ! this.isMobile; - this._syncDataset(); window.addEventListener('resize', () => { - const wasMobile = this.isMobile; - this.isMobile = window.innerWidth < 768; - this.isCollapsed = this.collapsed && ! this.isMobile; - this._syncDataset(); - if (this.isMobile && ! wasMobile) { this.mobileOpen = false; } + if (window.innerWidth >= 768) { this.mobileOpen = false; } }); }, - _syncDataset() { - if (this.isCollapsed) { - document.documentElement.dataset.sidebarCollapsed = '1'; - } else { - delete document.documentElement.dataset.sidebarCollapsed; - } - }, - toggle() { - this.collapsed = ! this.collapsed; - this.isCollapsed = this.collapsed && ! this.isMobile; - localStorage.setItem('sidebarCollapsed', this.collapsed); - this._syncDataset(); - window.dispatchEvent(new CustomEvent('sidebar-toggled', { detail: { collapsed: this.collapsed } })); - }, toggleMobile() { this.mobileOpen = ! this.mobileOpen; }, closeMobile() { this.mobileOpen = false; }, }); diff --git a/resources/views/components/sidebar.blade.php b/resources/views/components/sidebar.blade.php index e8d4cf2..5cf7de6 100644 --- a/resources/views/components/sidebar.blade.php +++ b/resources/views/components/sidebar.blade.php @@ -38,33 +38,36 @@ {{-- ═══ Header ═══ --}}
- +
+ - {{-- Mobile close --}} - + {{-- Mobile close --}} + +
{{-- Workspace dropdown --}}
id === $ws->id ? 'text-t1 font-medium' : 'text-t2' }}" > @@ -102,7 +105,7 @@ @endforelse - {{-- User row --}} @auth
diff --git a/resources/views/layouts/nimuli-app.blade.php b/resources/views/layouts/nimuli-app.blade.php index 7d0cb0d..08e47ac 100644 --- a/resources/views/layouts/nimuli-app.blade.php +++ b/resources/views/layouts/nimuli-app.blade.php @@ -18,17 +18,6 @@ - - -