JSFiddle - React, Tailwind, and code Playground

by CJ Juarez

HTML

<nav>
    <a href="#page-1">Page 1</a>
    <a href="#page-2">Page 2</a>
    <a href="#page-3">Page 3</a>
</nav>

<div class="page" id="page-1">
  <h1>Page-1</h1>
</div>

<div class="page" id="page-2">
  <h1>Page-2</h1>
</div>
  
<div class="page" id="page-3">
  <h1>Page-3</h1>
</div>

CSS

@keyframes slideInUp {
  0% {
    transform: translateY(100%);
  }
  
  100% {
    transform: translateY(0);
  }
}

@keyframes slideOutUp {
  0% {
    transform: translateY(0);
  }
  
  100% {
    transform: translateY(-100%);
  }
}

body{
  font: 16px/1.5 'Lato', Arial, sans-serif;
  background: #3498db;
  color: #ffffff;
}

h1{
  position: absolute;
  top: 50%;
  left: 50%;
  font-size: 50px;
  font-weight: 300;
  text-align: center;
  transform: translate(-50%, -50%);
}

nav {
  position: relative;
  text-align: center;
  z-index: 999;
}

nav a {
  padding: 5px 15px;
  color: #3498db;
  font-size: 19px;
  text-decoration: none;
  background: #ecf0f1;
  border: 2px solid #ecf0f1;
  border-radius: 2px;
}

.page {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  opacity: 0;
  transition: opacity 0s .5s;
  animation: slideOutUp .5s ease-in-out forwards;
}

.page:target {
  opacity: 1;
  transition-delay: 0s;
  animation: slideInUp .5s ease-in-out forwards;
}

#page-1 {
  background: yellowgreen;
}

#page-2 {
  background: orange;
}

#page-3 {
  background: pink;
}