<nve-logo aria-label="NVIDIA"></nve-logo><nve-logo>
<img src="./logo.svg" alt="NVIDIA" />
</nve-logo>This guide covers migrating from the internal @nve/* packages to the new open source @nvidia-elements/* packages.
Install the Elements skill, which includes the migration reference, or invoke the MCP migration prompt.
In an MCP client, invoke /migrate to load the same migration guidance.
The Elements Design System is now hosted and developed in a public GitHub repository. Packages are now published to the public npm registry under the @nvidia-elements scope. The component APIs, tag names, and theming system remain the same. The primary changes are package names, import paths, and registry configuration.
| Internal Package | New Package |
|---|---|
@nve/elements | @nvidia-elements/core |
@nve/styles | @nvidia-elements/styles |
@nve/themes | @nvidia-elements/themes |
@nve/monaco | @nvidia-elements/monaco |
@nve-labs/forms | @nvidia-elements/forms |
@nve-labs/cli | @nvidia-elements/cli |
@nve-labs/code | @nvidia-elements/code |
@nve-labs/create | @nvidia-elements/create |
@nve-labs/markdown | @nvidia-elements/markdown |
@nve-labs/media | @nvidia-elements/media |
@nve-labs/lint | @nvidia-elements/lint |
Teams have run Elements in production since 2022, and NVIDIA already released it internally as 1.x. The move to open source changes the package scope to @nvidia-elements/*, but it does not reset the maturity of the system.
NVIDIA published the initial public open source packages as 0.x while the project completed its public release migration. Treat these 0.x versions as transitional open source preview releases, not proof that Elements itself is experimental or newly developed.
Elements moved from public 0.x prerelease versions to 2.0.0 for the stable open source release. This means there is no public 1.0.0 release under the @nvidia-elements/* scope. The missing public 1.0.0 is intentional: 1.x represents the prior internal production generation, and 2.0.0 represents the next stable generation under the public @nvidia-elements/* scope.
The @nvidia-elements packages are on the public npm registry and require no special registry configuration. Internal teams should continue to use Artifactory regardless of which package scope. Artifactory proxies the public npm registry automatically.
In your package.json, replace the old scope names with the new ones and use stable 2.x versions. The ^2.0.0 ranges accept later 2.x releases and exclude the transitional 0.x versions. Run nve packages.list to check published versions before updating.
Replace import paths throughout your source code:
The following are the active deprecations. Each next major release removes the prior deprecations. Read more about the versioning and deprecation cycle policy.
The nve-logo component no longer includes the NVIDIA SVG logo; consumers must provide their own SVG as child content in the default slot.
Before native HTML popovers, popovers required behaviorTrigger or behavior-trigger for stateful popovers. The native HTML popover API replaces this approach.
Elements removed the notags attribute. Use tag-layout="hidden" instead so all tag layout modes use the same attribute.
The grow property now uses full instead to avoid confusion with flexbox grow behavior.
The typography eyebrow utility no longer exists, to align with the standardized semantic names and size options available.
The custom test utilities are no longer supported in the public scope.
Avoid @nve/elements/scoped. Instead, consuming applications define their own tag name and leverage the @lit-labs/scoped-registry-mixin package directly.
Update any CSS Custom property usage
Update style utility attributes
Update HTML elements
nve-page-header replaces the early Maglev scoped package mlv-app-header.
The alert banner component no longer exists. Use nve-alert-group with the prominence="emphasis" option.
The JSON viewer element is an internal API. You can access this API via the public exports but should avoid using it. Use nve-codeblock or nve-monaco-input for JSON content rendering.
The following icons now use new names:
| before | after |
|---|---|
| chevron-right | chevron |
| chevron-down | chevron |
| chevron-left | chevron |
| additional-actions | more-actions |
| analytics | pie-chart |
| annotation | transparent-box |
| app-switcher | switch-apps |
| assist | chat-bubble |
| checkmark | check |
| date | calendar |
| docs | book |
| expand-full-screen | maximize |
| expand-panel | arrow-stop |
| collapse-panel | arrow-stop |
| failed | x-circle |
| favorite-filled | star |
| favorite-outline | star-stroke |
| information | information-circle |
| maintenance | wrench |
| navigate-to | arrow |
| open-external-link | arrow-angle |
| location | map-pin |
| pinned-1 | pin |
| project | folder |
| settings | gear |
| user | person |
| video-pause | pause |
| video-play | play |
| video-stop | stop |
| visible | eye |
| warning | exclamation-triangle |
With the deprecation of directional icons the icon button now requires a explicit direction.