Introduction
Vacui is a streamlined, headless Angular library of utility-first, low-level directives as foundational elements. It aims to provide unparalleled flexibility in crafting custom UI components, focusing on high performance and accessibility. These directives serve as the building blocks for constructing complex UI components without the overhead of a rigid component structure.
Motivation
Angular components offer a solid foundation for app development but often come with preset behaviors and styles that can be restrictive and hard to customize. This lack of flexibility can impede achieving the desired UI look and functionality, as developers may be forced to use specific DOM elements, compromising design and performance due to added complexity.
Vacui addresses these challenges by introducing a more versatile approach to Angular UI development. Embracing a directives-based architecture, it empowers developers to freely manipulate DOM elements for precise behavior and appearance control, breaking free from the constraints of standard components.
Features
- Headless: Vacui adopts a headless framework, providing only the logic needed for UI functionality. This allows for complete customization, enabling components to integrate seamlessly with any design system.
- Comprehensive Directive Catalog: Offering a wide array of low-level, utility-first directives, Vacui equips developers with the essential building blocks for creating diverse and complex UI components.
- Optimized for Angular: Fully leveraging Angular's capabilities, including Signals and dependency injection, Vacui ensures smooth integration within the Angular ecosystem, enhancing application reactivity and data management.
- Accessibility: From the ground up, Vacui prioritizes WAI-ARIA design patterns, ensuring that directives foster the development of UI components that are inclusive and accessible to all users by default.
- Incremental adoption: Vacui enables efficient, modular adoption and tree-shaking support, allowing developers to seamlessly integrate its directives as needed.
Inspiration and Credits
Vacui draws inspiration from libraries like Melt UI and Radix UI, they exemplify the power of providing developers with the foundational elements needed to build custom, high-quality user interfaces without imposing restrictive design decisions.