---
title: "`will-change` applied statically to many elements (lint/will-change-static)"
description: "lint/will-change-static: Each `will-change` layer costs GPU memory; applied statically (or to html/body) it can make rendering slower, blur text and exhaust…"
canonical: https://void-design.vercel.app/rules/lint/will-change-static
lastModified: 2026-09-16
---

# `will-change` applied statically to many elements

`lint/will-change-static` · severity **warn** · category Lint · detected by `void lint` and `void audit`

## Why it matters

Each `will-change` layer costs GPU memory; applied statically (or to html/body) it can make rendering slower, blur text and exhaust memory on low-end phones.

## How to fix it

Remove static `will-change`. Set it only just before an interaction/animation (and remove after), or rely on the browser's own layer promotion for transform/opacity animations.

## Example

```ts
el.style.willChange = 'transform'   // on pointerdown
el.style.willChange = 'auto'        // on transitionend
```

## References

- https://developer.mozilla.org/en-US/docs/Web/CSS/will-change

## 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.

- `long-ui-duration` UI feedback transition longer than 500ms — [lint/long-ui-duration](https://void-design.vercel.app/rules/lint/long-ui-duration)
- `no-reduced-motion` Animations present but no `prefers-reduced-motion` handling anywhere — [lint/no-reduced-motion](https://void-design.vercel.app/rules/lint/no-reduced-motion)
- `overflow-x-hidden-sticky` `overflow-x: hidden` on html/body/root wrapper breaks `position: sticky` — [lint/overflow-x-hidden-sticky](https://void-design.vercel.app/rules/lint/overflow-x-hidden-sticky)
- `vh-hero` Hero sized with `100vh` / `h-screen` — [lint/vh-hero](https://void-design.vercel.app/rules/lint/vh-hero)
- `z-index-soup` Many distinct z-index values — [lint/z-index-soup](https://void-design.vercel.app/rules/lint/z-index-soup)
- `hardcoded-colors` Hard-coded colors in components instead of tokens — [lint/hardcoded-colors](https://void-design.vercel.app/rules/lint/hardcoded-colors)
- `missing-metadata` Page has no `metadata` / `generateMetadata` and inherits only the root title — [lint/missing-metadata](https://void-design.vercel.app/rules/lint/missing-metadata)
- `missing-metadata-base` Root layout metadata has no `metadataBase` — [lint/missing-metadata-base](https://void-design.vercel.app/rules/lint/missing-metadata-base)

Detected by `void lint` and `void audit`. Explain it in a terminal: `void rules lint/will-change-static`
