Description

Lazy loading is a design pattern that should be used when loading pages which contain a lot of data. To improve performance, the page content is initially replaced by a low-fidelity skeleton of the page’s layout, which is then gradually replaced by content as it loads.

Basic Flow

Lazy loading patterns should behave as follows:

Usage and Behavior

Lazy loading should be used when the number of assets on a page have a significant detrimental effect on the load time, making it longer than 1 second. Lazy loading indicates to the user that the system is working on the problem, and reassures them that no error has occurred.

General guidelines

Structure

Lazy loading consists of:

Each asset should always use the same skeleton cell layout, rather than trying to match the exact content which will subsequently be loaded.

Placeholder

Loaded State

Interaction

Animation

A shimmer animation should be used within each skeleton cell, to show that content is loading and decrease the perceived wait time. The shimmer animation has the following properties:

Best practices

Do:

Don't:

Accessibility Compliance

As outlined in the Digital A11y Accessibility Guidelines, the 'aria-busy' state indicates an element is being modified. Assistive technologies use this state to determine whether to delay interaction until the content is ready.

Users should not be able to interact with content which is dependent on other elements in the interface which have not yet loaded.

Design

Zeplin link

Screen thumbnail

https://zpl.io/Am9jZqe