You've maxed out Avada's built-in styling options but still can't get that button exactly right. Or that heading. Or that spacing that's driving you crazy...
Time to break out custom CSS!!
But here's the thing - most Avada CSS tutorials just tell you WHERE to put code. This article gives you a complete toolbox of WHAT code to use, plus the knowledge to write your own. Ready to level up?
Where to Add Custom CSS in Avada
Before we dive into the toolbox, let's nail down the basics. Avada gives you multiple places to add CSS, each with its own purpose.
Global CSS (Site-Wide)
Avada → Options → Custom CSS
This is your main CSS location. Anything you add here applies to your entire site and overrides default Avada styles. Perfect for brand-wide changes like custom fonts, button styles, or color tweaks.
Page-Specific CSS
In Avada Live: Sidebar → Page Options → Custom CSS
In Backend Builder: Click the </> icon in the toolbar
This CSS only applies to that one page. Perfect for landing pages, sales pages, or anywhere you need unique styling without affecting other pages.
Child Theme (The Professional Way)
For serious customization, use a child theme's style.css file. This keeps your CSS:
- Safe from theme updates
- Organized in one place
- Version-controllable with Git
More on child themes later...
Understanding Avada's CSS Structure
Before you start overriding styles, you need to understand how Avada names things.
Common Avada Class Prefixes
.fusion- /* Fusion Builder elements */
.avada- /* Theme-specific styles */
.awb- /* Avada Website Builder (newer) */
Key Structural Classes
/* Containers */
.fusion-fullwidth /* Full-width container */
.fusion-builder-row /* Row wrapper */
.fusion-layout-column /* Column outer div */
.fusion-column-wrapper /* Column inner div (where styling applies) */
/* Header */
.fusion-header-wrapper /* Main header container */
.fusion-main-menu /* Navigation menu */
.fusion-is-sticky /* When header becomes sticky */
/* Content */
.fusion-page-title-bar /* Page title section */
.fusion-footer-widget-area /* Footer widgets */
.post-content /* Main content area */
The Class vs ID Field
Every Avada element has fields for custom CSS Class and ID. Here's when to use each:
Class (.) - Use for styling you'll apply to multiple elements
ID (#) - Use for unique, one-time styling
/* Class - can reuse on multiple elements */
.my-special-button {
background: linear-gradient(45deg, #ff6b6b, #feca57);
}
/* ID - unique to one element */
#hero-cta {
font-size: 24px;
}
The Specificity Problem (And How to Win)
Your CSS isn't working?? Nine times out of ten, it's a specificity issue.
Avada's CSS is highly specific. A simple selector often won't override it. Here's the hierarchy:
Inline styles (highest) → ID selectors → Class selectors → Element selectors (lowest)
Winning Strategies
Strategy 1: Match or exceed the specificity
Find the original selector with browser DevTools (right-click → Inspect), then match it:
/* If Avada uses this: */
.fusion-button.button-default {
background: #333;
}
/* You need at least this specificity: */
.fusion-button.button-default {
background: #ff6b6b;
}
Strategy 2: Add a parent selector
/* More specific = wins */
body .fusion-button.button-default {
background: #ff6b6b;
}
Strategy 3: Use your custom class
Add a class like my-red-button to the element, then:
.fusion-button.my-red-button {
background: #ff6b6b;
}
Strategy 4: The nuclear option - !important
.fusion-button {
background: #ff6b6b !important;
}
Use !important sparingly!! It makes future changes harder. But sometimes it's the only way...
The CSS Toolbox: Copy-Paste Solutions
Here's what you actually came for - ready-to-use CSS snippets for common Avada customizations.
Header Tweaks
Hide sticky header on specific page:
/* Add to page-specific CSS */
.fusion-is-sticky {
display: none;
}
Change sticky header background:
.fusion-is-sticky .fusion-header {
background-color: rgba(0, 0, 0, 0.9) !important;
}
Reduce sticky header height:
.fusion-is-sticky .fusion-header {
padding-top: 10px !important;
padding-bottom: 10px !important;
}
.fusion-is-sticky .fusion-logo img {
max-height: 40px !important;
}
Navigation Styling
Custom menu hover effect:
.fusion-main-menu > ul > li > a:hover {
color: #ff6b6b !important;
border-bottom: 2px solid #ff6b6b;
}
Remove menu item underlines:
.fusion-main-menu > ul > li > a {
text-decoration: none !important;
border-bottom: none !important;
}
Button Customizations
Gradient button:
.fusion-button.my-gradient-btn {
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%) !important;
border: none !important;
transition: all 0.3s ease;
}
.fusion-button.my-gradient-btn:hover {
transform: translateY(-2px);
box-shadow: 0 5px 20px rgba(102, 126, 234, 0.4);
}
Ghost/outline button:
.fusion-button.ghost-btn {
background: transparent !important;
border: 2px solid currentColor !important;
}
.fusion-button.ghost-btn:hover {
background: #333 !important;
color: #fff !important;
}
Typography Tricks
Page title with text shadow:
.fusion-page-title-bar .fusion-page-title-row h1 {
text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.5);
}
Gradient text effect:
.gradient-text {
background: linear-gradient(90deg, #ff6b6b, #feca57);
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
background-clip: text;
}
Better heading line-height:
.fusion-title h1,
.fusion-title h2,
.fusion-title h3 {
line-height: 1.3 !important;
}
Mobile Responsive Fixes
Hide element on mobile:
@media only screen and (max-width: 768px) {
.hide-on-mobile {
display: none !important;
}
}
Hide background image on mobile:
@media only screen and (max-width: 768px) {
.fusion-fullwidth.my-hero-section {
background-image: none !important;
}
}
Adjust column order on mobile:
@media only screen and (max-width: 768px) {
.reverse-on-mobile .fusion-builder-row {
display: flex !important;
flex-direction: column-reverse;
}
}
Fix mobile menu colors:
@media only screen and (max-width: 768px) {
.fusion-mobile-nav-holder a {
color: #333 !important;
}
}
Spacing and Layout
Remove container top/bottom padding:
.no-padding {
padding-top: 0 !important;
padding-bottom: 0 !important;
}
Equal height columns (using flexbox):
.equal-height .fusion-builder-row {
display: flex !important;
flex-wrap: wrap;
}
.equal-height .fusion-layout-column {
display: flex !important;
}
.equal-height .fusion-column-wrapper {
width: 100%;
}
Fixed height for content boxes (prevents layout jumping):
.fusion-content-boxes .fusion-content-box-hover {
min-height: 300px;
}
Image and Hover Effects
Image zoom on hover:
.zoom-hover img {
transition: transform 0.5s ease;
}
.zoom-hover:hover img {
transform: scale(1.1);
}
Grayscale to color on hover:
.grayscale-hover img {
filter: grayscale(100%);
transition: filter 0.3s ease;
}
.grayscale-hover:hover img {
filter: grayscale(0%);
}
Image overlay on hover:
.overlay-hover {
position: relative;
overflow: hidden;
}
.overlay-hover::after {
content: '';
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
background: rgba(0, 0, 0, 0.5);
opacity: 0;
transition: opacity 0.3s ease;
}
.overlay-hover:hover::after {
opacity: 1;
}
WooCommerce in Avada
Style add-to-cart button:
.fusion-woo-cart-table .fusion-button,
.woocommerce .button.add_to_cart_button {
background: #ff6b6b !important;
border-radius: 25px !important;
}
Hide variable product price range:
.woocommerce-variation-price {
display: none;
}
Using CSS Variables in Avada
Here's something cool most people don't know - you can use CSS variables directly in Avada element settings!!
Avada already uses variables for global colors. But you can create your own:
Add to your global CSS:
:root {
--brand-primary: #ff6b6b;
--brand-secondary: #feca57;
--brand-dark: #2d3436;
--spacing-large: 60px;
--spacing-medium: 30px;
}
Use in element settings or CSS:
.my-branded-section {
background-color: var(--brand-primary);
padding: var(--spacing-large);
}
The advantage?? Change --brand-primary once, and every element using it updates automatically.
Browser DevTools: Your Best Friend
Can't figure out which CSS selector to use? Let the browser tell you.
Chrome/Firefox:
- Right-click the element you want to style
- Select "Inspect" (or press F12)
- Look at the Styles panel on the right
- Find the current CSS rules affecting that element
- Copy the selector, modify it, test it right there
- Once it works, paste it into Avada
Pro tip: You can edit CSS live in DevTools to test changes before committing them. Just click on values and type new ones...
Child Theme Setup for Avada
For projects where you'll add significant CSS, a child theme is the professional approach.
Creating an Avada Child Theme
1. Create folder: /wp-content/themes/Avada-child/
2. Create style.css:
/*
Theme Name: Avada Child
Template: Avada
Version: 1.0
*/
/* Your custom CSS goes below */
3. Create functions.php:
<?php
function avada_child_enqueue_styles() {
wp_enqueue_style('avada-parent-style', get_template_directory_uri() . '/style.css');
wp_enqueue_style('avada-child-style', get_stylesheet_directory_uri() . '/style.css', array('avada-parent-style'));
}
add_action('wp_enqueue_scripts', 'avada_child_enqueue_styles');
4. Activate: Appearance → Themes → Avada Child
Now any CSS in your child theme's style.css will override parent theme styles - and survive theme updates!!
Common CSS Mistakes in Avada
Mistake 1: Forgetting the dot or hash
/* Wrong */
my-class { color: red; }
/* Right */
.my-class { color: red; }
Mistake 2: CSS in wrong location
Global CSS won't work for page-specific elements generated by Avada Live. Use page-specific CSS instead.
Mistake 3: Caching
Changed your CSS but nothing happened? Clear:
- Browser cache (Ctrl+Shift+R)
- Any caching plugin (WP Rocket, etc.)
- Avada's built-in cache: Avada → Patcher → Clear Avada Caches
Mistake 4: Overusing !important
If you need !important on everything, you're fighting specificity wrong. Be more specific with selectors instead.
When CSS Isn't Enough
Sometimes CSS can't do what you need. For those situations, consider:
- Avada's Dynamic CSS - Global Options has fields for many customizations
- JavaScript - For interactive behaviors CSS can't handle
- PHP (functions.php) - For server-side changes
- A different theme - If you're constantly fighting Avada's structure
Speaking of alternatives - Divi uses a more straightforward CSS architecture that's sometimes easier to override. Plus their unlimited licensing means you're not paying per-site for client projects. Worth considering if you find yourself writing CSS workarounds constantly...
Wrapping Up
Custom CSS in Avada isn't scary once you understand:
- Where to add it - Global, page-specific, or child theme
- How specificity works - Match or exceed Avada's selectors
- How to find selectors - Browser DevTools are essential
- Ready-made solutions - The toolbox snippets above save hours
Bookmark this article. Next time you need to tweak something in Avada, check the toolbox first - your solution might already be here ;-)
Got a CSS challenge I didn't cover? Drop it in the comments and I'll add it to the toolbox!!
This article contains affiliate links!


Top comments (0)