remix
3.1.0 · 23 Oct 2026MIT58.2k / weekRepositoryHomepagenpmAtom feed
3.1.0 is the newest release of 3.x.
In short
2 breaking2 fixed
- breaking
Most existing
remix/uiusage now moves toremix/component. The component runtime, JSX runtimes, server rendering, testing helpers, styles, and general-purpose mixins are available from the renamed entrypoints: - breaking
First stable release of Remix 3.
Release note
The section about remix of a note shared by several packages.
Major Changes
- breaking
Most existing
remix/uiusage now moves toremix/component. The component runtime, JSX runtimes, server rendering, testing helpers, styles, and general-purpose mixins are available from the renamed entrypoints:-import { createRoot, css, on } from 'remix/ui' +import { createRoot, css, on } from 'remix/component'Apply the same rename to runtime subpaths such as
remix/ui/server,remix/ui/test, andremix/ui/dev/refresh.Applications that use the Remix JSX runtime must also update
jsxImportSource:{ "compilerOptions": { "jsx": "react-jsx", - "jsxImportSource": "remix/ui" + "jsxImportSource": "remix/component" } }Component HMR entrypoints similarly move from
remix/ui-hmrtoremix/component-hmr. Rename the asset loader tocomponentHmr():-import { uiHmr } from 'remix/ui-hmr/assets' +import { componentHmr } from 'remix/component-hmr/assets' let assetServer = createAssetServer({ scripts: { - loaders: [uiHmr()], + loaders: [componentHmr()], }, })If the development server uses the component HMR Node hook, rename that entrypoint too:
-node --import remix/ui-hmr/node server.ts +node --import remix/component-hmr/node server.ts
The
remixpackage no longer exports UI components, primitives, or animation utilities. Headless, accessible UI primitives and animation utilities remain in@remix-run/ui. This package is currently unstable, versioned independently in the v0.x range, and not part of the Remix 3.0 release candidate. Applications using these APIs must install the package separately:npm i @remix-run/ui
Move animation imports to the standalone package:
-import { animateEntrance, spring } from 'remix/ui/animation' +import { animateEntrance, spring } from '@remix-run/ui/animation'Move headless UI primitive imports to its flat subpaths:
-import * as accordion from 'remix/ui/accordion/primitives' +import * as accordion from '@remix-run/ui/accordion'
This applies to all remaining primitives:
accordion,anchor,combobox,listbox,menu,popover,select,tabs, andtoggle. The visually styled components and style mixins have been removed, including the previousbreadcrumbs,button,checkbox,input, andradiomodules.If the asset server restricts imports with
allowPackages, add@remix-run/uifor both the primitive and animation imports:{ "assets": { - "allowPackages": ["remix"] + "allowPackages": ["@remix-run/ui", "remix"] } } - breaking
First stable release of Remix 3.
Patch Changes
Installation and new-app examples now use the stable Remix release.
Bumped
@remix-run/*dependencies: