Faire une flèche qui s'agrandit au survol

Que ce soit pour donner envie à vos utilisateurs de voir votre projet, de lire votre article ou d'accéder à une page de votre site internet, présenter votre lien avec une flèche vous permettra d'attirer plus facilement l'oeil de vos visiteurs ! Découvrons dans cet article comment animer cette flèche pour sublimer l'expérience de vos lecteurs.

 

1ère étape

Commençons, comme d'habitude avec le code HTML.

<a href="https://believemy.com" class="btn">
  <div class="arrow"></div>
  Voir le site internet
</a>

Nous créons simplement un lien avec une classe btn.
Nous mettons ensuite une division avec une classe arrow et le texte de notre lien.

 

2ème étape

Stylisons le lien.

.btn {
  text-decoration: none;
  font-size: 1.4rem;
  color: #ff4754;
  display: flex;
  align-items: center;
}

Nous utilisons flexbox (display: flex) pour aligner la flèche et le texte du lien côte à côte.

 

3ème étape

Occupons-nous maintenant de la ligne de la flèche.

.btn .arrow {
  margin-right: 1em;
  height: 0.1em;
  width: 1.5em;
  position: relative;
  background: #ff4754;
  transition: all 0.2s;
}

Ici, nous créons juste la ligne de notre flèche. Le bout de la flèche sera réalisé grâce aux pseudos-éléments ::before et ::after.

 

4ème étape

Stylisons le bout de notre flèche.

.btn .arrow::before,
.btn .arrow::after {
  content: "";
  position: absolute;
  right: 0;
  top: 0;
  background: #ff4754;
  height: 0.1em;
  width: 0.6em;
}

Nous créons deux éléments qui iront se positionner en haut à droite de la ligne que nous avons créé à l’étape précédente.

 

5ème étape

Rotationnons chaque morceau du bout de notre flèche.

.btn .arrow::before {
  transform: rotate(45deg);
  transform-origin: right bottom;
}

.btn .arrow::after {
  transform: rotate(-45deg);
  transform-origin: right top;
}

Chaque “morceau” du bout de la flèche est positionné dans un angle différent pour donner cette impression de “flèche”.

 

6ème étape

Agrandissons la flèche au survol et terminons notre flèche.

.btn:hover .arrow {
  width: 5em;
}

Notre code est tellement fonctionnel et nous l’avons tellement bien pensé qu’il suffit de dire que la largeur de la ligne de notre flèche passe à 5em pour que celle-ci augmente toute seule au survol du lien.

Félicitations à nous !