Vibary.ai
← Vibe Coding

Required Field Mark

Unanswered fields mark themselves one after another down the form — a wave, not a jolt.

formscalmsubtleautomatic · finite · intermediate · ~1.1s
Variant

The animated component in this preview is rendered from the canonical file shown here. The surrounding demo shell only provides context and is not part of the copied code.

385 lines · react + motion only
import { useEffect, useId, useState } from "react";
import { motion, useReducedMotion } from "motion/react";

/**
 * Vibary · Required Field Mark
 *
 * A submit that could not go through, reported as a wave rather than a
 * jolt. The unanswered fields mark themselves one after another, top to

About this pattern

What a form should do when a submit cannot go through. The unanswered fields mark themselves in document order at reading pace: a rail grows downward beside each one in the direction the wave is travelling, a dot settles next to the label, the caution outline fades in over the resting border and a short line appears underneath. Fields that were answered are left completely alone, so the pass runs only over what is actually wrong. Nothing shakes and nothing flashes — and filling a marked field retracts its mark, so the form keeps telling the truth while it is being fixed.

Submit blocked by empty fieldsMarking what is still neededLong form completeness passHighlight missing answers

Where it shows up

Screens we drew to show where this motion usually sits. Illustrations, not captures of any product.

  • Add a supplierTwo fields now, the rest later
    Legal name
    Ridgeline Supply Co.
    Country
    Sweden
    VAT number
    SE556031820101
    Save supplier
    Form

    A summary of what is missing above the form, with each field marked in place.

Related patterns