Making the backgrounds dynamic is more attractive than simple ones. The following codes uses two background images. They are fade in and out frequently by a rotating agent. This rotation absorbs attentions to see what is happening and what will appear next.


HTML
<!-- this script got from www.devanswer.com -->
<main> <div class="background"></div> <div class="foreground"></div> </main> <script src="https://cdnjs.cloudflare.com/ajax/libs/prefixfree/1.0.7/prefixfree.min.js"></script><a style="font-size: 8pt; text-decoration: none" target="_blank" href="http://www.devanswer.com">Developer Code</a>

CSS
:root {
  --direction: -45deg;
}

body {
  margin: 0;
  padding: 0;
}

main {
  position: relative;
}

div {
  position: absolute;
  top: 0;
  left: 0;
  width: 100vw;
  height: 100vh;
  background-size: cover;
  background-repeat: none;
}

.background {
  background-image: url(https://devanswer.com/codes/files/day.jpg);
}

.foreground {
  background-image: url(https://devanswer.com/codes/files/night.jpg);
  mask-image: linear-gradient(var(--direction), black 40%, rgba(0, 0, 0, 0) 60%);
  mask-position: 50% 50%;
}
Javascript
let c = 45;

function draw() {
  document.documentElement.style.setProperty('--direction', c++ + 'deg');
  requestAnimationFrame(draw);
}

requestAnimationFrame(draw);