Widgets are the building blocks of an AdminLTE dashboard body — cards, stat boxes, timelines and
chat panels. They are auto-registered by the Nuxt module (and by app.use(AdminLte) in plain Vue),
so you can use them without imports. Every widget styles itself from the prebuilt AdminLTE CSS; you
only pass props and slots. Colors use the shared BootstrapTheme union: primary, secondary,
success, info, warning, danger, light, dark.
This page covers the main widgets. Other widgets also ship in the library (see the components
overview) — the API tables below reflect the real component source.
The general-purpose container. Renders a .card with an optional header (driven by title/icon
or the #header slot), an optional footer slot, and built-in collapse / maximize / remove tools.
The theme + variant combination controls the color treatment; gradient adds bg-gradient.
<template>
<LteCard title="Monthly recap" icon="bi-graph-up" theme="primary" variant="outline" collapsible>
<p>Card body content.</p>
<template #footer>Updated just now</template>
</LteCard>
</template>
Use the #header slot to fully replace the default header (title + tools):
<LteCard>
<template #header>
<h3 class="card-title">Custom header</h3>
</template>
Body
</LteCard>
| Name | Type | Default | Description |
|---|
title | string | — | Header title text (rendered inside .card-title). |
icon | string | — | Bootstrap Icons class shown before the title. |
theme | BootstrapTheme | — | Color theme; enables the colored treatments. |
variant | 'default' | 'outline' | 'solid' | 'default' | default colored header, outline colored top border, solid fully colored card. |
gradient | boolean | false | Adds bg-gradient (most visible with variant: 'solid'). |
collapsible | boolean | false | Show the collapse/expand tool button. |
defaultCollapsed | boolean | false | Start collapsed. |
removable | boolean | false | Show the remove tool button. |
maximizable | boolean | false | Show the maximize tool button. |
bodyClass | string | — | Extra classes on .card-body. |
headerClass | string | — | Extra classes on .card-header. |
footerClass | string | — | Extra classes on .card-footer. |
| Name | Description |
|---|
| default | Card body content. |
header | Replaces the entire header (title + tools). |
title | Replaces only the title content. |
tools | Extra tool buttons, rendered before the built-in tools. |
footer | Footer content; the footer only renders when this slot is used. |
A colored stat box with a big number, label, icon and an optional footer link. The whole box is
tinted with text-bg-{theme}.
<LteSmallBox
:title="150"
text="New orders"
icon="bi-bag"
theme="success"
url="/orders"
url-text="View orders"
/>
| Name | Type | Default | Description |
|---|
title | string | number | — | The large headline value. |
text | string | — | The label under the value. |
icon | string | — | Bootstrap Icons class for the corner icon. |
theme | BootstrapTheme | 'primary' | Background color of the box. |
url | string | — | Footer link href; the footer only renders when set. |
urlText | string | 'More info' | Footer link label. |
loading | boolean | false | Shows a spinner overlay. |
| Name | Description |
|---|
title | Replaces the headline value. |
| default | Replaces the label text. |
icon | Replaces the corner icon. |
A horizontal stat box: a colored icon chip plus a text label, number and optional progress bar.
<LteInfoBox
text="Bookmarks"
:title="41410"
icon="bi-bookmark"
theme="info"
:progress="70"
progress-text="70% increase in 30 days"
/>
| Name | Type | Default | Description |
|---|
title | string | number | — | The number value (rendered when not null). |
text | string | — | The label above the number. |
icon | string | — | Bootstrap Icons class for the icon chip. |
theme | BootstrapTheme | 'info' | Box / icon / progress color. |
iconTheme | BootstrapTheme | — | Override the icon chip color (default variant only). |
variant | 'default' | 'solid' | 'default' | default white box with a colored chip; solid colors the whole box. |
gradient | boolean | false | Adds bg-gradient (only meaningful with variant="solid"). |
boxClass | string | — | Extra classes on the .info-box root. |
unit | string | — | Small unit rendered after the number, e.g. %. |
progress | number | — | Progress percentage (0–100); renders a bar when set. |
progressText | string | — | Caption under the progress bar. |
The default slot renders inside .info-box-content (after the number) for custom content.
Renders a vertical timeline from an array of items. Each item's body and footer are inserted as
HTML (v-html).
<script setup lang="ts">
import type { TimelineItem } from 'adminlte-vue'
const items: TimelineItem[] = [
{ time: '12:05', icon: 'bi-envelope', iconTheme: 'primary', title: 'New message', body: 'You have a new message.' },
{ time: '5 mins ago', icon: 'bi-person', iconTheme: 'success', title: 'New user registered' },
]
</script>
<template>
<LteTimeline :items="items" />
</template>
| Name | Type | Default | Description |
|---|
items | TimelineItem[] | — | The timeline entries (required). |
| Field | Type | Description |
|---|
time | string | Timestamp label shown in the header. |
title | string | Entry heading. |
icon | string | Bootstrap Icons class (defaults to bi-circle-fill). |
iconTheme | BootstrapTheme | Icon background color (defaults to primary). |
body | string | Body markup, inserted as HTML. |
footer | string | Footer markup, inserted as HTML. |
url | string | Wraps the title in a link. |
A chat card with a messages pane and a sliding contacts panel toggled by the header button.
<script setup lang="ts">
import type { DirectChatMessage, DirectChatContact } from 'adminlte-vue'
const messages: DirectChatMessage[] = [
{ from: 'Alex', image: '/avatar.png', timestamp: '23 Jan 2:00 pm', text: 'Hey!' },
{ from: 'You', image: '/me.png', timestamp: '23 Jan 2:05 pm', text: 'Hi there', isOwn: true },
]
const contacts: DirectChatContact[] = [
{ name: 'Count Dracula', image: '/d.png', date: '1/28/2022', preview: 'How have you been?' },
]
</script>
<template>
<LteDirectChat title="Direct chat" theme="primary" :messages="messages" :contacts="contacts" />
</template>
| Name | Type | Default | Description |
|---|
title | string | — | Card header title. |
theme | BootstrapTheme | 'primary' | Chat accent color (direct-chat-{theme}). |
messages | DirectChatMessage[] | [] | Messages to render in the default messages markup. |
contacts | DirectChatContact[] | [] | Contacts to render in the contacts panel. |
| Name | Description |
|---|
messages | Replaces the default messages list. |
contacts | Replaces the default contacts list. |
footer | Footer content; renders only when used (e.g. a message input). |
| Field | Type | Description |
|---|
from | string | Sender name. |
image | string | Avatar URL. |
timestamp | string | Displayed time. |
text | string | Message body. |
isOwn | boolean | Aligns the message to the end (the current user). |
| Field | Type | Description |
|---|
name | string | Contact name. |
image | string | Avatar URL. |
date | string | Last-activity date. |
preview | string | Last-message preview text. |
A bordered, themed note block. Pass body content via the default slot.
<LteCallout theme="warning" title="Follow the steps">
Make sure you complete the setup before continuing.
</LteCallout>
| Name | Type | Default | Description |
|---|
theme | BootstrapTheme | 'info' | Callout color (callout-{theme}). |
title | string | — | Optional heading (h5). |
A Bootstrap alert with an optional icon, title and dismiss button. Supports both controlled
(v-model:show) and uncontrolled usage.
<template>
<LteAlert theme="success" icon="bi-check-circle" title="Saved!" dismissible>
Your changes were stored.
</LteAlert>
<!-- Controlled -->
<LteAlert v-model:show="visible" theme="danger" dismissible @dismissed="onDismiss">
Something went wrong.
</LteAlert>
</template>
| Name | Type | Default | Description |
|---|
theme | BootstrapTheme | 'info' | Alert color (alert-{theme}). |
icon | string | — | Bootstrap Icons class shown in the heading. |
title | string | — | Heading text. |
dismissible | boolean | false | Adds a close button. |
show | boolean | true | Visibility (use with v-model:show). |
| Name | Payload | Description |
|---|
update:show | boolean | Fired on dismiss (enables v-model:show). |
dismissed | — | Fired when the alert is dismissed. |
A progress bar with theming, sizing, striped/animated options and an optional percentage label.
<LteProgress :value="60" theme="success" striped animated show-label />
| Name | Type | Default | Description |
|---|
value | number | — | Current value (required). |
max | number | 100 | Maximum value; the bar width is value / max. |
theme | BootstrapTheme | 'primary' | Bar color (bg-{theme}). |
size | ComponentSize | — | 'sm' or 'lg' track height. |
striped | boolean | false | Adds the striped style. |
animated | boolean | false | Animates the stripes. |
showLabel | boolean | false | Renders the rounded percentage inside the bar. |
height | string | — | Custom track height (CSS value). |