@openng/optimus-ui
v2.0.2
Published
Optimus UI is a community-maintained, MIT licensed UI library for Angular with 80+ accessible components and design-agnostic theming, including Aura, Material, Lara and Nora presets.
Readme
Optimus UI is a comprehensive library of open-source UI Components for Angular applications. Designed for flexibility and enterprise-readiness, it provides a powerful foundation for building modern web interfaces.
📦 Installation
Optimus UI provides an Angular CLI schematic for quick and easy installation in a new project. Run:
ng add @openng/optimus-uiThis installs the library and wires provideOptimus({ theme: { preset: Aura } }) into your
application config (pick a different preset with --theme Lara|Material|Nora).
Please note that Optimus UI requires Angular 21+.
ng add only sets up new projects — on a workspace that already uses PrimeNG it makes no changes
and points you to the migration schematic below.
Migrating from PrimeNG
Optimus UI is API-compatible with PrimeNG v21. On a PrimeNG v21 workspace, run the dedicated migration schematic:
ng generate @openng/optimus-ui@1:migrate-from-primeng # options: --skip-install, --forceThis replaces primeng and @primeuix/* dependencies with their @openng counterparts, rewrites
TypeScript imports (primeng/button → @openng/optimus-ui/button, @primeuix/themes/aura →
@openng/optimus-ui-themes/aura), and renames the config API (providePrimeNG → provideOptimus,
PrimeNG → Optimus, PrimeNGConfigType → OptimusConfigType). Anything it cannot migrate is
listed as a warning for manual review.
Projects on PrimeNG v20 or older: upgrade to PrimeNG v21 first, then migrate.
🚀 Quick Start
Optimus UI components can be imported as standalone components or via their respective modules. Here is a quick example demonstrating how to use the Button component:
- Import the component module in your application:
import { Component } from '@angular/core';
import { ButtonModule } from '@openng/optimus-ui/button';
@Component({
selector: 'app-root',
imports: [ButtonModule],
template: `<p-button label="Click Me!" />`
})
export class AppComponent {}📖 Documentation
For detailed documentation, interactive component demos, theming guides, and more, please visit the official website:
🤝 Contributing
We welcome and appreciate contributions from the community! If you're interested in helping improve Optimus UI, please take a look at our Contributing Guide for instructions on how to get started.
📄 License
Optimus UI is licensed under the MIT License.
