This is a solution to the Project: Sign-up Form.
This project is intended to give you a chance to flex some of the new items you’ve been absorbing over the past few lessons. This time it’s a sign-up form for an imaginary service.
- Semantic HTML5 markup
- CSS custom properties
- Flexbox
- Mobile-first workflow
This project helped reinforce my understanding of HTML forms.
- Created accessible form using semantic HTML.
- Used proper types (
text,tel,password). - Applied built-in HTML validation with:
requiredpatternautocompleteinputmodeminlengthmin
- Associated every input with its corresponding
<label>for better accessibility
<label class="form__label" for="first_name">First name</label>
<input
class="form__input"
id="first_name"
name="first_name"
autocomplete="given-name"
inputmode="text"
maxlength="120"
pattern="[A-Za-z]{1, 120}"
placeholder="John"
required
type="text" />- Build a two-column layout using flexbox.
- Customize input state with pseudo classes
:focus:user-invalid:user-valid
.form__input:user-invalid {
border-color: var(--color-input-invalid);
}- Added clear visual feedback for valid and invalid inputs.
- Added placeholder
- Practice debugging complex CSS layouts.
- Learned how different validation attributes interact.
- Improve my understanding of regex patterns for form inputs
- How to validate forms? - This helped me to decide validation form design. I really liked this pattern and will use it going forward.
I used Claude to generate custom properties.
- GitHub - @AzamAzis
- Twitter - @AzamAzis01
Background photo by Alghozy

