syncfusion-angular-notifications
Comprehensive guide for implementing Syncfusion Angular notification components including Message, Skeleton, Toast, and Badge. Use this when displaying informational, success, warning, or error alerts with severity levels, customizing message variants (Text, Outlined, Filled), handling close events, showing content skeletons with shimmer/pulse animations during data loading, or adding status badges with 8 color variants and shape types (circle, pill, notification, dot, overlap). Covers MessageModule, SkeletonModule, ToastModule, CSS-based Badge implementation, accessibility, RTL, and custom styling in Angular applications.
What this skill does
# Implementing Syncfusion Angular Notifications
---
## Message
The Syncfusion Angular Message component (`ejs-message`) displays contextual messages with severity-based icons and colors to communicate importance to the user. It supports multiple **severity types**, **visual variants**, **close icon**, **custom templates**, **content alignment**, **CSS customization**, and full **accessibility compliance**.
**Package:** `@syncfusion/ej2-angular-notifications`
**Module:** `MessageModule`
**Selector:** `ejs-message`
---
> ๐ All files linked under `references/` are read-only documentation and comply with the same security policy as this skill.
### Navigation Guide
#### Getting Started
๐ **Read:** [references/message-getting-started.md](references/message-getting-started.md)
- Installing `@syncfusion/ej2-angular-notifications` via `ng add`
- CSS/SCSS theme imports (Material3)
- `MessageModule` import in standalone component
- Minimal `ejs-message` template setup
- Running the application
#### Severity Types
๐ **Read:** [references/message-severities.md](references/message-severities.md)
- `severity` property with all five values: Normal, Success, Info, Warning, Error
- Default severity (Normal)
- When to choose each severity type
- Code example with all severities
#### Visual Variants
๐ **Read:** [references/message-variants.md](references/message-variants.md)
- `variant` property: Text, Outlined, Filled
- Default variant (Text)
- Combining variant with severity
- Full example showing all combinations
#### Icons and Close Icon
๐ **Read:** [references/message-icons.md](references/message-icons.md)
- `showIcon` โ hide/show the severity icon
- `showCloseIcon` โ add a close icon to dismiss messages
- `(closed)` event โ react when user closes a message
- Restoring visibility with `visible` property
- Custom icon using `cssClass`
#### Customization and Templates
๐ **Read:** [references/message-customization.md](references/message-customization.md)
- Content alignment: left (default), center (`e-content-center`), right (`e-content-right`)
- Rounded and square border styles via `cssClass`
- CSS-only message rendering (no script reference)
- Predefined CSS classes for manual DOM structure
- Rich HTML template via `<ng-template #content>`
#### Accessibility
๐ **Read:** [references/message-accessibility.md](references/message-accessibility.md)
- WCAG 2.2 / Section 508 compliance
- WAI-ARIA attributes (`role=alert`, `aria-label`)
- Keyboard interaction (Tab, Enter/Space for close icon)
- RTL support via `enableRtl`
- Screen reader behavior
#### API Reference
๐ **Read:** [references/message-api.md](references/message-api.md)
- All properties: `content`, `cssClass`, `enablePersistence`, `enableRtl`, `locale`, `severity`, `showCloseIcon`, `showIcon`, `variant`, `visible`
- Methods: `destroy()`, `getPersistData()`
- Events: `closed`, `created`, `destroyed`
---
### Quick Start
```bash
ng add @syncfusion/ej2-angular-notifications
```
```css
/* styles.css โ added automatically by ng add */
/* NOTE: These are consumer-side stylesheet references only; no packages are installed or executed by this skill. */
@import '../node_modules/@syncfusion/ej2-base/styles/material3.css';
@import '../node_modules/@syncfusion/ej2-angular-notifications/styles/message/material3.css';
```
```typescript
import { MessageModule } from '@syncfusion/ej2-angular-notifications';
import { Component } from '@angular/core';
@Component({
imports: [MessageModule],
standalone: true,
selector: 'app-root',
template: '<ejs-message content="Please read the comments carefully"></ejs-message>'
})
export class AppComponent { }
```
---
### Common Patterns
#### Message with Severity
```typescript
import { MessageModule } from '@syncfusion/ej2-angular-notifications';
import { Component } from '@angular/core';
@Component({
imports: [MessageModule],
standalone: true,
selector: 'app-root',
template: `
<ejs-message content="Editing is restricted"></ejs-message>
<ejs-message content="Please read the comments carefully" severity="Info"></ejs-message>
<ejs-message content="Your message has been sent successfully" severity="Success"></ejs-message>
<ejs-message content="There was a problem with your network connection" severity="Warning"></ejs-message>
<ejs-message content="A problem occurred while submitting your data" severity="Error"></ejs-message>
`
})
export class AppComponent { }
```
#### Dismissable Message with Close Icon
```typescript
import { MessageModule } from '@syncfusion/ej2-angular-notifications';
import { Component, ViewChild } from '@angular/core';
import { MessageComponent } from '@syncfusion/ej2-angular-notifications';
@Component({
imports: [MessageModule],
standalone: true,
selector: 'app-root',
template: `
<ejs-message #msg severity="Warning" [showCloseIcon]="true" (closed)="onClosed()">
There was a problem with your network connection
</ejs-message>
<button *ngIf="isClosed" (click)="reopen()">Show again</button>
`
})
export class AppComponent {
@ViewChild('msg') msg!: MessageComponent;
isClosed = false;
onClosed(): void {
this.isClosed = true;
}
reopen(): void {
this.msg.visible = true;
this.isClosed = false;
}
}
```
#### Filled Variant with Severity
```typescript
import { MessageModule } from '@syncfusion/ej2-angular-notifications';
import { Component } from '@angular/core';
@Component({
imports: [MessageModule],
standalone: true,
selector: 'app-root',
template: `
<ejs-message content="Your message has been sent successfully"
severity="Success" variant="Filled">
</ejs-message>
`
})
export class AppComponent { }
```
---
### Key Props at a Glance
| Property | Type | Default | Purpose |
|----------|------|---------|---------|
| `content` | `string \| object` | `null` | Text, HTML, or template content to display |
| `severity` | `string` | `'Normal'` | Severity type: Normal, Success, Info, Warning, Error |
| `variant` | `string` | `'Text'` | Visual style: Text, Outlined, Filled |
| `showIcon` | `boolean` | `true` | Show/hide the severity icon |
| `showCloseIcon` | `boolean` | `false` | Show/hide the close icon |
| `visible` | `boolean` | `true` | Show or hide the entire message |
| `cssClass` | `string` | `''` | Custom CSS class(es) appended to root element |
| `enableRtl` | `boolean` | `false` | Right-to-left rendering |
| `enablePersistence` | `boolean` | `false` | Persist component state across page reloads |
| `locale` | `string` | `''` | Override global culture/localization |
---
## Skeleton
The Skeleton component provides a visual placeholder for content that is loading or yet to be rendered. It helps improve perceived performance by showing users what content is coming, reducing cognitive load during loading states.
**Package:** `@syncfusion/ej2-angular-notifications`
**Module:** `SkeletonModule`
**Selector:** `ejs-skeleton`
> ๐ All files linked under `references/` are read-only documentation and comply with the same security policy as this skill.
### Navigation Guide
#### Getting Started
๐ **Read:** [references/skeleton-getting-started.md](references/skeleton-getting-started.md)
- Installation and package setup
- Dependencies and CSS imports
- Basic skeleton implementation
- Angular 19+ standalone architecture
- Running your application with Skeleton
#### Shapes and Layout Design
๐ **Read:** [references/skeleton-shapes.md](references/skeleton-shapes.md)
- Circle shapes for avatars and profile pictures
- Square shapes for thumbnails and icons
- Rectangle shapes for images and cards
- Text shapes for paragraphs and content
- Combining shapes to build complete layouts
- Responsive sizing and responsive design
#### Shimmer Effects and Animation
๐ **Read:** [references/skeleton-shimmer-effects.md](references/skeleton-shimmer-effects.md)
- Wave effect (default animation)
- Pulse effect (fade in/out animation)
- Fade effect (opacRelated in Web Dev
generating-lwc-components
IncludedLightning Web Components with PICKLES methodology and 165-point scoring. Use this skill when the user creates or edits LWC components, builds wire service patterns, or writes Jest tests for LWC. TRIGGER when: user creates/edits LWC components, touches lwc/**/*.js, .html, .css, .js-meta.xml files, or asks about wire service, SLDS, or Jest LWC tests. DO NOT TRIGGER when: Apex classes (use generating-apex), Aura components, or Visualforce.
tanstack-query
IncludedManage server state in React with TanStack Query v5. Set up queries with useQuery, mutations with useMutation, configure QueryClient caching strategies, implement optimistic updates, and handle infinite scroll with useInfiniteQuery. Use when: setting up data fetching in React projects, migrating from v4 to v5, or fixing object syntax required errors, query callbacks removed issues, cacheTime renamed to gcTime, isPending vs isLoading confusion, keepPreviousData removed problems.
document-processor-api
IncludedProcess documents with Nutrient DWS. Use when the user wants to generate PDFs from HTML or URLs, convert Office/images/PDFs, assemble or split packets, OCR scans, extract text/tables/key-value pairs, redact PII, watermark, sign, fill forms, optimize PDFs, or produce compliance outputs like PDF/A or PDF/UA. Triggers include convert to PDF, merge these PDFs, OCR this scan, extract tables, redact PII, sign this PDF, make this PDF/A, or linearize for web delivery.
nutrient-document-processing
IncludedProcess documents with Nutrient DWS. Use when the user wants to generate PDFs from HTML or URLs, convert Office/images/PDFs, assemble or split packets, OCR scans, extract text/tables/key-value pairs, redact PII, watermark, sign, fill forms, optimize PDFs, or produce compliance outputs like PDF/A or PDF/UA. Triggers include convert to PDF, merge these PDFs, OCR this scan, extract tables, redact PII, sign this PDF, make this PDF/A, or linearize for web delivery.
tanstack-query
IncludedManage server state in React with TanStack Query v5. Covers useMutationState, simplified optimistic updates, throwOnError, network mode (offline/PWA), and infiniteQueryOptions. Use when setting up data fetching, fixing v4โv5 migration errors (object syntax, gcTime, isPending, keepPreviousData), or debugging SSR/hydration issues with streaming server components.
accelint-nextjs-best-practices
IncludedNext.js performance optimization and best practices. Use when writing Next.js code (App Router or Pages Router); implementing Server Components, Server Actions, or API routes; optimizing RSC serialization, data fetching, or server-side rendering; reviewing Next.js code for performance issues; fixing authentication in Server Actions; or implementing Suspense boundaries, parallel data fetching, or request deduplication.