NVIDIA Elements Patterns Elements Foundations Integrations GitHub System Themes

What’s new in NVIDIA Elements: October 2026

Published · Updated

See spatial controls, Joystick, streamed chat following, workspace and media controls, and more October updates.

October brings directional input, more control over spatial navigation, and reusable building blocks for workspaces, backed by earlier feedback on invalid templates. This update covers releases through October 29.

Before you upgrade

Viewport moves out of Core into @nvidia-elements/viewport. Install the new package and replace Core Viewport imports with its component entrypoints: @nvidia-elements/viewport/viewport/define.js, @nvidia-elements/viewport/gridlines/define.js, and @nvidia-elements/viewport/minimap/define.js. Core no longer bundles these components. Viewport also replaces the earlier pan and zoom proposal APIs with Invoker commands; use viewportchange to observe committed transforms. Viewport remains an evolving API.

Highlights

Choose Direction and Intensity with Joystick

The new Joystick accepts pointer or arrow-key input and returns normalized coordinates from −1 to 1. Choose circular, square, or single-axis constraints, and let the control return to center or hold its last position after release. Read-only mode displays recorded positions. Applications map these values to their own units and commands, making the component useful for robotics interfaces and simulations without prescribing a control system.

Joystick displaying live X and Y coordinates below the round movement control

The new Viewport Zoom Range connects a slider to a viewport through commandfor, keeping zoom controls synchronized with the view. Configure zoom-stops for meaningful scale steps, and use --pan-to and --zoom-to commands for custom navigation controls. Gridlines adds dot and cross patterns alongside lines, so diagrams can use a quieter spatial reference. Accessories now connect correctly even when applications import them separately.

Zoom slider above pumpkin and ghost emojis on a dot grid

Put Actions Beside Workspace Navigation

Tabs adds nve-tabs-item-group to place application-owned controls before or after a tab. A close button or actions menu can sit beside its label without becoming part of the tab itself. Arrow keys focus tabs; Tab reaches their accessory controls. Applications handle closing and other actions.

Workspace tabs with pumpkin and ghost emojis and a close button beside Experiment

Tree gains prefix and suffix content, link targets, and Invoker command support. Icon Button now supports icon appearance selection.

Embed Generated Content with Iframe

The new beta Iframe component renders template content in a separate document, making it useful for generated UI, live previews, and embedded examples. It synchronizes the parent theme and adjusts its height as content changes. Supply the body in the default template and styles, fonts, or component registrations in a template with slot="head"; iframe documents do not inherit those resources from the parent page. Iframe shipped in Core 2.16.0 on October 22.

Follow Growing Content with Scroll Box

The new Scroll Box keeps the latest text visible as an AI assistant streams a reply or a log gains new entries. Optional edge shadows show where more content is available. In follow mode, scrolling away pauses following so people can read earlier content. It ships in the new @nvidia-elements/foundations package, which also exposes shared internationalization support for component authors.

Scroll Box following the newest paragraphs of a streamed assistant reply

Append incoming response fragments inside the container. Scroll Box follows the growing content without application code setting the scroll position.

Show Ongoing Work with Progress Dot

Progress Dot adds an animated loading indicator for tasks that have no completion percentage. Place it beside a thinking message or inside a busy button, and give it an accessible name when it conveys status on its own. Small, medium, and large sizes fit different layouts.

Animated Progress Dot beside a crystal ball and thinking label and inside a busy save button

Give Movable Items a Drag Handle

The new Drag Handle gives movable items a dedicated, labeled grip. Its pressed state marks an item selected for movement, while disabled state keeps unavailable controls visible. Applications manage the movement and reordering, so the same handle can support task lists, workspace panels, or other movable content.

Drag Handle grips beside emoji rows after Ghosts moves above Pumpkins

Repeat Playback or Keep Video in View

New Loop Button and Picture-in-Picture Button controls connect to a Media Controller through commandfor. Loop repeats a recording until users turn it off. Picture-in-picture lets users keep a video visible while working in another window when the browser supports it. Controls reflect the connected video's state, including looping enabled in native video markup.

Video recording with Loop enabled and an available picture-in-picture control

Catch Template Problems Earlier

