Skip to content
wdj

Banner

Implemented Feedback

Inline message bar with variants and optional action.

Kumo reference: kumo-ui.com/components/banner/

Presentation commands show demo feedback. Read the interaction guide to connect real actions.

Information

Update available

A new version is ready to install.

Session expiring

Your session will expire in 5 minutes.

Maintenance scheduled

This service will be unavailable for 10 minutes.

Show template
{% load wdj %}
<div class="flex w-full flex-col gap-3">
  {% include "wdj/components/banner.html" with title="Update available" text="A new version is ready to install." only %}
  {% include "wdj/components/banner.html" with variant="alert" title="Session expiring" text="Your session will expire in 5 minutes." only %}
  {% include "wdj/components/banner.html" with variant="error" title="Save failed" text="We couldn't save your changes. Please try again." only %}
  {% include "wdj/components/banner.html" with variant="secondary" title="Maintenance scheduled" text="This service will be unavailable for 10 minutes." only %}
</div>

Warning

Quota approaching

Storage is nearly full.

Show template
{% load wdj %}
{% include "wdj/components/banner.html" with variant="alert" title="Quota approaching" text="Storage is nearly full." only %}

Error

Show template
{% load wdj %}
{% include "wdj/components/banner.html" with variant="error" title="Request failed" text="Try again later." only %}

Secondary

Changes are saved automatically.

Show template
{% load wdj %}
{% include "wdj/components/banner.html" with variant="secondary" text="Changes are saved automatically." only %}

Dismissible

Release notes

Review the latest changes.

Show template
{% load wdj %}
{% include "wdj/components/banner.html" with title="Release notes" text="Review the latest changes." dismissible=True only %}

Small

Update available

Show template
{% load wdj %}
{% include "wdj/components/banner.html" with title="Update available" size="sm" only %}

With action

New version available

View release notes
Show template
{% load wdj %}
{% wdj_component "wdj/components/banner.html" title="New version available" %}
{% include "wdj/components/button.html" with label="View release notes" href="/components/" only %}
{% endwdj_component %}

Success message

Changes saved

Show template
{% load wdj %}
{% include "wdj/components/banner.html" with variant="secondary" icon="check-circle-2" title="Changes saved" only %}

Description only

Configuration is saved automatically.

Show template
{% load wdj %}
{% include "wdj/components/banner.html" with description="Configuration is saved automatically." only %}

Title only

Update available

Show template
{% load wdj %}
{% include "wdj/components/banner.html" with title="Update available" only %}

With icon

Deployment ready

Show template
{% load wdj %}
{% include "wdj/components/banner.html" with icon="rocket" title="Deployment ready" only %}

Without dismissal

Persistent information

Review this information.

Show template
{% load wdj %}
{% include "wdj/components/banner.html" with title="Persistent information" text="Review this information." only %}

Compact warning

Quota approaching

Show template
{% load wdj %}
{% include "wdj/components/banner.html" with variant="alert" size="sm" title="Quota approaching" only %}

Compact error

Show template
{% load wdj %}
{% include "wdj/components/banner.html" with variant="error" size="sm" title="Request failed" only %}

Long content

Access policy

Review the permissions assigned to this project before granting access to additional workspace members.

Show template
{% load wdj %}
{% include "wdj/components/banner.html" with title="Access policy" description="Review the permissions assigned to this project before granting access to additional workspace members." only %}

Multiple trailing actions

Review deployment

Check the changes before continuing.

Read guide
Show template
{% load wdj %}
{% include "wdj/components/banner.html" with title="Review deployment" description="Check the changes before continuing." actions=audit_actions only %}

Compact with CTA

A new configuration is available.

Read guide
Show template
{% load wdj %}
{% include "wdj/components/banner.html" with size="sm" text="A new configuration is available." actions=audit_actions only %}

Custom content

Review these settings before continuing.

Show template
{% load wdj %}
{% wdj_component "wdj/components/banner.html" variant="secondary" %}
<p>Review <strong class="font-medium">these settings</strong> before continuing.</p>
{% endwdj_component %}

API Reference

