Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
31 commits
Select commit Hold shift + click to select a range
fcf8527
create 2 more article placeholders
XiaoQuark Jan 31, 2026
6d2682a
add images to all articles
Jan 31, 2026
17d0380
group article card text into sections to allow for styling size and p…
Jan 31, 2026
4041b31
change footer text and center it
Feb 3, 2026
eaa0ef3
add media query for responsive grid layout
Feb 3, 2026
cd163ce
round corners of images and read more links
Feb 3, 2026
e39b5c4
fix: upload image files to use in place of links
Feb 5, 2026
f36c935
fix: add meta description to improve SEO
Feb 5, 2026
bf127de
gives new values to colour variables and change colours of header, fo…
Feb 5, 2026
792b218
removes browser default styling
Feb 5, 2026
289cacc
fix: spacing issue around read more links, caused by previous commit
Feb 5, 2026
0a3e894
give minimum height to images
Feb 5, 2026
e980f81
add article summaries and external links
Feb 5, 2026
1b2d26d
fix: ensure article spacing is the same for all articles, indepentent…
Feb 5, 2026
aa24cec
fix: change link description to be more specific for better accessibi…
Feb 5, 2026
67c2f8e
add project requirements as comments
Feb 5, 2026
8e97eae
add all base inputs and labels
Feb 5, 2026
6d99022
add placeholder text and sizes to dropdown
Feb 5, 2026
3145af3
add two more colour options to the radio input
Feb 5, 2026
078ac2c
fix: change colored emojis to their Unicode codes as they were not ap…
Feb 5, 2026
1406605
add fieldsets for a more organised form layout
Feb 5, 2026
1fef809
change input:submit to a button:submit. Also re-define id and name or…
Feb 5, 2026
97db809
wrap labels and their inputs inside <p> tags, for improved layout
Feb 5, 2026
3afc6d7
wrap radio buttons inside list to increase spacing and improve access…
Feb 5, 2026
04b5a51
reintroduce fieldset for better layout
Feb 5, 2026
2ee94a0
make all fields required, in particular radio buttons
Feb 5, 2026
9b26c1c
add validation pattern to email input
Feb 5, 2026
f9d5f09
add min length of 2 characters to name input
Feb 5, 2026
15c7234
add meta description for SEO
Feb 5, 2026
695a40a
added placeholder option to select element
Feb 5, 2026
b5d8b0d
Merge branch 'CodeYourFuture:main' into feature/form-controls
XiaoQuark Feb 5, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
137 changes: 112 additions & 25 deletions Form-Controls/index.html
Original file line number Diff line number Diff line change
@@ -1,27 +1,114 @@
<!DOCTYPE html>
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<title>My form exercise</title>
<meta name="description" content="" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
</head>
<body>
<header>
<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>
<footer>
<!-- change to your name-->
<h2>By HOMEWORK SOLUTION</h2>
</footer>
</body>
<head>
<meta charset="utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta
name="description"
content="Accessible t-shirt order form with colour and size selection."
/>
<title>My form exercise</title>
<meta name="viewport" content="width=device-width, initial-scale=1" />
</head>
<body>
<header>
<h1>T-shirt Picker</h1>
<p>Please complete all required (*) fields to complete order</p>
</header>
<main>
<form>
<fieldset>
<legend>Customer Info</legend>
<!-- name input, must be min 2 chars long -->
<p>
<label for="name"> Name *</label>
<input
type="text"
id="name"
name="customerName"
placeholder="Jane Smith"
minlength="2"
required
/>
</p>
<!-- email input, must be a valid email format -->
<p>
<label for="email"> Email *</label>
<input
type="email"
id="email"
name="customerEmail"
placeholder="jsmith@email.com"
pattern="^[\w.-]+@[\a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$"
required
/>
</p>
</fieldset>
<fieldset>
<legend>Colours</legend>
<!-- colours input, limit to 3 colours only -->
<p>Please select a colour *</p>
<ul>
<li>
<p>
<input
type="radio"
name="colours"
id="red"
value="red"
required
/>
<label for="red"> &#x1F7E5; Red </label>
</p>
</li>
<li>
<p>
<input
type="radio"
name="colours"
id="blue"
value="blue"
/>
<label for="blue">&#x1F7E6; Blue </label>
</p>
</li>
<li>
<p>
<input
type="radio"
name="colours"
id="yellow"
value="yellow"
/>
<label for="yellow">&#x1F7E8; Yellow </label>
</p>
</li>
</ul>
</fieldset>
<fieldset>
<legend>Size</legend>
<p>
<!-- size input, limit to 6 sizes: XS, S, M, L, XL, XXL -->
<label for="size">Please select a size *</label>
<select name="size" id="size" required>
<option value="" disabled selected>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>
</p>
</fieldset>

