# Keyboard conventions Novelly's web client is built to be driven entirely from the keyboard. New interactive components should follow these rules so the app stays consistent as it grows. ## Escape cancels or closes — it never destroys already-saved work In an editor that commits per field (a beat row, a chapter's title), Escape reverts only the field you're currently in and then closes the editor. Fields you already tabbed past and committed stay saved — Escape is honest about this, not a full undo. Anywhere a component *can* offer a true "discard everything" cancel (a create form that hasn't saved anything yet), do that instead. ## Enter commits a single-line field and advances Pressing Enter in a single-line field is equivalent to Tab: it commits the field's value and moves focus to the next field. Shift+Enter moves to the previous field. This is what `AutoField` (`src/components/ui.tsx`) does by default — reuse it rather than hand-rolling a text input's key handling. ## mod+Enter commits a multiline field or completes a record A `