# What changed in @pixi/ui

> 22 changes in @pixi/ui 2 from its official release notes, upgrade guides and advisories: 13 breaking, 5 new APIs and options. Each one cited. Sources checked 2026-11-12. HTML: https://unstale.sh/npm/@pixi/ui/

To see which of these apply to a repository, run `npx @unstale/cli init` in it.

## @pixi/ui 2

### Breaking changes

- ScrollBox declarations no longer expose a NodeJS.Timeout field, so browser projects without @types/node can type-check with skipLibCheck off. (2.4.1) — [release notes](https://github.com/pixijs/ui/releases/tag/v2.4.1)
- Assigning null to view is ignored and keeps the current view instead of throwing. (2.4.0) — [release notes](https://github.com/pixijs/ui/releases/tag/v2.4.0)
- Throws a clear error for an undefined child instead of failing later. (2.4.0) — [release notes](https://github.com/pixijs/ui/releases/tag/v2.4.0)
- Typed text now comes from the hidden native field's input event, so typing no longer calls subclass methods that previously customized it. (2.4.0) — [release notes](https://github.com/pixijs/ui/releases/tag/v2.4.0)
- Setting value while the user is editing now updates the field being edited, without emitting onChange. (2.4.0) — [release notes](https://github.com/pixijs/ui/releases/tag/v2.4.0)
- Removed from Input's protected API. (2.4.0) — [release notes](https://github.com/pixijs/ui/releases/tag/v2.4.0)
- Children with an anchor or pivot are positioned by their visual corner; children without one are unaffected. (2.4.0) — [release notes](https://github.com/pixijs/ui/releases/tag/v2.4.0)
- No longer receives the event; subclasses that filter or rewrite characters can adjust this.input.value before calling super.onInput(). (2.4.0) — [release notes](https://github.com/pixijs/ui/releases/tag/v2.4.0)
- Renamed to onKeyDown, matching the event it was always bound to. (2.4.0) — [release notes](https://github.com/pixijs/ui/releases/tag/v2.4.0)
- Removed from Input's protected API. (2.4.0) — [release notes](https://github.com/pixijs/ui/releases/tag/v2.4.0)
- Scroll limits now follow the ScrollBox's current size. (2.4.0) — [release notes](https://github.com/pixijs/ui/releases/tag/v2.4.0)
- Sizes itself to its content; explicit width and height take precedence, and 0 is treated as a real value. (2.4.0) — [release notes](https://github.com/pixijs/ui/releases/tag/v2.4.0)
- The package is no longer needed; signals are built in, and the UMD bundle no longer needs a typedSignals global. (2.4.0) — [release notes](https://github.com/pixijs/ui/releases/tag/v2.4.0)

### New APIs and options

- Elements now support container options. (2.4.0) — [release notes](https://github.com/pixijs/ui/releases/tag/v2.4.0)
- Adds a modal drawer component with container options support. (2.4.0) — [release notes](https://github.com/pixijs/ui/releases/tag/v2.4.0)
- Adds the inputAttributes option for configuring the hidden native field used by Input. (2.4.0) — [release notes](https://github.com/pixijs/ui/releases/tag/v2.4.0)
- Signal is now built in and exported from @pixi/ui; use it instead of the incompatible Signal type from typed-signals. (2.4.0) — [release notes](https://github.com/pixijs/ui/releases/tag/v2.4.0)
- SignalConnection is now exported from @pixi/ui. (2.4.0) — [release notes](https://github.com/pixijs/ui/releases/tag/v2.4.0)

### Performance

- Bulk addItems adds items in one pass instead of one at a time. (2.4.0) — [release notes](https://github.com/pixijs/ui/releases/tag/v2.4.0)

### Behavior and default changes

- removeItems now recomputes the scroll limits. (2.4.0) — [release notes](https://github.com/pixijs/ui/releases/tag/v2.4.0)

### Fixes and other changes

- The UMD bundle now uses tweedle.js’s actual global, so loading the scripts in order no longer leaves PIXI.ui undefined. (2.4.1) — [release notes](https://github.com/pixijs/ui/releases/tag/v2.4.1)
- Fixes type settings. (2.3.2) — [release notes](https://github.com/pixijs/ui/releases/tag/v2.3.2)
