Skip to content
wdj

LayerDialog

Implemented Overlay

Layered native modal with actions, forms, nested dialogs and pending states.

Kumo reference: kumo-ui.com/components/layer-dialog/

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

Informational dialog

Project settings

Manage this project configuration.

Review the selected project settings before continuing.

Show template
{% load wdj %}
{% wdj_component "wdj/components/layer_dialog.html" id="audit-layer-informational-dialog" title="Project settings" description="Manage this project configuration." trigger_label="Informational dialog" %}
<p class="text-base">Review the selected project settings before continuing.</p>
{% endwdj_component %}

Standard action

Project settings

Manage this project configuration.

Review the selected project settings before continuing.

Show template
{% load wdj %}
{% wdj_component "wdj/components/layer_dialog.html" id="audit-layer-standard-action" title="Project settings" description="Manage this project configuration." trigger_label="Standard action" footer=audit_layer_footer %}
<p class="text-base">Review the selected project settings before continuing.</p>
{% endwdj_component %}

Alert confirmation

Project settings

Manage this project configuration.

Review the selected project settings before continuing.

Show template
{% load wdj %}
{% wdj_component "wdj/components/layer_dialog.html" id="audit-layer-alert-confirmation" title="Project settings" description="Manage this project configuration." trigger_label="Alert confirmation" alert=True footer=audit_layer_footer close_on_backdrop=False %}
<p class="text-base">Review the selected project settings before continuing.</p>
{% endwdj_component %}

Small width

Project settings

Manage this project configuration.

Review the selected project settings before continuing.

Show template
{% load wdj %}
{% wdj_component "wdj/components/layer_dialog.html" id="audit-layer-small-width" title="Project settings" description="Manage this project configuration." trigger_label="Small width" size="sm" %}
<p class="text-base">Review the selected project settings before continuing.</p>
{% endwdj_component %}

Large width

Project settings

Manage this project configuration.

Review the selected project settings before continuing.

Show template
{% load wdj %}
{% wdj_component "wdj/components/layer_dialog.html" id="audit-layer-large-width" title="Project settings" description="Manage this project configuration." trigger_label="Large width" size="lg" %}
<p class="text-base">Review the selected project settings before continuing.</p>
{% endwdj_component %}

Top placement

Project settings

Manage this project configuration.

Review the selected project settings before continuing.

Show template
{% load wdj %}
{% wdj_component "wdj/components/layer_dialog.html" id="audit-layer-top-placement" title="Project settings" description="Manage this project configuration." trigger_label="Top placement" placement="top" %}
<p class="text-base">Review the selected project settings before continuing.</p>
{% endwdj_component %}

Scrolling body

Project settings

Manage this project configuration.

Region 01: synthetic configuration.

Region 02: synthetic configuration.

Region 03: synthetic configuration.

Region 04: synthetic configuration.

Region 05: synthetic configuration.

Region 06: synthetic configuration.

Region 07: synthetic configuration.

Region 08: synthetic configuration.

Region 09: synthetic configuration.

Region 10: synthetic configuration.

Region 11: synthetic configuration.

Region 12: synthetic configuration.

Region 13: synthetic configuration.

Region 14: synthetic configuration.

Region 15: synthetic configuration.

Region 16: synthetic configuration.

Region 17: synthetic configuration.

Region 18: synthetic configuration.

Region 19: synthetic configuration.

Region 20: synthetic configuration.

Region 21: synthetic configuration.

Region 22: synthetic configuration.

Region 23: synthetic configuration.

Region 24: synthetic configuration.

Region 25: synthetic configuration.

Region 26: synthetic configuration.

Region 27: synthetic configuration.

Region 28: synthetic configuration.

Region 29: synthetic configuration.

Region 30: synthetic configuration.

Region 31: synthetic configuration.

Region 32: synthetic configuration.

Region 33: synthetic configuration.

Region 34: synthetic configuration.

Region 35: synthetic configuration.

Region 36: synthetic configuration.

Region 37: synthetic configuration.

Region 38: synthetic configuration.

Region 39: synthetic configuration.

Region 40: synthetic configuration.

Show template
{% load wdj %}
{% wdj_component "wdj/components/layer_dialog.html" id="audit-layer-scrolling-body" title="Project settings" description="Manage this project configuration." trigger_label="Scrolling body" %}
{% for option in audit_long_options %}<p class="py-2 text-base">{{ option.label }}: synthetic configuration.</p>{% endfor %}
{% endwdj_component %}

