An open API service indexing awesome lists of open source software.

https://github.com/andreasbm/web-skills

A visual overview of useful skills to learn as a web developer
https://github.com/andreasbm/web-skills

accessibility algorithms architecture backend build-tools css design frameworks html javascript pwa testing web-components

Last synced: about 1 year ago
JSON representation

A visual overview of useful skills to learn as a web developer

Awesome Lists containing this project

README

          

Web Skills



Web Skills is a visual overview of useful skills to learn as a web developer. Go to https://andreasbm.github.io/web-skills to check out the visual overview or scroll through this readme to get the overview as a list. If you like the project you are very welcome to become a stargazer 🤩




Web Skills Demo



📖 Table of Contents

[![-----------------------------------------------------](https://raw.githubusercontent.com/andreasbm/readme/master/assets/lines/colored.png)](#table-of-contents)

## ➤ Table of Contents

* [➤ FAQ](#-faq)
* [What is Web Skills?](#what-is-web-skills)
* [How did you choose the skills?](#how-did-you-choose-the-skills)
* [How can I support you?](#how-can-i-support-you)
* [How can I get involved?](#how-can-i-get-involved)
* [How can I keep track of what skills I know?](#how-can-i-keep-track-of-what-skills-i-know)
* [I am overwhelmed! Help me!](#i-am-overwhelmed-help-me)
* [Why haven't you included XYZ Technology?](#why-havent-you-included-xyz-technology)
* [What does the "experimental" banner mean?](#what-does-the-experimental-banner-mean)
* [How can I get in contact with you?](#how-can-i-get-in-contact-with-you)
* [➤ Fundamentals](#-fundamentals)
* [HTML](#html)
* [Syntax](#syntax)
* [Basic Tags](#basic-tags)
* [Forms](#forms)
* [SEO](#seo)
* [Discoverable Content](#discoverable-content)
* [Svg](#svg)
* [Best Practices](#best-practices)
* [CSS](#css)
* [Syntax](#syntax-1)
* [Selectors](#selectors)
* [Specificity](#specificity)
* [Pseudo Selectors](#pseudo-selectors)
* [Box Model](#box-model)
* [Margin Collapsing](#margin-collapsing)
* [Colors](#colors)
* [Calc](#calc)
* [Layout](#layout)
* [Flex](#flex)
* [Grid](#grid)
* [Transforms](#transforms)
* [Animations](#animations)
* [Responsive Design](#responsive-design)
* [Media Queries](#media-queries)
* [Relative Units](#relative-units)
* [Images](#images)
* [CSS Variables](#css-variables)
* [Best Practices](#best-practices-1)
* [Javascript](#javascript)
* [Syntax](#syntax-2)
* [Spread](#spread)
* [Destructuring](#destructuring)
* [DOM](#dom)
* [DOM Manipulation](#dom-manipulation)
* [Events](#events)
* [Objects](#objects)
* [Prototype](#prototype)
* [Classes](#classes)
* [Regex](#regex)
* [Template Literals](#template-literals)
* [Promises](#promises)
* [Callbacks](#callbacks)
* [Async/await](#asyncawait)
* [Fetch](#fetch)
* [Web Animations](#web-animations)
* [Modules](#modules)
* [Intl](#intl)
* [Canvas](#canvas)
* [Documentation](#documentation)
* [Best Practices](#best-practices-2)
* [The Browser](#the-browser)
* [Standardization](#standardization)
* [W3C](#w3c)
* [TC39](#tc39)
* [WHATWG](#whatwg)
* [Specifications](#specifications)
* [Browser Engines](#browser-engines)
* [Webkit](#webkit)
* [Blink](#blink)
* [Gecko](#gecko)
* [HTTP](#http)
* [The Internet](#the-internet)
* [Polyfills](#polyfills)
* [Debugging](#debugging)
* [Developer console](#developer-console)
* [➤ Accessibility](#-accessibility)
* [The why](#the-why)
* [Screen Readers](#screen-readers)
* [Accessibility tree](#accessibility-tree)
* [ARIA](#aria)
* [Accessible HTML](#accessible-html)
* [Alt text](#alt-text)
* [Accessible CSS](#accessible-css)
* [Accessible forms](#accessible-forms)
* [UI States](#ui-states)
* [Keyboard Accessibility](#keyboard-accessibility)
* [Focus](#focus)
* [Accessible Colors](#accessible-colors)
* [Laws & Policies](#laws--policies)
* [Audits](#audits)
* [➤ Web Components](#-web-components)
* [Custom Elements](#custom-elements)
* [HTML Templates](#html-templates)
* [Shadow DOM](#shadow-dom)
* [Shadow Parts](#shadow-parts)
* [Slots](#slots)
* [Best practices](#best-practices)
* [Constructible Stylesheets](#constructible-stylesheets)
* [Form Participation](#form-participation)
* [➤ Progressive Webapps](#-progressive-webapps)
* [API's](#apis)
* [Storage](#storage)
* [Routing](#routing)
* [History API](#history-api)
* [Service Workers](#service-workers)
* [Offline first](#offline-first)
* [Push notifications](#push-notifications)
* [Web App manifest](#web-app-manifest)
* [Add to homescreen](#add-to-homescreen)
* [Pointer Events](#pointer-events)
* [Loading Performance](#loading-performance)
* [App shell](#app-shell)
* [Render-Blocking Resources](#render-blocking-resources)
* [Compression](#compression)
* [Performance metrics](#performance-metrics)
* [Largest Contentful Paint](#largest-contentful-paint)
* [Total Blocking Time](#total-blocking-time)
* [Time to Interactive](#time-to-interactive)
* [Lazy Loading](#lazy-loading)
* [Dynamic Import](#dynamic-import)
* [Offscreen images](#offscreen-images)
* [Critical Request Chains](#critical-request-chains)
* [Tree shaking](#tree-shaking)
* [Codesplitting](#codesplitting)
* [PRPL Pattern](#prpl-pattern)
* [Resource Prioritization](#resource-prioritization)
* [Caching](#caching)
* [Rendering Performance](#rendering-performance)
* [Rendering](#rendering)
* [Event loop](#event-loop)
* [Microtask](#microtask)
* [Stack](#stack)
* [Heap](#heap)
* [RAIL Model](#rail-model)
* [requestAnimationFrame](#requestanimationframe)
* [requestIdleCallback](#requestidlecallback)
* [Critical Rendering Path](#critical-rendering-path)
* [The Pixel Pipeline](#the-pixel-pipeline)
* [Style calculations](#style-calculations)
* [Transforms](#transforms-1)
* [Paint areas](#paint-areas)
* [Layout Trashing](#layout-trashing)
* [Layers](#layers)
* [Debounce](#debounce)
* [CSS Containment](#css-containment)
* [Web Workers](#web-workers)
* [Security](#security)
* [HTTPS](#https)
* [Browser Sandbox](#browser-sandbox)
* [OWASP](#owasp)
* [Cross-Site Scripting](#cross-site-scripting)
* [Clickjacking](#clickjacking)
* [Content Security Policy](#content-security-policy)
* [Audits](#audits-1)
* [Performance budgets](#performance-budgets)
* [Lighthouse](#lighthouse)
* [Chrome DevTools](#chrome-devtools)
* [➤ Build tools](#-build-tools)
* [Package Managers](#package-managers)
* [NPM](#npm)
* [Yarn](#yarn)
* [Module Bundlers](#module-bundlers)
* [Rollup](#rollup)
* [Webpack](#webpack)
* [Parcel](#parcel)
* [Snowpack](#snowpack)
* [Linters and formatters](#linters-and-formatters)
* [Prettier](#prettier)
* [ESLint](#eslint)
* [Task Runners](#task-runners)
* [NPM Scripts](#npm-scripts)
* [Transpilers](#transpilers)
* [Babel](#babel)
* [Typescript](#typescript)
* [CSS Pre-processors](#css-pre-processors)
* [SASS](#sass)
* [PostCSS](#postcss)
* [Node.js](#nodejs)
* [➤ Frameworks & Libraries](#-frameworks--libraries)
* [lit-element](#lit-element)
* [Vue](#vue)
* [React](#react)
* [Angular](#angular)
* [Svelte](#svelte)
* [Stencil](#stencil)
* [➤ Testing](#-testing)
* [Testing Methodologies](#testing-methodologies)
* [Unit Testing](#unit-testing)
* [Integration Testing](#integration-testing)
* [System Testing](#system-testing)
* [Acceptance Testing](#acceptance-testing)
* [Smoke Testing](#smoke-testing)
* [Performance Testing](#performance-testing)
* [Usability Testing](#usability-testing)
* [White Box Testing](#white-box-testing)
* [Black Box Testing](#black-box-testing)
* [Automated Testing](#automated-testing)
* [Manual Testing](#manual-testing)
* [Continuous integration](#continuous-integration)
* [A/B Testing](#ab-testing)
* [Test Runners](#test-runners)
* [Karma](#karma)
* [Mocha](#mocha)
* [Jasmine](#jasmine)
* [Cypress](#cypress)
* [Ava](#ava)
* [Best Practices](#best-practices-3)
* [➤ Architecture & paradigms](#-architecture--paradigms)
* [Paradigms](#paradigms)
* [Programming Paradigms](#programming-paradigms)
* [Object Oriented Programming](#object-oriented-programming)
* [S.O.L.I.D](#solid)
* [Functional programming](#functional-programming)
* [Recursion](#recursion)
* [Higher-Order Functions](#higher-order-functions)
* [Currying](#currying)
* [Monads](#monads)
* [Architecture](#architecture)
* [Design Patterns](#design-patterns)
* [Singleton](#singleton)
* [Observer](#observer)
* [Prototype](#prototype-1)
* [Bridge](#bridge)
* [Proxy](#proxy)
* [Chain of responsibility](#chain-of-responsibility)
* [Constructor](#constructor)
* [CSS Methodologies](#css-methodologies)
* [BEM](#bem)
* [SMACSS](#smacss)
* [OOCSS](#oocss)
* [➤ Team Collaboration](#-team-collaboration)
* [Version Control](#version-control)
* [Git](#git)
* [Github](#github)
* [Bitbucket](#bitbucket)
* [Management](#management)
* [Agile Development](#agile-development)
* [Scrum](#scrum)
* [Kanban](#kanban)
* [Waterfall Development](#waterfall-development)
* [Test Driven Development](#test-driven-development)
* [➤ Design & UX](#-design--ux)
* [Color Theory](#color-theory)
* [Color Wheel](#color-wheel)
* [Typography](#typography)
* [Font Size](#font-size)
* [Line Spacing](#line-spacing)
* [C.R.A.P](#crap)
* [Contrast](#contrast)
* [Repetition](#repetition)
* [Alignment](#alignment)
* [Proximity](#proximity)
* [Consistency](#consistency)
* [Spacing](#spacing)
* [Error Handling](#error-handling)
* [Loading](#loading)
* [The Golden Ratio](#the-golden-ratio)
* [Mobile First](#mobile-first)
* [Hit Targets](#hit-targets)
* [Design Systems](#design-systems)
* [Material Design](#material-design)
* [Fluent Design](#fluent-design)
* [Accessibility](#accessibility)
* [Best Practices](#best-practices-4)
* [➤ The Modern Web](#-the-modern-web)
* [Streams](#streams)
* [Media Streams](#media-streams)
* [Media Recorder](#media-recorder)
* [Web RTC](#web-rtc)
* [Screen Capture](#screen-capture)
* [Generators](#generators)
* [Speech Synthesis](#speech-synthesis)
* [Web Sockets](#web-sockets)
* [Geolocation](#geolocation)
* [Device orientation & motion](#device-orientation--motion)
* [Fullscreen](#fullscreen)
* [Variable Fonts](#variable-fonts)
* [HTTP/2](#http2)
* [Payment Request API](#payment-request-api)
* [Web Audio](#web-audio)
* [Observers](#observers)
* [Mutation Observer](#mutation-observer)
* [Intersection Observer](#intersection-observer)
* [Resize Observer](#resize-observer)
* [Performance Observer](#performance-observer)
* [Scrollsnapping](#scrollsnapping)
* [Web Assembly](#web-assembly)
* [Beacon](#beacon)
* [Clipboard](#clipboard)
* [Share](#share)
* [Performance API](#performance-api)
* [Gamepad API](#gamepad-api)
* [Speech Recognition](#speech-recognition)
* [Interaction Media Queries](#interaction-media-queries)
* [Browser Extensions](#browser-extensions)
* [Pointer Lock API](#pointer-lock-api)
* [Picture In Picture](#picture-in-picture)
* [Proxies](#proxies)
* [Houdini](#houdini)
* [Project Fugu](#project-fugu)
* [Web Authentication API](#web-authentication-api)
* [Credentials Manager API](#credentials-manager-api)
* [Native File System](#native-file-system)
* [Shape Detection](#shape-detection)
* [Web Bluetooth](#web-bluetooth)
* [Web USB](#web-usb)
* [Web XR](#web-xr)
* [Presentation](#presentation)
* [Network Information API](#network-information-api)
* [➤ Algorithms & Data structures](#-algorithms--data-structures)
* [Data structures](#data-structures)
* [Arrays](#arrays)
* [Queues & Stacks](#queues--stacks)
* [Trees](#trees)
* [Binary Indexed Tree](#binary-indexed-tree)
* [Heap](#heap-1)
* [Red-black Tree](#red-black-tree)
* [Trie](#trie)
* [K-D Tree](#k-d-tree)
* [Hash Tables](#hash-tables)
* [Linked Lists](#linked-lists)
* [Graphs](#graphs)
* [Analysis](#analysis)
* [Time complexity](#time-complexity)
* [Cost model](#cost-model)
* [Order of Growth](#order-of-growth)
* [Big O notation](#big-o-notation)
* [Space Complexity](#space-complexity)
* [Algorithms](#algorithms)
* [Sorting](#sorting)
* [Insertion Sort](#insertion-sort)
* [Quicksort](#quicksort)
* [Mergesort](#mergesort)
* [Heapsort](#heapsort)
* [Searching](#searching)
* [Binary Search](#binary-search)
* [Breadth First Search](#breadth-first-search)
* [Depth First Search](#depth-first-search)
* [Dijkstra's Algorithm](#dijkstras-algorithm)
* [String Search](#string-search)
* [Hashing](#hashing)
* [➤ Databases & Servers](#-databases--servers)
* [Databases](#databases)
* [Relational Databases](#relational-databases)
* [SQL](#sql)
* [MySQL](#mysql)
* [PostgreSQL](#postgresql)
* [Non-relational Databases](#non-relational-databases)
* [Redis](#redis)
* [MongoDB](#mongodb)
* [Data Modelling](#data-modelling)
* [ER Diagram](#er-diagram)
* [Keys](#keys)
* [Indexing](#indexing)
* [Data Integrity](#data-integrity)
* [Normalization](#normalization)
* [Functional Dependencies](#functional-dependencies)
* [Normal Forms](#normal-forms)
* [Transactions](#transactions)
* [ACID](#acid)
* [Serializability](#serializability)
* [Locks](#locks)
* [Deadlocks](#deadlocks)
* [Precedence graph](#precedence-graph)
* [Servers](#servers)
* [Architectural Models](#architectural-models)
* [Client-Server](#client-server)
* [Proxy Server](#proxy-server)
* [Peer-To-Peer](#peer-to-peer)
* [Middleware](#middleware)
* [Request-Reply Protocol](#request-reply-protocol)
* [UDP](#udp)
* [TCP](#tcp)
* [REST API](#rest-api)
* [CRUD](#crud)
* [Express](#express)
* [GraphQL](#graphql)
* [GNU/Linux](#gnulinux)
* [Docker](#docker)
* [SSH](#ssh)
* [➤ Contributors](#-contributors)
* [➤ License](#-license)

[![-----------------------------------------------------](https://raw.githubusercontent.com/andreasbm/readme/master/assets/lines/colored.png)](#faq)

## ➤ FAQ

### What is Web Skills?

Web Skills is a visual overview of useful skills to learn as a web developer. It is useful for people who just started learning about web development and for people who have been in the field for years and want to learn new things. As a beginner, I would encourage you not to see this website as the definitive list of what you need to know but as an example of what you can learn and where you can start. The skills are arranged in chronological order based on what learning path I recommend you to take but feel free to jump around freely.

### How did you choose the skills?

The skills are derived from a combination of 10 years of experience, a bachelor in software engineering and what I personally find to be the most useful to know on a day-to-day basis. Therefore, you'll notice that it's missing a lot of things. For example, I am not a PHP developer - because of this, PHP is not included. If you were a PHP developer, this overview would probably look a lot different.

### How can I support you?

I am spending my spare time building Web Skills for free because I want to help people get into web development. My motivation comes from people finding Web Skills useful, so if you like the project feel free to support me in any way you like! For example, you are more than welcome to become a [stargazer](https://github.com/andreasbm/web-skills/stargazers), share Web Skills with your friends and followers or create blog articles linking to Web Skills. If you want to, it will absolutely make my day if you [support me with a cup of coffee](https://www.buymeacoffee.com/AndreasMehlsen)! <3

### How can I get involved?

You are welcome to get involved in any way you like. If you want to, you can go to the [issues page](https://github.com/andreasbm/web-skills/issues) and help me fix the spelling, fix issues or suggest some new features. Any involvement is highly appreciated!

### How can I keep track of what skills I know?

If you scroll to the bottom of the page, you will find a button that says "Sign in with Google". If you click this button and sign in, you will be able to mark skills as completed.

### I am overwhelmed! Help me!

I totally understand if you are a bit overwhelmed by the amount of skills on the page – but I can assure you that this overview includes much, much more than most people will ever need to know. My main goal is to provide a visual overview of web development and make people hungry for learning more. One of the things I absolute love about being a developer is learning new skills. I think it is amazing to be in a field where you can do what you do for a lifetime and still learn something new! People cannot be an expert in every skill on this page so try to find what excites you the most and become really good at that.

### Why haven't you included XYZ Technology?

The skills are based on what I personally find to be the most useful on a day-to-day basis. If you think something really important is missing, you can always suggest it on the [issues page](https://github.com/andreasbm/web-skills/issues).

### What does the "experimental" banner mean?

When a skill is described as experimental, it means that the technology is immature and currently in the process of being added to the Web platform (or considered for addition). Think carefully before you start using experimental technology in any kind of production project. The definition used in Web Skills is based on the excellent definition used on [MDN](https://developer.mozilla.org/en-US/docs/MDN/Contribute/Guidelines/Conventions_definitions#Experimental). You are very welcome to open an issue if you see a skill you believe should be marked as "experimental" or have the banner removed.

### How can I get in contact with you?

Reach out to me on Twitter at [@AndreasMehlsen](https://twitter.com/AndreasMehlsen) or take a look at [my website](https://andreasbm.github.io) if you want to learn more about what other projects I'm working on.

[![-----------------------------------------------------](https://raw.githubusercontent.com/andreasbm/readme/master/assets/lines/colored.png)](#fundamentals)

## ➤ Fundamentals

### HTML

### Syntax

Learn the basics of HTML and get comfortable with it's syntax and main concepts.

* [ ] [Logo MDN - HTML Basics](https://developer.mozilla.org/en-US/docs/Learn/Getting_started_with_the_web/HTML_basics)
* [ ] [Logo MDN - Introduction to HTML](https://developer.mozilla.org/en-US/docs/Learn/HTML/Introduction_to_HTML)
* [ ] [Logo Codecademy - Learn HTML](https://www.codecademy.com/learn/learn-html)

#### Basic Tags

Get familiar with the basic HTML tags

* [ ] [Logo MDN - HTML elements reference](https://developer.mozilla.org/en-US/docs/Web/HTML/Element)
* [ ] [Logo Tutorialspoint - Basic HTML tags](https://www.tutorialspoint.com/html/html_basic_tags.htm)
* [ ] [Logo Elated - First 10 HTML tags](https://www.elated.com/first-10-html-tags/)
* [ ] [Logo W3Schools - HTML tags](https://www.w3schools.com/tags/ref_byfunc.asp)

### Forms

Learn how to design efficient forms, validating them effectively and keeping the user informed along the way.

* [ ] [Logo MDN - HTML forms](https://developer.mozilla.org/en-US/docs/Learn/HTML/Forms)
* [ ] [Logo Google Web - Forms](https://developers.google.com/web/fundamentals/design-and-ux/input/forms/)
* [ ] [Logo W3Schools - Forms](https://www.w3schools.com/html/html_forms.asp)

### SEO

Learn how to make your content search-friendly.

* [ ] [Logo web.dev - Discoverable](https://web.dev/discoverable)
* [ ] [Logo Google Search - Get Started](https://developers.google.com/search/docs/guides/get-started)
* [ ] [Logo Google Search - SEO basics](https://developers.google.com/search/docs/guides/javascript-seo-basics)
* [ ] [Logo web.dev - SEO audits](https://web.dev/lighthouse-seo)

#### Discoverable Content

Learn how to structure your HTML in a way that provides a rich experience when sharing it online.

* [ ] [Logo Google Web - Social Discovery](https://developers.google.com/web/fundamentals/discovery/social-discovery)
* [ ] [Logo Google Search - Search Features](https://developers.google.com/search/docs/guides/search-features)
* [ ] [Logo Google Search - Structured Data](https://developers.google.com/search/docs/guides/intro-structured-data)
* [ ] [Logo web.dev - Easily discoverable](https://web.dev/discoverable)

### Svg

Learn how to work with SVG files to make graphics look crisp across all screen resolutions.

* [ ] [Logo MDN - Adding vector graphics to the Web](https://developer.mozilla.org/en-US/docs/Learn/HTML/Multimedia_and_embedding/Adding_vector_graphics_to_the_Web)
* [ ] [Logo SVG on the web](https://svgontheweb.com/)

### Best Practices

Learn the best practices of writing HTML.

* [ ] [Logo MDN - HTML guidelines](https://developer.mozilla.org/en-US/docs/MDN/Contribute/Guidelines/Code_guidelines/HTML)
* [ ] [Logo W3Schools - HTML Coding Conventions](https://www.w3schools.com/html/html5_syntax.asp)

### CSS

### Syntax

Learn the basics of CSS and get comfortable with it's syntax and main concepts.

* [ ] [Logo MDN - CSS Basics](https://developer.mozilla.org/en-US/docs/Learn/Getting_started_with_the_web/CSS_basics)
* [ ] [Logo W3Schools - CSS Tutorial](https://www.w3schools.com/css/default.asp)
* [ ] [Logo Supercharged - CSS Selectors](https://www.youtube.com/watch?v=IKho_xDKaLw)
* [ ] [Logo MDN - CSS first steps](https://developer.mozilla.org/en-US/docs/Learn/CSS/First_steps)
* [ ] [Logo MDN - CSS building blocks](https://developer.mozilla.org/en-US/docs/Learn/CSS/Building_blocks)
* [ ] [Logo MDN - CSS values and units](https://developer.mozilla.org/en-US/docs/Learn/CSS/Building_blocks/Values_and_units)
* [ ] [Logo MDN - CSS Syntax](https://developer.mozilla.org/en-US/docs/Web/CSS/Syntax)

### Selectors

Learn about CSS selectors and how to effeciently target DOM elements.

* [ ] [Logo MDN - CSS selectors](https://developer.mozilla.org/en-US/docs/Learn/CSS/Building_blocks/Selectors)
* [ ] [Logo MDN - All selectors](https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Selectors)
* [ ] [Logo CSS Tricks - Child and Sibling Selectors](https://css-tricks.com/child-and-sibling-selectors/)
* [ ] [Logo CSS Tricks - All Selectors](https://css-tricks.com/almanac/selectors/)
* [ ] [Logo W3Schools - CSS Combinators](https://www.w3schools.com/css/css_combinators.asp)

#### Specificity

Learn what specificity means and how to use it when writing CSS.

* [ ] [Logo MDN - Specificity](https://developer.mozilla.org/en-US/docs/Web/CSS/Specificity)
* [ ] [Logo MDN - Cascade and inheritance](https://developer.mozilla.org/en-US/docs/Learn/CSS/Building_blocks/Cascade_and_inheritance)
* [ ] [Logo dev.to - CSS Specificity](https://dev.to/emmawedekind/css-specificity-1kca)
* [ ] [Logo Specificity Calculator](https://specificity.keegan.st/)
* [ ] [Logo W3Schools - CSS Specificity](https://www.w3schools.com/css/css_specificity.asp)

#### Pseudo Selectors

Learn how to use pseudo selectors.

* [ ] [Logo MDN - Pseudo-classes](https://developer.mozilla.org/en-US/docs/Web/CSS/Pseudo-classes)
* [ ] [Logo CSS Tricks - Meet the Pseudo Class Selectors](https://css-tricks.com/pseudo-class-selectors/)
* [ ] [Logo When do the :hover, :focus, and :active pseudo-classes apply?](https://bitsofco.de/when-do-the-hover-focus-and-active-pseudo-classes-apply/)
* [ ] [Logo W3Schools - CSS Pseudo-elements](https://www.w3schools.com/css/css_pseudo_elements.asp)
* [ ] [Logo W3Schools - CSS Pseudo-classes](https://www.w3schools.com/css/css_pseudo_classes.asp)

### Box Model

Learn what the CSS box model means.

* [ ] [Logo MDN - Introduction to the CSS basic box model](https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Box_Model/Introduction_to_the_CSS_box_model)
* [ ] [Logo MDN - The box model](https://developer.mozilla.org/en-US/docs/Learn/CSS/Building_blocks/The_box_model)
* [ ] [Logo CSS Tricks - Inheriting box-sizing](https://css-tricks.com/inheriting-box-sizing-probably-slightly-better-best-practice/)

#### Margin Collapsing

Learn about margin collapsing.

* [ ] [Logo MDN - Mastering margin collapsing](https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Box_Model/Mastering_margin_collapsing)
* [ ] [Logo Margin Collapse in CSS: What, Why, and How](https://medium.com/@joseph0crick/margin-collapse-in-css-what-why-and-how-328c10e37ca0)
* [ ] [Logo CSS Tricks - What You Should Know About Collapsing Margins](https://css-tricks.com/what-you-should-know-about-collapsing-margins/)
* [ ] [Logo What's the Deal with Collapsible Margins?](https://bitsofco.de/collapsible-margins/)
* [ ] [Logo What’s the Deal with Margin Collapse?](https://jonathan-harrell.com/whats-the-deal-with-margin-collapse/)

### Colors

Learn the different ways you can define colors in CSS.

* [ ] [Logo MDN - Color](https://developer.mozilla.org/en-US/docs/Web/CSS/color)
* [ ] [Logo MDN - ](https://developer.mozilla.org/en-US/docs/Web/CSS/color_value)
* [ ] [Logo W3Schools - CSS Colors](https://www.w3schools.com/css/css_colors.asp)

### Calc

Learn how to use the CSS calc function.

* [ ] [Logo MDN - Calc](https://developer.mozilla.org/en-US/docs/Web/CSS/calc)
* [ ] [Logo CSS Tricks - A Couple of Use Cases for Calc()](https://css-tricks.com/a-couple-of-use-cases-for-calc/)

### Layout

Learn the different layout types for web.

* [ ] [Logo Chrome Dev - Basic Layout](https://developers.google.com/training/certification/mobile-web-specialist/study-guide/basic-layout)
* [ ] [Logo W3Schools - CSS Website Layout](https://www.w3schools.com/css/css_website_layout.asp)
* [ ] [Logo MDN - Document and website structure](https://developer.mozilla.org/en-US/docs/Learn/HTML/Introduction_to_HTML/Document_and_website_structure)
* [ ] [Logo MDN - CSS layout](https://developer.mozilla.org/en-US/docs/Learn/CSS/CSS_layout)

#### Flex

Learn how to create layouts using flexbox.

* [ ] [Logo MDN - Flexbox](https://developer.mozilla.org/en-US/docs/Learn/CSS/CSS_layout/Flexbox)
* [ ] [Logo A Complete Guide to Flexbox](https://css-tricks.com/snippets/css/a-guide-to-flexbox/)
* [ ] [Logo MDN - Flexbox](https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Flexible_Box_Layout/Basic_Concepts_of_Flexbox)
* [ ] [Logo Flexbox Froggy](https://flexboxfroggy.com/)
* [ ] [Logo Flexbox Defense](http://flexboxdefense.com)

#### Grid

Learn how to create layouts using CSS Grid.

* [ ] [Logo MDN - Grids](https://developer.mozilla.org/en-US/docs/Learn/CSS/CSS_layout/Grids)
* [ ] [Logo A Complete Guide to CSS Grid](https://css-tricks.com/snippets/css/complete-guide-grid/)
* [ ] [Logo MDN - CSS Grid](https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Grid_Layout)
* [ ] [Logo CSS Grid Garden](https://cssgridgarden.com/)
* [ ] [Logo Supercharged - CSS Grids](https://www.youtube.com/watch?v=AqwPrR7hklE)

### Transforms

Learn the different ways to transform elements through CSS.

* [ ] [Logo MDN - transform](https://developer.mozilla.org/en-US/docs/Web/CSS/transform)
* [ ] [Logo CSS Tricks - Transform](https://css-tricks.com/almanac/properties/t/transform/)

#### Animations

Learn how to animate elements through CSS using keyframes.

* [ ] [Logo MDN - Using CSS animations](https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Animations/Using_CSS_animations)
* [ ] [Logo CSS Tricks - Animation](https://css-tricks.com/almanac/properties/a/animation/)

### Responsive Design

Learn how to make your website responsive so it works across different screen sizes.

* [ ] [Logo MDN - Responsive design](https://developer.mozilla.org/en-US/docs/Learn/CSS/CSS_layout/Responsive_Design)
* [ ] [Logo Responsive Web Design Fundamentals by Google](https://www.udacity.com/course/responsive-web-design-fundamentals--ud893)
* [ ] [Logo Google Dev - Responsive Design](https://developers.google.com/web/fundamentals/design-and-ux/responsive)
* [ ] [Logo Google Dev - UX Patterns](https://developers.google.com/web/fundamentals/design-and-ux/responsive/patterns)
* [ ] [Logo Google Dev - Responsive Content](https://developers.google.com/web/fundamentals/design-and-ux/responsive/content)
* [ ] [Logo Codelabs - Responsive Design](https://codelabs.developers.google.com/codelabs/pwa-responsive-design/index.html?index=..%2F..dev-pwa-training#0)

#### Media Queries

Learn how use media queries to build responsive layout.

* [ ] [Logo CSS Tricks - CSS Media Queries & Using Available Space](https://css-tricks.com/css-media-queries/)
* [ ] [Logo MDN - Using media queries](https://developer.mozilla.org/en-US/docs/Web/CSS/Media_Queries/Using_media_queries)
* [ ] [Logo MDN - Using Media Queries for Accessibility](https://developer.mozilla.org/en-US/docs/Web/CSS/Media_Queries/Using_Media_Queries_for_Accessibility)

#### Relative Units

Learn how to use relative units for properties such as font sizes and spacing.

* [ ] [Logo MDN - Sizing items in CSS](https://developer.mozilla.org/en-US/docs/Learn/CSS/Building_blocks/Sizing_items_in_CSS)
* [ ] [Logo MDN - CSS values and units](https://developer.mozilla.org/en-US/docs/Learn/CSS/Building_blocks/Values_and_units)
* [ ] [Logo The CSS Workshop - Relative Units](https://thecssworkshop.com/lessons/relative-units)
* [ ] [Logo CSS Tricks - Fun with Viewport Units](https://css-tricks.com/fun-viewport-units/)
* [ ] [Logo dev.to - 15 CSS Relative units](https://dev.to/bytegasm/15-css-relative-units-how-many-do-you-know-em-rem-ex-cap-ch-ic-6m)

#### Images

Learn how to make images responsive, always showing the best possible version for the screen size.

* [ ] [Logo Google Devs - Responsive Images](https://developers.google.com/web/fundamentals/design-and-ux/responsive/images)
* [ ] [Logo MDN - Responsive Images](https://developer.mozilla.org/en-US/docs/Learn/HTML/Multimedia_and_embedding/Responsive_images)

### CSS Variables

Learn how to define and use CSS variables.

* [ ] [Logo MDN - Using CSS custom properties](https://developer.mozilla.org/en-US/docs/Web/CSS/Using_CSS_custom_properties)
* [ ] [Logo Google Devs - CSS Variables: Why Should You Care?](https://developers.google.com/web/updates/2016/02/css-variables-why-should-you-care)
* [ ] [Logo dev.to - CSS Quickies: CSS Variables](https://dev.to/lampewebdev/css-quickies-css-variables-or-how-you-create-a-white-dark-theme-easily-1i0i)
* [ ] [Logo CSS Variables explained with 5 examples](https://codeburst.io/css-variables-explained-with-5-examples-84adaffaa5bd)

### Best Practices

Learn the best practices of writing CSS.

* [ ] [Logo MDN - CSS guidelines](https://developer.mozilla.org/en-US/docs/MDN/Contribute/Guidelines/Code_guidelines/CSS)
* [ ] [Logo MDN - Organizing your CSS](https://developer.mozilla.org/en-US/docs/Learn/CSS/Building_blocks/Organizing)
* [ ] [Logo Speckyboy - Good and bad CSS practices](https://speckyboy.com/good-bad-css-practices/)

### Javascript

### Syntax

Learn the basics of Javascript and get comfortable with it's syntax and main concepts.

* [ ] [Logo MDN - Javascript First Steps](https://developer.mozilla.org/en-US/docs/Learn/JavaScript/First_steps)
* [ ] [Logo MDN - Javascript Basics](https://developer.mozilla.org/en-US/docs/Learn/Getting_started_with_the_web/JavaScript_basics)
* [ ] [Logo MDN - Javascript Building Blocks](https://developer.mozilla.org/en-US/docs/Learn/JavaScript/Building_blocks)

#### Spread

Learn how the spread syntax can help you when working with arrays.

* [ ] [Logo MDN - Spread syntax](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Spread_syntax)
* [ ] [Logo Freecodecamp - An introduction to Spread syntax](https://www.freecodecamp.org/news/an-introduction-to-spread-syntax-in-javascript-fba39595922c/)
* [ ] [Logo Object rest and spread properties](https://v8.dev/features/object-rest-spread)

#### Destructuring

Learn how destructuring can help you when working with objects.

* [ ] [Logo MDN - Destructuring assignment](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Destructuring_assignment)
* [ ] [Logo MDN - ES6 In Depth: Destructuring](https://hacks.mozilla.org/2015/05/es6-in-depth-destructuring/)
* [ ] [Logo javascript.info - Destructuring assignment](https://javascript.info/destructuring-assignment)

### DOM

Learn how the HTML is represented as objects that comprise the structure and content of a document.

* [ ] [Logo MDN - DOM Introduction](https://developer.mozilla.org/en-US/docs/Web/API/Document_Object_Model/Introduction)
* [ ] [Logo Freecodecamp - What's the DOM](https://www.freecodecamp.org/news/whats-the-document-object-model-and-why-you-should-know-how-to-use-it-1a2d0bc5429d/)
* [ ] [Logo Introduction to the DOM](https://learn.co/lessons/introduction-to-the-dom)
* [ ] [Logo htmldom.dev](https://htmldom.dev/)

#### DOM Manipulation

Learn how to query HTML elements through Javascript and manipulate them.

* [ ] [Logo MDN - Locating DOM elements using selectors](https://developer.mozilla.org/en-US/docs/Web/API/Document_object_model/Locating_DOM_elements_using_selectors)
* [ ] [Logo Supercharged - querySelector](https://www.youtube.com/watch?v=s0vg_H9hBuU)

### Events

Learn how to dispatch and listen for events.

* [ ] [Logo MDN - Introduction to events](https://developer.mozilla.org/en-US/docs/Learn/JavaScript/Building_blocks/Events)
* [ ] [Logo MDN - Creating and triggering events](https://developer.mozilla.org/en-US/docs/Web/Guide/Events/Creating_and_triggering_events)
* [ ] [Logo Event Bubbling and Event Capturing in JavaScript](https://medium.com/@vsvaibhav2016/event-bubbling-and-event-capturing-in-javascript-6ff38bec30e)
* [ ] [Logo Freecodecamp - A simplified explanation of event propagation](https://www.freecodecamp.org/news/a-simplified-explanation-of-event-propagation-in-javascript-f9de7961a06e/)
* [ ] [Logo JavaScript Events Explained](https://flaviocopes.com/javascript-events/)
* [ ] [Logo MDN - addEventListener()](https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/addEventListener)
* [ ] [Logo MDN - removeEventListener(](https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/removeEventListener)
* [ ] [Logo Event order](https://www.quirksmode.org/js/events_order.html)

### Objects

Learn how to create and use objects.

* [ ] [Logo MDN - Introducing JavaScript objects](https://developer.mozilla.org/en-US/docs/Learn/JavaScript/Objects)
* [ ] [Logo MDN - Working with objects](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Working_with_Objects)
* [ ] [Logo javascript.info - Objects](https://javascript.info/object)
* [ ] [Logo MDN - this](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/this)
* [ ] [Logo W3Schools - The JavaScript this Keyword](https://www.w3schools.com/js/js_this.asp)
* [ ] [Logo MDN - bind()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/bind)
* [ ] [Logo MDN - new operator](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/new)
* [ ] [Logo MDN - new.target](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/new.target)
* [ ] [Logo Data Structures: Objects and Arrays](https://scotch.io/courses/10-need-to-know-javascript-concepts/data-structures-objects-and-arrays)

#### Prototype

Learn how to extend objects and functions through its prototype.

* [ ] [Logo The prototype chain](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Inheritance_and_the_prototype_chain)
* [ ] [Logo Prototypes in JavaScript](https://medium.com/better-programming/prototypes-in-javascript-5bba2990e04b)
* [ ] [Logo dev.to - JavaScript Visualized: Prototypal Inheritance](https://dev.to/lydiahallie/javascript-visualized-prototypal-inheritance-47co)

##### Classes

Learn how to define and use classes. Get somewhat comfortable with some of the object oriented concepts such as inheritence and encapsulation.

* [ ] [Logo MDN - Classes](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Classes)
* [ ] [Logo Medium - ES6 Classes](https://medium.com/@luke_smaki/javascript-es6-classes-8a34b0a6720a)
* [ ] [Logo MDN - Inheritance](https://developer.mozilla.org/en-US/docs/Learn/JavaScript/Objects/Inheritance)
* [ ] [Logo MDN - Object Oriented Programming](https://developer.mozilla.org/en-US/docs/Learn/JavaScript/Objects/Object-oriented_JS)
* [ ] [Logo MDN - super](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/super)

### Regex

Learn how to use regex to extract information from strings.

* [ ] [Logo MDN - Regular Expressions](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions)
* [ ] [Logo javascript.info - Regular expressions](https://javascript.info/regular-expressions)
* [ ] [Logo MDN - RegExp](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp)

### Template Literals

Learn how template literals and tagged templates and help you manipulate strings.

* [ ] [Logo MDN - Template literals](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Template_literals)
* [ ] [Logo MDN - ES6 In Depth: Template strings](https://hacks.mozilla.org/2015/05/es6-in-depth-template-strings-2/)
* [ ] [Logo Google Devs - Getting Literal With ES6 Template Strings](https://developers.google.com/web/updates/2015/01/ES6-Template-Strings)

### Promises

Learn how to use promises and what asynchronous code means.

* [ ] [Logo Google Devs - JavaScript Promises: an Introduction](https://developers.google.com/web/fundamentals/primers/promises)
* [ ] [Logo MDN - Promise](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise)
* [ ] [Logo Master the JavaScript Interview: What is a Promise?](https://medium.com/javascript-scene/master-the-javascript-interview-what-is-a-promise-27fc71e77261)

#### Callbacks

Learn how to use callbacks and why they are not always a good idea.

* [ ] [Logo MDN - Callback function](https://developer.mozilla.org/en-US/docs/Glossary/Callback_function)
* [ ] [Logo JavaScript: What the heck is a Callback?](https://codeburst.io/javascript-what-the-heck-is-a-callback-aba4da2deced)
* [ ] [Logo javascript.info - Callbacks](https://javascript.info/callbacks)

#### Async/await

Learn how to use the async and await keywords to make it easier to write asynchronous code.

* [ ] [Logo MDN - async function](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/async_function)
* [ ] [Logo Google Devs - Async functions](https://developers.google.com/web/fundamentals/primers/async-functions)
* [ ] [Logo javascript.info - Async/await](https://javascript.info/async-await)

#### Fetch

Learn how to use the fetch API to fetch data.

* [ ] [Logo Google Devs - Introduction to fetch](https://developers.google.com/web/updates/2015/03/introduction-to-fetch)
* [ ] [Logo Google Devs - Networking](https://developers.google.com/training/certification/mobile-web-specialist/study-guide/networking)
* [ ] [Logo Freecodecamp - Fetch practical guide](https://www.freecodecamp.org/news/a-practical-es6-guide-on-how-to-perform-http-requests-using-the-fetch-api-594c3d91a547/)
* [ ] [Logo MDN - CORS](https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS)
* [ ] [Logo Alligator - Fetch API](https://alligator.io/js/fetch-api/)
* [ ] [Logo Supercharged - Fetch](https://www.youtube.com/watch?v=GiI77ya60yk)
* [ ] [Logo Codelabs - Fetch ](https://codelabs.developers.google.com/codelabs/pwa-fetch/index.html?index=..%2F..dev-pwa-training#0)

### Web Animations

Learn how to use web animations to animate elements in the DOM.

* [ ] [Logo Google Devs - Animations](https://developers.google.com/web/fundamentals/design-and-ux/animations)
* [ ] [Logo MDN - Using The Web Animations API](https://developer.mozilla.org/en-US/docs/Web/API/Web_Animations_API/Using_the_Web_Animations_API)
* [ ] [Logo CSS Tricks - CSS Animations vs Web Animations API](https://css-tricks.com/css-animations-vs-web-animations-api/)

### Modules

Learn how to modularize your code into ES6 modules using the export and import keywords.

* [ ] [Logo MDN - Export](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/export)
* [ ] [Logo MDN - Import](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/import)
* [ ] [Logo V8 - Modules](https://v8.dev/features/modules)
* [ ] [Logo Freecodecamp - A Practical guide to ES6 modules](https://www.freecodecamp.org/news/how-to-use-es6-modules-and-why-theyre-important-a9b20b480773/)

### Intl

Learn how to localize your website using the Intl API.

* [ ] [Logo MDN - Intl](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl)
* [ ] [Logo MDN - Date Time Format](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/DateTimeFormat)
* [ ] [Logo New Intl APIs in JavaScript](https://blog.bitsrc.io/new-intl-apis-in-javascript-c50dc89d2cf3)

### Canvas

Learn how to paint graphics onto a canvas.

* [ ] [Logo MDN - Canvas tutorial](https://developer.mozilla.org/en-US/docs/Web/API/Canvas_API/Tutorial)
* [ ] [Logo MDN - Canvas API](https://developer.mozilla.org/en-US/docs/Web/API/Canvas_API)
* [ ] [Logo CSS Tricks - Manipulating Pixels Using Canvas](https://css-tricks.com/manipulating-pixels-using-canvas/)

### Documentation

Learn how to create good documentation and why it is important.

* [ ] [Logo Getting Started with JSDoc](https://jsdoc.app/about-getting-started.html)
* [ ] [Logo A beginner’s guide to writing documentation](https://www.writethedocs.org/guide/writing/beginners-guide-to-docs/)
* [ ] [Logo Write Good Documentation](https://hackernoon.com/write-good-documentation-6caffb9082b4)
* [ ] [Logo The power of jsDoc](https://dev.to/gmartigny/the-power-of-jsdoc-272d)
* [ ] [Logo Document your Javascript code with JSDoc](https://dev.to/paulasantamaria/document-your-javascript-code-with-jsdoc-2fbf)

### Best Practices

Learn the best practices of writing Javascript.

* [ ] [Logo MDN - JavaScript guidelines](https://developer.mozilla.org/en-US/docs/MDN/Contribute/Guidelines/Code_guidelines/JavaScript)
* [ ] [Logo Airbnb - JavaScript Style Guide](https://github.com/airbnb/javascript)
* [ ] [Logo Principles of Writing Consistent, Idiomatic JavaScript](https://github.com/rwaldron/idiomatic.js/)
* [ ] [Logo 5 JavaScript Style Guides](https://codeburst.io/5-javascript-style-guides-including-airbnb-github-google-88cbc6b2b7aa)
* [ ] [Logo JavaScript Style Guide and Coding Conventions](https://www.w3schools.com/js/js_conventions.asp)

### The Browser

### Standardization

Learn why web standards are important and how new specifications are standardised.

* [ ] [Logo Wikipedia - Web Standards](https://en.wikipedia.org/wiki/Web_standards)
* [ ] [Logo What Are Web Standards?](https://www.elcom.com.au/resources/blog/web-standards)
* [ ] [Logo A Comprehensive Explanation of Web Standards](https://robertnyman.com/2007/05/21/what-are-web-standards-a-comprehensive-explanation-of-what-is-comprised-in-the-term/)

#### W3C

Learn what W3C are doing and how they are moving the web forward.

* [ ] [Logo W3C - About](https://www.w3.org/standards/about.html)
* [ ] [Logo W3C - Standards](https://www.w3.org/standards/)
* [ ] [Logo W3C - Process](http://webdiy.org/w3c/)
* [ ] [Logo Web Standards Guide](https://www.smashingmagazine.com/2019/01/web-standards-guide/)
* [ ] [Logo W3C - Groups](https://www.w3.org/community/groups/)
* [ ] [Logo The W3C At Twenty-Five](https://www.smashingmagazine.com/2019/10/happy-birthday-w3c/)

#### TC39

Learn what TC39 are doing and how they are moving the web forward.

* [ ] [Logo The TC39 process for ECMAScript features](https://2ality.com/2015/11/tc39-process.html)
* [ ] [Logo Github - TC39](https://github.com/tc39)
* [ ] [Logo Ecma International - Programme of work](https://www.ecma-international.org/memento/tc39.htm)
* [ ] [Logo Wikipedia - Ecma International](https://en.wikipedia.org/wiki/Ecma_International)

#### WHATWG

Learn what WHATWG are doing and how they are moving the web forward.

* [ ] [Logo WHATWG - FAQ](https://whatwg.org/faq)
* [ ] [Logo WHATWG - Standards](https://spec.whatwg.org/)
* [ ] [Logo MDN - WHATWG](https://developer.mozilla.org/en-US/docs/Glossary/WHATWG)
* [ ] [Logo W3C vs. WHATWG HTML5 Specs](https://dzone.com/articles/w3c-vs-whatwg-html5-specs)
* [ ] [Logo WHATWG - HTML](https://html.spec.whatwg.org/)
* [ ] [Logo Wikipedia - WHATWG](https://en.wikipedia.org/wiki/WHATWG)

#### Specifications

Learn how to read specifications developed by the standards committees.

* [ ] [Logo How to Read the ECMAScript Specification](https://timothygu.me/es-howto/)
* [ ] [Logo How to Read W3C Specs](https://alistapart.com/article/readspec/)
* [ ] [Logo Learning CSS by reading specs](https://www.chenhuijing.com/blog/learning-css-by-reading-specifications/)
* [ ] [Logo Understanding the CSS Specifications](https://www.w3.org/Style/CSS/read.en.html)

### Browser Engines

Learn what a browser engine is and get an overview of the browser landscape and market share.

* [ ] [Logo Medium - Browser Engines](https://medium.com/@jonbiro/browser-engines-chromium-v8-blink-gecko-webkit-98d6b0490968)
* [ ] [Logo Wikipedia - Comparison](https://en.wikipedia.org/wiki/Comparison_of_browser_engines)
* [ ] [Logo HTML5 Rocks - How Browsers Work](https://www.html5rocks.com/en/tutorials/internals/howbrowserswork/)
* [ ] [Logo Demystifying Browsers](https://textslashplain.com/2020/02/09/demystifying-browsers/)

#### Webkit

Learn about the Webkit browser engine.

* [ ] [Logo Webkit](https://webkit.org/)

#### Blink

Learn about the Blink browser engine.

* [ ] [Logo Blink](https://en.wikipedia.org/wiki/Blink_(browser_engine))

#### Gecko

Learn about the Gecko browser engine.

* [ ] [Logo Gecko](https://en.wikipedia.org/wiki/Gecko_(software))

### HTTP

Learn how data is distributed through the HTTP protocol.

* [ ] [Logo MDN - HTTP](https://developer.mozilla.org/en-US/docs/Web/HTTP)
* [ ] [Logo MDN - HTTP Glossary](https://developer.mozilla.org/en-US/docs/Glossary/HTTP)
* [ ] [Logo MDN - An overview of HTTP](https://developer.mozilla.org/en-US/docs/Web/HTTP/Overview)
* [ ] [Logo Wikipedia - Hypertext Transfer Protocol](https://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol)

### The Internet

Learn the basics of how the internet works.

* [ ] [Logo MDN - How does the Internet work?](https://developer.mozilla.org/en-US/docs/Learn/Common_questions/How_does_the_Internet_work)
* [ ] [Logo Youtube - How the Internet Works in 5 Minutes](https://www.youtube.com/watch?v=7_LPdttKXPc)
* [ ] [Logo Explain That Stuff - Internet](https://www.explainthatstuff.com/internet.html)
* [ ] [Logo Stanford - How Does the Internet Work?](https://web.stanford.edu/class/msande91si/www-spr04/readings/week1/InternetWhitepaper.htm)
* [ ] [Logo How the Internet Works](https://blog.hubspot.com/marketing/how-the-internet-works)

### Polyfills

Learn how it is possible to use polyfills to increase the browser support for your website.

* [ ] [Logo MDN - Polyfill](https://developer.mozilla.org/en-US/docs/Glossary/Polyfill)
* [ ] [Logo Introduction To Polyfills & Their Usage](https://medium.com/beginners-guide-to-mobile-web-development/introduction-to-polyfills-their-usage-9cd6db4b1923)
* [ ] [Logo W3C - Polyfills and the evolution of the Web](https://www.w3.org/2001/tag/doc/polyfills/)
* [ ] [Logo Can I use](http://caniuse.com/)

### Debugging

Learn about the basics concepts of debugging.

* [ ] [Logo Google Devs - Inspect and Edit Pages and Styles](https://developers.google.com/web/tools/chrome-devtools/inspect-styles/)
* [ ] [Logo MDN - Cross browser testing](https://developer.mozilla.org/en-US/docs/Learn/Tools_and_testing/Cross_browser_testing)
* [ ] [Logo 5 things to remember for better debugging of your code](https://medium.com/dev-bits/5-things-to-remember-for-better-debugging-of-your-code-94b9bc3fb3df)

#### Developer console

Learn how to use the developer console to debug your code.

* [ ] [Logo MDN - Console](https://developer.mozilla.org/en-US/docs/Web/API/Console)
* [ ] [Logo Google Devs - Console API Reference](https://developers.google.com/web/tools/chrome-devtools/console/api)
* [ ] [Logo Google Devs - Get Started with Chrome DevTools](https://developers.google.com/web/tools/chrome-devtools/javascript)
* [ ] [Logo Google Devs - Console Utilities API Reference](https://developers.google.com/web/tools/chrome-devtools/console/utilities)
* [ ] [Logo MDN - Debugging CSS](https://developer.mozilla.org/en-US/docs/Learn/CSS/Building_blocks/Debugging_CSS)
* [ ] [Logo MDN - Debugging HTML](https://developer.mozilla.org/en-US/docs/Learn/HTML/Introduction_to_HTML/Debugging_HTML)
* [ ] [Logo javascript.info - Debugging in Chrome](https://javascript.info/debugging-chrome)
* [ ] [Logo 14 JavaScript debugging tips](https://raygun.com/javascript-debugging-tips)
* [ ] [Logo The definitive guide to debugging JavaScript](https://flaviocopes.com/javascript-debugging/)
* [ ] [Logo Youtube - Chrome DevTools 101](https://www.youtube.com/watch?v=H0XScE08hy8)
* [ ] [Logo Chrome Devs - Quickly monitor events](https://developers.google.com/web/updates/2015/05/quickly-monitor-events-from-the-console-panel)
* [ ] [Logo Youtube - 14 Must Know Chrome Dev Tools Tricks](https://www.youtube.com/watch?v=xkzDaKwinA8)

[![-----------------------------------------------------](https://raw.githubusercontent.com/andreasbm/readme/master/assets/lines/colored.png)](#accessibility)

## ➤ Accessibility

### The why

Learn what accessibility is and why it is important.

* [ ] [Logo Google Devs - Accessibility Fundamentals](https://developers.google.com/web/fundamentals/accessibility/)
* [ ] [Logo A11ycasts with Rob Dodson](https://www.youtube.com/playlist?list=PLNYkxOF6rcICWx0C9LVWWVqvHlYJyqw7g)
* [ ] [Logo Udacity - Chromevox Lite](http://udacity.github.io/ud891/lesson3-semantics-built-in/02-chromevox-lite/)
* [ ] [Logo Dev.to - Why Accessibility Matters](https://dev.to/lhoffmanwg1/why-accessibility-matters-39nl)
* [ ] [Logo Abilitynet - Why Accessibility Matters](https://www.abilitynet.org.uk/why-accessibility-matters)
* [ ] [Logo Udacity - Web Accessibility](https://www.udacity.com/course/web-accessibility--ud891)
* [ ] [Logo Youtube - Headings, Landmarks, and Tabs](https://www.youtube.com/watch?v=HE2R86EZPMA)

### Screen Readers

Learn about assistive technology such as screen readers that reads sections of the page aloud based on the current focus.

* [ ] [Logo The A11Y Project - Screen Reader Myths](https://a11yproject.com/posts/people-who-use-screen-readers-dont-use-javascript/)
* [ ] [Logo The A11Y Project - NVDA Screen Reader](https://a11yproject.com/posts/getting-started-with-nvda/)
* [ ] [Logo The A11Y Project - OS X Voiceover](https://a11yproject.com/posts/getting-started-with-voiceover/)
* [ ] [Logo Webaim - Screen Reader Survey](https://webaim.org/projects/screenreadersurvey7/)

### Accessibility tree

Learn about the accessibility tree and how assistive technology uses it.

* [ ] [Logo Google Devs - The Accessibility Tree](https://developers.google.com/web/fundamentals/accessibility/semantics-builtin/the-accessibility-tree)

#### ARIA

Learn how to use ARIA descriptions an labels to help assistive technology understanding your website.

* [ ] [Logo Google Devs - ARIA Labels](https://developers.google.com/web/fundamentals/accessibility/semantics-aria/aria-labels-and-relationships)
* [ ] [Logo Google Devs - Hiding and updating content](https://developers.google.com/web/fundamentals/accessibility/semantics-aria/hiding-and-updating-content)
* [ ] [Logo The A11Y Project - ARIA States](https://a11yproject.com/posts/ARIA-states/)
* [ ] [Logo The A11Y Project - ARIA Properties](https://a11yproject.com/posts/ARIA-properties/)

#### Accessible HTML

Learn how to write HTML in such as way that assistive technology better understands it.

* [ ] [Logo Google Devs - Introduction to Semantics](https://developers.google.com/web/fundamentals/accessibility/semantics-builtin/)
* [ ] [Logo MDN - Accessibility HTML](https://developer.mozilla.org/en-US/docs/Learn/Accessibility/HTML)
* [ ] [Logo Webaim - Skip navigation](https://webaim.org/techniques/skipnav/)
* [ ] [Logo w3c - Headings](https://www.w3.org/WAI/tutorials/page-structure/headings/)
* [ ] [Logo Freecodecamp - Semantic Elements](https://guide.freecodecamp.org/html/html5-semantic-elements/)

##### Alt text

Learn how to use the alt attribute to provide a useful text alternative to this image.

* [ ] [Logo Google Devs - Text Alternatives for Images](https://developers.google.com/web/fundamentals/accessibility/semantics-builtin/text-alternatives-for-images)
* [ ] [Logo Webaim - Accessible Images](https://webaim.org/techniques/images/)
* [ ] [Logo Webaim - Alternative text](https://webaim.org/techniques/alttext/)

#### Accessible CSS

Learn how to write CSS in such as way that assistive technology better understands it.

* [ ] [Logo Webaim - CSS](https://webaim.org/techniques/css/)

### Accessible forms

Learn how to build accessible forms that makes it usable to as many people as possible.

* [ ] [Logo Webaim - Forms](https://webaim.org/techniques/forms/)
* [ ] [Logo Itnext - Form Accessibility Gudie](https://itnext.io/form-accessibility-a-practical-guide-4062b7e2dd14)

### UI States

Learn how to make the state of each UI element clear.

* [ ] [Logo Google Devs - Accessible Styles](https://developers.google.com/web/fundamentals/accessibility/accessible-styles)

### Keyboard Accessibility

Learn how to make it easy for keyboard users to navigate your site.

* [ ] [Logo Webaim - Keyboard](https://webaim.org/techniques/keyboard/)
* [ ] [Logo Smashing Magazine - Web with just a keyboard](https://www.smashingmagazine.com/2018/07/web-with-just-a-keyboard/)

#### Focus

Learn how to create a sensible tab order and how to make it easy for the users to locate the currently focused element.

* [ ] [Logo web.dev - Control focus with tabindex](https://web.dev/control-focus-with-tabindex/)
* [ ] [Logo Google Devs - Focus](https://developers.google.com/web/fundamentals/accessibility/focus/)
* [ ] [Logo Google Devs - Dom Order Matters](https://developers.google.com/web/fundamentals/accessibility/focus/dom-order-matters)
* [ ] [Logo Google Devs - Using Tabindex](https://developers.google.com/web/fundamentals/accessibility/focus/using-tabindex)
* [ ] [Logo Google Devs - Track Focus](https://developers.google.com/web/tools/chrome-devtools/accessibility/focus)
* [ ] [Logo MDN - :focus-visible](https://developer.mozilla.org/en-US/docs/Web/CSS/:focus-visible)
* [ ] [Logo MDN - :focus-within](https://developer.mozilla.org/en-US/docs/Web/CSS/:focus-within)

### Accessible Colors

Learn how to select colors in such a way that users, including those with visual disabilities, can perceive the content on the page.

* [ ] [Logo Webaim - Contrast and Color](https://webaim.org/articles/contrast/)
* [ ] [Logo The A11Y Project - Check contrast](https://a11yproject.com/posts/check-contrast-with-mobile-device/)
* [ ] [Logo The A11Y Project - What is color contrast?](https://a11yproject.com/posts/what-is-color-contrast/)
* [ ] [Logo Designing accessible color systems](https://stripe.com/en-dk/blog/accessible-color-systems)

### Laws & Policies

Learn about the governmental policies related to web accessibility.

* [ ] [Logo W3C - Laws & Policies](https://www.w3.org/WAI/policies/)
* [ ] [Logo Webaim - Laws around the world](https://webaim.org/articles/laws/world/)
* [ ] [Logo Webaim - Section 508](https://webaim.org/standards/508/checklist)
* [ ] [Logo Webaim - WCAG 2 Checklist](https://webaim.org/standards/wcag/checklist)
* [ ] [Logo A11Y.dev - Lawsuits](https://a11y.dev/470-digital-accessibility-cases-were-filed-in-q3-2018/)

#### Audits

Learn how to conduct an accessibility review to improve the overall experience of using your site. Remember, good accessibility equals good UX!

* [ ] [Logo web.dev - Accessibility audits](https://web.dev/lighthouse-accessibility)
* [ ] [Logo Google Devs - How to review](https://developers.google.com/web/fundamentals/accessibility/how-to-review)
* [ ] [Logo Webaim - Accessibility Tools](https://webaim.org/articles/tools/)
* [ ] [Logo Google Devs - Accessibility Reference](https://developers.google.com/web/tools/chrome-devtools/accessibility/reference)
* [ ] [Logo Webaim - Wave](http://wave.webaim.org/)
* [ ] [Logo Google Chrome - NoCoffee Extension](https://chrome.google.com/webstore/detail/nocoffee/jjeeggmbnhckmgdhmgdckeigabjfbddl)
* [ ] [Logo Digital A11Y - Accessibility Plugins](https://www.digitala11y.com/accessibility-plug-ins-ie-chrome-firefox-browsers/)
* [ ] [Logo Google Devs - Accessibility for teams](https://developers.google.com/web/fundamentals/accessibility/a11y-for-teams)
* [ ] [Logo WCAG 2.0 checklists](https://www.wuhcag.com/wcag-checklist/)
* [ ] [Logo How to Meet WCAG (Quick Reference)](https://www.w3.org/WAI/WCAG21/quickref/)

[![-----------------------------------------------------](https://raw.githubusercontent.com/andreasbm/readme/master/assets/lines/colored.png)](#web-components)

## ➤ Web Components

### Custom Elements

Learn how to create new HTML tags with Custom Elements.

* [ ] [Logo Google Devs - Custom Elements](https://developers.google.com/web/fundamentals/web-components/customelements)
* [ ] [Logo MDN - Using Custom Elements](https://developer.mozilla.org/en-US/docs/Web/Web_Components/Using_custom_elements)
* [ ] [Logo CSS Tricks - Creating a Custom Element from Scratch](https://css-tricks.com/creating-a-custom-element-from-scratch/)
* [ ] [Logo Javascript.info - Custom Elements](https://javascript.info/custom-elements)
* [ ] [Logo dev.to - An introduction to Custom Elements](https://dev.to/jamesrweb/an-introduction-to-custom-elements-5327)
* [ ] [Logo itnext - Introduction to Web Components](https://itnext.io/introduction-to-web-components-part-i-custom-elements-4de6713cef9d)
* [ ] [Logo web.dev - Web Components](https://web.dev/web-components-io-2019/)

### HTML Templates

Learn how to use HTML templates to create flexible templates that can then be used to populate the Shadow DOM.

* [ ] [Logo MDN - Using Templates & Slots](https://developer.mozilla.org/en-US/docs/Web/Web_Components/Using_templates_and_slots)
* [ ] [Logo Javascript.info - Template Element](https://javascript.info/template-element)
* [ ] [Logo MDN - The Content Template element](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/template)

### Shadow DOM

Learn how to encapsulate your CSS using Shadow DOM.

* [ ] [Logo Google Devs - Shadow DOM](https://developers.google.com/web/fundamentals/web-components/shadowdom)
* [ ] [Logo MDN - Using Shadow DOM](https://developer.mozilla.org/en-US/docs/Web/Web_Components/Using_shadow_DOM)
* [ ] [Logo MDN - Shadow Tree](https://developer.mozilla.org/en-US/docs/Glossary/Shadow_tree)
* [ ] [Logo CSS Tricks - Encapsulating Style and Structure](https://css-tricks.com/encapsulating-style-and-structure-with-shadow-dom/)
* [ ] [Logo itnext - Introduction to Web Components](https://itnext.io/introduction-to-web-components-part-ii-shadow-dom-8d1d8e126332)
* [ ] [Logo Monica - Shadow DOM: fast and encapsulated styles](https://meowni.ca/posts/shadow-dom/)

#### Shadow Parts

Learn how to style the inside of a shadow tree from outside of that Shadow Tree by using Shadow Parts.

* [ ] [Logo Fergald - CSS Shadow ::part and ::theme](https://github.com/fergald/docs/blob/master/explainers/css-shadow-parts-1.md)
* [ ] [Logo MDN - ::part](https://developer.mozilla.org/en-US/docs/Web/CSS/::part)
* [ ] [Logo W3C - CSS Shadow Parts](https://www.w3.org/TR/css-shadow-parts-1/)
* [ ] [Logo Monica - ::part and ::theme, an explainer](https://meowni.ca/posts/