Miscellaneous Components
The components on this page are the ones AdminLTE adds on top of Bootstrap that aren’t the header, the sidebar or the card. Each is CSS-only unless noted.
Callouts
A bordered note block, tinted per theme colour. Used throughout these docs.
<div class="callout callout-info">
<h5 class="fw-bold">Heads up</h5>
<p>Body text. <a href="#" class="callout-link">A link</a>.</p>
</div>
| Class | Description |
|---|---|
.callout |
Base block: padding and a .25rem left border. |
.callout-{color} |
One per $theme-colors entry. Sets the background, border
and text-emphasis colours together.
|
.callout-link |
Bolds a link inside a callout. Plain links and
<code> are already tinted to the variant’s emphasis
colour, so they stay legible on the subtle background.
|
Consecutive callouts collapse the gap between them, so a stack reads as one block.
Ribbons
A diagonal banner pinned to the top corner of a positioned ancestor. See the ribbons demo.
<div class="card">
<div class="ribbon-wrapper">
<div class="ribbon text-bg-primary">New</div>
</div>
<div class="card-body">…</div>
</div>
| Class | Description |
|---|---|
.ribbon-wrapper |
The square that clips the banner. Must sit inside something positioned —
.card already is; anything else needs
.position-relative.
|
.ribbon |
The banner itself. Colour comes from a .text-bg-* utility.
|
.ribbon-wrapper.ribbon-lg |
Larger corner, 1rem text. |
.ribbon-wrapper.ribbon-xl |
Largest corner, 1.25rem text. |
The banner’s width is derived from --lte-ribbon-size, so
overriding that one property rescales the whole thing:
.ribbon-wrapper.ribbon-custom {
--lte-ribbon-size: 90px;
--lte-ribbon-width: 130px;
}
Keep labels short. The banner is clipped to the corner square, so only about
64px of it is readable at the default size — roughly six
characters. .ribbon-lg and .ribbon-xl give you more
room. In RTL the corner and the rotation both mirror, with no extra markup.
Small box
A large stat tile with a background colour, a watermark icon and a footer link.
<div class="small-box text-bg-primary">
<div class="inner">
<h3>150</h3>
<p>New Orders</p>
</div>
<svg class="small-box-icon" aria-hidden="true">…</svg>
<a href="#" class="small-box-footer link-light">More info <i class="bi bi-link-45deg"></i></a>
</div>
| Class | Description |
|---|---|
.small-box |
The tile. Pair with a .text-bg-* utility for colour. |
.inner |
Holds the figure and its label. |
.small-box-icon |
Oversized watermark icon, anchored to the trailing edge. Mark it
aria-hidden="true".
|
.small-box-footer |
Full-width footer link. |
Info box
A compact stat row: icon, label, figure and an optional progress bar.
<div class="info-box">
<span class="info-box-icon text-bg-primary shadow-sm">
<i class="bi bi-gear-fill"></i>
</span>
<div class="info-box-content">
<span class="info-box-text">CPU Traffic</span>
<span class="info-box-number">10 <small>%</small></span>
<div class="progress">
<div class="progress-bar" style="width: 70%"></div>
</div>
<span class="progress-description">70% increase in 30 days</span>
</div>
</div>
| Class | Description |
|---|---|
.info-box |
The row. |
.info-box-icon |
Square icon area. Colour it with .text-bg-*. |
.info-box-content |
Text column. |
.info-box-text |
Label. Truncates rather than wrapping. |
.info-box-number |
The figure. |
.info-box-more |
Optional trailing link. |
.progress-description |
Caption under an embedded progress bar. |
Timeline
A vertical, dated activity list.
<div class="timeline">
<div class="time-label"><span class="text-bg-danger">10 Feb. 2026</span></div>
<div>
<i class="timeline-icon bi bi-envelope text-bg-primary"></i>
<div class="timeline-item">
<span class="time"><i class="bi bi-clock-fill"></i> 12:05</span>
<h3 class="timeline-header"><a href="#">Support Team</a> sent you an email</h3>
<div class="timeline-body">…</div>
<div class="timeline-footer"><a class="btn btn-primary btn-sm">Read more</a></div>
</div>
</div>
</div>
| Class | Description |
|---|---|
.timeline |
The container, drawing the vertical rule. |
.time-label |
A date marker interrupting the rule. |
.timeline-icon |
The dot on the rule. Colour it with .text-bg-*. |
.timeline-item |
The entry’s panel. |
.time |
Trailing timestamp inside the panel. |
.timeline-header / .timeline-body /
.timeline-footer
|
The panel’s three sections. Body and footer are optional. |
.timeline-inverse |
Flat variant: no shadow, a plain border instead. |
Each entry is a bare <div> wrapping the icon and the item —
the wrapper carries no class.
Social and post widgets
Profile cards and activity-feed blocks. See the social widgets demo. These keep their v3 class names so migrating markup works unchanged, but they are laid out with grid and flex rather than floats, and take their colours from Bootstrap utilities.
<div class="user-block">
<img class="rounded-circle" src="user.jpg" alt="">
<span class="username"><a href="#">Jonathan Burke Jr.</a></span>
<span class="description">Shared publicly · 7:30 PM today</span>
</div>
| Class | Description |
|---|---|
.user-block |
Avatar, name and meta line from flat markup — the avatar spans both text
rows, so no wrapper element is needed. An optional
.comment lands on a third row.
|
.user-block.user-block-sm |
Smaller avatar and type, for comment threads. |
.post |
One entry in a feed. Divided from the next; the last entry drops its divider and trailing space. |
.description-block |
A centred figure with an uppercase caption —
.description-header and .description-text.
Repeat across a card footer’s columns.
|
.widget-user |
Profile card with a banner header and an avatar straddling the
header/footer seam. Needs .widget-user-header,
.widget-user-image, .widget-user-username,
.widget-user-desc.
|
.widget-user-2 |
Shorter variant with the avatar inline in the header, so long names can wrap. |
For .widget-user, the header’s height and the avatar’s size are
Sass variables ($lte-widget-user-header-height,
$lte-widget-user-image-size); the footer’s top padding is derived
from them, so changing one value keeps the overlap correct.
Progress bars
Extra sizes on top of Bootstrap’s .progress.
| Class | Height |
|---|---|
.progress-sm |
10px |
.progress-xs |
7px |
.progress-xxs |
3px |
.progress.vertical turns a bar on its side, and
.progress-group pairs a bar with a label row.
Toasts
.toast-{color} themes a Bootstrap toast per
$theme-colors: coloured header, subtle body, matching border. The
close button flips to its white variant on dark headers automatically, in both
colour modes.
<div class="toast toast-success" role="alert" aria-live="assertive" aria-atomic="true">
<div class="toast-header">
<strong class="me-auto">Saved</strong>
<button type="button" class="btn-close" data-bs-dismiss="toast" aria-label="Close"></button>
</div>
<div class="toast-body">Your changes have been saved.</div>
</div>
Image sizes
.img-size-32, .img-size-50 and
.img-size-64 set a width in pixels and leave the height
automatic. They exist for avatars in dropdowns and lists, where a Bootstrap
sizing utility would need two classes.
Direct chat
The chat panel has its own page — see the DirectChat plugin for its markup and the contacts-pane toggle.