Web design is a study in accidental complexity. For example, while there’s no inherent aesthetic value in putting text on top of images, it’s a mainstay. Instead this kind of layering creates complexity. It constrains the text, the image, and sets up a duel for the user’s attention. Two dimensions ought to be enough.
Few habits complicate web design quite like undue layers.
There are enough maligned modals to declare
position: fixed forever broken — not technically, but in practice.
We’ve permanently lost viewport height to a storm of sticky headers.
And each layer burdens both design and code. Poor
Luckily, we have superior alternatives to every layer. Place text before or after images. Move modal content inline or extract it to a new page. Let headers remain on top. Instead of adding a loading overlay, make your site so fast that it can do without. And if the end result looks empty, redesign.
The web works best for designers, developers, and users alike when it is constrained to a single plane. We can shift the time spent on layering content to be used on improving the content itself. There is no need to compete with your own interface. Don’t draw attention more than once per pixel.