The "reward early, punish late" strategy: a field stays quiet while typing, validates when you leave it, and once it has shown an error it re-validates on every keystroke so the message clears the moment it is fixed. Use this when live validation feels nagging but a stale error feels broken.
pnpm dlx shadcn@latest add "https://ui.tealmac.com/r/validate-on-blur-then-change.json"