Formularios que se validan solos sin JavaScript: user-invalid en Tailwind 4
El aviso rojo que sale cuando un correo está mal escrito casi siempre se hace con JavaScript. En Tailwind 4 son dos clases:
has-user-invalid:text-red-600 → si la etiqueta contiene un campo que el usuario ha dejado mal, texto en rojo.
peer-user-invalid:block → si el campo de al lado está mal, se muestra el aviso.
Y con user-invalid el aviso no salta al abrir la página, solo cuando el usuario ya ha escrito. Comprueba el formato, no que el correo exista: eso sigue siendo cosa del servidor.