/material2

Material Design components for Angular

Primary LanguageTypeScriptMIT LicenseMIT

Material Design for Angular

npm version Build Status Gitter

This is the home for the Angular team's Material Design components built for and with Angular.

Quick links

Documentation, demos, and guides | Google group | Contributing | Plunker Template

Installation

The latest release of Angular Material can be installed from npm

npm install @angular/material

A snapshot build with the latest changes from master is also available. Note that this snapshot build should not be considered stable and may break between releases.

npm install --save angular/material2-builds angular/cdk-builds

Getting started

See our Getting Started Guide if you're building your first project with Angular Material.

Project status

Angular Material is currently in beta and under active development. During beta, new features will be added regularly and APIs will evolve based on user feedback.

Check out our directory of design documents for more insight into our process.

If you'd like to contribute, you must follow our contributing guidelines. You can look through the issues (which should be up-to-date on who is working on which features and which pieces are blocked) and make a comment. Also see our Good for community contribution label.

High level stuff planned for Q3 2017 (July - September):

  • As many bug fixes as humanly possible
  • Additional features for data-table
  • More accessibility improvements
  • Nested menus
  • All components are OnPush
  • Improved documentation, guides, examples, and navigation on material.angular.io
  • Improve library-wide API consistency
  • Stepper component
  • Sticky header helper
  • action-list and selection-list

Available features

Feature Notes Docs
autocomplete Docs
button Docs
button-toggle Docs
cards Docs
checkbox Docs
chips Chip-remove, integration with input in-progress Docs
datepicker Docs
dialog Docs
expansion-panel Needs documentation -
grid-list Docs
icon Docs
input Docs
list Selection and action list planned Q3 Docs
menu Nested menu planned Q3 Docs
progress-bar Docs
progress-spinner Docs
radio Docs
ripples Docs
select Docs
sidenav Docs
slide-toggle Docs
slider Docs
snackbar / toast Docs
tabs Docs
textarea Docs
toolbar Docs
tooltip Docs
theming Guide
typography Guide
layout See angular/flex-layout Wiki

In progress, planned, and non-planned features

Feature Status Docs Issue
@angular/cdk Coming soon -
data-table Coming soon - #581
tree Design in-progress - #3175
stepper Not started, planned Q3 2017 - #508
sticky-header Not started, planned Q3 2017 - #474
virtual-repeat Not started, planned Q4 2017 - #823
fab speed-dial Not started, not planned - #860
fab toolbar Not started, not planned - -
bottom-sheet Not started, not planned - -
bottom-nav Not started, not planned - #408

The goal of Angular Material

Our goal is to build a set of high-quality UI components built with Angular and TypeScript, following the Material Design spec. These components will serve as an example of how to write Angular code following best practices.

What do we mean by "high-quality"?

  • Internationalized and accessible so that all users can use them.
  • Straightforward APIs that don't confuse developers.
  • Behave as expected across a wide variety of use-cases without bugs.
  • Behavior is well-tested with both unit and integration tests.
  • Customizable within the bounds of the Material Design specification.
  • Performance cost is minimized.
  • Code is clean and well-documented to serve as an example for Angular devs.

Browser and screen reader support

Angular Material supports the most recent two versions of all major browsers: Chrome (including Android), Firefox, Safari (including iOS), and IE11 / Edge

We also aim for great user experience with the following screen readers:

  • NVDA and JAWS with IE / FF / Chrome (on Windows).
  • VoiceOver with Safari on iOS and Safari / Chrome on OSX.
  • TalkBack with Chrome on Android.