Twenty UI is in alpha. Its version follows the Twenty SDK release cycle, and
component APIs can change between releases. In a Twenty app, keep
twenty-ui,
twenty-sdk, and twenty-client-sdk on the same version.Install
For a standalone React application, install the library and its peer dependencies:monaco-editor powers the code editor components, but install it even if you never render an editor: the twenty-ui/primitives/input, twenty-ui/primitives/feedback, and twenty-ui/primitives/navigation entry points reference it, and bundlers fail to resolve it otherwise.
If you are building a Twenty app, follow Using Twenty UI components. The front component renderer supplies the workspace theme and has a different setup from a standalone browser application.
Load styles and provide a theme
Import the component stylesheet and a theme stylesheet once at your application entry point.ThemeProvider applies the active theme class and makes theme values available to components.
Choose an entry point
Import components from their public subpath to keep imports focused: Primitives are foundational controls, including compound controls such as Select, Menu, and AlertDialog. Higher-level components combine primitives into reusable app building blocks, such as tables, boards, and pickers. Both receive data and callbacks from the application. All existing UI components live inprimitives/, including controls still being
migrated to the new API. The components/ folder is reserved for higher-level
app building blocks. Each primitive family has a matching public entry point,
such as twenty-ui/primitives/input.
Import individual icons, such as
IconCheck, from twenty-ui/icon. The dynamic icon provider includes the full icon catalog, so reserve it for interfaces that need to look up icons at runtime.
Continue
- Theming: use semantic tokens and scoped overrides.
- Dark mode: switch between light and dark palettes.