POST, redirect, GET
Validation that happens where it counts.
This form posts to the server, is validated in Rust, and either redirects on success or renders its own errors back into the markup with your input intact. The browser's built-in validation is a nicety layered on top.
:user-invalidTry typing a broken email and tabbing away: the field turns red only after you leave it, because :user-invalid waits for interaction — unlike :invalid, which would flag an empty required field on first paint.
field-sizing: contentThe notes box grows with its content on its own; there is no input handler resizing it.
[aria-invalid="true"]Server-side errors are expressed as an ARIA attribute rather than a class, so the styling and the accessibility tree cannot drift apart.