Formulários
Form inputs use Surface-3 backgrounds with 8% white-alpha borders. On focus, the border shifts to accent blue with a 15% opacity glow ring. Validation states use the signal color system: red for errors, green for success.
Click, type, tab through, and blur the inputs below to see every state in action. The form includes real-time validation — try submitting with empty fields.
Every input state rendered side-by-side. Height is 48px for comfortable tap targets. Font size is 16px to prevent mobile zoom on iOS.
Textarea
Multi-line text input. Inherits all base input styles. Height is auto with min-height 120px. Vertical resize only.
Select
Custom-styled select dropdown. Uses appearance: none with an SVG chevron. Same focus and error states as text input.
Every input needs a label. Helper text below the input provides context. Error text replaces helper text when validation fails. Error messages are announced via aria-describedby for screen readers.
A translucent input variant for use on glass card or modal backgrounds. Uses a lower-opacity background with subtle backdrop blur.
Newsletter Signup
Two layout patterns: stacked (default, single column, max-width 600px) and inline (grid-based, fields side by side on desktop). Stacked is preferred for conversion forms to reduce cognitive load.
- Use 16px font size to prevent iOS auto-zoom on focus
- Always pair inputs with labels (visible, not placeholder-only)
- Show validation errors on blur, not on every keystroke
- Use aria-describedby to link error messages to inputs
- Keep conversion forms stacked and max-width 600px
- Use placeholder text as the only label — always show a visible label
- Validate on every keystroke — wait for blur or submit
- Use custom dropdown components when a native select works
- Remove the focus glow ring — it provides essential visibility
- Mix glass-morphism inputs with standard inputs in the same form