Skip to content

[Core]: Front — master layout #12

Open
1 of 1 issue completed
Open

Description

@naui95

Epic: Front — Master Layout

Establish the unified, responsive master layout that wraps every panel page: navigation shell, sidebar, top bar, breadcrumbs, tenant-switcher, and footer scaffold. This layout is the visual foundation all other UI epics build on.


Sub-issues


Acceptance Criteria

  • All three panels (admin, company, user) share the same layout blade/component hierarchy with panel-specific slot overrides.
  • Sidebar collapses to an icon-only rail on lg breakpoint and to a drawer below lg.
  • Top bar renders tenant name and search_code for company panel; renders "Admin" label for admin panel.
  • Breadcrumbs auto-generate from the Filament breadcrumb API for every page.
  • Nord CSS theme applies across company panel pages with no unstyled flash.
  • All layout elements pass Filament v4's built-in accessibility checks (ARIA roles, focus order).

Test Scenarios (PHPUnit + Livewire)

/* Arrange */ $this->testLivewire(Dashboard::class)
/* Act */     ->assertSuccessful()
/* Assert */  ->assertSeeHtml('data-sidebar')
              ->assertSeeHtml($this->company->name);
/* Arrange */ Livewire::actingAs($this->superAdmin())
              ->test(\Modules\Core\Filament\Admin\Pages\Dashboard::class)
/* Act */     ->assertSuccessful()
/* Assert */  ->assertDontSeeHtml('data-tenant');

Notes

  • Filament v4 uses the FilamentLayout blade component as the shell — customise via the panel provider's ->renderHook() API, not by overriding the component directly.
  • Nord palette tokens live in resources/css/filament/company/nord.css; any new tokens must be added there.
  • Mobile nav drawer must be implemented as a Livewire component to support keyboard-accessible open/close without Alpine duplication.

Activity

  1. self-assigned this
    on Jun 16, 2024
  2. transferred this issue fromon Jan 6, 2025
  3. added theissue type on Jul 14, 2025
  4. changed the title [-]Front: master layout[/-] [+][Core]: Front — master layout[/+] on Jun 13, 2026
  5. nielsdrost7 commented on Jul 16, 2026

    @nielsdrost7
    Collaborator

    SMART Plan — Front — master layout epic status

    Context/Epic: Core

    This is an epic/tracking issue. Its sub-issue checklist needs a correction up front: none of the linked numbers (#2, #10, #11, #22, #23, #24, #25) correspond to the sub-features they're labelled with in this tracker. #2 is "[Core]: Features & Improvements collection (v1 community)" (an unrelated wishlist), #10 is "[Infrastructure]: Documentation efforts tracker" (an unrelated epic), #11 is "[Core]: Login screen" (auth, not mobile navigation), #24 is "[Projects]: change dropdown client menu..." (an unrelated Projects issue), and #22, #23, #25 don't exist in this repository at all (this tracker only goes up to #606 with many gaps; those three numbers were never issued). The Measurable section below therefore tracks status by capability, grounded in the actual panel provider code, rather than by the stale issue numbers.

    Specific

    Establish the shared Filament layout shell (navigation, sidebar, top bar, breadcrumbs, theming, footer) used by all three panels (admin, company, user).

    Measurable

    • Dark-mode / Nord theme wiring — done, and already applied to all three panels, not just company: Modules/Core/Providers/AdminPanelProvider.php, CompanyPanelProvider.php, and UserPanelProvider.php each call ->viteTheme('resources/css/filament/company/nord.css').
    • Sidebar collapse behaviour — done: all three panel providers call ->sidebarCollapsibleOnDesktop().
    • Three-panel shell exists — AdminPanelProvider, CompanyPanelProvider, UserPanelProvider are real, registered, and resource-discovering per CLAUDE.md.
    • Breadcrumb component — not custom-built; whatever appears today is Filament v4's own default breadcrumb rendering. No dedicated breadcrumb component/override was found under Modules/Core/Filament.
    • Top-bar: tenant label, notification bell, account dropdown — partially contradicted by current config: CompanyPanelProvider explicitly calls ->tenantMenu(false), disabling Filament's built-in tenant menu, and no notification bell or custom account dropdown component was found. The avatar piece of this depends on [Core]: Client & user avatars #399 (client & user avatars), which found the Gravatar driver unwired.
    • Responsive mobile navigation / hamburger drawer — no dedicated Livewire component found; relies entirely on Filament's built-in responsive sidebar behaviour (untested here for whether it meets the "keyboard-accessible open/close" bar the epic body sets).
    • Footer scaffold (version badge, support link) — no footer component or render hook found anywhere in Modules/Core/Providers or resources/views.
    • Related, real, currently-open issue in this exact area (not one of the epic's own — but genuinely relevant): [BUG]: Active sidebar navigation item is unreadable due to light background #568 "Active sidebar navigation item is unreadable due to light background" — a concrete sidebar-theming bug that should probably be folded into this epic's scope.

    Definition of done for this epic: all capabilities above are checked off, with real Filament accessibility checks passing (per the epic's own acceptance criteria), and the epic body's sub-issue links are corrected to point at real, matching issues (or removed if no such issues exist).

    Achievable

    1. First, correct or remove the epic body's sub-issue links (#2, #10, #11, #22, #23, #24, #25) — they currently misdirect anyone trying to navigate from this epic to its actual sub-work, and three of them point at issues that don't exist.
    2. Theming and sidebar-collapse (the two items already done) need no further work beyond verifying they satisfy the epic's "no unstyled flash" and accessibility acceptance criteria under real browser testing.
    3. Breadcrumbs likely need no custom build if Filament v4's defaults already satisfy the acceptance criteria — verify before scoping new work, since building a custom breadcrumb component would be wasted effort if the framework default is sufficient.
    4. Top-bar work (tenant label, notification bell, account dropdown, avatar) should be scoped as one real, numbered sub-issue — it currently has no tracking at all under a correct number — and sequenced after [Core]: Client & user avatars #399 (avatars) if the avatar piece is included.
    5. Footer scaffold and the mobile hamburger drawer are the two capabilities with zero existing code; each should get its own correctly-numbered sub-issue rather than relying on this epic's stale links.

    Relevant

    The master layout is the visual foundation every other panel page builds on; the fact that its own sub-issue checklist doesn't point at real tracked work means progress on this epic is currently unmeasurable through the issue tracker itself — fixing the links is as important as building the remaining capabilities.

    Time-bound

    No fixed date — re-review once the sub-issue links are corrected and each remaining capability (top bar, mobile drawer, footer) has its own real issue number to track against.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

refinedRefined with SMART plan / test suggestions

Type

Projects

No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions