Skip to content

btxtiger/ngx-modern-alerts

Repository files navigation

ngx-modern-alerts

npm npm npm

Advanced modern customizable alerts for Angular

!! Warning: Work in Progress - API might change !!

# Install the Angular component
npm i -S ngx-modern-alerts

Show global alerts using the service

import { NgxModernAlert } from "ngx-modern-alerts";
import { timeout } from "rxjs";

export class AppComponent {
   constructor(private alertService: NgxModernAlertService) {}

   /**
    * Show Floating Alerts
    */
   public showFloatingAlerts(): void {
      this.alertService.info('Information!');
      this.alertService.success('Success!');
      this.alertService.warning('Warning!');
      this.alertService.danger('Danger!');
   }

   /**
    * Show Banner Alerts
    */
   public showBannerAlerts(): void {
      this.alertService.infoBanner('Information!');
      this.alertService.successBanner('Success!');
      this.alertService.warningBanner('Warning!');
      this.alertService.dangerBanner('Danger!');
   }

   /**
    * Show Custom Alert
    */
   public showCustomAlert(): void {
      const alert = new NgxModernAlert();
      alert.message = 'This is my message!';
      alert.level = 'success';
      alert.svgIcon = this.customSvgIcon;
      alert.validUntil = moment().add(10, 'seconds').toDate();
      alert.overlayType = 'floating';

      this.alertService.showAlert(alert);

      timeout(5000).subscribe(() => {
         this.alertService.dismissAlert(alert);
      });
   }

}

Using the component

You can also render the component in classic form in your template:

import { NgxModernAlertModule } from "./ngx-modern-alerts.module";

@NgModule({
   imports: [BrowserAnimationsModule, NgxModernAlertModule],
})
export class AppModule {}
<ngx-modern-alert [text]="text" level="danger" (dismiss)="onDismissed()"></ngx-modern-alert>

<ngx-modern-alert level="info">
   <h3>Hello!</h3>
   This is the information text!
</ngx-modern-alert>

// Hide icon
<ngx-modern-alert [text]="text" level="info" [hideIcon]="true"></ngx-modern-alert>

// Use alert object
<ngx-modern-alert [alert]="alert" [hideIcon]="true"></ngx-modern-alert>

Styling

You can modify these variables to adjust the style, and e.g. add compatibility to your dark mode.

.ngx-modern-alert {
   --ngx-modern-alert-bg-default: rgb(255 255 255 / 80%);
   --ngx-modern-alert-text-default: rgb(30 30 30);

   --ngx-modern-alert-info-color-icon: #2196f3;
   --ngx-modern-alert-info-color-text: hsl(220, 50%, 35%);

   --ngx-modern-alert-success-color-icon: #4caf50;
   --ngx-modern-alert-success-color-text: hsl(125, 50%, 35%);

   --ngx-modern-alert-danger-color-icon: #f44336;
   --ngx-modern-alert-danger-color-text: hsl(0, 50%, 35%);

   --ngx-modern-alert-warning-color-icon: #ea9c00;
   --ngx-modern-alert-warning-color-text: hsl(25, 50%, 35%);
}

body.dark {
   .ngx-modern-alert {
      --ngx-modern-alert-bg-default: rgb(30 30 30 / 85%);
      --ngx-modern-alert-text-default: rgb(200 200 200);
      
      --ngx-modern-alert-info-color-icon: #2196f3;
      --ngx-modern-alert-info-color-text: hsl(220, 50%, 65%);
      
      --ngx-modern-alert-success-color-icon: #4caf50;
      --ngx-modern-alert-success-color-text: hsl(125, 50%, 65%);
      
      --ngx-modern-alert-danger-color-icon: #f44336;
      --ngx-modern-alert-danger-color-text: hsl(0deg 50% 65%);
      
      --ngx-modern-alert-warning-color-icon: #ea9c00;
      --ngx-modern-alert-warning-color-text: hsl(25, 50%, 65%);
   }
}

About

Advanced modern customizable alerts for Angular

Resources

License

Stars

Watchers

Forks

Packages

No packages published