Sections
<x-section> is a layout block for settings-style pages. It renders a header with a title and a description, an optional toolbar row with actions on the left and search or filters on the right, and your content below it: a card, a table, a form or anything else.
Stack as many sections as a page needs. Each one reads as a clearly titled block, and they work best together with a compact page header on top.
Basic Usage
Pass a title and an optional description. Everything inside the component becomes the section content. A card placed directly in the content gets a uniform body padding of 1.25rem, so its text lines up with the section header above it.
Billing address
Shown on every invoice we send you.
-
CompanyAcme GmbH
-
AddressHauptstraße 1, 90402 Nürnberg
-
VAT IDDE123456789
1<x-section title="Billing address" description="Shown on every invoice we send you."> 2 <x-card> 3 <x-card.body> 4 <x-list> 5 <x-list.item> 6 <x-list.label>Company</x-list.label> 7 <x-list.value>Acme GmbH</x-list.value> 8 </x-list.item> 9 <x-list.item>10 <x-list.label>Address</x-list.label>11 <x-list.value>Hauptstraße 1, 90402 Nürnberg</x-list.value>12 </x-list.item>13 <x-list.item>14 <x-list.label>VAT ID</x-list.label>15 <x-list.value>DE123456789</x-list.value>16 </x-list.item>17 </x-list>18 </x-card.body>19 </x-card>20</x-section>
Toolbar
The toolbar slot adds a row below the header for the primary actions of the section. toolbar-end fills the right side of that row, for example with a search field, and stays right-aligned even without a toolbar slot. On small screens both halves take the full width.
1<x-section title="Invoices" description="Download or forward the invoices of the last twelve months."> 2 <x-slot:toolbar> 3 <x-button type="white" size="sm" icon="arrow-down-tray--micro">Export all</x-button> 4 </x-slot:toolbar> 5 <x-slot:toolbar-end> 6 <x-input placeholder="Search invoices"> 7 <x-slot:prepend> 8 <x-icon name="magnifying-glass--micro" /> 9 </x-slot:prepend>10 </x-input>11 </x-slot:toolbar-end> 12 13 <x-card>14 <x-card.body>15 <x-list>16 <x-list.item>17 <x-list.label>INV-0003 · 12 Sep 2026</x-list.label>18 <x-list.value>6,000.00 €</x-list.value>19 </x-list.item>20 <x-list.item>21 <x-list.label>INV-0002 · 12 Sep 2025</x-list.label>22 <x-list.value>6,000.00 €</x-list.value>23 </x-list.item>24 </x-list>25 </x-card.body>26 </x-card>27</x-section>
Header Actions
Buttons that belong to the whole section, such as a save button, go into the actions slot. They sit on the right of the header and move below the title on small screens.
Notifications
Choose which e-mails you want to receive.
1<x-section title="Notifications" description="Choose which e-mails you want to receive."> 2 <x-slot:actions> 3 <x-button type="primary" size="sm">Save changes</x-button> 4 </x-slot:actions> 5 6 <x-card> 7 <x-card.body> 8 <div class="d-flex flex-column gap-3"> 9 <x-checkbox id="section-news" label="Product updates" description="New components and releases." />10 <x-checkbox id="section-security" label="Security notices" description="Only when your account is affected." />11 </div>12 </x-card.body>13 </x-card>14</x-section>
Banner
The banner slot renders a strip between the header and the toolbar. It is the place for notices that concern the whole section.
1<x-section title="API keys" description="Keys that can read your licences through the API."> 2 <x-slot:banner> 3 <x-alert type="warning" icon="exclamation-triangle--outline" title="One of your keys expires in 7 days." /> 4 </x-slot:banner> 5 <x-slot:toolbar> 6 <x-button type="white" size="sm" icon="plus--micro">Create key</x-button> 7 </x-slot:toolbar> 8 9 <x-card>10 <x-card.body>11 <x-list>12 <x-list.item>13 <x-list.label>Deployment</x-list.label>14 <x-list.value>expires 23 Oct 2026</x-list.value>15 </x-list.item>16 <x-list.item>17 <x-list.label>Staging</x-list.label>18 <x-list.value>never expires</x-list.value>19 </x-list.item>20 </x-list>21 </x-card.body>22 </x-card>23</x-section>
Footer
The footer slot renders below the content, right-aligned and without card chrome, which suits the buttons of a form.
Profile
How the other members of your team see you.
1<x-section title="Profile" description="How the other members of your team see you."> 2 <x-card> 3 <x-card.body> 4 <div class="d-flex flex-column gap-3"> 5 <x-input label="Name" placeholder="Jane Doe" /> 6 <x-input label="Job title" placeholder="Lead developer" /> 7 </div> 8 </x-card.body> 9 </x-card>10 11 <x-slot:footer> 12 <x-button type="transparent">Cancel</x-button>13 <x-button type="primary">Save</x-button>14 </x-slot:footer> 15</x-section>
Stacking Sections
Sections that follow each other are separated by spacing alone: 2.5rem of margin plus another 2.5rem of padding. Pass :divider="false" to drop the padding for one section, which pulls it closer to the one before.
General
The name your team sees in every e-mail.
Region
Where your data is stored.
Danger zone
This cannot be undone.
1<div class="w-100"> 2 <x-section title="General" description="The name your team sees in every e-mail."> 3 <x-card> 4 <x-card.body> 5 <x-input label="Workspace name" placeholder="Acme GmbH" /> 6 </x-card.body> 7 </x-card> 8 </x-section> 9 10 <x-section title="Region" description="Where your data is stored.">11 <x-card>12 <x-card.body>13 <x-input label="Data region" placeholder="Frankfurt (eu-central-1)" />14 </x-card.body>15 </x-card>16 </x-section>17 18 <x-section title="Danger zone" description="This cannot be undone." :divider="false"> 19 <x-card>20 <x-card.body>21 <div>22 <x-button type="danger" size="sm" icon="trash--micro">Delete workspace</x-button>23 </div>24 </x-card.body>25 </x-card>26 </x-section>27</div>
Title and Description as Slots
Use <x-slot:title> and <x-slot:description> when you need markup, like a badge next to the title. Attributes on these slots are merged onto the heading and the paragraph.
Licences
3 active
The keys your team uses for composer install.
-
Businessvalid until 12 Sep 2027
1<x-section> 2 <x-slot:title> 3 Licences <x-badge type="green">3 active</x-badge> 4 </x-slot:title> 5 <x-slot:description> 6 The keys your team uses for <samp>composer install</samp>. 7 </x-slot:description> 8 9 <x-card>10 <x-card.body>11 <x-list>12 <x-list.item>13 <x-list.label>Business</x-list.label>14 <x-list.value>valid until 12 Sep 2027</x-list.value>15 </x-list.item>16 </x-list>17 </x-card.body>18 </x-card>19</x-section>
Component Attributes
Every other attribute, such as class, id or wire:key, is merged onto the outer <section class="section">.
| Attribute / Slot | Type | Default | Description |
|---|---|---|---|
| title | String or slot | none | The section heading, rendered as an <h3>. |
| description | String or slot | none | Muted text below the heading. |
| divider | Boolean | true | Keeps the extra padding towards the previous section. :divider="false" removes it. |
| actions | Slot | none | Buttons on the right of the header. |
| banner | Slot | none | A strip between the header and the toolbar, for notices. |
| toolbar | Slot | none | The left side of the toolbar row, for primary actions. |
| toolbar-end | Slot | none | The right side of the toolbar row, for search fields or filters. |
| footer | Slot | none | Right-aligned content below the section content, without card chrome. |
The header, the toolbar and the content are only rendered when they have something to show, so a section without a title is just its content with the section spacing.