Card Widget Plugin
The CardWidget plugin provides collapse, expand, remove, and maximize functionality for card components.
Usage
This plugin is activated via data attributes on buttons inside a .card element.
Data API
Add data-lte-toggle="card-collapse" to toggle card body visibility, data-lte-toggle="card-remove" to remove the card, or data-lte-toggle="card-maximize" to maximize it.
<div class="card">
<div class="card-header">
<h3 class="card-title">Card Title</h3>
<div class="card-tools">
<button type="button" class="btn btn-tool" data-lte-toggle="card-collapse" title="Collapse">
<i data-lte-icon="expand" class="bi bi-plus-lg"></i>
<i data-lte-icon="collapse" class="bi bi-dash-lg"></i>
</button>
<button type="button" class="btn btn-tool" data-lte-toggle="card-maximize" title="Maximize">
<i class="bi bi-fullscreen"></i>
</button>
<button type="button" class="btn btn-tool" data-lte-toggle="card-remove" title="Remove">
<i class="bi bi-x-lg"></i>
</button>
</div>
</div>
<div class="card-body">Card content here.</div>
<div class="card-footer">Card footer</div>
</div>
Events
The plugin dispatches the following events on the trigger element:
| Event | Description |
|---|---|
collapsed.lte.card-widget | Fired when the card body is collapsed. |
expanded.lte.card-widget | Fired when the card body is expanded. |
remove.lte.card-widget | Fired when the card is removed. |
maximized.lte.card-widget | Fired when the card is maximized. |
minimized.lte.card-widget | Fired when the card is minimized (restored from maximized). |
CSS Classes
| Class | Description |
|---|---|
collapsed-card | Applied to the card when collapsed. |
maximized-card | Applied to the card when maximized. |
Configuration
The plugin reads no data-* configuration attributes. To customize behaviour, instantiate it programmatically and pass a config:
| Option | Default | Description |
|---|---|---|
animationSpeed | 500 | Slide animation duration in milliseconds. |
collapseTrigger | [data-lte-toggle="card-collapse"] | CSS selector for collapse buttons. |
removeTrigger | [data-lte-toggle="card-remove"] | CSS selector for remove buttons. |
maximizeTrigger | [data-lte-toggle="card-maximize"] | CSS selector for maximize buttons. |
Programmatic API
import { CardWidget } from "admin-lte"
const card = document.querySelector("#chart-card")
const widget = new CardWidget(card, { animationSpeed: 250 })
widget.maximize() // expand to fullscreen
widget.collapse() // hide body and footer
widget.expand() // restore from collapsed
widget.remove() // animate out and remove from DOM
widget.toggle() // expand / collapse based on current state
widget.toggleMaximize() // maximize / minimize based on current state
Methods
| Method | Returns | Description |
|---|---|---|
collapse() | void | Slides up body and footer, adds collapsed-card. Fires collapsed.lte.card-widget. |
expand() | void | Slides down body and footer, removes collapsed-card. Fires expanded.lte.card-widget. |
toggle() | void | Calls collapse() or expand() based on the collapsed-card class. |
maximize() | void | Sets the card to fixed fullscreen positioning, adds maximized-card. Fires maximized.lte.card-widget. |
minimize() | void | Restores original size, removes maximized-card. Fires minimized.lte.card-widget. |
toggleMaximize() | void | Calls maximize() or minimize() based on the maximized-card class. |
remove() | void | Animates the card out and removes it from the DOM. Fires remove.lte.card-widget. |
Notes
- Nested cards are handled correctly: collapsing a parent card does not affect child cards.
- Maximizing a card also adds
maximized-cardto<html>so global styles can react. - A card that’s collapsed when you maximize it remembers that — the
was-collapsedclass tracks this state.