Components
Everything ships as a Symfony UX Twig Component under the Adminlte: namespace — typed props, slot-aware bodies, and parity with the Vue/React component inventory. Render any of them with <twig:Adminlte:Name>.
Layout
Topbar, Sidebar, SidebarNavItem (recursive), Footer, ColorModeToggle. The dashboard shell itself is {% extends '@AdminLte/layout.html.twig' %} — see Layout.
Widgets
| Component | Key props |
|---|---|
Card | title, icon, variant, outline, collapsible, removable, collapsed, footer, bodyClass |
SmallBox | title, text, variant, icon, url, linkText |
InfoBox | text, number, icon, variant, progress, progressText |
Alert | variant, title, icon, dismissible |
Callout | variant (info/success/warning/danger), title |
Progress | value, variant, height, striped, animated, showLabel |
ProgressGroup | label, current, total, variant |
Timeline / TimelineItem | item: icon, variant, time, header, label |
ProfileCard | name, title, image, variant |
DescriptionBlock | header, text, percentage, trend (up/down), trendVariant |
Breadcrumb | items ([{label, url?, active?}]), align |
Ratings | value, max, variant, showValue |
Toast | title, variant, time, autohide, delay |
Modal | id, title, size, scrollable, centered, footer |
Accordion / AccordionItem | id, flush; item: id, title, parent, open |
Tabs | id, items ([{id, title, content, active?}]) |
NavNotifications | icon, items, badge, badgeClass, footerText, footerUrl |
NavMessages | dropdown of messages (place inside the Topbar) |
NavTasks | dropdown of tasks with progress (place inside the Topbar) |
CommandPalette | ⌘K palette indexed from the sidebar menu (no props) |
Forms
Button, Input, Select, Textarea, InputSwitch, InputColor, InputFile — labelled Bootstrap 5.3 controls with optional input-group icons and help text.
Usage snippets
{# A collapsible card with a body slot #}
<twig:Adminlte:Card title="Sales" icon="bi bi-graph-up" variant="primary" collapsible>
Monthly revenue summary…
</twig:Adminlte:Card>
{# Stat boxes #}
<twig:Adminlte:SmallBox title="150" text="New orders" icon="bi bi-bag" url="#" />
<twig:Adminlte:InfoBox text="Bookmarks" number="41,410" icon="bi bi-bookmark"
variant="info" :progress="70" progressText="70% increase in 30 days" />
{# A timeline #}
<twig:Adminlte:Timeline>
<twig:Adminlte:TimelineItem icon="bi bi-bell" variant="info" time="3m" header="New ping">
A device pinged your endpoint.
</twig:Adminlte:TimelineItem>
</twig:Adminlte:Timeline>
{# A labelled input with an icon #}
<twig:Adminlte:Input name="email" type="email" label="Email"
icon="bi bi-envelope" placeholder="you@example.com" required />
{# ⌘K command palette — drop once, anywhere inside the layout #}
<twig:Adminlte:CommandPalette />
Props typed as arrays (e.g. Select.options, Tabs.items, Breadcrumb.items) take Twig literals; prefix with a colon to pass an expression, e.g. :items="[...]" or :progress="70".
AdminLTE 4 · Symfony port
Edit on GitHub