Material Design is a specification for a unified system of visual, motion, and interaction design that adapts across different devices. Our goal is to deliver a lean, lightweight set of AngularJS-native UI elements that implement the material design specification for use in AngularJS single-page applications (SPAs).
AngularJS Material is the reference implementation of Google's Material Design Specification. AngularJS Material includes a rich set of reusable, well-tested, and accessible UI components.
Quick Links:
Please note that using AngularJS Material requires the use of AngularJS 1.3.x or higher. AngularJS Material is targeted for all browsers with browser versions shown below with green boxes:
GitHub Universe
Based on the number of unique contributors and repository forks, GitHub Octoverse recently announced that AngularJS Material is one of the top 10 most-loved active projects on GitHub:
Online Documentation (and Demos)
- Visit Material.AngularJS.org online to review the API, see the components in action with live Demos, and study the Layout system.
- Or you can build the documentation and demos locally; see Build Docs & Demos for details.
Our Release Processes
AngularJS Material has revised/improved its build processes. To preserve stability with applications currently using AngularJS Material, we will have three (3) types of releases:
major
: major releases will be done as part of the latest iteration of AngularJS Material on a separate repo. This type of release will not be used within AngularJS Material.minor
: akamaster
contains patch release changes AND breaking changes and new featurespatch
: non-breaking changes (no API, CSS, UX changes that will cause breaks in existing AngularJS Material applications)
Patch Releases
The patch builds (1.0.4, 1.0.5, 1.0.6) are prepared based on commits in the patch
branch; which contains only non-breaking changes (eg bug fix, some API additions, minimal non-breaking CSS changes ). We will be building patch
releases every week.
Minor Releases
The minor build (1.1.0, 1.2.0, 1.3.0,...) are prepared based on commits in the master
branch; which will remain the daily development branch AND will be the source for the minor
releases.
Our formal release of minor
builds is much less frequent; probably 1x / Quarter. Developers can easily obtain the latest, full change-set from bower or npm using references to @master
.
Changelog
The Changelog may contain releases for patch
or minor
. If you do not see a fix listed in the Changelog but the issue has been resolved or the PR merged, then those changes will be master
available in the next minor release.
for the purposes of AngularJS Material, you could think of the patch releases as being minor changes and the 'minor' releases as being major changes.
Contributing
Developers interested in contributing should read the following guidelines:
Please do not ask general questions in an issue. Issues are only to report bugs, request enhancements, or request new features. For general questions and discussions, use the AngularJS Material Forum.
It is important to note that for each release, the ChangeLog is a resource that will itemize all:
- Bug Fixes
- New Features
- Breaking Changes
Building
Developers can easily build AngularJS Material using NPM and gulp.
First install or update your local project's npm tools:
# First install all the NPM tools:
npm install
# Or update
npm update
Then run the gulp tasks:
# To build `angular-material.js/.css` and `Theme` files in the `/dist` directory
gulp build
# To build the AngularJS Material Docs and Demos in `/dist/docs` directory
gulp docs
For more details on how the build process works and additional commands (available for testing and debugging) developers should read the Build Instructions.
Installing Build (Distribution Files)
Bower
For developers not interested in building the AngularJS Material library... use bower to install and use the AngularJS Material distribution files.
Change to your project's root directory.
# To get the latest stable version, use Bower from the command line.
bower install angular-material
# To get the most recent, latest committed-to-master version use:
bower install angular-material#master
Visit Bower-Material for more details on how to install and use the AngularJS Material distribution files within your own local project.
CDN
CDN versions of AngularJS Material are now available at Google Hosted Libraries.
With the Google CDN, you will not need to download local copies of the distribution files. Instead simply reference the CDN urls to easily use those remote library files. This is especially useful when using online tools such as CodePen, Plunkr, or JSFiddle.
<head>
<!-- AngularJS Material CSS now available via Google CDN; version 1.1.4 used here -->
<link rel="stylesheet" href="https://ajax.googleapis.com/ajax/libs/angular_material/1.1.4/angular-material.min.css">
</head>
<body>
<!-- AngularJS Material Dependencies -->
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.5.11/angular.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.5.11/angular-animate.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.5.11/angular-aria.min.js"></script>
<!-- AngularJS Material Javascript now available via Google CDN; version 1.1.4 used here -->
<script src="https://ajax.googleapis.com/ajax/libs/angular_material/1.1.4/angular-material.min.js"></script>
</body>
Developers seeking the latest, most-current build versions can use GitCDN.link to pull directly from the distribution GitHub Bower-Material repository:
<head>
<!-- AngularJS Material CSS using GitCDN to load directly from `bower-material/master` -->
<link rel="stylesheet" href="https://gitcdn.link/repo/angular/bower-material/master/angular-material.css">
</head>
<body>
<!-- AngularJS Material Dependencies -->
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.5.11/angular.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.5.11/angular-animate.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.5.11/angular-aria.js"></script>
<!-- AngularJS Material Javascript using GitCDN to load directly from `bower-material/master` -->
<script src="https://gitcdn.link/repo/angular/bower-material/master/angular-material.js"></script>
</body>
Once you have all the necessary assets installed, add ngMaterial
as a dependency for your app:
angular.module('myApp', ['ngMaterial']);