---
title: "will-change on a property it can't help (ui/will-change)"
description: "will-change only promotes transform, opacity, filter and clip-path; `all` or layout properties waste GPU memory."
url: http://localhost:4173/rules/ui/will-change
updated: 2026-11-11
---

# will-change on a property it can't help

> `ui/will-change` is a vetd rule. It flags: will-change on a property it can't help. It runs on every `check`, together with the TypeScript check.

| Fact | Value |
| --- | --- |
| Rule id | `ui/will-change` |
| Severity | warning |
| Group | Interface craft: accessibility, motion and mobile |
| Tags | performance |

## Why it matters

will-change only promotes transform, opacity, filter and clip-path; `all` or layout properties waste GPU memory.

## How to fix it

will-change: transform (or remove it).

## References

- [will-change](https://developer.mozilla.org/en-US/docs/Web/CSS/Reference/Properties/will-change), MDN Web Docs
- [Stick to compositor-only properties and manage layer count](https://web.dev/articles/stick-to-compositor-only-properties-and-manage-layer-count), web.dev
- [Why are some animations slow?](https://web.dev/articles/animations-overview), web.dev

## See it

Demos in the vetd Lab:

- [Use will-change sparingly](http://localhost:4173/lab/web-perf/will-change-sparingly)

## Related rules

- [`ui/animate-layout`](http://localhost:4173/rules/ui/animate-layout.md)
- [`ui/transition-all`](http://localhost:4173/rules/ui/transition-all.md)

## Get this text from vetd

MCP: call `explain` with `{ "diagnosticId": "ui/will-change" }`. CLI: `npx vetd explain ui/will-change`.

---

[All 92 rules](http://localhost:4173/rules.md) · Previous: [`ui/animate-layout`](http://localhost:4173/rules/ui/animate-layout.md) · Next: [`ui/user-select-page`](http://localhost:4173/rules/ui/user-select-page.md)
