<section>
	<h1>Section One</h1>
</section>
<section>
		<h1>Section Two</h1>
</section>
<section>
		<h1>Section Three</h1>
</section>
<section>
		<h1>Section Four</h1>
</section>
<section>
		<h1>Section Five</h1>
</section>
* {
	box-sizing: border-box;
}
body {
	font-family: sans-serif;
	scroll-snap-type: mandatory;
	scroll-snap-points-y: repeat(100vh);
	scroll-snap-type: y mandatory;
}
section {
	border-bottom: 1px solid white;
	padding: 1rem;
	height: 100vh;
	scroll-snap-align: start;
	text-align: center;
	position: relative;
}
h1	{
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	text-align: center;
	color: white;
	width: 100%;
	left: 0;
	font-size: calc(1rem + 3vw);
}
const gra = function(min, max) {
    return Math.random() * (max - min) + min;
}
const init = function(){
	let items = document.querySelectorAll('section');
	for (let i = 0; i < items.length; i++){
		items[i].style.background = randomColor({luminosity: 'light'});
	}
	cssScrollSnapPolyfill()
}
init();

External CSS

This Pen doesn't use any external CSS resources.

External JavaScript

  1. https://cdnjs.cloudflare.com/ajax/libs/randomcolor/0.5.2/randomColor.js
  2. https://bundle.run/css-scroll-snap-polyfill@0.1.2