Skip to content
KramorDS
Switch light or dark

Components

Overlays

Overlays interrupt, so they earn their place. Dialogs use the native dialog element: focus is trapped, the page behind is inert, Escape closes, and focus returns to the trigger.

DialogSheetDropdownMenuTooltipCommandPalette

Dialogs

A dialog asks for a decision or a short piece of input. The title states the decision as a question, the body explains the consequence, and the footer names the action.
Decision dialog

Lock plan revision r15?

Locking freezes the mapping and produces the hash approvers sign.

After locking, any change creates revision r16 and restarts approval. Two approvers are needed before wave 5 can dispatch.

Optional

Destructive confirmation

Destructive operations are off by default. When the gate is open, the confirmation repeats the count and requires the exact phrase, so the action can never be a reflex.
Typed confirmation

Delete 12 redirects from the destination?

This removes them from Shopify. The source store is untouched.

Error: This cannot be undone from Kramor

The ledger records the deletion with evidence. Restoring means creating the redirects again in a new plan revision.

Sheets

Sheets slide in from the edge for navigation on small screens and for side panels that keep the page in view. They share the dialog behavior for focus and Escape.
Navigation sheet
Workspace

Tooltips

Tooltips name an icon or add a short clarification. They appear on hover and keyboard focus, stay while the pointer is over them, and Escape hides them. Never put essential information only in a tooltip.
Tooltips
Pause dispatchFencing tokens increase on every lease, so stale workers cannot commit.

Command palette

The palette is the fastest way around the portal. Open it with ⌘ K (Ctrl K on Windows) or / anywhere. Results filter as you type and the list is a proper listbox with an active descendant.

Palette with pages and actions
Overview
Studio
Recovery queue
Pause dispatch
Resume dispatch
Run read-back on unknown outcomes

Layering

Dialogs, sheets and the palette render in the browser top layer, above everything. Below that, from top to bottom: toasts, menus and tooltips, the sticky top bar, then page content.
Revision r15 locked

Do

Close the dialog, then confirm with a toast

The dialog finishes the decision, the toast confirms the result. Each overlay has one job.

Dialog → dialog → dialog

Don't

Stack a dialog on a dialog

Nested dialogs trap people two levels deep. If a decision needs more room, move it to a page.

Overview
Color
Typography
Space, shape and motion
Actions
Forms
Feedback
Data display
Navigation
Overlays
Portal shell
Status and lifecycle
Trust and safety
Template gallery
Overview screen
Connections screen
Studio screen
Validation screen
Recovery screen
Governance screen
Settings screen
Switch light or dark mode