Code HTML
ui button
Code CSS
nous allons maintenant mettre en place notre style CSS pour donner une forme à nos boutons avec des couleurs différentes. le @import : c’est l’importation de la police depuis google font.
@import url('https://fonts.googleapis.com/css2?family=Poppins:wght@400;500&display=swap');
body{
height: 100vh;
margin: 0;
padding: 0;
display: grid;
place-items: center;
}
.block-btn{
display: grid;
grid-template-columns: repeat(4, 1fr);
}
.lire-plus{
background: #6200ee;
}
.envoyer{
background: #0fb294;
}
.connexion{
background: #0f056b;
}
.inscription{
background: #ee1851;
}
button{
margin: 1rem;
position: relative;
overflow: hidden;
transition: background 400ms;
color: #fff;
padding: 1rem 2rem;
font-size: 1.5rem;
outline: none;
border: none;
cursor: pointer;
box-shadow: 0 0 0.5rem rgba(0, 0, 0, 0.3);
}
span.ripple{
position: absolute;
border-radius: 50%;
transform: scale(0);
animation: ripple 600ms linear;
background-color: rgba(255, 255, 255, 0.7);
}
@keyframes ripple{
to{
transform: scale(4);
opacity: 0;
}
}
Code JS
definition de notre fonction Javascript pour qu’a chaque clique du bouton il y aura un effet transparent qui anime ce dernier.
function createRipple(event) {
const button = event.currentTarget;
const circle = document.createElement("span");
const diameter = Math.max(button.clientWidth, button.clientHeight);
const radius = diameter / 2;
circle.style.width = circle.style.height = `${diameter}px`;
circle.style.left = `${event.clientX - button.offsetLeft - radius}px`;
circle.style.top = `${event.clientY - button.offsetTop - radius}px`;
circle.classList.add("ripple");
const ripple = button.getElementsByClassName("ripple")[0];
if (ripple) {
ripple.remove();
}
button.appendChild(circle);
}
const buttons = document.getElementsByTagName("button");
for (const button of buttons){
button.addEventListener("click", createRipple);
}