
Browser-level lazy loading for CMSs
This post provides guidance on how to adopt the loading attribute in content management systems.
1,551 articles on Frontend.

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).

The importance of the default DOM order
![Frontend — Downloading resources in HTML5 - a[download]](/covers/8637d946c2.webp?v=8564874)
Chrome now supports the HTML spec's new `download` attribute to `a` elements.

The HTML5 Drag and Drop API lets developers make almost any element on a page draggable.

Learn how to improve load times and user experience by avoiding the common pitfalls of using third-party scripts.


Learn how to improve render times with critical CSS technique and how to choose the best tool for your project.

Learn how to optimize your Angular app's change detection to make it more responsive.

Learn about scope and how it works in JavaScript.

How to debug SEO issues on individual pages or across an entire site.

Learn how to implement cross-browser Houdini Paint API's and explore a world of Houdini worklets with Houdini.how.


Telling browser vendors about issues you find in their browser, on a specific device or platform is an integral part of making the web platform better!

The browser's HTTP Cache is your first line of defense against unnecessary network requests.

Modern browsers make it easy to customize certain components, like icons, the address bar color, and even add things like custom tiles. These simple tweaks can increase engagement and bring users back to your site.

Learn how to use Lighthouse and Chrome DevTools to identify slow third-party resources.


The inert property is a global HTML attribute that simplifies how to remove and restore user input events for an element, including focus events and events from assistive technologies.

IntersectionObservers let you know when an observed element enters or exits the browser's viewport.

This handy CSS pseudo-selector gives you a way to select elements that are modal.

Figuring out the value of `this` can be tricky in JavaScript, here's how to do it…

Understand the differences between frameworks and libraries in the context of a client-side JavaScript environment.