• author: developedbyed

How to Create Page Transitions with CSS and No JavaScript

Welcome, my gorgeous friends on the internet! What if I told you that you have the ability to create page transitions with just a few lines of CSS code and no JavaScript? You heard me right. You can achieve SPA (Single Page Application) behavior without relying on complex scripting. I'm incredibly excited to show you how it's done.

Introducing the View Transition API

The magic behind these page transitions lies in a new API called the View Transition API. While the support for this API is still limited, with only Chrome and Chrome Android providing experimental support, it's a step in the right direction. Hopefully, in a year or two, we can utilize this API globally.

Enabling the View Transition API

To enable the View Transition API in Chrome, you need to make a few adjustments. Follow these steps:

  1. Type "chrome://flags" in the address bar and press Enter.
  2. In the search bar, type "view transition" and you will see two options: "View Transition API" and "View Transition Navigation".
  3. Enable both of these options.

Once you have enabled the View Transition API, you can start implementing page transitions with ease!

Creating Page Transitions

To create a simple fade-in and fade-out effect between two HTML pages, follow these steps:

  1. Create two HTML files, each containing the content for a separate page.
  2. Add a special meta tag to both HTML pages. The meta tag should include the "view transition" attribute with the value set to "same-origin". This tells the browser that these two pages can transition smoothly.
  3. Add the following CSS code snippet to the head section of your HTML pages:
<style>/* Keyframes animation for fade-in and fade-out */@keyframesfade-in{from{opacity:0;}to{opacity:1;}}@keyframesfade-out{from{opacity:1;}to{opacity:0;}}</style>

And that's it! Just by adding this line of code, you will have a basic fade-in and fade-out effect between your pages. Keep in mind that the support for this feature may not be available in all browsers. If the user's browser doesn't support it, the pages will transition normally without any effects.

Customizing Page Transitions

The View Transition API also allows you to customize the duration and other aspects of your page transitions. The API provides two properties: view-transition-old and view-transition-new. Here's how you can use them:

  1. Customize the fade-out animation for the old page and the fade-in animation for the new page. You can modify the view-transition-old and view-transition-new properties according to your needs. For example:

In this example, we set the duration of both fade-out and fade-in animations to 350 milliseconds. You can adjust the duration or choose different animation effects according to your preferences.

  1. You can also assign special classes to specific elements within your page transitions. For instance, you can give a specific class, like card-transition-small, to an image on one HTML page and card-transition-large to the same image but larger on the other HTML page.

  2. In your style.css file or within a <style> tag in the HTML document, use the view-transition-name property and assign it the same name that you gave to the elements on both HTML pages. This will ensure that the browser recognizes and transition them as part of the same element. For example:


By doing this, you can create smooth transitions specifically tailored to different elements on your pages. These transitions will occur while the rest of the page animates normally.

Expanded Control and JavaScript Integration

While the View Transition API provides an easy way to create page transitions in CSS, you can also integrate JavaScript to gain more control over the transitions. However, exploring JavaScript integration with the View Transition API is beyond the scope of this tutorial.

Potential Bugs and Limitations

Please note that since the support for the View Transition API is still experimental, there may be some bugs and limitations to be aware of. For example, zooming in beyond 110% can cause strange visual effects, and some animations may not work as expected. However, these issues are expected to improve as the API progresses.


In conclusion, the View Transition API opens up exciting possibilities for creating page transitions with CSS and minimal JavaScript. By following a few simple steps and adding some CSS code, you can create stunning fade-in and fade-out effects between HTML pages. While the support for this API is not yet universal, it's a promising development for future web development endeavors.

We hope you enjoyed this tutorial on creating page transitions. If you want to dive deeper into web development and learn more exciting techniques, be sure to check out some of the courses we offer below. These courses will guide you through fun projects and provide updates to keep you up-to-date with the latest web development trends.

Thank you for watching, and until next time, happy coding!

Previous Post

Creating a React Portfolio Website with Codex Visual IDE

Next Post

Google Search Console: A Powerful Tool for Website Analysis

About The auther

New Posts

Popular Post