Design system/Patterns
Creation flows and steps
Creating something new in Flowra is either a short dialog or a few clear steps. In both, the main action is in the footer, defaults are sensible, and nothing is created until the final confirmation.
In codecomponents/code-input.tsxcomponents/step-arrow.tsxcomponents/knowledge/ui.tsx (Dialog)
Creation dialog
A heading that says what's being created ("New action"), the fields that are needed and no more, and two buttons in the footer: cancel and the create verb. Defaults come from where you're standing: the current project, today, and yourself as owner.
Verification code steps
Sign-up and password recovery are two steps: the form, then a six-digit code. CodeInput has one box per digit but is a single value: pasting the whole code into any box fills them all, Backspace in an empty box moves back one, the row is left to right in both languages, and the sixth digit submits the form on its own.
Number stepper
For a number that goes up and down by one, like member count, two 40px buttons that both look like buttons even at rest, because phones can't hover. Only a button that can't go any further is faded.
Rules
Do
Pressing confirm twice shouldn't create something twice.
Don't
A new record on every click.
Do
Previous and next in that order in the DOM, with StepArrow.
Don't
Arrows flipped by hand for each language.
Do
The error next to its own field.
Don't
A general message at the top of the form that doesn't say which field.
Verification code, precisely
dir="ltr" · gap 8px · role="group"58px · 22px / 700 · tabular-numsDigits --redopacity 0.55inputMode numeric · maxLength 1Only the first box one-time-code← → · Backspace on an empty box · paste- Each box has its number as its aria-label, and the group has the label the page passes to CodeInput.
- Only the first box has autoComplete="one-time-code"; if all six boxes asked for it, each would claim the whole code.
- A code the page filled in itself (the no-email dev mode) doesn't submit the form; only a sixth digit the person typed does.
Creation form footer
justify-content: flex-end · gap 8pxButton min-width 128pxflex 1 1 0 · min-height 48pxdisabled + .spinnerDo
Default values from where the person is standing.
Don't
An empty form that asks for the current project again.
Do
The button is disabled while a required field is empty; after that it stays enabled and states the error next to the field.
Don't
A disabled button for a wrong value; it doesn't say why.
Related pages