# Fundamental Library for Angular
> SAP Design System Angular component library for building modern product user experiences with the SAP look and feel.
Fundamental Library for Angular (fundamental-ngx) is a comprehensive Angular component library that implements the SAP Fiori design language. It provides enterprise-ready UI components built with Angular 15+ and follows modern Angular patterns including signals, standalone components, and zoneless change detection.
## Documentation
- [Home](https://sap.github.io/fundamental-ngx/): Main documentation site with live examples with installation and setup guide
- [Getting Started](https://sap.github.io/fundamental-ngx/#/core/home): Installation, setup, and quick-start guide
- [Adding a New Component](https://sap.github.io/fundamental-ngx/#/core/new-component): Step-by-step guide for scaffolding and implementing a new component in the monorepo
- [GitHub Repository](https://github.com/SAP/fundamental-ngx): Source code and issue tracking
## Packages
The library is organized into multiple npm packages:
### @fundamental-ngx/core
The core package provides base Angular implementations of Fundamental Library Styles components. It offers a rich set of UI components with fine-grained customization at the HTML template level.
- [Documentation](https://sap.github.io/fundamental-ngx/#/core)
- [npm](https://www.npmjs.com/package/@fundamental-ngx/core)
- Install: `ng add @fundamental-ngx/core`
### @fundamental-ngx/platform
Built on top of core, the platform package provides enhanced functionality with higher abstraction. It hides internal implementation details while providing application-driven features that boost productivity.
- [Documentation](https://sap.github.io/fundamental-ngx/#/platform)
- [npm](https://www.npmjs.com/package/@fundamental-ngx/platform)
- Install: `ng add @fundamental-ngx/platform`
### @fundamental-ngx/cdk
A set of utilities and Angular directives for building custom UI components. Includes DataSource helpers, ControlValueAccessor utilities, focusable/selectable list helpers, and RxJS subscription management.
- [Documentation](https://sap.github.io/fundamental-ngx/#/cdk)
- [npm](https://www.npmjs.com/package/@fundamental-ngx/cdk)
- Install: `ng add @fundamental-ngx/cdk`
### @fundamental-ngx/i18n
Internationalization support with signal-based i18n API, translation factory patterns, and dynamic translations with context.
- [Documentation](https://sap.github.io/fundamental-ngx/#/i18n)
- [npm](https://www.npmjs.com/package/@fundamental-ngx/i18n)
### @fundamental-ngx/btp
Business Technology Platform specific components and utilities.
- [Documentation](https://sap.github.io/fundamental-ngx/#/btp)
### @fundamental-ngx/cx
Customer experience components.
- [Documentation](https://sap.github.io/fundamental-ngx/#/cx)
### Component Examples
#### Machine-Readable Catalog
For static analysis and component discovery, see the comprehensive machine-readable catalog:
**[components.json](https://sap.github.io/fundamental-ngx/components.json)** - All 1,000+ components with selectors, inputs, outputs, methods, and examples.
Format:
```
{
"version": "0.63.0-rc.2",
"components": [
{
"name": "ButtonComponent",
"selector": "[fd-button], fd-button",
"library": "@fundamental-ngx/core",
"category": "button",
"inputs": [...],
"outputs": [...],
"examples": [...]
}
]
}
```
#### Core Components
Common UI components including: Button, Checkbox, Dialog, Form, Icon, Input, List, Menu, Popover, Select, Switch, Table, Tabs, Toast, Toolbar, and many more.
#### Platform Components
Higher-level components including: Approval Flow, Dynamic Page, Search Field, Smart Filter Bar, Table with advanced features, Upload Collection, Value Help Dialog, and Wizard.
### Installation
```bash
# Install core package
ng add @fundamental-ngx/core
# Install platform package (includes core)
ng add @fundamental-ngx/platform
```
### Basic Usage
```typescript
import { ButtonComponent } from '@fundamental-ngx/core/button';
@Component({
selector: 'app-example',
imports: [ButtonComponent],
template: ``
})
export class ExampleComponent {}
```
## UI5 Web Components Angular Wrappers
These packages provide Angular wrappers around UI5 Web Components, offering an alternative approach to building SAP Fiori applications. They provide Angular-friendly APIs with full TypeScript support and seamless integration with Angular's change detection.
### @fundamental-ngx/ui5-webcomponents
Angular wrappers for the core UI5 Web Components. Provides fundamental UI elements like Button, Input, Dialog, List, Table, and more.
- [Documentation](https://sap.github.io/fundamental-ngx/#/ui5-webcomponents)
- [npm](https://www.npmjs.com/package/@fundamental-ngx/ui5-webcomponents)
- Install: `npm install @fundamental-ngx/ui5-webcomponents`
### @fundamental-ngx/ui5-webcomponents-fiori
Angular wrappers for UI5 Fiori Web Components. Includes higher-level SAP Fiori patterns like ShellBar, DynamicPage, Timeline, Wizard, and other enterprise-specific components.
- [Documentation](https://sap.github.io/fundamental-ngx/#/ui5-webcomponents-fiori)
- [npm](https://www.npmjs.com/package/@fundamental-ngx/ui5-webcomponents-fiori)
- Install: `npm install @fundamental-ngx/ui5-webcomponents-fiori`
### @fundamental-ngx/ui5-webcomponents-ai
Angular wrappers for UI5 AI Web Components. Provides AI-powered UI elements like PromptInput and AI-enhanced buttons for building AI-integrated applications.
- [Documentation](https://sap.github.io/fundamental-ngx/#/ui5-webcomponents-ai)
- [npm](https://www.npmjs.com/package/@fundamental-ngx/ui5-webcomponents-ai)
- Install: `npm install @fundamental-ngx/ui5-webcomponents-ai`
### @fundamental-ngx/ui5-webcomponents-base
Base utilities and shared types for all UI5 Web Components Angular wrappers. Typically installed automatically as a dependency.
- [npm](https://www.npmjs.com/package/@fundamental-ngx/ui5-webcomponents-base)
### Component Examples
#### Machine-Readable Catalog
For static analysis and component discovery, see [components.json](https://sap.github.io/fundamental-ngx/components.json) - includes all UI5 Web Component wrappers with full selector information.
#### Core UI5 Components
Common UI elements including: Button, Input, Dialog, List, Table, Card, Panel, DatePicker, TimePicker, Select, ComboBox, MultiComboBox, and more.
#### Fiori Components
Enterprise patterns including: ShellBar, DynamicPage, FlexibleColumnLayout, Timeline, Wizard, NotificationList, SideNavigation, and UploadCollection.
#### AI Components
AI-powered elements including: PromptInput, AI Button for building intelligent user interfaces.
### Installation
```bash
# Install core UI5 wrappers
npm install @fundamental-ngx/ui5-webcomponents
# Install Fiori UI5 wrappers
npm install @fundamental-ngx/ui5-webcomponents-fiori
# Install AI UI5 wrappers
npm install @fundamental-ngx/ui5-webcomponents-ai
```
### Basic Usage
```typescript
import { Button } from '@fundamental-ngx/ui5-webcomponents/button';
import { Input } from '@fundamental-ngx/ui5-webcomponents/input';
import { ShellBar } from '@fundamental-ngx/ui5-webcomponents-fiori/shell-bar';
@Component({
selector: 'app-example',
imports: [Button, Input, ShellBar],
template: `
Click Me
`
})
export class ExampleComponent {
inputValue = '';
handleClick() { console.log('Clicked!'); }
}
```
## Key Features
- **Angular 21+ Support**: Modern Angular with signals, standalone components, and new control flow (@if, @for, @switch)
- **SAP Fiori Design**: Implements SAP Fiori design guidelines via Fundamental Library Styles
- **Accessibility**: WCAG 2.1 compliant with full keyboard navigation and screen reader support
- **RTL Support**: Right-to-left language support via RtlService
- **Content Density**: Configurable compact, cozy, and condensed modes via ContentDensityService
- **Theming**: Support for SAP Horizon and other SAP themes
- **TypeScript**: Fully typed with comprehensive API documentation
## Support
- [GitHub Issues](https://github.com/SAP/fundamental-ngx/issues): Bug reports and feature requests
- [Slack](https://ui-fundamentals.slack.com): Community support (channel: ui-fundamentals)
- [Contributing Guide](https://github.com/SAP/fundamental-ngx/blob/main/CONTRIBUTING.md): How to contribute
## Related Projects
- [Fundamental Library Styles](https://sap.github.io/fundamental-styles/): The underlying CSS framework
- [Fundamental React](https://github.com/SAP/fundamental-react): React implementation
- [UI5 Web Components](https://sap.github.io/ui5-webcomponents/): Web components implementation