<!-- submit button -->
<p><button type="submit">Confirm your order</button></p>
</form>
</main>
<footer>
<!-- change to your name-->
<h2>Kris Oldrini | CYF: Intro to Programming</h2>
</footer>
</body>
</html>
Binary file added Wireframe/assets/gitflow.webp
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added Wireframe/assets/reademe_file.webp
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added Wireframe/assets/wireframe.webp
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
106 changes: 75 additions & 31 deletions Wireframe/index.html
Original file line number Diff line number Diff line change
@@ -1,33 +1,77 @@
<!DOCTYPE html>
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Wireframe</title>
<link rel="stylesheet" href="style.css" />
</head>
<body>
<header>
<h1>Wireframe</h1>
<p>
This is the default, provided code and no changes have been made yet.
</p>
</header>
<main>
<article>
<img src="placeholder.svg" alt="" />
<h2>Title</h2>
<p>
Lorem ipsum dolor sit amet consectetur adipisicing elit. Quisquam,
voluptates. Quisquam, voluptates.
</p>
<a href="">Read more</a>
</article>
</main>
<footer>
<p>
This is the default, provided code and no changes have been made yet.
</p>
</footer>
</body>
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta
name="description"
content="CYF Blog shares beginner-friendly programming tips and guides for aspiring developers."
/>

<title>Wireframe</title>
<link rel="stylesheet" href="style.css" />
</head>
<body>
<header>
<h1>CYF Blog</h1>
<p>Your source of programming minutiae</p>
</header>
<main>
<article>
<img
src="assets/reademe_file.webp"
alt="Example of a readme file. On the left we see the file open in the editor and written in markdown, on the right we see a preview of what the file looks like openend in a web browser"
/>
<h2>Read me if you want to learn about README</h2>
<p>
A README file contains descriptive information about the
content of a directory in which the file is located. The
scope of the information generally includes the files of the
directory, and may include descendant directories, or even
the full directory tree.
</p>
<a href="https://www.makeareadme.com/"
>Learn how to write a README file</a
>
</article>
<article>
<img
src="assets/wireframe.webp"
alt="Four wireframe sketches for a mobile app, lined up next to each other"
/>
<h2>Wireframes: an essential blueprint</h2>
<p>
A website wireframe is a visual guide that represents the
skeletal framework of a website. It depicts the page layout
or arrangement of the website's content, including interface
elements and navigational systems, and how they work
together.
</p>
<a href="https://wireframe.cc/">Create wireframe dynamically</a>
</article>
<article>
<img
src="assets/gitflow.webp"
alt="A diagram showing an example of different git branches types: master branch, develop branch, and two feature branches"
/>
<h2>Branching for dummies</h2>
<p>
In Git and other version control systems, branching is
creating a copy of a project, file, or directory so changes
can be made independently and in parallel. A branch is like
a separate workspace where the user can try ideas and apply
changes without affecting the main project. Developers can
create branches from any branch to work on features, fixes,
or experiments.
</p>
<a
href="https://www.codecademy.com/learn/fscp-git-and-github-part-ii/modules/fscp-git-branching/cheatsheet"
>Learn to branch</a
>
</article>
</main>
<footer>
<p>Kris Oldrini for CYF - Intro to Programming</p>
</footer>
</body>
</html>
113 changes: 77 additions & 36 deletions Wireframe/style.css
Original file line number Diff line number Diff line change
Expand Up @@ -17,42 +17,69 @@ As well as useful links to learn more */
https://scrimba.com/learn-css-variables-c026
====== Design Palette ====== */
:root {
--paper: oklch(7 0 0);
--ink: color-mix(in oklab, var(--color) 5%, black);
--font: 100%/1.5 system-ui;
--space: clamp(6px, 6px + 2vw, 15px);
--line: 1px solid;
--container: 1280px;
--paper: oklch(0.9 0.03 290);
--ink: oklch(0.2 0.09 270);
--font: 100%/1.5 system-ui;
--space: clamp(6px, 6px + 2vw, 15px);
--line: 1px solid;
--container: 1280px;
}
/* ====== Base Elements ======
General rules for basic HTML elements in any context */
* {
padding: 0;
margin: 0;
box-sizing: border-box;
}
body {
background: var(--paper);
color: var(--ink);
font: var(--font);
background: var(--paper);
color: var(--ink);
font: var(--font);
}
a {
padding: var(--space);
border: var(--line);
max-width: fit-content;
padding: var(--space) 20px;
border: var(--line);
border-radius: 50px;
margin-top: auto;
width: fit-content;
background-color: var(--ink);
color: var(--paper);
line-height: 1;
}

