About this set
Three complete forms rather than single fields. The contact form sits in a white card with a heading and a response-time note; first and last name share a row that falls to one column on narrow screens, followed by email, a message field and a submit button. Required fields say (required) in their labels and carry the required attribute, so the browser blocks an empty submission and points at the first missing field. The inline signup puts an email field and a Subscribe button side by side under a visible label, for footers and article ends. Settings rows lay out a label and a line of help text on the left with a compact field on the right, and wrap the field underneath on small screens; the help text is linked to its field with aria-describedby rather than being part of the label. The demo fields use given-name, family-name, email and nickname autocomplete tokens. The Bootstrap version uses .card, a .row with .col-sm-6 columns, .form-control and .btn; the Tailwind version uses a grid with repeat(auto-fit, minmax(190px, 1fr)).
What’s included
- Contact card, inline signup and settings rows
- Two-column name row that collapses on narrow screens
- Required fields marked in text and with the required attribute
- Settings rows wrap the field below the label on mobile
- Bootstrap version uses .card, .row, .col-sm-6 and .btn
Accessibility
Every field has a visible label; required ones add the word required and the required attribute, and settings help text is linked with aria-describedby. Buttons are real submit buttons with a 2px blue outline on keyboard focus, and fields show a blue border and 3px ring. Field borders reach 3:1 and secondary text 4.5:1 on white. Transitions are removed under prefers-reduced-motion.
Customise it
In plain CSS change --f-border, --f-focus, --f-btn and --f-radius on .form-ui, and the card's background and shadow on .card. In Bootstrap set --bs-card-* and --bs-btn-* variables on .form-ui; in Tailwind edit the bg-, border- and shadow- classes on the card and fields.






