Back to skills
SKILL.md
Rendering Animate Svg Wrapper
ASecurityImported skill rendering_animate_svg_wrapper from vercel
- 3 stars
- 0 votes
- 0 copies
- 1 view
- Added September 11, 2026
Security analysis
100/100npx -y skills add bitwikiorg/skills.md --skill rendering_animate_svg_wrapper --agent claude-codeAre you the author of Rendering Animate Svg Wrapper?
Add the live security badge to your README. It updates with every re-scan.
[](https://www.skillsdirectory.com/skills/bitwikiorg-rendering-animate-svg-wrapper)---
description: Imported skill rendering_animate_svg_wrapper from vercel
name: rendering_animate_svg_wrapper
signature: 9c6ae0ca7a51434e803887c64cded760956579a1452ccb80a461a03f9c937c77
source: /a0/tmp/skills_research/vercel/skills/react-best-practices/rules/rendering-animate-svg-wrapper.md
---
---
title: Animate SVG Wrapper Instead of SVG Element
impact: LOW
impactDescription: enables hardware acceleration
tags: rendering, svg, css, animation, performance
---
## Animate SVG Wrapper Instead of SVG Element
Many browsers don't have hardware acceleration for CSS3 animations on SVG elements. Wrap SVG in a `<div>` and animate the wrapper instead.
**Incorrect (animating SVG directly - no hardware acceleration):**
```tsx
function LoadingSpinner() {
return (
<svg
className="animate-spin"
width="24"
height="24"
viewBox="0 0 24 24"
>
<circle cx="12" cy="12" r="10" stroke="currentColor" />
</svg>
)
}
```
**Correct (animating wrapper div - hardware accelerated):**
```tsx
function LoadingSpinner() {
return (
<div className="animate-spin">
<svg
width="24"
height="24"
viewBox="0 0 24 24"
>
<circle cx="12" cy="12" r="10" stroke="currentColor" />
</svg>
</div>
)
}
```
This applies to all CSS transforms and transitions (`transform`, `opacity`, `translate`, `scale`, `rotate`). The wrapper div allows browsers to use GPU acceleration for smoother animations.
Attribution
Comments
Loading comments…