🎯How to Create Animated Tabs with GSAP: A Step-by-Step Guide
In this blog post, you'll learn how to create smooth and interactive tab navigation with GSAP (GreenSock Animation Platform). We'll build a stylish tab menu with an animated indicator, sliding content panels, and a fade-in effect using HTML, CSS, and JavaScript.
✅ Live Demo
1️⃣ HTML Structure
We'll start by creating the basic HTML structure for the tab menu and content panels.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Magic Navigation Menu</title>
<!-- Font Awesome for icons -->
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.7.2/css/all.min.css" />
</head>
<body>
<div class="tabsContainer">
<div class="tabsBox">
<div class="indicator"></div>
<button><span>Home</span> <i class="fas fa-home"></i></button>
<button><span>About</span> <i class="fas fa-user"></i></button>
<button><span>Services</span> <i class="fas fa-cogs"></i></button>
<button><span>Portfolio</span> <i class="fas fa-briefcase"></i></button>
<button><span>Contact</span> <i class="fas fa-envelope"></i></button>
</div>
<div class="tabsContentContainer">
<div class="contentBox">
<h3>Home</h3>
<p>Lorem ipsum dolor, sit amet consectetur adipisicing elit. Incidunt facere recusandae cum commodi
neque explicabo.</p>
</div>
<div class="contentBox">
<h3>About</h3>
<p>Lorem ipsum dolor, sit amet consectetur adipisicing elit. Incidunt facere recusandae cum commodi
neque explicabo.</p>
</div>
<div class="contentBox">
<h3>Services</h3>
<p>Lorem ipsum dolor, sit amet consectetur adipisicing elit. Incidunt facere recusandae cum commodi
neque explicabo.</p>
</div>
<div class="contentBox">
<h3>Portfolio</h3>
<p>Lorem ipsum dolor, sit amet consectetur adipisicing elit. Incidunt facere recusandae cum commodi
neque explicabo.</p>
</div>
<div class="contentBox">
<h3>Contact</h3>
<p>Lorem ipsum dolor, sit amet consectetur adipisicing elit. Incidunt facere recusandae cum commodi
neque explicabo.</p>
</div>
</div>
</div>
<!-- GSAP CDN -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/gsap/3.12.5/gsap.min.js"></script>
</body>
</html>
✅Explanation:
The .tabsContainer holds both the tab menu and content panels.
The .indicator is a dynamic element that moves with the active tab.
The .tabsContentContainer contains all the content panels, which will slide horizontally.
🎨CSS Styling
Next, let's add some styling to make the tabs visually appealing.