Asking

A Tacit app does not open a box to ask. A name is edited in its row, what can be undone is done and offers Undo, and what cannot be undone is confirmed by the action itself.

Part of a Files window headed Home, Archive, with a list of files. The name of the third, photos-october.zip, is being edited in its row: the name without its type is chosen, inside a box with an accent ring.
A rename, in the row.

An app asks three kinds of question: what should this be called, did you mean it, and are you sure. Each is answered where it was asked, with the page still in view and nothing dimmed.

A name is edited in its row

Rename in the row. The name becomes a line to type in, where the name is. The text does not move. Only the name is chosen, not its type, so typing replaces "dune-light" and leaves ".jpg". Enter keeps the new name and Esc goes back to the old one. The size and time stay in view, so the person still sees which file this is.

A Files window headed Home, Pictures, with four pictures. In the third row the name dune-light is chosen and .jpg is not, inside a box with an accent ring.
The stem of a name is chosen; the type is left alone.

A new thing arrives with a name. A new folder is put in the list at once, as a row named "Untitled folder", and all of the name is chosen. Enter keeps the name as it stands, even when it was not changed. Esc cancels, and the app takes the new row away again.

A Files window headed Home, Documents. The first row is a folder named Untitled folder with all of its name chosen, in a box with an accent ring, above three files.
A new folder is a row, named, waiting for its name.

The parts are ListRow, which edits, and RowList, whose F2 asks the app to start it.

What can be undone is done

Do it, then say so, with Undo. Moving files to the trash, archiving, renaming, moving: the step is taken at once and a notice says what happened and offers the way back. The person never has to read a question to get on, and a mistaken press costs one more press.

A Files window headed Home, Documents with two files. At its foot a line reads Moved 3 files to the trash, with an accent button, Undo.
The step is taken; the notice offers the way back.

The notice stays for 6 seconds and holds while the pointer or the keyboard is on it. Give the same Undo a shortcut in the app, Ctrl Z, so it can be reached after the notice has gone.

What cannot be undone is confirmed by the action

The action asks. Emptying the trash cannot be taken back. The Slab that says "Empty trash" is the thing that is pressed, so it is also the thing that asks. The first press changes its words to the question, "Delete 12 files for good", in the risk tone with the warning symbol. The second press does it.

A Files window headed Home, Trash, with two files. Under the list sits a risk Slab, Empty trash.
At rest.

After one press the same control asks.

The same window after one press. The Slab now reads Delete 12 files for good, in the risk ink with a faint risk fill.
After one press: the same control, asking.

The question names what will happen and how many things it touches, so it reads as a fact, not as "Are you sure?". It goes back to the words it had when Esc is pressed, when the keyboard leaves it, when a pointer that pressed it leaves, or when it has waited 4 seconds (motion.confirmWait). The part says confirmCancelled() then. A Slab and an action as words both do this with their confirm property.

Why there is no dialog

The kit has no part that opens a box over the window, and no scrim that dims the page. There are three reasons.

For the rare case that truly blocks, such as a folder that cannot be read, say it in the page itself with a page state: a sentence and, if there is one, the one action that helps. Do not put a window over the window.

Do and don't

Two rows of a list with a notice below them: Moved 3 files to the trash, with an Undo button.
DoDo what can be undone, and offer Undo.
A dimmed list with a box over it asking Are you sure you want to move 3 files to the trash, with Cancel and Move.
Don'tAsk before what can be undone. A question that is always answered Yes teaches people to stop reading questions.
A list with a risk Slab under it that has become Delete 12 files for good.
DoLet the action ask, in its own place.
A list with a risk Slab, Empty trash, and a notice, Deleted 12 files, with no way back.
Don'tDo what cannot be undone on one press. A notice cannot offer Undo for it, so the press had better be meant.

Writing

Name the thing and the result: "Delete 12 files for good", not "Are you sure?" and not "Confirm". The count is the app's to put in. Say "for good" or "forever" when the step cannot be undone, and use it only then. In a notice, write what happened in the past tense: "Moved 3 files to the trash".

Accessibility

What the kit does not do

Experimental, in Tacit.Kit 0.1.