Easy-to-use and flexible Angular.js directive for Gravatar images

Angular Core Dependency: >=1.0.0 <1.5.0

Module License: MIT

Added by: Sam Deering





Stars: 155

Watchers: 155

Forks: 27

Module Description

Bower version NPM version

Build Status Code Climate angular-gravatar ==============

Angular.JS directive for Gravatar.

Copyright (C) 2015, Sebastian Wallin [email protected]


  • AngularJS (

Install with Bower

bower install angular-gravatar

Install with NPM

npm install angular-gravatar


Include angular-gravatar.js in your application.

<script src="components/angular-gravatar/build/angular-gravatar.js"></script>

Add the module ui.gravatar as a dependency to your app:

var app = angular.module('app', ['ui.gravatar']);

Then use the directive on an image tag and it will set the correct src attribute for you.

<img gravatar-src="'[email protected]'" gravatar-size="100">

If the source is already an MD5 hash, it will be left untouched (thanks @thewarpaint)

Binding Once

If you know that the source is not going to change, you can use the gravatar-src-once instead:

<img gravatar-src-once="">

Note: this directive will watch for a non falsy value and then stop watching.


The options that are sent along to Gravatar can be set either directly in the directive as seen above with size or configured as default parameters via the gravatarServiceProvider:

  'gravatarServiceProvider', function(gravatarServiceProvider) {
    gravatarServiceProvider.defaults = {
      size     : 100,
      "default": 'mm'  // Mystery man as default for missing avatars

    // Use https endpoint = true;

    // Force protocol
    gravatarServiceProvider.protocol = 'my-protocol';

Note that by default, no explicit protocol is set. This means that the image will use the protocol with which the page is loaded. For example; if the page url is the image will be loaded over http, but if the page url is the image will be loaded over https.

Anyway, you can force the protocol you want (for https use secure = true instead of protocol = 'https' because gravatar url differs for secure/no secure). For example, if you are developing a mobile app with Cordova you should use http. Otherwise directive will use file protocol and fail.

All the available options can be seen over at the Gravatar docs for image requests




  • Alexander Makarenko (
  • Eduardo Garcia (
  • Thomas Vervest (
  • Gonzalo Aguirre (
  • Gabe Hayes (

Module stats last updated: 2017-12-29 15:00:06

Disclaimer: Some data on this page may have been gathered from the authors GitHub respository. If you see any mistakes or outdated information please let us know. Thanks!