
Unblocking clipboard access
Async Clipboard API simplifies permissions-friendly copy and paste.
904 articles from web.dev.

Async Clipboard API simplifies permissions-friendly copy and paste.


Async functions allow you to write promise-based code as if it were synchronous.

Learn how to invoke asynchronous web APIs when compiling traditionally synchronous languages to WebAssembly.

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

The Web Audio API makes it possible to properly achieve AV synchronization.



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.

A new modular tool that enables automatic gathering of performance data from multiple sources.

An overview of how AVIF is adopted in the ecosystem, and what kind of performance and quality benefits developers can expect from AVIF for still images and animations.

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.

Knowing when to reach for a polyfill can be a hard decision, but using Baseline features can help you answer this question. Learn more in this guide!

Learn about just some of the features that are part of Baseline.

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 build UI patterns for modal windows and prompts using the <dialog> and popover web features.

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

Image galleries are a common user interface pattern on the web. Learn how to create one using Baseline features.

Learn how to use the data in the web-features npm package to create your own Baseline tools!

Learn about our plans for improving the Cumulative Layout Shift metric and give us feedback.

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.

Bitrate is the maximum number of bits used to encode one second of a stream. The more bits used to encode a second of stream, the higher the fidelity.

Making it easier to build for the web.

How service workers can proactively communicate with the page to inform about certain events.

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.

To defend against attacks, a developer needs to mitigate vulnerabilities and add security features to an application. Luckily, on the web, the browser provides many security features, including the idea of a "sandbox".

Work with your site hoster to deal with spam damage, and find online communities to help.

What the Bulletin team learned about service workers while developing a PWA.

How the scrolling book came to life for sharing fun and frightening tips and tricks this Chrometober.

Explore the recommended and not recommended ways of building multiple PWAs reusing the same domain with their advantages and disadvantages.

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

Learn how to use the Cache API to make your application data available offline.

Pan, tilt, and zoom features on cameras are finally controllable on the web.








Learn how to optimize carousels for performance and usability.

A roundup of all the key announcements from the 2021 Chrome Dev Summit, with the links you need to find out more.

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

By redirecting requests to /.well-known/change-password to the change password URL, you can let users update their passwords easier than before.

Understand the decisions around using a JavaScript library or framework.

Selecting the right image format is the first step in delivering optimized images on your website. This post helps you to make the right choice.

Choose the appropriate easing for your project, whether that's easing in, out, or both. Maybe even use bounces for extra fun!

User-Agent string changes, the strategies that Chrome and Firefox are taking to mitigate the impact, and how you can help.

This post explains how to clean up your site after it has been hacked.

On devices with phone capabilities, make it easy for users to directly connect with you by simply tapping a phone number, more commonly known as click to call.

Discover the benefits of client-side AI, including low latency, reduced server-side costs, no API key requirements, increased user privacy, and offline access.

Rendering HTML with JavaScript is different than rendering HTML that's sent by the server—and that can affect performance. Learn the difference in this guide, and what you can do to preserve your website's rendering performance—especially where interactions are concerned.

A collection of common patterns for dealing with the clipboard.

This post introduces the Cumulative Layout Shift (CLS) metric and explains how to measure it.