On most websites, when you click to a new page there is a brief flicker as the old page disappears and the new one loads and renders. We’re all used to it and accept it as normal. If the site is built using a modern framework like Angular, React or one of their relatives, they have the potential to only reload the parts of the page that change, which will minimize this effect. There is still a slight flicker though, which can be improved.
With a simple CSS addition, any site can now have a smooth transition between pages, or partial-pages regardless of the underlying platform. Here is the most basic version, which is used on this site, and provides a clean fade between pages:
@view-transition {
navigation: auto;
}
Since this is CSS, which offers many styles of animation, you can of course expand on this to create page transitions such as sliding in any direction, changing the speed, expanding a circle from the center of the page, or a plethora of other possibilities. Be cautious with those though, since although they are tempting they can easily become distracting to people viewing your site.
Reference: MDN > @view-transition CSS at-rule