Créer un générateur de couleur aléatoire avec JavaScript

Vous souhaitez vous entraîner avec JavaScript ? Essayez de construire un générateur de couleur aléatoire ! Voyons dans cet article comment réussir ce projet.
1ère étape
Commençons avec le code HTML.
<div class="main">
<div id="code">#000000</div>
<button onclick="generateColor()">
Générer
</button>
</div>
Ici nous avons juste besoin d’un bouton qui appelle une fonction JavaScript lorsqu’il est cliqué.
2ème étape
Centrons notre élément au milieu de la page.
body {
background: #000000;
display: flex;
align-items: center;
justify-content: center;
height: 100vh;
}
Nous allons utiliser flexbox pour centrer la boîte qui nous permetra de générer une couleur.
3ème étape
Au tour de la boîte et de la classe code !
.main {
width: 350px;
height: 250px;
background: white;
display: flex;
justify-content: center;
align-items: center;
flex-direction: column;
}
#code {
font-size: 3rem;
margin-bottom: 20px;
}
4ème étape
Finissons notre design en stylisons le bouton.
.main button {
padding: 10px 20px;
font-size: 1.1rem;
border: none;
outline: none;
cursor: pointer;
background: #1687a7;
color: white;
}
5ème étape
Il ne reste plus qu'à créer la fonction generateColor().
const generateColor = () => {
let randomColor = (Math.floor(Math.random()*0xFFFFFF)).toString(16);
document.body.style.backgroundColor = "#" + randomColor;
let text = document.querySelector('#code');
text.innerText = "#" + randomColor;
}
Pour générer un nombre hexadécimal aléatoire, il existe une formule toute faite. Il suffit de générer un nombre aléatoire (entre 0.0000... et 0.9999...) et de le multiplier par 0xFFFFFF qui est le plus gros nombre possible pour une couleur hexadécimale.
Nous avons ainsi généralement un nombre de 6 chiffres. Il ne nous reste plus qu’à arrondir ce nombre (floor()
) et à le convertir en une chaîne de caractères en base 16 (donc en hexadécimale).
Il nous suffit enfin d’ajouter cette couleur.