New lint checks catch nested interactive elements, unsupported component parents, more than one page shell, invalid numeric and date values, and invalid formatting options. Popover guidance warns about excessive instances. These checks help authors and agents find mistakes while editing templates.

Elsewhere, Monaco integration updates to editor 0.57.0. Fixes improve panel stacking, grid keyboard handling, form label detection, filter-chip sizing, and closed popover layout. Documentation examples also preserve their source more reliably.

Released packages

  • @nvidia-elements/cli 2.2.9–2.2.14
  • @nvidia-elements/code 2.2.0, 2.2.1
  • @nvidia-elements/core 2.11.1, 2.11.2, 2.12.0, 2.12.1, 2.12.2, 2.13.0, 2.14.0, 2.15.0, 2.15.1, 2.15.2, 2.15.3, 2.15.4, 2.15.5, 2.16.0, 2.17.0, 2.17.1, 2.18.0, 2.18.1, 2.18.2, 2.18.3, 2.18.4, 2.19.0, 2.19.1, 2.20.0
  • @nvidia-elements/forms 2.0.7–2.0.10
  • @nvidia-elements/foundations 1.0.0, 1.0.1, 1.0.2, 1.1.0
  • @nvidia-elements/lint 2.7.2, 2.7.3, 2.7.4, 2.8.0, 2.9.0, 2.9.1
  • @nvidia-elements/markdown 2.0.4
  • @nvidia-elements/media 1.1.0, 1.2.0, 1.2.1, 1.2.2
  • @nvidia-elements/monaco 2.1.0, 2.1.1
  • @nvidia-elements/pi 1.0.1–1.0.3
  • @nvidia-elements/viewport 1.0.0, 1.1.0–1.1.4
Getting Started Overview Installation CLI MCP Skills Lint What’s New GitHub Patterns Overview Agent Authentication Browse Chat Code Dashboard Editor Empty States Heatmap Keyboard Shortcut Logging Media Navigation Onboarding Panel Responsive Search Subheader Trend Elements Overview Accordion Alert Avatar Badge Breadcrumb Button Button Group Card Chat Message Checkbox Codeblock Color Combobox Copy Button Datagrid Getting Started Integrations Column Action Column Alignment Column Fixed Column width Container Card Display Settings Footer Heatmap Keynav Multi Select Pagination Panel Detail Panel Grid Performance Placeholder Row Action Row Groups Row Sort Scroll Height Single Select Stripe Date Datetime Dialog Divider Dot Drag Handle Drawer Dropdown Dropdown Group Dropzone File Format Bytes Datetime Number Relative Time Truncate Forms Getting Started Validation Actions Control Gauge Ghost Icon Icon Button Iframe Input Input Group Joystick Logo Markdown Markdown CSS Media Controller Pause Button Playback Rate Select Loop Button Mute Button Media PiP Button Seek Button Time Range Volume Range Full-screen Button Menu Month Monaco Input Diff Input Monaco Editor Diff Editor Problems Notification Page Page Header Page Loader Pagination Progressive Filter Chip Progress Bar Progress Dot Progress Ring Password Preferences Input Pulse Radio Range Resize Handle Scroll Box Search Select Skeleton Sort Button Sparkline Star Rating Steps Switch Tabs Tag Textarea Time Toast Toggletip Toolbar Tooltip Tree Viewport Viewport Gridlines Minimap Zoom Range Week Workspace Foundations Overview Typography Iconography Themes Design Tokens Size & Space Objects Interactions Support Status Color Animation Fonts Layers Custom Layout Horizontal Vertical Grid Popovers i18n Visualization View Transitions DESIGN.md Integrations Getting Started Angular Bundles CDN Custom Elements Eleventy Golang HTMX + Go Hugo Import Maps Lit Lit Library MCP Apps NextJS Nuxt Pi Preact React SolidJS Sphinx Svelte TypeScript Vue About Changelog Metrics Support Accessibility Contributions Requests Migration Sitemap Labs Responsive Layout Viewport Container Patterns Forms Internal API Design Guidelines Properties & Attributes Slots Registration CustomEvents Stateless Composition Styles Packaging Glossary Logs Guidelines Agent Harness Agent Tooling Agent Ownership Documentation Examples TypeScript Testing Unit Testing Accessibility Testing Lighthouse Testing SSR Testing Visual Testing Troubleshooting Component Creation Examples All Examples