Skip to main content

Introduction

Pages are full-page Livewire components that can be added to your panel. They provide a blank canvas for building custom functionality beyond standard CRUD operations.

Creating a page

Generate a page using the Artisan command:
This creates a page class at app/Filament/Pages/Settings.php:

Routing

Pages automatically register routes based on their class name. For example, Settings will be accessible at /settings.

Custom route slugs

Override the slug with the getRoutePath() method:
Now the page is accessible at /app-settings.

Route parameters

Define route parameters in the routes() method:
Access parameters in your page:

Customizing navigation

Control how the page appears in the sidebar:

Hiding from navigation

To prevent a page from appearing in navigation:
You can still access the page via its URL. Add badges to navigation items:

Parent navigation items

Nest a page under another navigation item:

Title

Customize the page title:

Heading

The heading is separate from the title (used in the browser tab):

Subheading

Add a subheading below the heading:

Header actions

Add action buttons to the page header:

Page content

Using Blade views

By default, pages use a Blade view for content:
Create the view at resources/views/filament/pages/settings.blade.php:

Using schema builder

You can build page content using Filament’s schema builder:

Widgets

Add widgets to your page header or footer:
Control widget columns:

Authorization

Restrict access to pages using the canAccess() method:
Customize breadcrumbs for the page:

Page lifecycle

Pages are Livewire components, so you can use standard Livewire lifecycle hooks:

Page clusters

Group related pages together using clusters:
Generate a page within a cluster:

Custom page classes

Extend page styling with custom CSS classes:
You can create pages that open in modals using actions:

Multiple page configurations

Register multiple configurations of the same page:
Access the configuration in your page: