NativeDesktop

Components

The built-in components by group, which are the OS's own control on macOS and which are drawn, and where to see each one.

Every component is a function that returns an element, such as button(..), source_list(..) or switch(..). Each maps to the OS's own control where one exists and to a drawn implementation everywhere else, with the same props and events, so an app is written once. The component reference lists every constructor and builder method, generated from crates/nd-components. This page is the map of what exists.

The Gallery shows one page per component. Pick one in its source list or press secondary-K for the command palette:

Example: Gallery. One page per built-in component: palette, source list, toasts, banner, forms, tabs, split view, status page, dialogs and media. Source in examples/gallery. It also runs live in the docs app.

Feedback

Forms and controls

Layout and windows

Media and content

Native or drawn

On macOS, controls with an AppKit class use it, and the content you compose (div, text, canvas, and components with no AppKit counterpart) is drawn with tokens resolved from the OS. On Linux and Windows everything is drawn through GPUI with that platform's preset. A drawn component still follows theming, so light and dark, the accent and radii are the same code path. If you need a component that is not here, define one with native widgets.

Icons are one vocabulary, Icon from nd-icons, named after Lucide. macOS draws the matching SF Symbol, Windows the matching Segoe Fluent Icons glyph (the font Windows 11's own apps use), and Linux and the web the Lucide shape. An icon an app registers itself is drawn from its SVG where no system glyph exists.