Make this Mega Slider: Skewed Spectra Slideshow in WordPress Elementor

Today, we’re making a Skewed Spectra Slider.

We will use Elementor free version. No Elementor pro. No extra plugins. Just clean HTML with CSS and JavaScript. It is also fully responsive. So feel free to use it on your landing page.

no elementor pro - no extra plugins

This mega slider captivates visitors with its sleek, modern design. Vibrant colors and smooth animations grab attention instantly. The skewed backgrounds and layered illustrations create a dynamic, premium feel. Slides rotate automatically, embedding your message deeply in visitors’ minds. It’s engaging, professional, and unforgettable. Use it in your hero section to make a bold first impression. Add it to product pages to showcase features with flair. Or place it on service pages to highlight offerings dynamically.

Here are the steps to integrate it into your Elementor website:

  1. Create three HTML blocks.
  2. Paste the separate codes in them.

HTML

<div class="wputopia-container">
        <div class="wputopia-slider">
            <div class="wputopia-slide wputopia-slide-1">
                <div class="wputopia-bg"></div>
                <div class="wputopia-content">
                    <h1>I'm the first Box</h1>
                    <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer lacinia dui lectus.</p>
                    <button>Check Now</button>
                </div>
                <div class="wputopia-illustration">
                    <div></div>
                </div>
            </div>
            <div class="wputopia-slide wputopia-slide-2">
                <div class="wputopia-bg"></div>
                <div class="wputopia-content">
                    <h1>I'm the second Box</h1>
                    <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer lacinia dui lectus.</p>
                    <button>Check Now</button>
                </div>
                <div class="wputopia-illustration">
                    <div></div>
                </div>
            </div>
            <div class="wputopia-slide wputopia-slide-3">
                <div class="wputopia-bg"></div>
                <div class="wputopia-content">
                    <h1>I'm the third Box</h1>
                    <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer lacinia dui lectus.</p>
                    <button>Check Now</button>
                </div>
                <div class="wputopia-illustration">
                    <div></div>
                </div>
            </div>
            <div class="wputopia-slide wputopia-slide-4">
                <div class="wputopia-bg"></div>
                <div class="wputopia-content">
                    <h1>I'm the fourth Box</h1>
                    <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer lacinia dui lectus.</p>
                    <button>Check Now</button>
                </div>
                <div class="wputopia-illustration">
                    <div></div>
                </div>
            </div>
            <div class="wputopia-slide wputopia-slide-5">
                <div class="wputopia-bg"></div>
                <div class="wputopia-content">
                    <h1>I'm the fifth Box</h1>
                    <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer lacinia dui lectus.</p>
                    <button>Check Now</button>
                </div>
                <div class="wputopia-illustration">
                    <div></div>
                </div>
            </div>
        </div>

        <svg class="wputopia-nav wputopia-prev" width="56.898" height="91" viewBox="0 0 56.898 91">
            <path d="M45.5,0,91,56.9,48.452,24.068,0,56.9Z" transform="translate(0 91) rotate(-90)" fill="#fff"/>
        </svg>
        <svg class="wputopia-nav wputopia-next" width="56.898" height="91" viewBox="0 0 56.898 91">
            <path d="M45.5,0,91,56.9,48.452,24.068,0,56.9Z" transform="translate(56.898) rotate(90)" fill="#fff"/>
        </svg>

        <div class="wputopia-trail">
            <div class="active">1</div>
            <div>2</div>
            <div>3</div>
            <div>4</div>
            <div>5</div>
        </div>
    </div>

CSS