Prop Type Default Description
string unset Title; pass the documented value shown in the examples.
string unset Description; pass the documented value shown in the examples.
string unset Text; pass the documented value shown in the examples.
string component-specific Variant; pass the documented value shown in the examples.
string base Size; pass the documented value shown in the examples.
string unset Icon; pass the documented value shown in the examples.
string / HTML slot unset Action; pass the documented value shown in the examples.
list[dict] unset Actions; pass the documented value shown in the examples.
bool False Dismissible; pass the documented value shown in the examples.
string / HTML slot unset Rich HTML supplied by the wdj_component block tag, rendered in an isolated context.
dict {} Dictionary of escaped native, HTMX or Alpine attributes. Literal Tailwind classes only.
string "" Class; pass the documented value shown in the examples.

Accessibility notes

Every interactive component keeps real semantics and keyboard support: native controls where possible, ARIA only where necessary, and a visible focus ring. See the Accessibility page for the shared contract.

Read the accessibility contract

Components

Components overview
AutocompleteFree-form input with local or HTMX-filtered suggestions.
BadgeSolid, tinted, outline and dot status labels.
BannerInline message bar with variants and optional action.
BreadcrumbsTrail navigation in two sizes.
ButtonVariants, sizes, shapes, icons and loading state.
ButtonGroupJoins a small set of tightly-coupled buttons into a single control (split buttons).
CheckboxSingle checkbox and indeterminate state.
ClipboardTextRead-only text field with a one-click copy-to-clipboard button.
Code / CodeHighlightedEscaped Pygments grammar highlighting, multiline tokens, line numbers, highlighted lines and localized copying.
CollapsibleComposable disclosure component for showing and hiding content.
Combobox / AutocompleteKumo-styled input/button triggers, search inside the popup, grouped local choices and debounced HTMX search.
CommandPaletteAccessible spotlight search overlay with Cmd+K keyboard shortcut.
DatePickerKumo-styled date and datetime popups; inline single, multiple and range calendars with bounds/presets.
DateRangePickerStyled popup or inline range calendar with bounds, presets and separately named form values.
DialogNative <dialog> modal with focus management.
DrawerEdge-anchored modal panel. LayerDialog has its own layered component.
DropdownMenuNative details menu with delegated keyboard navigation and dismissal.
EmptyEmpty-state placeholder with icon and action.
FieldLabel + description + error wrapper. Built into each control.
FlowDirected diagrams with branches, SVG connectors, custom anchors and responsive local scrolling.
GridResponsive CSS grid layout container with preset column configurations.
InlineCopyTextCompact borderless copy control for IDs and short values.
InputText field with label, description, leading/trailing icons.
InputAreaMulti-line textarea with auto-resize option.
InputGroupInput field with seamless prefix, suffix, and addon attachments.
LabelForm field label, optional marker and tooltip.
LayerCardCompound surface card with distinct primary and secondary layers.
LayerDialogLayered native modal with actions, forms, nested dialogs and pending states.
LinkInline, current and plain text links.
LoaderAnimated spinner in three sizes.
MenuBarCompact view selector using native radio semantics.
MeterProgress bar showing a measured value within a known range.
PaginationA page navigation component for navigating through paginated content.
PopoverAnchored popup with interactive content.
RadioRadio group, vertical and horizontal.
SelectKumo-styled Alpine dropdown with groups, rich options and multiple selection; native form values and fallback.
SensitiveInputPassword/secret input with reveal toggle and copy button.
SeparatorHorizontal / vertical rules with optional label.
SidebarRecursive navigation groups, account/zone views, search, loading, resize and full-screen mobile breadcrumbs.
SkeletonShimmer placeholder.
SliderInset single/range selection with vertical grips, value badges, endpoint labels and native keyboard/form behavior.
SurfaceBordered surface panel with header slot.
SwitchOn/off toggle in three sizes.
TableServer-driven table: sort, filter, select and paginate the full dataset.
Table of contentsPage section navigation tree with active link indicator.
TabsSegmented and underline tabs with a sliding indicator, responsive overflow and local Alpine or URL/HTMX state.
TagInputMulti-value badge input for tags and recipients.
TextHeading, body, secondary, success, error and mono text.
ToastyExpandable notification stack with variants, paused expiry and a live region.
ToolbarCompact grouped controls with shared borders, composed filters and keyboard arrow navigation.
TooltipHover and focus tooltip with grouped delays, Escape dismissal and viewport bounds.
↑ ↓ Navigate ↵ Select