A flexible, accessible popover component for Angular applications built on the Angular CDK overlay API.
SatPopover is an Angular component library for creating popovers—transient UI elements that display content anchored to another element. It solves the need for customizable, accessible overlay components in Angular applications, providing fine-grained control over positioning, focus, and interactions. Built on the Angular CDK's overlay API, it ensures reliable rendering and alignment within the viewport.
Angular developers building applications that require tooltips, contextual menus, dialogs, or other overlay-based UI patterns. It's particularly useful for teams needing accessible, customizable popover behavior beyond basic tooltip libraries.
Developers choose SatPopover for its comprehensive API, focus on accessibility features like focus trapping, and deep integration with Angular's ecosystem. Unlike simpler alternatives, it offers advanced controls for alignment, scrolling, animations, and user interactions while maintaining Angular best practices.
Popover component for Angular
Offers extensive alignment options with horizontalAlign, verticalAlign, and fallback behaviors like forceAlignment and lockAlignment, as detailed in the Alignment section of the README.
Automatically traps focus within popovers and provides configurable autoFocus, restoreFocus, and cdkFocusInitial settings, ensuring accessibility compliance, as explained in the Focus behavior section.
Includes methods for programmatic control (open, close, toggle) and events for user interactions (backdropClicked, overlayKeydown), giving developers full control over popover behavior, as listed in the Opening and closing tables.
Allows adjustment of open/close transitions, timing, and scale values through inputs like openTransition and startAtScale, enabling tailored visual effects, as described in the Animations section.
The component only handles transform origin; developers must implement all CSS for popover content, including backgrounds and shadows, as explicitly stated in the Styles section of the README.
Requires @angular/cdk as a peer dependency, increasing bundle size and adding setup complexity for projects not already using the CDK, as noted in the Installation instructions.
Must correctly configure Angular animations providers (e.g., provideAnimations or provideNoopAnimations), which can be error-prone and adds initial development time, as highlighted in the Installation code example.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.