Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/jacob-meacham/angular-notification-icons

:alarm_clock: Add notification popups to any element
https://github.com/jacob-meacham/angular-notification-icons

Last synced: 14 days ago
JSON representation

:alarm_clock: Add notification popups to any element

Awesome Lists containing this project

README

        

# angular-notification-icons
Add notification popups to any element http://jemonjam.com/angular-notification-icons

[![Build Status](https://travis-ci.org/jacob-meacham/angular-notification-icons.svg?branch=develop)](https://travis-ci.org/jacob-meacham/angular-notification-icons)
[![Coverage Status](https://coveralls.io/repos/jacob-meacham/angular-notification-icons/badge.svg?branch=develop)](https://coveralls.io/r/jacob-meacham/angular-notification-icons?branch=develop)
[![Code Climate](https://codeclimate.com/github/jacob-meacham/grunt-lcov-merge/badges/gpa.svg)](https://codeclimate.com/github/jacob-meacham/grunt-lcov-merge)

![demo](http://i.imgur.com/F9qc7Uw.gif)

```js

```

## Getting Started
### 1. Install components

Bower:
```shell
bower install angular-notification-icons --save
```

npm:
```shell
npm install angular-notification-icons --save
```

### 2. Add css and scripts
Bower:
```html

```

npm:
```html

```

### 3. Add a dependency to your app
```
angular.module('MyApp', ['angular-notification-icons', 'ngAnimate']); // ngAnimate is only required if you want animations
```

### 4. Add a notification-icon element around any other element
```html

...

```

angular-notification-icons is an angular directive that adds a notification popup on top of any element. The counter is tied to a scope variable and updating the count is as easy as updating the scope variable. angular-notification-icons comes with a number of canned animations and a default style, but it is easy to add your own styles or custom animations. angular-notification-icons can also optionally listen for DOM events and clear the count on a DOM event.

angular-notification-icons has been tested with angular 1.3.x, 1.4.x, and 1.5.x. It will probably work with most recent versions of angular and angular-animate.

## Demo App
To run the demo app, run `npm install`, `bower install` and then `gulp serve`.

## Webpack and ES6
angular-notification-icons can be used in a webpack Angular application. To the top of your main application, add:
```
import angular from 'angular'
import 'angular-animate'
import 'angular-notification-icons'
import 'angular-notification-icons/dist/angular-notification-icons.css'
// Can also use less with a less-loader:
// import 'angular-notification-icons/src/less/angular-notification-icons.less'
```

## Basic Usage

### Counter
The only required attribute for angular-notification-icons is 'count'. This uses two-way binding to bind a scope variable to the isolate scope. This makes updating the count very simple, since your controller has full control over how it's set.
```html

...

```
When myScopeVariable is <= 0, the notification icon will not be visible. Once myScopeVariable > 0, the notification will show up.

[Live Demo](http://jemonjam.com/angular-notification-icons#basic)

### Built-in Animations
angular-notification-icons comes with a few prebuilt animations for your use. Note that these are only available if you are using the ngAnimate module

* bounce
* fade
* grow
* shake

There are three separate animation events: appear, update, and disappear. Appear is triggered when the counter goes from 0 to non-zero. Update is trigger when the counter increments or decrements but does not go to or from zero. Disappear is triggered when the counter goes from non-zero to zero. The default animation for appear and update is grow, and there is no default set for disappear. A common case is to use the same animation for appear and update, and you can use the 'animation' attribute for this case.

```html

...

```
This will create a notification that bounces when appearing and when the counter is updated. All three animation events can also be set explicitly:

```html

...

```
This will create a notification that bounces when appearing, shakes when updates, and fades away when disappearing. Because all of these attributes do not use two-way binding, if you're using a variable for the animation, you'll want to use {{myVariable}} when binding.

[Live Demo](http://jemonjam.com/angular-notification-icons#animations)

### DOM Events
angular-notification-icons can respond to DOM events to clear the counter. This clears the scope variable and runs an $apply. Your controller can $watch the variable if you want to react to clearing the counter.

```html

...

```
Will cause the count to be cleared upon click. Any DOM event name is valid as a clear-trigger. Because clear-trigger does not use two-way binding, if you're using a variable as the trigger, you'll want to use {{myVariable}} when binding.

[Live Demo](http://jemonjam.com/angular-notification-icons#dom-events)

## Customizing
angular-notification-icons was designed to be very simple to customize so that it fits the feel of your app.

### Adding Custom Style
Adding custom style is done via CSS. When the directive is created, it adds a few elements to the DOM
```html







```

You can add styling at any level. For instance, if you just want to change the look of the notifaction icon, you can add to your app's css:

```css
.angular-notification-icons-icon {
left: -10px;
background: yellow;
color: black;
width: 30px;
height: 30px;
font-weight: bolder;
font-size: 1.2em;
}
```
Which will make the notification icon appear on the left with a yellow background and bold, larger text.
[Live Demo](http://jemonjam.com/angular-notification-icons#custom-style)

### Adding Custom Animations
Adding a custom animation is as simple as adding custom styles. angular-notification-icons uses the standard [angular-animate](https://docs.angularjs.org/guide/animations) module for providing animations. This means that you can use either CSS keyframes or CSS transitions to build animations.

```css
.angular-notification-icons-icon.my-custom-animation {
transition:0.5s linear all;
}

.angular-notification-icons-icon.my-custom-animation-add {
background: black;
color: white;
}

.angular-notification-icons-icon.my-custom-animation-add-active {
background: yellow;
color: black;
}

.angular-notification-icons-icon.my-custom-keyframe-animation {
animation: custom_keyframe_animation 0.5s;
}
@keyframes custom_keyframe_animation {
from {
opacity: 0;
}
to {
opacity: 1;
}
}
```

Adding your animation is as simple as specifying it by name on the directive
```js

...

```
[Live Demo](http://jemonjam.com/angular-notification-icons#custom-style)

## Advanced Usage

### hideCount
If you don't want the count number appear, you can hide the count using the 'hide-count' attribute
```html

...

```
When myCount > 0, the notification icon will be visible, but the number will be hidden. When myCount <= 0, the icon will be hidden as normal.

[Live Demo](http://jemonjam.com/angular-notification-icons#hide-count)

### alwaysShow
If you *always* want the count number to appear, even when 0 or negative, you can add the 'always-show' attribute
```html

...

```

[Live Demo](http://jemonjam.com/angular-notification-icons#always-show)

### Pill shape
When the number of notifications grows large enough, the icon changes to a pill shape. This is achieved by adding the css class wide-icon to the icon's div. By default, the shape transitions to a pill once the count is greater than or equal to 100, but is configurable via the attribute 'wide-threshold'.
```html

...

```
This will change the shape to a pill once myCount >= 10.

[Live Demo](http://jemonjam.com/angular-notification-icons#pill)

## Helping Out
Pull requests are gladly accepted! Be sure to run `npm run build` to ensure that your PR is lint-free and all the tests pass.