Portfolio Project Guide
Day 1
- Create a new html document with a DOCTYPE and a title
- Add a main content area, centered horizontally on the page
- Add several sections of content using h1, h2, h3, and p, with css styles
- Use strong or em to style text within a paragraph
- Add a nav element at the top of the page with a link to each heading in your main section
- Float an img to the right of your main content
-
Ensure your HTML is valid using
https://validator.w3.org/
Day 2
Morning Session
-
Create a form using
display: flex
for layout - Add a text input, select menu, and textarea, each with a label. Feel free to use other form elements, like checkboxes, radio buttons, etc.
-
Support POSTing the form to
https://echo-form-body-u6ozq7lkydx0.runkit.sh/
(If you don't get this working, don't worry about it) -
Use
:hover
and:active
to make your submit button fancy, e.g. with fun colors, a shadow, or a background image. -
Use
::before
and/or::after
to make a fancy list (try replacing the bullets/numbers with something interesting) or block quote (with those really big quotes).
Afternoon Session
- Set a root font size, and use rem units for your font sizes (and possibly paddings/margins).
- Make your UI responsive in order to support phone and tablet screen sizes. Use at least 2 @media queries.
- Enable VoiceOver and navigate through your page. Identify (and possibly improve) any elements that VoiceOver doesn't handle well. If you're not sure if something is right, take a note of it and we'll discuss as a group
-
Still valid?
https://validator.w3.org/
Finished Early?
-
Try using
display: grid;
to make a photo gallery. You can use Picsum Photos, e.g.https://picsum.photos/200/300
, for images.
Day 1 Resources
Resource | Description |
---|---|
MDN | The best source of documentation for web development APIs |
HTML Specification | The full HTML language specification, documenting the syntax and every element |
W3C Standards | The standards/specifications for web development APIs |
W3C WAI | Accessibility standards and guides |
caniuse | Browser compatibility tables for web APIs |
CSS Tricks | CSS tips and guides |
W3 Validator | Validate HTML code |
VSCode Live Server extension | A quick way to serve HTML pages that reload when you change the code |
MDN Specificity Overview | An intro to specificity with examples |
Specificity Spec | The specification for CSS specificity |
Specificity Calculator | Calculate specificity for a CSS rule (3rd party) |
Kinds of Elements | MDN reference on different kinds of elements (e.g. block, inline) |
Day 2 Resources
Resource | Description |
---|---|
Flexbox Froggy | An interactive game to learn flexbox (~15 minutes) |
Grid Garden | An interactive game to learn CSS grid (~20 minutes) |
CSS Tricks Flexbox Guide | A visual overview of every flexbox property |
Using media queries (MDN) | An intro to media queries |
WAI-ARIA (MDN) | Web accessibility standards |
Using ARIA (MDN) | An intro to media queries |
UIStackView-Flexbox Cheatsheet | A comparison of the most common flexbox properties with UIStackView |
Screenreader usage survey | "In August - September 2019, WebAIM surveyed preferences of screen reader users" |