JSFiddle - React, Tailwind, and code Playground

HTML

<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">

<span id="toTop"><i class="fa fa-angle-up" aria-hidden="true"></i></span>
<div class="nav" uk-scrollspy-nav="closest: li;">
    <li><a href="#b4">Nos Pates</a></li>
    <li><a href="#b5">Nos Pizze</a></li>
    <li><a href="#b19">Nos Poissons</a></li>
    <li><a href="#b9">Nos Desserts</a></li>
</div>
<div class="con">
    <section id="b2">
        <!-- Entrées -->
        <h3 class="fade">ENTRÉES</h3><br>
        <article class="plats">
            <div class="left">
                <p class="fade">MILLEFEUILLE BUFFALA</p><br>
                <p class="fade">ASSIETTE DE LÉGUMES GRILLÉS<br>
                    <em>fleur de sel de Guérande et huile d’olive d’Italie</em></p><br>
                <p class="fade">SALADE DE CALAMARS<br>
                    <em>calamar, rucola, tomates</em></p><br>
                <p class="fade">SALADE DE POULPE</p><br>
            </div>
            <div class="right">
                <p class="fade">ANTIPASTO CASA NOSTRA<br>
                    <em>foccaccia, burrata, petits légumes grillés, Vitello Tonnato, etc</em></p><br>
                <p class="fade">CARPACCIO DE BOEUF<br>
                    <em>rucola, grana padano, champignons</em></p><br>
                <p class="fade">BRESAOLA, RUCOLA ET GRANA PADANO</p><br>
                <p class="fade">RUCOLA PARMESAN</p><br>
            </div>
        </article>
    </section>

    <section id="b3">
        <!-- Pâtes -->
        <h3 class="fade">PASTA</h3><br>
        <article class="plats">
            <div class="left">
                <h4>LINGUINE</h4><br>
                <p class="fade">ALLO SCOGLIO<br>
                    <em>fruits de mer, tomates</em></p><br>
                <p class="fade">ALLE VONGOLE VERACE<br>
                    <em>vongoles, persil, ail, huile d’olive</em></p><br>
                <h4>PENNE</h4><br>
                <p class="fade">ALLA...

SCSS

span#toTop {
    position: fixed;
    z-index: 10;
    left: 2.1em;
    bottom: 5em;
    .fa.fa-angle-up {
        font-size: 6em;
        color: #f00;
        transition: .1s all 0s;
        &:hover {
            cursor: pointer;
        }
        &:active {
            transform: scale(1.2)
        }
    }
}
.nav {
	position: fixed;
	display: block;
	left: 75px;
	top: 5vh;
	list-style: none;
	li {
		margin: 1em 0;
		a {
			text-decoration: none;
			color: black;
			font-weight: 600;
			margin: 3em 0;
		}
	}
}
section {
    text-align: center;
    background-color: lightgrey;
    margin: .25em auto;
    padding: .25em;
    width: 1000px;
}

JavaScript

// scrollTo(c,e,d)
// c = element to scroll to or top position in pixels
// e = duration of the scroll in ms, time scrolling
// d = (optative) ease function. 

document.getElementById('toTop').onclick = function() {
    scrollTo(0, 2500, easeInOutQuart);
}

var  elements = document.querySelectorAll('.nav li a'),
     target;
for (var i = 0; i < elements.length; i++) {
     var element = elements[i];
     element.addEventListener('click', function(e) {
          target = this.getAttribute('href');
          console.log(target);
          scrollTo(target, 2500, easeInOutQuart);
     });
}

function scrollTo(c,e,d){d||(d=easeInOutQuart);var a=document.documentElement;if(0===a.scrollTop){var b=a.scrollTop;++a.scrollTop;a=b+1===a.scrollTop--?a:document.body}b=a.scrollTop;0>=e||("object"===typeof b&&(b=b.offsetTop),"object"===typeof c&&(c=c.offsetTop),function(a,b,c,f,d,e,h){function g(){0>f||1<f||0>=d?a.scrollTop=c:(a.scrollTop=b-(b-c)*h(f),f+=d*e,setTimeout(g,e))}g()}(a,b,c,0,1/e,20,d))};
function easeInOutQuart(t) {
	return t < .5 ? 8 * t * t * t * t : 1 - 8 * (--t) * t * t * t
}