Packages

@remix-run/ui

0.13.0 · 23 Oct 2026MIT19.4k / weekRepositoryHomepagenpmAtom feed

Upgrading @remix-run/ui from 0.9.0 to 0.13.0

5 releases in betweenevery note read

Before you upgrade

Tick each one off as you go
  • breaking0.13.0
  • breaking0.13.0
  • breaking0.12.0
  • breaking0.10.0
  • breaking0.10.0
  • breaking0.10.0

Release by release

  1. 0.13.0

    23 Oct 20261 new · 2 fixes
    • new

      Check the user's current motion preference with prefersReducedMotion() from @remix-run/ui/animation. It returns false during server rendering or when matchMedia is unavailable, so it can be called safely from component render functions as well as browser event handlers.

    • fixed

      Server rendering skips setup and render for animation mixins, keyboard and outside-click helpers, typeahead behavior, and popover anchor and focus helpers. Mixins that provide initial attributes, styles, or ARIA props still run on the server.

    • fixed

      Bumped @remix-run/* dependencies:

  2. 0.12.0 – 0.12.12 releases, nothing new or fixed in the notes

  3. 0.11.0

    28 Sep 20262 new · 6 fixes
    • new

      Preserve client-owned attributes during frame reloads with data-rmx-preserve-attrs="class data-theme" on any matched element, including <html> and <body> (see #11809). The named attributes keep their live values or absence while other attributes and children reconcile normally. The incoming HTML controls the list; clearing it or removing a name returns those attributes to normal reconciliation.

    • new

      Allow client entry props to use ordinary interfaces, including nested objects whose properties are all optional (see #11918).

    • fixed

      Send X-Remix-Frame: true from the default browser resolver for all frame loads, including top-frame navigation and reloads. Named frames also send X-Remix-Target, allowing handlers to identify and target frame requests consistently across browser and server rendering (see #11941).

    • fixed

      Treat marker-less HTML that starts with a doctype or <html> as a document reload, so pages rendered with renderToString can be navigated by the client runtime (see #11808).

  4. 0.10.0

    18 Sep 20264 fixes
    • fixed

      Ignore invalid host prop names and reserved DOM mutation properties during server rendering and client reconciliation. Block javascript: URLs in executable URL attributes while preserving other URL schemes and non-executable attributes. Use the on() mixin for events; the explicit innerHTML API and standard DOM, data-*, aria-*, SVG, and custom-element properties continue to work as before.

    • fixed

      Fix duplicated text during hydration when a browser splits long server-rendered text into multiple DOM nodes, including chunks that span adjacent text children (see #11591).

    • fixed

      Avoid attaching duplicate event handlers when a client entry imports and renders another client entry, including through fragments and wrapper components. Preserve deferred removal and exit animations when removing nested client entries (see #11844).

    • fixed

      Restore the previous named frame from handle.frames.get(name) when a more recently mounted frame with the same name unmounts.