- 75 Fantastic CSS Hover Effects
- Latest Post
- 55 Cool CSS Calendars
- 19 Barcodes in CSS
- 25 CSS Masonry Layout Examples
- 23 CSS Card Layouts
- 27 CSS Subscribe Forms
- 10 Best CSS button hover effects
- CSS button gradient effects
- CSS button hover effects using box shadow
- Expanding CSS button hover effect
- CSS button on hover fill effects
- 3D rotating button effect on hover with CSS only
- Apple style swipe effect on hover
- CSS Button hover background change
- Hidden door CSS button effect
- Animated Pac-Man CSS button on hover
- A true 3D button animation using three.js
- Related articles
75 Fantastic CSS Hover Effects
Here is a list of some amazing CSS hover effects that you can implement on your website and impress your visitors.
You may also like
- CSS Glow Effects
- 75 CSS Text Animations You Can Use
- 15 Amazing CSS Animated Background for you to try
- 57 Beautiful CSS Cards examples to improve your UI
- 19 Cool CSS Loading Animation to inspire you
- 17 Fancy CSS Search Boxes
- 21 Modern CSS menu examples
- 19 Stylish CSS forms
- 19 CSS Border Animations you can implement
- 15 Stylised CSS Tables
- 13 Pure CSS Dropdown Menus
- 15 Creative CSS Filter Examples
- 35 Unique CSS Text Effects
- 15 CSS Sliders you can use
- 21 New Bootstrap Login Forms for you
- 19 Bootstrap Profiles you can use for yourself
- 13 Material Design Login Forms
- 35 Cool CSS Select Boxes
- 15 CSS Range Sliders you can use today
- 35 Creative use of CSS clip-path examples
- 29 Unique CSS Toggle Switches
- 41 Beautiful CSS Animation Examples
Hover Effect for Headers
Dev: Olivia Ng
Image hover animation
Dev: Irem Lopsum
#1206 – Image hover effect with caption
Dev: LittleSnippets.net
Mask Effect
See the Pen Mask Effect by Alex Tkachev (@alexpopovich) on CodePen.
Dev: Alex Tkachev
#1190 – Image hover effect with title & caption
Dev: LittleSnippets.net
Half Circle Hover Effect
Dev: Paul Demers
Rainbow stacked accordion animation
Dev: Sarah Fossheim
Supa Dupa Fly Hover
Dev: Ryan Mulligan
Gallery (product) hover effect
Dev: Vitaliy Star
3D product pop-up hover effect (RIR)
Dev: Rejwan Islam Rizvy (RIR)
product hover
See the Pen product hover by Mischa Frank (@halfcat) on CodePen.
Dev: Mischa Frank
World Places (CSS 3d hover)
Dev: Akhil Sai Ram
Product Preview(hover)
Dev: Bruno Rodrigues
Hover For Product Info
Dev: Siddharth Hubli
Tessellations eCommerce
Dev: Andy Barefoot
Animation hover effect
Dev: Nicola Pressi
#1321 – Image Hover
Dev: LittleSnippets.net
FlexBox Exercise #4 – Same height cards
Dev: Veronica
Hover effect blur
3D effect on hover – CSS only
Dev: Vincent Durand
CSS3 Hover Effect using :after Psuedo Element
Dev: Larry Geams Parangan
Button Hover
Dev: Katherine Kato
Transforming Edges – #CodePenChallenge: smooth and sharp
Dev: Melissa Em
Art is pointless
Dev: Martin Whitaker
Refer Friends Hover Animation
Dev: Aysenur Turk
Card pseudo-element hover
Dev: douglasmofet
Diagonal non-clip-path hover (pure scss)
Dev: George Douvogiannis
Clip-path hover
Dev: Henry Zarza
Effect clip-path hover
Dev: Crianbluff
CSS ::before Hover Effects
Clip-Path Hover Effect
Dev: Bobby Korec
CSS clip-path hover animation
Dev: Soufiane Lasri
Clip Path Hover Animation
Dev: Vlad Racoare
Video button animation – Only CSS
Dev: Milan Raring
Pattern + Background Combo
Dev: Brian Bale
CSS Only “hologram” effect Button 3D Icon
Dev: Takane Ichinose
Card Hover Info Interaction
Dev: Sikriti Dakua
Cross-browser no image duplication reveal effect with real img elments
Dev: Ana Tudor
Hover rays with masking and Houdini magic (Chromium only)
Dev: Ana Tudor
Simple css hover effect
3D Hover Effect – Alita Card
Dev: Furkan Gulsen
Cluster Hover
Dev: Hsu-Cherng
Image Hover Effect
CSS hover effect: Dealing with dynamic content size
Dev: Mahmoud Zohdi
CSS Fancy hover effect
Dev: Raúl Barrera
Pure css hover effect
Dev: Aashima
White Leopard css hover effect
Dev: Emiliano Soravia
CSS Hover Effect
Dev: SournyB
CSS hover effect
Dev: web-tiki
Pure Css – Image Hover effect
At Least I’m Being Honest (CSS Hover Effect)
Dev: Gabriel Cyrillo
CSS hover effect
Tricky CSS hover
See the Pen Tricky CSS hover by Piotr Galor (@pgalor) on CodePen.
Dev: Piotr Galor
CSS hover zoom scale
Button Hover States
Dev: James Power
Using the data-attribute variable for a sexy CSS hover
Dev: Matthijs
Pure CSS Hover
Dev: XiChen
_ CSS Hover effect _
See the Pen _ CSS Hover effect _ by Jeremie Boulay (@Jeremboo) on CodePen.
Dev: Jeremie Boulay
CSS HOVER INFORMATION
Parrot Hover Animation
Dev: Martijn Brands
Cool hover animation
Dev: Tonifuzi
Flex Selection #2 CSS Hover Effect
Dev: Simone Bernabè
CSS-only Sliding Panels using transforms
Pure CSS Hover Blur
Dev: Russ Pate
CSS Hover Slider
See the Pen CSS Hover Slider by Hugo Darby-Brown (@hugo) on CodePen.
Dev: Hugo Darby-Brown
CSS Hover Card
Dev: Sowmya Seshadri
Pure CSS Box Hover with Background Effect
Pure CSS hover effect
Dev: Yacine
CSS Hover Effects
CSS Hover Effect
See the Pen CSS Hover Effect by Tatsuya Azegami (@42EG4M1) on CodePen.
Dev: Tatsuya Azegami
Simple CSS hover animations using font-awesome icons
Dev: dehash
Simple CSS Hover Effect using Sass Loops
Dev: Charlie Marcotte
About Us Pop-Out Effect
Dev: Mikael Ainalem
CSS-only direction-aware hover effect
Dev: Paulina Hetman
[CPC] Tile hover multi-button
Dev: Zed Dash
Latest Post
55 Cool CSS Calendars
19 Barcodes in CSS
25 CSS Masonry Layout Examples
23 CSS Card Layouts
27 CSS Subscribe Forms
We use cookies to ensure that we give you the best experience on our website. If you continue to use this site we will assume that you are happy with it. Ok
10 Best CSS button hover effects
I bet the last time you created a CSS hover effect for a button on your site, you flipped the colour of the text with the colour of the background and used a transition of somewhere between 0.3 and 0.5 seconds.
Am I right? Do you feel seen?
Or perhaps you google a bit and found a list of cool CSS animations to add to your website and picked a couple of them, right?
Even if not, would you agree that this is the most common way to create CSS hover animations for buttons? I’m not knocking it — I’ve done it many times myself. It works.
But. there are plenty of other ways you can animate your buttons with CSS, which could make your site more fun and help it stand out from the crowd.
So let’s explore some other options!
CSS button gradient effects
At the time I’m writing this, you can’t animate gradients with CSS — at least, not directly. There is, however, a way to trick CSS into doing what we want — we just make the background larger than the button, and move the background on hover. The result is an animated gradient effect on your buttons.
Here are a few examples — you can take one of these and change the gradient colours and angle if you want:
You can also create an animated gradient effect around the border, instead of the background. Or both:
CSS button hover effects using box shadow
Remember when you were a kid, and you drew a rectangle, then you added a little shading around two edges to make it look kinda 3D? Well CSS box-shadow does that:
But, box-shadow gives us a lot of control of how the shadow appears:
- How big should the shadow be?
- How far from the box?
- What colour?
- Multiple shadows, or just one?
- Inside the box, or outside?
- Solid shadow, or blurry?
And, we can animate all of this! Here are some creative ideas on how you can use box-shadow in your button hover effects:
Check out Mozilla’s article on box-shadow to learn more.
Expanding CSS button hover effect
Here’s a unique hover effect that might be useful to you:
It looks like a text link with a little icon next to it, but looks can be deceiving — the whole thing is actually the button. When you hover, the icon expands and spreads over the text. Very nice!
CSS button on hover fill effects
As I said earlier, the most common button hover effect has to be a simple fill — simply flipping the background colour and the text colour, usually with a fade-in of half a second or so. To be fair, there’s a reason this is common — it does the job and does it well. But that doesn’t mean you can’t get creative with it.
There are lots of ways you can do create the fill effect besides a fade. You could have the background spread out from the centre, slide it in from the side, or spin it around and lock it into place, just to name three. Here are a few ways you could mix it up a bit:
If you like beautifying elements like buttons, you will for sure like turning checkboxes into beautiful toggle switch elements. Check out the best examples we’ve found on CSS toggle switches.
3D rotating button effect on hover with CSS only
You might have seen these 3D rotating buttons before. This one is particularly cool because it’s done purely in CSS, and because it has two «cubes» that rotate in different directions (although you could just get rid of the second one if you don’t want it).
Note that you’ll need to change the data-attr and the text within the span to change the text shown.
Apple style swipe effect on hover
These buttons visually mimic the effect on iOS when you swipe a menu item (e.g., a note in your Notes app) to make the buttons appear. Here though, it’s just a visual effect — you don’t have to click on the green bit that slides in, you can click any part of it:
The cool thing about these is you can give the visitor an additional call to action (though personally, I’d have used red instead of green for the cancel button).
CSS Button hover background change
OK, time to think outside the box.
I mean that literally — why not have our CSS button’s hover effect change something other than the actual button itself? Like the background, maybe?
This is one of those cool ideas that’s good to have in your back pocket for future use.
Hidden door CSS button effect
Oh! look, a Twitter icon. I guess I just click this and it takes me to the user’s twitter page. Like the 10 zillions other Twitter buttons I’ve seen in my life.
Oh well, might as well click it:
Woah! Is it a Twitter button, or the entrance to a shuttle bay on the Starship Enterprise?
Although there is some JS in the Pen, that’s just to import the Twitter link, in this case to creator Tim Holman’s Twitter link. The JS doesn’t have any effect on how the button works — and of course you don’t have to use it for Twitter — you can adapt it for anything.
Animated Pac-Man CSS button on hover
Here’s an incredible piece of work by Dario Corsi. Check it out:
There’s so much to appreciate about this:
- It’s pure CSS — not an image or line of JS insight
- Of all the ghosts, Dario chose Blinky, the leader of the ghosts and Pac-Man’s arch enemy
- Blinky’s eyes look in the direction he’s moving!
- The animation stops in-place when you stop hovering, rather than resetting to the beginning
A true 3D button animation using three.js
This one isn’t pure CSS, but I thought I’d include this to show you the type of things that are possible when bringing JS into the picture. This is a «true» 3D hover effect button by Robin Delaporte:
Look at that! If you move your mouse around the button area, the shapes react to your mouse movements.
Now, when I say «true» 3D, obviously it’s not actually 3D since it’s a flat image on your screen! I just mean that there’s a Z-axis involved. These are not simply 2D objects at different depths, moving at different rates (as is the case with parallax ). The angle and position of the object along the Z-axis are calculated in JS. This means you can move or rotate it along the third dimension, and add lighting effects to really bring it to life.
To do this, Robin has used a JS library called three.js — a very popular library for making 3D animations on the web, and it’s actually fairly easy to get started with. Of course, you’ll need some practice to create something like this, but if you really study it, you can make some amazing stuff.
Speaking of easy-to-use JS libraries that help you make great stuff, you might also like fullPage.js. fullPage helps you make gorgeous one-page sites quickly and easily, and it works like a charm alongside WordPress, React, and Vue.
We’ve been talking a lot about using animations to improve the visual appeal of your site in this post, and if you’re into this sort of thing have a look at the effects you can use with fullPage. You can use different effects as you scroll from one full-screen page to the next (the card effect is pretty snazzy for instance), or in sliders. All of this is built-in and works out of the box.
And of course, you can integrate all of the awesome CSS button hover effects we’ve just looked at into your fullPage.js site! In fact, the background image change button could work really well on a full-page site — give fullPage.js a try and see what you can come up with!