Lien d’origine: https://codepen.io/vladracoare/pen/WNQGZxy
HTML:
<section class="imageHoverFiltreTransition"> <div class="columns"> <div class="column container__image"> <div class="container__info container__author">Photo by <a class="link" href="https://instagram.com/silvia.diaconescu" target="_blank">Silvia Diaconescu</a></div> <div class="container__info container__location">Geneva Lake Switzerland </div> </div> </div> </section>
CSS:
@import url("https://fonts.googleapis.com/css2?family=Montserrat&display=swap"); .imageHoverFiltreTransition { display: flex; align-items: center; justify-content: center; height: 100vh; margin: 0; font-family: "Montserrat", sans-serif; font-size: 14px; background-color: #f4f6f8; } .imageHoverFiltreTransition .container { display: flex; align-items: center; justify-content: center; height: 100%; width: 100%; overflow: hidden; } .imageHoverFiltreTransition .container__image { position: relative; display: flex; flex-direction: column; justify-content: center; width: 250px; height: 250px; border-radius: 50%; background-image: url("https://silviadiaconescu.com/work/landscape/pb-2.jpg"); background-size: cover; transition: ease-in-out 0.3s; z-index: 2; } .imageHoverFiltreTransition .container__image:before { content: " "; position: absolute; width: 100%; height: 100%; top: 0; bottom: 0; left: 0; margin: auto; background: inherit; background-position: bottom; filter: blur(40px) saturate(0%); transform: scaleX(0.4); transition: ease-in-out 0.4s; border-radius: 120px; transform-origin: right; opacity: 0; z-index: -1; } .imageHoverFiltreTransition .container__image .container__info { position: relative; line-height: 1.8; transition: ease-in-out 0.3s; opacity: 0; } .imageHoverFiltreTransition .container__image .container__location { transition-delay: 0.15s; } .imageHoverFiltreTransition .container__image:hover { border-radius: 0; /* width: 450px; height: 310px; */ width: 600px; height: 413px; box-shadow: 0px 0px 1px rgba(0, 0, 0, 0.04), 0px 2px 6px rgba(9, 55, 53, 0.08), 0px 16px 24px rgba(9, 55, 53, 0.1), 0px 24px 32px rgba(9, 55, 53, 0.14); } .imageHoverFiltreTransition .container__image:hover:before { width: 100%; opacity: 0.18; filter: blur(10px) saturate(100%); transform: scale(2.8) translate3d(-18%, 0px, 0px); } .imageHoverFiltreTransition .container__image:hover .container__info { transform: translate3d(-60%, 0px, 0px); opacity: 1; } .imageHoverFiltreTransition .link { border-bottom: 1px solid transparent; color: #06C0A8; text-decoration: none; transition: ease-in 0.13s; } .imageHoverFiltreTransition .link:hover { background-color: #06C0A8; color: #ffffff; }