JSFiddle - React, Tailwind, and code Playground

HTML

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Transitions</title>
    <link rel="stylesheet" href="styles.css" />
    <script>
      document.addEventListener("DOMContentLoaded", () => {
        const element = document.querySelector(".square");
        const addButton = document.querySelector(".add-square");

        addButton.addEventListener("click", () => {
          const newSquare = document.createElement("div");
          newSquare.classList.add("square");
          document.querySelector(".wrapper").appendChild(newSquare);
        });
      });
    </script>
  </head>
  <body>
    <div class="wrapper">
      <div class="square"></div>
    </div>
    <button class="add-square">Add Square</button>
  </body>
</html>

CSS

.square {
  width: 100px;
  height: 100px;
  background-image: linear-gradient(purple, yellow);
  transition: display 0.5s allow-discrete, opacity 0.5s, transform 0.5s;
}

@starting-style {
  .square {
    opacity: 0;
    transform: scale(0);
  }
}

.square.hide {
  display: none;
  opacity: 0;
}