img,
svg {
width: 100%;
object-fit: cover;
width: 100%;
object-fit: cover;
border-radius: 20px 20px 0 0;
min-height: 400px;
margin-bottom: var(--space);
}
/* ====== Site Layout ======
Setting the overall rules for page regions
https://www.w3.org/WAI/tutorials/page-structure/regions/
*/
header {
background-color: var(--ink);
color: var(--paper);
text-align: center;
padding: var(--space);
}
main {
max-width: var(--container);
margin: 0 auto calc(var(--space) * 4) auto;
max-width: var(--container);
margin: calc(var(--space) * 3) auto calc(var(--space) * 6) auto;
}
footer {
position: fixed;
bottom: 0;
text-align: center;
position: fixed;
width: 100vw;
background-color: var(--ink);
color: var(--paper);
bottom: 0;
text-align: center;
padding: var(--space) 0;
}
h1 {
font-size: 4rem;
}
/* ====== Articles Grid Layout ====
Setting the rules for how articles are placed in the main element.
Expand All @@ -62,28 +89,42 @@ https://developer.chrome.com/docs/devtools/css/grid
https://gridbyexample.com/learn/
*/
main {
display: grid;
grid-template-columns: 1fr 1fr;
gap: var(--space);
> *:first-child {
grid-column: span 2;
}
display: grid;
grid-template-columns: 1fr 1fr;
justify-content: center;
gap: var(--space);
> *:first-child {
grid-column: span 2;
}
}
/* ====== Article Layout ======
Setting the rules for how elements are placed in the article.
Now laying out just the INSIDE of the repeated card/article design.
Keeping things orderly and separate is the key to good, simple CSS.
*/
article {
border: var(--line);
padding-bottom: var(--space);
text-align: left;
display: grid;
grid-template-columns: var(--space) 1fr var(--space);
> * {
grid-column: 2/3;
}
> img {
grid-column: span 3;
}
border: var(--line);
border-radius: 20px;
padding-bottom: var(--space);
text-align: left;
display: grid;
gap: var(--space);
grid-template-columns: var(--space) 1fr var(--space);
grid-template-rows: auto auto 1fr auto;
> * {
grid-column: 2/3;
}
> img {
grid-column: span 3;
}
}

@media only screen and (max-width: 768px) {
main {
display: grid;
grid-template-columns: 1fr;
> *:first-child {
grid-column: span 1;
}
}
}
Loading