Hello, guys in this tutorial we will create a jelly button using HTML CSS & TweenMax.js.
The HTML element represents a clickable button, used to submit forms or anywhere in a document for accessible, standard button functionality. By default, HTML buttons are presented in a style resembling the platform the user agent runs on, but you can change buttons’ appearance with CSS.
TweenMax.js
<script src="https://cdnjs.cloudflare.com/ajax/libs/gsap/1.12.1/TweenMax.min.js"></script>
First we need to create two files index.html and style.css then we need to do code for it.
Jelly button Step:1
Add below code inside index.html
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <title>How to create jelly button</title> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <meta https-equiv="X-UA-Compatible" content="ie=edge" /> <link rel="stylesheet" href="style.css" /> <link href="https://fonts.googleapis.com/css2?family=IBM+Plex+Sans&display=swap" rel="stylesheet"> <script src="https://cdnjs.cloudflare.com/ajax/libs/gsap/1.12.1/TweenMax.min.js"></script> </head> <body> <button class="button"> <span>Click me</span> </button> </body> <script type="text/javascript"> var $button = document.querySelector('.button'); $button.addEventListener('click', function() { var duration = 0.3, delay = 0.05; TweenMax.to($button, duration, {scaleY: 1.2, ease: Expo.easeOut}); TweenMax.to($button, duration, {scaleX: 1.2, scaleY: 1, ease: Back.easeOut, easeParams: [3], delay: delay}); TweenMax.to($button, duration * 1.25, {scaleX: 1, scaleY: 1, ease: Back.easeOut, easeParams: [6], delay: delay * 3 }); }); </script> </html>
Jelly button Step:2
Then we need to add code for style.css which code i provide in below screen.
* { padding: 0; margin: 0; font-family: 'IBM Plex Sans', sans-serif; } body { display: flex; align-items: center; justify-content: center; height: 100vh; background: #f1f2f3; } .button { position: relative; border: 0; padding: 12px 40px; border-radius: 50px; font-size: 18px; color: #fff; cursor: pointer; outline: 0; background-image: linear-gradient(-180deg, #FF89D6 0%, #C01F9E 100%); box-shadow: 0 1rem 1.25rem 0 rgba(22,75,195,0.50), 0 -0.25rem 1.5rem rgba(110, 15, 155, 1) inset, 0 0.75rem 0.5rem rgba(255,255,255, 0.4) inset, 0 0.25rem 0.5rem 0 rgba(180, 70, 207, 1) inset; }