<style>
 /* Container Styles */
        .wputopia-container {
            position: relative;
            overflow: hidden;
            border-radius: 5rem;
            height: 55rem;
            background-color: #000;
        }

        /* Slider Styles */
        .wputopia-slider {
            display: flex;
            width: 500%;
            height: 100%;
            transition: transform 0.5s cubic-bezier(0.4, 0, 0.2, 1);
        }

        /* Slide Styles */
        .wputopia-slide {
            width: 100%;
            height: 100%;
            display: grid;
            grid-template-columns: repeat(2, 1fr);
            align-items: center;
            position: relative;
            transition: all 0.5s ease;
        }

        /* Background Layer */
        .wputopia-bg {
            position: absolute;
            width: 55%;
            height: 100%;
            left: -10%;
            padding: 2rem;
            padding-left: 20rem;
            transform: skewX(7deg);
            transform-origin: 0 100%;
            background-color: rgba(0, 0, 0, 0.2);
        }

        .wputopia-bg::before {
            content: '';
            position: absolute;
            width: 100%;
            height: 100%;
            left: 0;
            top: 0;
            transform: skewX(10deg);
            pointer-events: none;
            transition: background-color 0.5s ease;
        }

        /* Content Styles */
        .wputopia-content {
            padding: 5rem;
            padding-left: 10rem;
            z-index: 100;
            grid-column: 1;
            transition: opacity 0.5s ease;
        }

        .wputopia-content h1 {
            font-size: 3.5rem;
            font-weight: 500;
            margin-bottom: 0.5rem;
			color:#fff;
        }

        .wputopia-content p {
            font-size: 1.3rem;
            color: #B5B4B4;
            margin-bottom: 2rem;
            margin-right: 5rem;
        }

        .wputopia-content button {
            padding: 1rem 3rem;
            color: #fff;
            border-radius: 2rem;
            border: none;
            cursor: pointer;
            transition: opacity 0.3s ease;
        }

        .wputopia-content button:hover {
            transform: scale(1.05);
            transition: transform 0.3s ease;
        }

        /* Illustration Styles */
        .wputopia-illustration {
            grid-column: 2;
            justify-self: center;
            transition: transform 0.5s ease;
        }

        .wputopia-illustration div {
            height: 25rem;
            width: 18rem;
            border-radius: 3rem;
            position: relative;
            transform: skewX(-10deg);
        }

        .wputopia-illustration div::after,
        .wputopia-illustration div::before {
            content: '';
            position: absolute;
            height: 100%;
            width: 100%;
            border-radius: 3rem;
            top: 0;
            left: 0;
            opacity: 0.4;
        }

        .wputopia-illustration div::after {
            transform: translate(4rem, -1rem);
        }

        .wputopia-illustration div::before {
            transform: translate(2rem, -2rem);
        }

        /* Navigation Styles */
        .wputopia-nav {
            position: absolute;
            z-index: 1000;
            background-color: rgba(0, 0, 0, 0.2);
            padding: 1rem;
            border-radius: 50%;
            transition: background-color 0.5s ease;
            display: block;
        }

        .wputopia-prev,
        .wputopia-next {
            width: 4rem;
            cursor: pointer;
            opacity: 0.8;
            transition: opacity 0.3s ease;
        }

        .wputopia-prev:hover,
        .wputopia-next:hover {
            opacity: 1;
        }

        .wputopia-prev {
            top: 50%;
            left: 2%;
            transform: translateY(-50%);
        }

        .wputopia-next {
            top: 50%;
            right: 2%;
            transform: translateY(-50%);
        }

        .wputopia-trail {
            position: absolute;
            bottom: 5%;
            left: 50%;
            transform: translateX(-50%);
            width: 60%;
            display: grid;
            grid-template-columns: repeat(5, 1fr);
            gap: 1rem;
            text-align: center;
            z-index: 2000;
        }

        .wputopia-trail div {
            padding: 2rem;
            border-top: 3px solid #fff;
            cursor: pointer;
            opacity: 0.6;
            transition: all 0.3s ease;
        }

        .wputopia-trail div:hover {
            opacity: 0.8;
        }

        .wputopia-trail div.active {
            opacity: 1;
        }

        /* Color Schemes */
        .wputopia-slide-1 .wputopia-bg::before { 
            background-color: #500033;
            transition: background-color 0.5s ease;
        }
        .wputopia-slide-1 .wputopia-illustration div { 
            background-color: #FF0077;
            transition: background-color 0.5s ease;
        }
        .wputopia-slide-1 button { 
            background-color: #FF0077;
            transition: background-color 0.5s ease;
        }

        .wputopia-slide-2 .wputopia-bg::before { 
            background-color: #000050;
            transition: background-color 0.5s ease;
        }
        .wputopia-slide-2 .wputopia-illustration div { 
            background-color: #0033FF;
            transition: background-color 0.5s ease;
        }
        .wputopia-slide-2 button { 
            background-color: #0033FF;
            transition: background-color 0.5s ease;
        }

        .wputopia-slide-3 .wputopia-bg::before { 
            background-color: #00501D;
            transition: background-color 0.5s ease;
        }
        .wputopia-slide-3 .wputopia-illustration div { 
            background-color: #00FF44;
            transition: background-color 0.5s ease;
        }
        .wputopia-slide-3 button { 
            background-color: #00FF44;
            transition: background-color 0.5s ease;
        }

        .wputopia-slide-4 .wputopia-bg::before { 
            background-color: #554D00;
            transition: background-color 0.5s ease;
        }
        .wputopia-slide-4 .wputopia-illustration div { 
            background-color: #FF4E00;
            transition: background-color 0.5s ease;
        }
        .wputopia-slide-4 button { 
            background-color: #FF4E00;
            transition: background-color 0.5s ease;
        }

        .wputopia-slide-5 .wputopia-bg::before { 
            background-color: #300050;
            transition: background-color 0.5s ease;
        }
        .wputopia-slide-5 .wputopia-illustration div { 
            background-color: #8000FF;
            transition: background-color 0.5s ease;
        }
        .wputopia-slide-5 button { 
            background-color: #8000FF;
            transition: background-color 0.5s ease;
        }

        /* Update arrow colors based on next/previous slides */
        .wputopia-slide-1 .wputopia-prev { background-color: #300050; } /* Points to slide 5 */
        .wputopia-slide-1 .wputopia-next { background-color: #000050; } /* Points to slide 2 */

        .wputopia-slide-2 .wputopia-prev { background-color: #500033; } /* Points to slide 1 */
        .wputopia-slide-2 .wputopia-next { background-color: #00501D; } /* Points to slide 3 */

        .wputopia-slide-3 .wputopia-prev { background-color: #000050; } /* Points to slide 2 */
        .wputopia-slide-3 .wputopia-next { background-color: #554D00; } /* Points to slide 4 */

        .wputopia-slide-4 .wputopia-prev { background-color: #00501D; } /* Points to slide 3 */
        .wputopia-slide-4 .wputopia-next { background-color: #300050; } /* Points to slide 5 */

        .wputopia-slide-5 .wputopia-prev { background-color: #554D00; } /* Points to slide 4 */
        .wputopia-slide-5 .wputopia-next { background-color: #500033; } /* Points to slide 1 */

        /* Responsive Styles */
        @media (max-width: 1000px) {
            body {
                padding: 0;
            }
            .wputopia-container {
                border-radius: 0;
                height: 100vh;
            }
        }

        @media (max-width: 800px) {
            .wputopia-bg {
                width: 65%;
            }
            .wputopia-illustration div {
                height: 20rem;
                width: 15rem;
            }
            .wputopia-content p {
                margin-right: 0;
            }
            .wputopia-content h1 {
                font-size: 2.8rem;
            }
            .wputopia-content {
                padding: 3rem;
                padding-left: 8rem;
            }
        }

        @media (max-width: 650px) {
            .wputopia-slide {
                grid-template-columns: 1fr;
                grid-template-rows: repeat(2, 1fr);
            }
            .wputopia-bg {
                width: 100%;
                left: 0;
                bottom: 0;
                height: 54%;
                transform: skewX(0deg);
            }
            .wputopia-bg::before {
                width: 120%;
                bottom: 0;
                transform: skewX(0deg);
            }
            .wputopia-content {
                grid-row: 2;
                grid-column: 1;
                text-align: center;
                padding: 2rem;
                transform: translateY(-9rem);
            }
            .wputopia-content h1 {
                font-size: 2.5rem;
            }
            .wputopia-content p {
                font-size: 1.1rem;
                margin-right: 0;
            }
            .wputopia-content button {
                padding: 0.8rem 2.5rem;
                font-size: 0.9rem;
            }
            .wputopia-illustration {
                grid-row: 1;
                grid-column: 1;
                justify-self: center;
                margin-top: 2rem;
            }
            .wputopia-illustration div {
                height: 15rem;
                width: 12rem;
            }
            .wputopia-prev,
            .wputopia-next {
                display: block;
                width: 2.5rem;
                padding: 0.5rem;
            }
            .wputopia-prev {
                left: 5%;
            }
            .wputopia-next {
                right: 5%;
            }
            .wputopia-trail {
                width: 90%;
                bottom: 13%;
            }
            .wputopia-trail div {
                padding: 1rem;
            }
        }

        @media (max-width: 450px) {
            .wputopia-content h1 {
                font-size: 2rem;
            }
            .wputopia-content p {
                font-size: 0.9rem;
            }
            .wputopia-content button {
                padding: 0.7rem 2rem;
                font-size: 0.8rem;
            }
            .wputopia-illustration div {
                height: 12rem;
                width: 10rem;
            }
            .wputopia-trail {
                width: 95%;
                bottom: 8%;
            }
            .wputopia-trail div {
                padding: 0.5rem;
            }
        }

        /* Touch handling for mobile */
        @media (hover: none) {
            .wputopia-content button:hover {
                transform: none;
            }
            .wputopia-trail div:hover {
                opacity: 0.3;
            }
            .wputopia-trail div.active {
                opacity: 1;
            }
        }

        /* Safe area for devices with notches */
        @supports (padding: max(0px)) {
            body {
                padding-left: max(8rem, env(safe-area-inset-left));
                padding-right: max(8rem, env(safe-area-inset-right));
                padding-top: max(0px, env(safe-area-inset-top));
                padding-bottom: max(0px, env(safe-area-inset-bottom));
            }
            
            @media (max-width: 1000px) {
                body {
                    padding-left: max(0px, env(safe-area-inset-left));
                    padding-right: max(0px, env(safe-area-inset-right));
                }
            }
        }
    </style>

JS

<script src="https://cdnjs.cloudflare.com/ajax/libs/gsap/3.12.2/gsap.min.js"></script>
   <script src="https://unpkg.com/wordpress-dev-necessary/dist/necessary.min.js"></script>
    <script>
        // Slider elements
        const slider = document.querySelector('.wputopia-slider');
        const slides = document.querySelectorAll('.wputopia-slide');
        const trails = document.querySelectorAll('.wputopia-trail div');
        const prevBtn = document.querySelector('.wputopia-prev');
        const nextBtn = document.querySelector('.wputopia-next');

        // Animation variables
        let currentSlide = 0;

        // GSAP animations
        const tl = gsap.timeline({ defaults: { duration: 0.6, ease: "power2.inOut" } });
        tl.from(".wputopia-bg", { x: "-100%", opacity: 0 })
          .from(".wputopia-content p", { opacity: 0 }, "-=0.3")
          .from(".wputopia-content h1", { opacity: 0, y: "30px" }, "-=0.3")
          .from(".wputopia-content button", { opacity: 0, y: "-40px" }, "-=0.8");

        // Function to update slide position
        function updateSlide() {
            slider.style.transform = `translateX(-${currentSlide * 20}%)`;
            trails.forEach((trail, index) => {
                trail.classList.toggle('active', index === currentSlide);
            });
            tl.restart();
        }

        // Function to move to next slide
        function nextSlide() {
            currentSlide = (currentSlide + 1) % slides.length;
            updateSlide();
        }

        // Function to move to previous slide
        function prevSlide() {
            currentSlide = (currentSlide - 1 + slides.length) % slides.length;
            updateSlide();
        }

        // Function to move to specific slide
        function goToSlide(index) {
            currentSlide = index;
            updateSlide();
        }

        // Event listeners
        if (nextBtn) {
            nextBtn.addEventListener('click', (e) => {
                e.preventDefault();
                nextSlide();
            });
        }

        if (prevBtn) {
            prevBtn.addEventListener('click', (e) => {
                e.preventDefault();
                prevSlide();
            });
        }

        trails.forEach((trail, index) => {
            trail.addEventListener('click', () => goToSlide(index));
        });

        // Touch events for mobile
        let touchStartX = 0;
        let touchEndX = 0;

        slider.addEventListener('touchstart', (e) => {
            touchStartX = e.touches[0].clientX;
        });

        slider.addEventListener('touchend', (e) => {
            touchEndX = e.changedTouches[0].clientX;
            const diff = touchStartX - touchEndX;
            const threshold = slider.clientWidth / 4;

            if (Math.abs(diff) > threshold) {
                if (diff > 0) {
                    nextSlide();
                } else {
                    prevSlide();
                }
            }
        });

        // Initialize slider
        updateSlide();
    </script>

That’s it. Easy-peasy.

If you like it, don’t forget to like and comment, so I can send you the file.

Support My Work

If you enjoy my content, consider buying me a coffee or shopping through my Rakuten link to support me!

Victor

Founder of WPUtopia.com🕵️I would appreciate it if you could leave me a comment!

Send Message

Chat with me

Start a Conversation

Hi! Let's connect on your preferred platform.