Desktop UI
Components for desktop-grade React apps: menus, dialogs, tooltips, fields, toasts, a settings dialog, keyboard shortcuts and formatters, drawn from one theme. Built on React 19, Base UI, Lucide and Tailwind 4.
bun add @basmilius/desktop-uiGetting started wires it into an app. Principles explains the rules every component follows.
What it gives you
Base UI underneath
Menus, dialogs, popovers, selects and tooltips are Base UI parts with the library's look on them, so focus, arrow keys, typeahead and Escape already work.
One theme of tokens
Every color is a semantic token with a light and a dark value. Tailwind's palette is gone, so a component can only reach the theme. Your app sets its own accent.
Shortcuts written once
One value decides whether a key event is the shortcut and how it prints, as ⌘K on a Mac and Ctrl+K elsewhere. Hold the modifier and every visible button shows its key.
Formatters that respect the region
Numbers, dates and durations follow the language a person reads and the region they picked, separately. English words in a Dutch notation is a pair people set.
A settings dialog
Sections on the left, a pane on the right, search that jumps to a row, and parts for rows, cards and master-detail panes.
English and Dutch
The library's own words live in a ui namespace you add to your i18next. English is the source, Dutch has every key.