"top Bubbles"
Bootstrap 4.1.1 Snippet by dkstudio

<link href="//maxcdn.bootstrapcdn.com/bootstrap/4.1.1/css/bootstrap.min.css" rel="stylesheet" id="bootstrap-css"> <script src="//maxcdn.bootstrapcdn.com/bootstrap/4.1.1/js/bootstrap.min.js"></script> <script src="//cdnjs.cloudflare.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script> <!------ Include the above in your HEAD tag ----------> <div class="container"> <div class="row"> <div class="p-5"> <a href=""><span class="icon_link_blue bubbly">bubbly effect</span></a> </div> <span class="badge badge-pill bg-light border"> <i class="fa bubbly" aria-hidden="true"> <img src="assets/images/Consultation.svg" width="40"></i></span> </div> </div>
body { display: flex; justify-content: center; align-items: center; height: 100vh; } a { display: flex; justify-content: center; align-items: center; height: 122px; box-shadow: 0 0 35px rgba(0, 0, 0, 0.05); background: #fff; transition: 0.5s; width: 200px; text-decoration: none; color:#333; span { font-size: 14px; font-weight: bold; } } .bubbly { display: inline-block; padding-top: 1em; padding-bottom: 1em; -webkit-appearance: none; appearance: none; border: none; position: relative; transition: transform ease-in .1s,box-shadow ease-in .25s; } .bubbly:before,.bubbly:after { position: absolute; content: ''; display: block; width: 140%; height: 100%; left: -20%; z-index: 1; transition: all ease-in-out .5s; background-repeat: no-repeat } .bubbly:before { display: none; top: -75%; background-image: radial-gradient(circle,#00a4e4 20%,transparent 20%),radial-gradient(circle,transparent 20%,#00a4e4 20%,transparent 30%),radial-gradient(circle,#00a4e4 20%,transparent 20%),radial-gradient(circle,#00a4e4 20%,transparent 20%),radial-gradient(circle,transparent 10%,#00a4e4 15%,transparent 20%),radial-gradient(circle,#00a4e4 20%,transparent 20%),radial-gradient(circle,#00a4e4 20%,transparent 20%),radial-gradient(circle,#00a4e4 20%,transparent 20%),radial-gradient(circle,#00a4e4 20%,transparent 20%); background-size: 10% 10%,20% 20%,15% 15%,20% 20%,18% 18%,10% 10%,15% 15%,10% 10%,18% 18% } .bubbly:after { display: none; bottom: -75%; background-image:radial-gradient(circle,#00a4e4 20%,transparent 20%),radial-gradient(circle,#00a4e4 20%,transparent 20%),radial-gradient(circle,transparent 10%,#00a4e4 15%,transparent 20%),radial-gradient(circle,#00a4e4 20%,transparent 20%),radial-gradient(circle,#00a4e4 20%,transparent 20%),radial-gradient(circle,#00a4e4 20%,transparent 20%),radial-gradient(circle,#00a4e4 20%,transparent 20%); background-size: 15% 15%,20% 20%,18% 18%,20% 20%,15% 15%,10% 10%,20% 20%; } .border:hover .bubbly:before { display: block; animation: topBubbles ease-in-out .75s forwards } .border:hover .bubbly:after { display: block; animation: bottomBubbles ease-in-out .75s forwards } @keyframes bottomBubbles { 0% { background-position: 10% -10%,30% 10%,55% -10%,70% -10%,85% -10%,70% -10%,70% 0% } 50% { background-position: 0% 80%,20% 80%,45% 60%,60% 100%,75% 70%,95% 60%,105% 0% } 100% { background-position: 0% 90%,20% 90%,45% 70%,60% 110%,75% 80%,95% 70%,110% 10%; background-size: 0% 0%,0% 0%,0% 0%,0% 0%,0% 0%,0% 0% } } @keyframes topBubbles { 0% { background-position: 5% 90%,10% 90%,10% 90%,15% 90%,25% 90%,25% 90%,40% 90%,55% 90%,70% 90% } 50% { background-position: 0% 80%,0% 20%,10% 40%,20% 0%,30% 30%,22% 50%,50% 50%,65% 20%,90% 30% } 100% { background-position: 0% 70%,0% 10%,10% 30%,20% -10%,30% 20%,22% 40%,50% 40%,65% 10%,90% 20%; background-size: 0% 0%,0% 0%,0% 0%,0% 0%,0% 0%,0% 0% } }

Related: See More


Questions / Comments: