AgentSkillsCN

rendering_animate_svg_wrapper

从Vercel导入技能:rendering_animate_svg_wrapper

SKILL.md
--- frontmatter
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.