Angular Rating - Setup
Smart UI for Angular supports both standalone components (bootstrapApplication) and NgModule-based apps (bootstrapModule(AppModule)). Steps 1-5 show the standalone path; the section below shows the NgModule path with the same package and styles.
Demo source (Smart UI repo): angular/src/rating/overview
1 NPM Install
Install the smart-webcomponents-angular package:
npm install smart-webcomponents-angular
2 Register styles
Add the default Smart UI stylesheet to angular.json -> projects -> <your-project> -> architect -> build -> options -> styles (merge with existing entries):
"styles": [ "node_modules/smart-webcomponents-angular/source/styles/smart.default.css" ]
Add optional theme CSS from the same package after smart.default.css if you use Bootstrap, Fluent, or other bundled themes.
3 Import the Angular module
Import RatingModule from smart-webcomponents-angular/rating: use @Component.imports for standalone, or add it to your AppModule (or feature module) imports array for NgModule apps.
import { RatingModule } from 'smart-webcomponents-angular/rating';
4 Root component (standalone)
Add RatingModule to your root standalone component (src/app/app.ts). Snippet from Smart UI demos (paths normalized to app.html / App where applicable):
import { Component, ViewChild, OnInit, AfterViewInit } from '@angular/core';
import { CommonModule } from '@angular/common';
import { RouterOutlet } from '@angular/router';
import { RatingModule } from 'smart-webcomponents-angular/rating';
@Component({
selector: 'app-root',
standalone: true,
imports: [CommonModule, RatingModule, RouterOutlet],
templateUrl: './app.html',
styleUrls: ['./app.css']
})
export class App implements AfterViewInit, OnInit {
ngOnInit(): void {
// onInit code.
}
ngAfterViewInit(): void {
// afterViewInit code.
this.init();
}
init(): void {
// init code.
}
}
Boot the app with bootstrapApplication from src/main.ts and an ApplicationConfig in src/app/app.config.ts as generated by the CLI.
5 Template (standalone)
Use your markup in src/app/app.html (or inline template). Bind properties and events on smart-rating as needed:
<smart-rating></smart-rating>
6 NgModule bootstrap (also supported)
Same npm package and angular.json styles as steps 1-2. Put RatingModule on your NgModule.imports instead of @Component.imports, and bootstrap with bootstrapModule(AppModule).
Sample NgModule layout from Smart UI demos (app.component.*, app.module.ts):
app.component.html
<smart-rating></smart-rating>
app.component.ts
import { Component, ViewChild, OnInit, AfterViewInit } from '@angular/core';
@Component({
selector: 'app-root',
templateUrl: './app.component.html',
styleUrls: ['./app.component.css']
})
export class AppComponent implements AfterViewInit, OnInit {
ngOnInit(): void {
// onInit code.
}
ngAfterViewInit(): void {
// afterViewInit code.
this.init();
}
init(): void {
// init code.
}
}
app.module.ts
import { NgModule } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { RatingModule } from 'smart-webcomponents-angular/rating';
import { AppComponent } from './app.component';
@NgModule({
declarations: [ AppComponent ],
imports: [ BrowserModule, RatingModule ],
bootstrap: [ AppComponent ]
})
export class AppModule { }
Run
ng serve or npm start - then open http://localhost:4200/.
Smart UI for Angular - full documentation
Accessibility
The Rating component follows WAI-ARIA best practices:
- Keyboard navigation - Tab, Arrow keys, Enter, and Escape are supported
- ARIA roles - Appropriate roles and labels are applied automatically
- Focus management - Visible focus indicators for keyboard users
- Screen readers - State changes are announced to assistive technology
- High contrast - Supports Windows High Contrast Mode and forced colors
For custom labeling, set aria-label or aria-labelledby attributes on the component.
Supported stacks: Smart UI targets Angular 17+, React 18+, Vue 3+, Node 18 LTS, and evergreen browsers; pin exact package versions to your org policy.