
react-axe is a library that audits a React application and logs any accessibility issues to the Chrome DevTools console. eslint-plugin-jsx-a11y is an ESLint plugin that identifies and enforces a number of accessibility rules directly in your JSX. Using them in combination can provide a comprehensive auditing approach to find and fix any accessibility concerns in your application.

Learn how to make your Angular application accessible using codelyzer.

A method to adapt a font to your users' preferences, so they're maximally comfortable reading your content.

The web app manifest is a simple JSON file that tells the browser how your web app should behave.

Create React App includes a web app manifest by default. Modifying this file will allow you to change how your application is displayed when installed on the user's device.

Essential metrics for a healthy site

Learn about how Chrome is investing efforts in a number of open-source tools to advance the JavaScript ecosystem

Animating well is core to a great web experience. This post explains why certain types of animation perform better than others.

Maintaining aspect ratio within images and elements is now easier to achieve with the new aspect-ratio CSS property.

Breaking symmetry provides contrast and appeal to your projects. Learn when and how to apply this to your projects.

Learn how to implement CSS custom properties with semantic typing, a fallback value, and more, directly in your CSS file.

To optimize user experience, it's essential to understand how users interact with your forms. Browser autofill plays a significant role in this process. Learn how to collect and analyze data on how users use autofill in your forms.

Layout is where the browser figures out the geometric information for elements - their size and location in the page. Each element will have explicit or implicit sizing information based on the CSS that was used, the contents of the element, or a parent element. The process is called Layout in Chrome.

Learn how to add background effects like blurring and transparency to UI elements on the web using the CSS backdrop-filter property.

Understand and avoid common problems when applying base64 encoding and decoding to strings.

Learn how to create color themes with Baseline web features available in CSS.

Learn how to use CSS container queries for adding both responsive typography and styles based on container dimensions in this guide.

Learn how to use Baseline CSS features to create typography that responds to the user with accessibility and developer ergonomics in mind.

Learn to optimize your pages for instant loads when using the browser's back and forward buttons.

Using the example of a synthetic toy language called ExampleScript, learn how to write and optimize WebAssembly modules in JavaScript using the Binaryen.js API.

This post covers the loading attribute and how it can be used to control the loading of images.

This post provides guidance on how to adopt the loading attribute in content management systems.

Learn how to import and bundle various types of assets from JavaScript in a way that works both in browsers and bundlers.

Follow 5 centering techniques as they go through a series of tests to see which one is the most resilient to change.

Understand the decisions around using a JavaScript library or framework.

The React.lazy method makes it easy to code-split a React application on a component level using dynamic imports. Use it along with Suspense to show appropriate loading states to your users.


Learn how to build a responsive slide out side navigation layout component.

Learn how to build an experience similar to Instagram Stories on the web.

Learn 5 different centering techniques with CSS.

Learn how use Critical to extract and inline critical CSS, and improve render times.

Learn about techniques for optimizing slow third-party resources with some help from Lighthouse.

Use cross-platform browser features to build a sign-in form that's secure, accessible, and easier to use.

Use cross-platform browser features to build a sign-up form that's secure, accessible, and easier to use.

CommonJS modules are very dynamic, which prevents JavaScript optimizers and bundles perform advanced optimizations over them.

When creating a layout using CSS, ensure you give the same experience for keyboard users as other users.

Learn how to create installable progressive Angular applications.

In CSS Grid, the `grid-template-columns` and `grid-template-rows` properties allow you to define line names and track sizing of grid columns and rows, respectively. Supporting interpolation for these properties allows grid layouts to smoothly transition between states, instead of snapping at the halfway point of an animation or transition.

Looking at several ways to animate a border in CSS

Using clipping in CSS can help us move away from everything in our designs looking like a box. By using various basic shapes, or an SVG, you can create a clip path. Then cut away the parts of an element you don't want to show.

This tool by Josh W Comeau makes it super simple to create nice looking gradients.

Learn how you can use the individual translate, rotate, and scale CSS properties to approach transforms in an intuitive way.

These seemingly small additions to CSS selector syntax are going to have a big impact.

Use CSS to customize the color, size, or type of numbers or bullets in list elements.

CSS masking gives you the option of using an image as a mask layer. This means that you can use an image, an SVG, or a gradient as your mask, to create interesting effects without an image editor.

Learn how to use CSS module scripts to import CSS stylesheets using the same syntax as JavaScript modules.


Though useful, CSS variables are hard to work with because they can take any value and be overridden and you can’t use transitions with them. CSS Properties and Values API Level 1 overcomes these issues.


CSS Scroll Snap allows web developers to create well-controlled scroll experiences by declaring scroll snapping positions. This enables common UX scroll patterns without the need for JavaScript.

As a web font loads, you can now adjust its scale to normalize the document font sizes and prevent layout shift when switching between fonts

Subgrid enables grid shareability, allowing nested grids to align to ancestors and siblings.

Calculate the sine, cosine, tangent, and more in CSS.

You can animate with CSS or JavaScript. Which should you use, and why?

Custom elements let you construct your own HTML tags. This checklist covers best practices to help you build high quality elements.

Custom elements allow web developers to define new HTML tags, extend existing ones, and create reusable web components.

The benefits of using Custom Properties in design systems and component libraries.

Declarative Shadow DOM is a new way to implement and use Shadow DOM directly in HTML.

How to use webpack to make your app as small as possible

Learn how to defer non-critical CSS with the goal of optimizing the Critical Rendering Path, and improving First Contentful Paint (FCP).