Subtle Gradients Instead of Flat Color
Rather than a single flat background color, many modern buttons use a gentle gradient — a shift of a few shades within the same hue, rather than two dramatically different colors. This adds a small amount of visual texture and depth without looking dated or overly ornamental.
.button {
background: linear-gradient(135deg, #7c3aed, #6d28d9);
}
Layered Shadows for Realistic Depth
Instead of one flat shadow, stacking two or three shadows with increasing blur and decreasing opacity produces a softer, more convincing sense of elevation — the same technique used in modern card and panel design, applied to buttons.
Micro-interactions
Small, quick feedback animations — a slight scale-up on hover, a brief bounce on click, an icon that shifts position — signal responsiveness without being showy or distracting. These work best when they're fast (under 200ms) and subtle enough not to draw attention away from the button's actual purpose.
.button:hover {
transform: scale(1.03);
}
.button:active {
transform: scale(0.98);
}
Rounded, Pill-Shaped Buttons
Fully rounded corners (using a large border-radius, or border-radius: 999px for a true pill shape) remain a popular, friendly-feeling default across a lot of current interface design, in contrast to the sharper, more rectangular buttons common a decade ago.
Restraint Still Matters
These techniques are most effective used sparingly and consistently — a page with five different button styles, each showing off a different trend, tends to look chaotic rather than polished. Pick one coherent style and apply it consistently across your primary actions.
Ready to try these techniques visually?
Open CSS Button Generator