/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 on top of Angular.

Quick links

Google group, Contributing, Plunker Template

Installation

The latest release of Angular Material can be installed from npm

npm install --save @angular/material

Playing with the latest changes from master is also possible

npm install --save https://github.com/angular/material2-builds.git

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 items planned for next few months:

  • Initial version of datepicker
  • Initial version of data table
  • Initial version of tree
  • Select improvements (multi-select, etc)
  • Screenshot test improvements
  • Docs site improvements
  • A11y audit
  • Various bug fixes

Feature status:

Feature Status Docs Issue
button Available README -
cards Available README -
checkbox Available README -
radio Available README -
input Available README -
sidenav Available README -
toolbar Available README -
list Available README #107
grid-list Available README -
icon Available README -
progress-spinner Available README -
progress-bar Available README -
tabs Available README -
slide-toggle Available README -
button-toggle Available README -
slider Available README -
menu Available README #119
tooltip Available README -
ripples Available README #108
dialog Available README #114
snackbar / toast Available README #115
select Available README #118
textarea Available README -
autocomplete Initial version, features evolving README #117
chips Initial version, features evolving - #120
theming Available, need guidance overlays Guide -
docs site UX design and tooling in progress - -
typography Not started - #205
fab speed-dial Not started - #860
fab toolbar Not started - -
bottom-sheet Not started - -
bottom-nav Not started - #408
virtual-repeat Not started - #823
datepicker In progress - #675
data-table Design in-progress - #581
stepper Not started - #508
tree Not started - #3175
layout See angular/flex-layout Wiki -

"Available" means that the components or feature is published and available for use, but may still be missing some behaviors or polish.

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.