Skip to content
9 changes: 7 additions & 2 deletions Form-Controls/README.md

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why are there changes in this file? How is it related to the task?

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

sorry, could you make it clear. Did you need more explanation about the code.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You commited some change to Form-Controls/README.md which I don't understand.

Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,12 @@ Writing that out as a series of questions to ask yourself:
All fields are required.
Do not write a form action for this project.

## Acceptnce Criteria
> [!TIP]
> To check whether the customer's name contains at least two non-space characters you may need to use a **regular expression** (or **regex** for short), which is a tool used to match patterns in text. If you wish to learn more about regular expressions there are plenty of resources on the web including the [official MDN documentation](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_expressions), but for this task you can use this regex that we have pre-written for you: `.*\S.*\S.*`.
>
> Now you have the regular expression, it's up to you to figure out how to use it in the context of an HTML form!

## Acceptance Criteria

### Developers must test their work.

Expand Down Expand Up @@ -64,4 +69,4 @@ They ensure your code is reliable, maintainable, and presents a polished, credib
- [MDN: Form validation](https://developer.mozilla.org/en-US/docs/Learn/Forms/Form_validation)
- [Lighthouse](https://developers.google.com/web/tools/lighthouse)
- [Lighthouse Guide](https://programming.codeyourfuture.io/guides/testing/lighthouse)
- [Format Code and Make Logical Commits in VS Code](../practical_guide.md)
- [Format Code and Make Logical Commits in VS Code](../practical_guide.md)
64 changes: 54 additions & 10 deletions Form-Controls/index.html
Original file line number Diff line number Diff line change
@@ -1,10 +1,11 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<link rel="stylesheet" href="style.css" >
<meta charset="utf-8" >
<meta http-equiv="X-UA-Compatible" content="IE=edge" >
<title>My form exercise</title>
<meta name="description" content="" />
<meta name="description" content="The page Contains Form to submit customer information about T-shirts" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
</head>
<body>
Expand All @@ -13,15 +14,58 @@ <h1>Product Pick</h1>
</header>
<main>
<form>
<!-- write your html here-->
<!--
try writing out the requirements first as comments
this will also help you fill in your PR message later-->
</form>
</main>
<!-- -->
<div>
<label for="customername">Customer name *: </label>
<input type="text" id="customername" name="customername" required
pattern="^[A-Za-zÀ-ÖØ-öø-ÿĀ-ž\s'-]+$" minlength="2" maxlength="50"
placeholder="Customer name"/>
</div>

<div>
<label for="customeremail">Customer email: </label>
<input type="email" id="customeremail" name="customeremail" required
pattern="^[\p{L}\p{N}._%+-]+@[\p{L}\p{N}.-]+\.[\p{L}]{2,}$"
placeholder="Customer email" />
</div>

<div>
<label>T-shirt color *:</label>
<div class="control">
<label class="t-color">
<input type="radio" name="color" value="Black" required/>
Black
</label>
<label class="t-color">
<input type="radio" name="color" value="Red" required/>
Red
</label>
<label class="t-color">
<input type="radio" name="color" value="Blue" required/>
Blue
</label>
</div>
</div>
<div>
<label for="sizes">T-shirt size *:</label>
<select name="sizes" id="sizes" required>
<option value="" disabled selected>Select size</option>
<option value="xs">XS</option>
<option value="s">S</option>
<option value="m">M</option>
<option value="l">L</option>
<option value="xL">XL</option>
<option value="xxL">XXL</option>
</select>
</div>
<div>
<button type="submit" id="submit">Submit</button>
</div>
</form>
</main>
<footer>
<!-- change to your name-->
<p>By HOMEWORK SOLUTION</p>
<p>By Yonas Gebre</p>
</footer>
</body>
</html>
74 changes: 74 additions & 0 deletions Form-Controls/style.css

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good job that you separated the CSS into its own file—that’s an excellent best practice and will make your code much easier to read, debug, and maintain as it grows.

Original file line number Diff line number Diff line change
@@ -0,0 +1,74 @@
/* body style */
input:valid{
border:2px solid yellow;
}
input:invalid:not(:placeholder-shown){
border:2px solid red;
}
body {
background-color: lightwhite;
max-width: 800px;
display: flex;
flex-direction: column;
align-items: center;
padding: 25px;
}

header h1 {
color: #2c3e50;
margin-bottom: 15px;
}

form {
background: skyblue;
padding: 30px;
border-radius: 8px;
box-shadow: 0 4px 15px rgba(0, 0, 0, 0.1);
width: 100%;
max-width: 400px;
}
input:focus {
border-color: #3498db;
outline: none;
}
/* Labels and Inputs */
label {
display: block;
margin-top: 15px;
margin-bottom: 5px;
font-weight: 600;
font-size: 0.9rem;
}

input[type="text"],
input[type="email"],
select,button {
align-items: right;
width: 100%;
padding: 10px;
border: 2px solid #ddd;
border-radius: 6px;
box-sizing: border-box; /* Ensures padding doesn't break width */
transition: border-color 0.3s ease;
}

.radio {
display: flex;
align-items: center;
gap: 5px;
font-weight: normal;
}
#submit {
background-color: #3498db;
margin-top: 15px;
border: none;
cursor: pointer;
font-size: 1rem;
}

/* Footer */
footer {
margin-top: 20px;
font-size: 0.8rem;
color:black;
}
Loading