Why it matters
Ids are document-global. Two instances (or any other SVG using #filter/#gradient) resolve url(#…) to whichever element came first, so the second instance silently renders with the wrong filter or none (Aceternity spotlight uses id="filter").
How to fix it
Generate the id with useId() (strip the colons for url()), or hoist one shared definition to the layout and reference it.
Example
const id = useId().replace(/:/g, '');
<filter id={`${id}-blur`}>…</filter>
<g filter={`url(#${id}-blur)`} />References
More lint rules
void lint reports 67 rules in this category. Static source checks with no browser: Tailwind v4 silent failures, Next.js 16 API traps, React render-body bugs, accessibility markup, SEO files and motion hygiene.
animate-undefined`animate-*` class with no matching `--animate-*` theme variable or `@keyframes`random-in-render`Math.random()` / `Date.now()` / `new Date()` evaluated in a component render bodyduplicate-children-not-hiddenChildren repeated for a marquee/loop without `aria-hidden` or `inert` on the copiesconditional-hookHook called inside a JSX expression, `&&`, ternary or callbackallocation-per-frame`new Intl.NumberFormat` / `Intl.NumberFormat(` / `new Color(` inside an animation-frame callbacksetstate-per-pointer-moveReact state set inside a `mousemove` / `pointermove` / `scroll` handlerhardcoded-device-pixel-ratioCanvas/WebGL renders with a literal `devicePixelRatio: 2` (or `width * 2`)button-missing-type`<button>` (or `as="button"` default) without an explicit `type`