GSAP CSS Plugin — Animating CSS Properties and Variables
In this tutorial, you will learn about GSAP CSS Plugin. We cover key concepts, practical examples, and best practices to help you master this topic.
GSAP CSS plugin extends animation capabilities to CSS custom properties, complex values like backdrop-filter and clip-path, and CSS Grid properties.
What You'll Learn
By the end of this guide, you will animate CSS custom properties, use GSAP with CSS filters and backdrop-filter, animate clip-path for reveal effects, work with CSS grid properties, and use CSS variables for theming.
CSS Variables
gsap.to(':root', {
'--primary-color': '#ff6b35',
'--spacing': '40px',
duration: 1,
ease: 'power2.out'
});
CSS Filters
gsap.to('.image', {
filter: 'grayscale(0%) blur(0px) brightness(100%)',
duration: 1,
ease: 'power2.out'
});
Clip Path
gsap.from('.reveal', {
clipPath: 'circle(0% at 50% 50%)',
duration: 1.5,
ease: 'power4.out'
});
Backdrop Filter
gsap.to('.glass', {
backdropFilter: 'blur(20px) saturate(180%)',
duration: 1,
ease: 'power2.out'
});
Common Mistakes
1. CSS Variable Name Format
Use single quotes for CSS variable names: '--my-var'. Without quotes, the hyphen breaks JavaScript Parsing.
2. Interpolation Units
CSS values with units need proper spacing: filter: 'blur(10px)'. GSAP interpolates numeric parts.
3. Browser Support for CSS Properties
Not all CSS properties are animatable. Check browser support for clip-path, backdrop-filter, etc.
4. !important Override
GSAP sets inline styles. If CSS has !important, GSAP values are ignored. Remove !important from CSS.
5. Performance of filter animations
Animating filter on many elements causes repaints. Use will-change: filter for GPU acceleration.
Practice Questions
Q1: Can GSAP animate CSS custom properties? A: Yes. Use the variable name as a string property: '--my-var'.
Q2: How do you animate multiple CSS filters together? A: Pass a single filter string with all filter functions: 'blur(0px) grayscale(0%) brightness(100%)'.
Q3: What clip path values work with GSAP? A: Any clip-path that GSAP can interpolate between: polygon(), circle(), inset(), path().
Q4: How do you animate CSS grid template? A: Use gridTemplateColumns and gridTemplateRows as property names with valid CSS values.
Q5: How do you get the current computed value of a CSS property? A: Use getComputedStyle or gsap.getProperty(element, propertyName).
Challenge: Build a card that reveals content on hover using clip-path animation. The card should have a gradient border that animates on hover using CSS variables.
FAQ
Try It Yourself
Animate CSS filters and clip path.
<!DOCTYPE html>
<html>
<head>
<title>GSAP CSS Plugin Demo</title>
<script src="https://cdnjs.cloudflare.com/ajax/libs/gsap/3.12/gsap.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/gsap/3.12/CSSRulePlugin.min.js"></script>
<style>
:root { --overlay-color: rgba(78, 205, 196, 0.3); }
.card { width: 300px; height: 200px; background: linear-gradient(135deg, #4ecdc4, #2a9d8f); border-radius: 12px; display: flex; align-items: center; justify-content: center; color: white; font-size: 24px; font-weight: bold; position: relative; overflow: hidden; cursor: pointer; }
.card img { width: 100%; height: 100%; object-fit: cover; }
.overlay { position: absolute; inset: 0; background: var(--overlay-color); backdrop-filter: blur(0px); }
</style>
</head>
<body style="font-family:sans-serif;padding:20px;">
<h2>CSS Property Animation</h2>
<button onclick="animateCSS()">Animate</button>
<button onclick="resetCSS()">Reset</button>
<div class="card" id="card" style="margin-top:10px;">
<div class="overlay" id="overlay"></div>
<span style="position:relative;z-index:1;">Reveal</span>
</div>
<script>
function animateCSS() {
gsap.to('#overlay', {
backdropFilter: 'blur(20px)',
'--overlay-color': 'rgba(255, 107, 53, 0.4)',
duration: 1,
ease: 'power2.out'
});
}
function resetCSS() {
gsap.to('#overlay', {
backdropFilter: 'blur(0px)',
'--overlay-color': 'rgba(78, 205, 196, 0.3)',
duration: 0.5
});
}
</script>
</body>
</html>
What's Next
Advanced ScrollTrigger techniques.
Scroll Trigger — ScrollTrigger basics. Scroll Trigger Advanced — Advanced ScrollTrigger.
Built by the developers of DodaTech
Doda Browser, DodaZIP & Durga Antivirus Pro