Before/After Slider Widget Demo

Interactive image comparison slider perfect for contractors showing project transformations. No dependencies, mobile responsive, accessible.

Demo 1: Kitchen Remodel Transformation

Show your clients the dramatic difference in kitchen remodels.

Kitchen before remodel Kitchen after remodel
Before
After
<div data-tradecalcs-before-after>
  <img data-before-image src="before.jpg" alt="Kitchen before remodel">
  <img data-after-image src="after.jpg" alt="Kitchen after remodel">
  <div data-before-label>Before</div>
  <div data-after-label>After</div>
</div>

Interaction: Drag the slider handle left/right, or use arrow keys when focused.

Demo 2: Bathroom Renovation

Demonstrate bathroom transformation with before/after comparison.

Bathroom before renovation Bathroom after renovation
Before
After

Demo 3: Home Exterior Makeover

Show exterior transformations with siding, paint, or landscaping.

Home exterior before Home exterior after
Before
After

Demo 4: Custom Theme (Green Brand)

Customized colors using CSS variables to match your brand.

Room before Room after
Before
After
<div data-tradecalcs-before-after
     style="--tc-ba-slider-color: #10b981;
            --tc-ba-slider-hover: #059669;
            --tc-ba-handle-border: #10b981;">
  <!-- images -->
</div>

📦 Installation

Step 1: Add the CSS and JavaScript files to your HTML:

<!-- Add to <head> -->
<link rel="stylesheet" href="/widgets/before-after-slider.css">

<!-- Add before closing </body> -->
<script src="/widgets/before-after-slider.js"></script>

Step 2: Add your before/after images:

<div data-tradecalcs-before-after>
  <img data-before-image src="path/to/before.jpg" alt="Before renovation">
  <img data-after-image src="path/to/after.jpg" alt="After renovation">
  <div data-before-label>Before</div>
  <div data-after-label>After</div>
</div>

Note: Replace d790a6cc.tradecalcs.pages.dev with tradecalcs.com once the production domain is configured.

Configuration Options

Data Attributes

CSS Custom Properties

JavaScript API

// Initialize all sliders manually
TradeCalcsBeforeAfter.init();

// Initialize specific slider
const element = document.querySelector('[data-tradecalcs-before-after]');
TradeCalcsBeforeAfter.initElement(element);

// Cleanup slider (remove event listeners)
TradeCalcsBeforeAfter.cleanup(element);
TradeCalcsBeforeAfter.cleanup('slider-id');

// Check if user prefers reduced motion
if (TradeCalcsBeforeAfter.prefersReducedMotion()) {
  console.log('User prefers reduced motion');
}

// Listen for initialization
element.addEventListener('tc-before-after-initialized', function(e) {
  console.log('Slider initialized', e.detail);
});

Keyboard Controls

The slider is fully keyboard accessible:

Features

Use Cases

Best Practices

Browser Support

Works in all modern browsers:

Our Network

Cali Dream Construction RemodelSD Escondido Home Remodeling

Built by Cali Dream Construction · CSLB #1054602

Get a Custom Quote — Contact TradeCalcs