CSS Hover Effects Generator
Interactivity you can feel before the click. Choose lift, grow, tilt, glow or press; tune intensity and speed; hover the preview to test; copy both states, transition included.
Settings
Ready-made examples — click any card to copy its CSS
Proven starting points. Clicking a card copies the full CSS to your clipboard.
The CSS you need to build this yourself
Understand the output, not just copy it — these lessons on our learning path teach exactly what this tool automates:
Related generators & tools
- CSS Cubic Bezier EditorAnimation & Motion
- CSS Button GeneratorTypography & Buttons
- CSS Box Shadow GeneratorShadows & Effects
- CSS Keyframes GeneratorAnimation & Motion
- CSS Border Radius GeneratorShape & Layout
- CSS Layer Styles GeneratorShadows & Effects
How it works
Every effect here is the same two-part pattern: a transition on the base state (so motion runs both directions) and transform/shadow changes under :hover. All five stay on the compositor-cheap properties, so they're 60fps even on weak devices.
Matching matters more than intensity: lift for cards, grow for thumbnails, tilt for playful badges, glow for dark UIs, press for the click itself (put it on :active). One effect family per page — hover language is vocabulary, and mixed vocabularies read as noise. Remember hover doesn't exist on touch screens: it must enhance, never gate, functionality.
Run the code — try it yourself
Give all three gallery thumbs the grow effect (scale 1.05, .25s) — and add a :focus-visible outline so keyboards get feedback too.
Frequently asked questions
Why declare the transition on the base state, not on :hover?
On :hover it only animates in — leaving snaps. The base declaration animates both directions.
The grow effect blurs my text slightly.
Scaling rasterized layers can soften pixels; keep scale ≤1.05 on text-bearing elements, or lift instead.
What about keyboard users?
Mirror important hover feedback on :focus-visible so keyboard navigation gets the same signal.
Press on hover or on active?
:active — the press should answer the actual click, as the fourth example shows.
Keep going
Hover states are the handshake between interface and hand — subtle, fast, consistent. The state system behind them lives in the Links lesson and Pseudo-classes; when a hover deserves a full performance, graduate to the Keyframe Builder.
CSSmatic is a non-profit project, made by developers for developers.