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:twenty-ui/components/code-editor. Other components do not require Monaco. To use the code editor, install its optional peer dependencies and configure Monaco workers for your bundler before mounting it:
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. Shared components combine primitives into recurring design presets and reusable app building blocks. Both receive data and callbacks from the application. Use MainButton for prominent actions and LightButton for lightweight actions. Both come fromtwenty-ui/components and share the foundational
Button interaction contract. Routing and page
layout remain in the application.
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.
Browse the library
- Primitives: foundational controls grouped by family, with usage examples and API references.
- Components: shared design presets and reusable app building blocks composed from primitives.