Native form

Edit settings

Show template
{% load wdj %}
{% wdj_component "wdj/components/layer_dialog.html" id="audit-layer-form" title="Edit settings" trigger_label="Edit settings" %}
<form data-demo-form class="flex flex-col gap-4">{% include "wdj/components/input.html" with id="audit-layer-form-name" name="name" label="Project name" required=True only %}{% include "wdj/components/button.html" with type="submit" label="Validate settings" variant="primary" only %}</form>
{% endwdj_component %}

Search and pickers

Choose project

Loading suggestions
Show template
{% load wdj %}
{% wdj_component "wdj/components/layer_dialog.html" id="audit-layer-search" title="Choose project" trigger_label="Choose project" %}
{% include "wdj/components/combobox.html" with id="audit-layer-picker" label="Project" options=audit_options only %}{% include "wdj/components/select.html" with id="audit-layer-select" label="Environment" options=audit_options mode="custom" only %}
{% endwdj_component %}

Nested dialogs

Parent dialog

Child confirmation

The native modal stack returns focus to the parent trigger.

Show template
{% load wdj %}
{% wdj_component "wdj/components/layer_dialog.html" id="audit-layer-parent" title="Parent dialog" trigger_label="Open parent dialog" %}
{% wdj_component "wdj/components/layer_dialog.html" id="audit-layer-child" title="Child confirmation" trigger_label="Open child dialog" %}
<p class="text-base">The native modal stack returns focus to the parent trigger.</p>
{% endwdj_component %}
{% endwdj_component %}

Pending work

Save settings

Show template
{% load wdj %}
<div x-data="{ busy: false }">{% wdj_component "wdj/components/layer_dialog.html" id="audit-layer-pending" title="Save settings" trigger_label="Pending work" attrs=audit_pending_attrs %}
<button type="button" class="h-9 rounded-lg bg-kumo-brand px-3 text-white" @click="busy = true; setTimeout(() => busy = false, 600)" :disabled="busy" x-text="busy ? 'Saving…' : 'Simulate save'"></button><p class="mt-2 text-base" aria-live="polite" x-text="busy ? 'Please wait' : 'Ready'"></p>
{% endwdj_component %}</div>

Multiple primary actions

Export project

Choose the format that suits your workflow.

Show template
{% load wdj %}
{% wdj_component "wdj/components/layer_dialog.html" id="audit-layer-multiple" title="Export project" trigger_label="Choose export" footer=audit_multiple_footer %}<p>Choose the format that suits your workflow.</p>{% endwdj_component %}

Localized dialog

Editează proiectul

Modificările se salvează după confirmare.

Show template
{% load wdj %}
{% wdj_component "wdj/components/layer_dialog.html" id="audit-layer-localized" title="Editează proiectul" trigger_label="Deschide dialogul" close_label="Închide dialogul" footer=audit_localized_footer %}<p>Modificările se salvează după confirmare.</p>{% endwdj_component %}

Dismissal cleanup

Temporary draft

Closing clears this local draft.

Show template
{% load wdj %}
<div x-data="{ draft: '' }" @wdj:dialog-close="draft = ''">{% wdj_component "wdj/components/layer_dialog.html" id="audit-layer-cleanup" title="Temporary draft" trigger_label="Edit temporary draft" %}<label class="flex flex-col gap-2">Draft<input class="h-9 rounded-lg bg-kumo-control px-3 ring-1 ring-kumo-line" x-model="draft"></label><p class="mt-2 text-base text-kumo-subtle">Closing clears this local draft.</p>{% endwdj_component %}</div>

API Reference

Prop Type Default Description
string unset Stable unique DOM ID; important for HTMX targets and focus restoration.
string unset Title; pass the documented value shown in the examples.
string unset Description; pass the documented value shown in the examples.
string unset Combobox without endpoint: enable the button trigger and search inside its popup. Calendar: calendar trigger text.
string base Size; pass the documented value shown in the examples.
string unset Placement; pass the documented value shown in the examples.
bool False Alert; 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.
string / HTML slot unset Footer; pass the documented value shown in the examples.
bool True Close on backdrop; pass the documented value shown in the examples.
bool False Dismiss disabled; pass the documented value shown in the examples.
string unset Close label; pass the documented value shown in the examples.
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