Skip to main content

Command Palette

Search for a command to run...

How to Create a Brand Logo Ticker Animation Using React and Framer Motion

Updated
2 min read
How to Create a Brand Logo Ticker Animation Using React and Framer Motion
A

Hi there! I'm Aditya, a passionate Full-Stack Developer driven by a love for turning concepts into captivating digital experiences. With a blend of creativity and technical expertise, I specialize in crafting user-friendly websites and applications that leave a lasting impression. Let's connect and bring your digital vision to life!

In this tutorial, we will create a smooth and continuous brand logo ticker animation using React and Framer Motion. This animation will display a list of brand names scrolling horizontally across the screen.

Prerequisites

Before we begin, ensure you have the following installed:

  • Node.js and npm

  • A React application set-up (you can use Create React App for this)

  • Framer Motion library

Step 1: Install Framer Motion

First, you need to install the Framer Motion library in your React project. Run the following command in your project directory:

npm install framer-motion

Step 2: Create the Slider Component

Create a new component file named SliderTest.js And add the following code:

import React from 'react';
import { motion } from 'framer-motion';
import '../App.css';

function SliderTest() {
    const brandName = ["Google", "Facebook", "Amazon", "Microsoft", "Apple", "Netflix", "Tesla", "Twitter", "Instagram", "Linkedin"];
    const otherBrandName = ["Behance", "Dribble", "Figma", "Slack", "Spotify", "Twitch", "Whatsapp", "Zoom", "Youtube"];

    return (
        <>
            <div className='container mx-auto'>
                <div className='flex gap-3 scrollGradient'>
                    <motion.div initial={{x:0}} animate={{x:"-100%"}} transition={{duration:20, repeat:Infinity, ease:"linear", delay:0}} className='flex space-x-16 text-6xl font-semibold font-Orbitron flex-shrink-0'>
                        {brandName.map((brand, index) => (
                            <div key={index}>
                                {brand}
                            </div>
                        ))}
                    </motion.div>
                    <motion.div initial={{x:0}} animate={{x:"-100%"}} transition={{duration:20, repeat:Infinity, ease:"linear", delay:0}} className='flex space-x-16 text-6xl font-semibold font-Orbitron flex-shrink-0'>
                        {brandName.map((brand, index) => (
                            <div key={index}>
                                {brand}
                            </div>
                        ))}
                    </motion.div>
                </div>
            </div>
        </>
    );
}

export default SliderTest;

Step 3. Create a gradient mask effect in CSS

.scrollGradient{
  mask-image:linear-gradient(to right, 
  rgba(0,0,0,0),
  rgba(0,0,0,1) 20%,
  rgba(0,0,0,1) 80%,
  rgba(0,0,0,0)
)}

Step 4: Use the Component

Finally, import and use the SliderTest component in your main application file, typically App.js:

import React from 'react';
import SliderTest from './components/SliderTest';

function App() {
    return (
        <div className="App">
            <SliderTest />
        </div>
    );
}

export default App;

Conclusion

By following these steps, you have successfully created a brand logo ticker animation using React and Framer Motion.

You can further customize the animation duration, easing, and styles to fit your design needs. This component can be a great addition to any website looking to showcase brand partnerships or sponsors dynamically.

More from this blog

A

Aditya Kumar Gupta

23 posts

Hi there! I'm Aditya, a passionate Full-Stack Developer driven by a love for turning concepts into captivating digital experiences. With a blend of creativity and technical expertise