2017-01-27 01:35:39 +02:00
|
|
|
# Material Design for Angular
|
2016-09-29 17:51:33 -05:00
|
|
|
[](https://www.npmjs.com/package/%40angular%2Fmaterial)
|
2018-11-09 19:15:27 +00:00
|
|
|
[](https://circleci.com/gh/angular/material2)
|
2016-02-03 17:58:35 -08:00
|
|
|
[](https://gitter.im/angular/material2?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge)
|
2016-01-19 13:23:11 -08:00
|
|
|
|
2017-06-23 08:57:46 -07:00
|
|
|
This is the home for the Angular team's Material Design components built for and with Angular.
|
2016-03-08 21:15:52 -08:00
|
|
|
|
2016-09-02 01:05:05 -04:00
|
|
|
#### Quick links
|
2017-09-18 14:53:59 -07:00
|
|
|
[Documentation, demos, and guides][aio] |
|
2017-06-23 08:57:46 -07:00
|
|
|
[Google group](https://groups.google.com/forum/#!forum/angular-material2) |
|
|
|
|
|
[Contributing](https://github.com/angular/material2/blob/master/CONTRIBUTING.md) |
|
2017-10-30 15:08:57 -07:00
|
|
|
[Plunker Template](https://goo.gl/uDmqyY) |
|
2017-10-27 19:21:57 +02:00
|
|
|
[StackBlitz Template](https://goo.gl/wwnhMV)
|
2016-03-15 11:01:18 -07:00
|
|
|
|
2016-12-22 18:08:00 +01:00
|
|
|
### Getting started
|
2016-03-15 11:01:18 -07:00
|
|
|
|
2016-12-22 09:13:48 -08:00
|
|
|
See our [Getting Started Guide][getting-started]
|
2017-01-27 01:35:39 +02:00
|
|
|
if you're building your first project with Angular Material.
|
2016-09-02 01:05:05 -04:00
|
|
|
|
2016-12-22 18:08:00 +01:00
|
|
|
Check out our [directory of design documents](https://github.com/angular/material2/wiki/Design-doc-directory)
|
2016-09-02 01:05:05 -04:00
|
|
|
for more insight into our process.
|
2016-03-08 21:15:52 -08:00
|
|
|
|
2016-12-22 18:08:00 +01:00
|
|
|
If you'd like to contribute, you must follow our [contributing guidelines](https://github.com/angular/material2/blob/master/CONTRIBUTING.md).
|
|
|
|
|
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.
|
2018-02-20 07:35:43 -08:00
|
|
|
Also see our [`help wanted`](https://github.com/angular/material2/issues?q=is%3Aissue+is%3Aopen+label%3A%22help+wanted%22)
|
2016-09-02 01:05:05 -04:00
|
|
|
label.
|
2016-01-04 16:51:01 -08:00
|
|
|
|
2019-02-12 07:41:25 -08:00
|
|
|
#### High level stuff planned for Q1 → Q2 2019 (January - June):
|
|
|
|
|
* Most of the Angular Material team is on loan to the framework team
|
|
|
|
|
helping with [Ivy](https://blog.angular.io/a-plan-for-version-8-0-and-ivy-b3318dfc19f7).
|
|
|
|
|
We've been using the Angular CDK and Angular Material tests to validate code paths as well
|
|
|
|
|
as helping debug issues in switching Google applications to the new rendering pipeline.
|
|
|
|
|
* We're also working with the Material Design team on a strategy to collaborate more deeply.
|
|
|
|
|
We'll have more to share on this once our plans are further along.
|
|
|
|
|
* Assorted bugfixes and minor feature improvements.
|
|
|
|
|
* Design for API enhancements to the tree component to improve ergonomics.
|
2017-06-23 08:57:46 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
#### Available features
|
|
|
|
|
|
|
|
|
|
| Feature | Notes | Docs |
|
|
|
|
|
|------------------|--------------------------------------------------------|--------------|
|
|
|
|
|
| autocomplete | | [Docs][24] |
|
2018-05-08 18:48:40 +02:00
|
|
|
| badge | | [Docs][37] |
|
|
|
|
|
| bottom-sheet | | [Docs][38] |
|
2017-06-23 08:57:46 -07:00
|
|
|
| button | | [Docs][1] |
|
|
|
|
|
| button-toggle | | [Docs][15] |
|
|
|
|
|
| cards | | [Docs][2] |
|
|
|
|
|
| checkbox | | [Docs][3] |
|
2018-01-18 10:37:57 -08:00
|
|
|
| chips | | [Docs][26] |
|
2018-07-11 08:23:00 -07:00
|
|
|
| data-table | | [Docs][28] |
|
2017-06-23 08:57:46 -07:00
|
|
|
| datepicker | | [Docs][25] |
|
|
|
|
|
| dialog | | [Docs][22] |
|
2018-01-23 12:57:57 -05:00
|
|
|
| divider | | [Docs][35] |
|
2019-01-23 14:12:51 -05:00
|
|
|
| drag-drop | | [Docs][39] |
|
2017-09-18 14:53:59 -07:00
|
|
|
| expansion-panel | | [Docs][32] |
|
2017-06-23 08:57:46 -07:00
|
|
|
| grid-list | | [Docs][9] |
|
|
|
|
|
| icon | | [Docs][10] |
|
|
|
|
|
| input | | [Docs][5] |
|
2018-10-10 11:26:38 -07:00
|
|
|
| list | | [Docs][8] |
|
2017-10-30 17:33:40 -04:00
|
|
|
| menu | | [Docs][17] |
|
2017-07-06 15:50:47 -07:00
|
|
|
| paginator | | [Docs][29] |
|
2017-06-23 08:57:46 -07:00
|
|
|
| progress-bar | | [Docs][12] |
|
|
|
|
|
| progress-spinner | | [Docs][11] |
|
|
|
|
|
| radio | | [Docs][4] |
|
|
|
|
|
| ripples | | [Docs][19] |
|
|
|
|
|
| select | | [Docs][23] |
|
|
|
|
|
| sidenav | | [Docs][6] |
|
|
|
|
|
| slide-toggle | | [Docs][14] |
|
|
|
|
|
| slider | | [Docs][16] |
|
|
|
|
|
| snackbar / toast | | [Docs][21] |
|
2017-07-06 15:50:47 -07:00
|
|
|
| sort-header | | [Docs][30] |
|
2017-10-27 19:23:47 +02:00
|
|
|
| stepper | | [Docs][33] |
|
2017-06-23 08:57:46 -07:00
|
|
|
| tabs | | [Docs][13] |
|
|
|
|
|
| textarea | | [Docs][5] |
|
|
|
|
|
| toolbar | | [Docs][7] |
|
|
|
|
|
| tooltip | | [Docs][18] |
|
2018-05-08 18:48:40 +02:00
|
|
|
| tree | | [Docs][36] |
|
2019-01-23 14:12:51 -05:00
|
|
|
| virtual-scroll | | [Docs][40] |
|
2017-09-18 14:53:59 -07:00
|
|
|
| ---------------- | ------------------------------------------------------ | ------------ |
|
2017-06-23 08:57:46 -07:00
|
|
|
| theming | | [Guide][20] |
|
|
|
|
|
| typography | | [Guide][27] |
|
|
|
|
|
| layout | See [angular/flex-layout][lay_rp] | [Wiki][0] |
|
2017-10-30 17:33:40 -04:00
|
|
|
| cdk | | [Docs][34] |
|
2017-06-23 08:57:46 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
#### In progress, planned, and non-planned features
|
2016-09-02 01:05:05 -04:00
|
|
|
|
2016-09-02 19:11:46 +02:00
|
|
|
| Feature | Status | Docs | Issue |
|
|
|
|
|
|------------------|-------------------------------------|--------------|----------------|
|
2017-06-02 13:51:21 -07:00
|
|
|
| fab speed-dial | Not started, not planned | - | [#860][0860] |
|
|
|
|
|
| fab toolbar | Not started, not planned | - | - |
|
|
|
|
|
| bottom-nav | Not started, not planned | - | [#408][0408] |
|
2016-09-02 01:05:05 -04:00
|
|
|
|
2017-01-13 13:25:30 -05:00
|
|
|
[0]: https://github.com/angular/flex-layout/wiki
|
2018-04-06 01:19:55 +08:00
|
|
|
[1]: https://material.angular.io/components/button/overview
|
|
|
|
|
[2]: https://material.angular.io/components/card/overview
|
|
|
|
|
[3]: https://material.angular.io/components/checkbox/overview
|
|
|
|
|
[4]: https://material.angular.io/components/radio/overview
|
|
|
|
|
[5]: https://material.angular.io/components/input/overview
|
|
|
|
|
[6]: https://material.angular.io/components/sidenav/overview
|
|
|
|
|
[7]: https://material.angular.io/components/toolbar/overview
|
|
|
|
|
[8]: https://material.angular.io/components/list/overview
|
|
|
|
|
[9]: https://material.angular.io/components/grid-list/overview
|
|
|
|
|
[10]: https://material.angular.io/components/icon/overview
|
|
|
|
|
[11]: https://material.angular.io/components/progress-spinner/overview
|
|
|
|
|
[12]: https://material.angular.io/components/progress-bar/overview
|
|
|
|
|
[13]: https://material.angular.io/components/tabs/overview
|
|
|
|
|
[14]: https://material.angular.io/components/slide-toggle/overview
|
|
|
|
|
[15]: https://material.angular.io/components/button-toggle/overview
|
|
|
|
|
[16]: https://material.angular.io/components/slider/overview
|
|
|
|
|
[17]: https://material.angular.io/components/menu/overview
|
|
|
|
|
[18]: https://material.angular.io/components/tooltip/overview
|
2017-10-30 17:33:40 -04:00
|
|
|
[19]: https://github.com/angular/material2/blob/master/src/lib/core/ripple/ripple.md
|
2017-06-23 08:57:46 -07:00
|
|
|
[20]: https://material.angular.io/guide/theming
|
2018-04-06 01:19:55 +08:00
|
|
|
[21]: https://material.angular.io/components/snack-bar/overview
|
|
|
|
|
[22]: https://material.angular.io/components/dialog/overview
|
|
|
|
|
[23]: https://material.angular.io/components/select/overview
|
|
|
|
|
[24]: https://material.angular.io/components/autocomplete/overview
|
|
|
|
|
[25]: https://material.angular.io/components/datepicker/overview
|
|
|
|
|
[26]: https://material.angular.io/components/chips/overview
|
2017-06-23 08:57:46 -07:00
|
|
|
[27]: https://material.angular.io/guide/typography
|
2018-04-06 01:19:55 +08:00
|
|
|
[28]: https://material.angular.io/components/table/overview
|
|
|
|
|
[29]: https://material.angular.io/components/paginator/overview
|
|
|
|
|
[30]: https://material.angular.io/components/sort/overview
|
2017-07-06 15:50:47 -07:00
|
|
|
[31]: https://tina-material-tree.firebaseapp.com/simple-tree
|
2017-09-18 14:53:59 -07:00
|
|
|
[32]: https://material.angular.io/components/expansion/overview
|
2017-10-27 19:23:47 +02:00
|
|
|
[33]: https://material.angular.io/components/stepper/overview
|
2017-10-30 17:33:40 -04:00
|
|
|
[34]: https://material.angular.io/cdk/categories
|
2018-04-06 01:19:55 +08:00
|
|
|
[35]: https://material.angular.io/components/divider/overview
|
2018-05-08 18:48:40 +02:00
|
|
|
[36]: https://material.angular.io/components/tree/overview
|
|
|
|
|
[37]: https://material.angular.io/components/badge/overview
|
|
|
|
|
[38]: https://material.angular.io/components/bottom-sheet/overview
|
2019-01-23 14:12:51 -05:00
|
|
|
[39]: https://material.angular.io/cdk/drag-drop/overview
|
|
|
|
|
[40]: https://material.angular.io/cdk/scrolling/overview#virtual-scrolling
|
2016-09-02 01:05:05 -04:00
|
|
|
|
2016-09-02 19:11:46 +02:00
|
|
|
[0107]: https://github.com/angular/material2/issues/107
|
|
|
|
|
[0119]: https://github.com/angular/material2/issues/119
|
|
|
|
|
[0108]: https://github.com/angular/material2/issues/108
|
|
|
|
|
[0114]: https://github.com/angular/material2/issues/114
|
|
|
|
|
[0115]: https://github.com/angular/material2/issues/115
|
|
|
|
|
[0118]: https://github.com/angular/material2/issues/118
|
|
|
|
|
[0546]: https://github.com/angular/material2/issues/546
|
|
|
|
|
[0117]: https://github.com/angular/material2/issues/117
|
|
|
|
|
[0120]: https://github.com/angular/material2/issues/120
|
|
|
|
|
[0123]: https://github.com/angular/material2/issues/123
|
|
|
|
|
[0205]: https://github.com/angular/material2/issues/205
|
|
|
|
|
[0860]: https://github.com/angular/material2/issues/860
|
|
|
|
|
[0408]: https://github.com/angular/material2/issues/408
|
|
|
|
|
[0508]: https://github.com/angular/material2/issues/508
|
|
|
|
|
[0823]: https://github.com/angular/material2/issues/823
|
|
|
|
|
[0581]: https://github.com/angular/material2/issues/581
|
2017-06-02 23:14:56 +02:00
|
|
|
[4191]: https://github.com/angular/material2/pull/4191
|
2017-06-23 08:57:46 -07:00
|
|
|
[0995]: https://github.com/angular/material2/pull/995
|
|
|
|
|
[0474]: https://github.com/angular/material2/pull/474
|
2016-09-02 19:11:46 +02:00
|
|
|
|
2017-07-27 18:50:00 +02:00
|
|
|
[aio]: https://material.angular.io
|
2017-10-30 17:33:40 -04:00
|
|
|
[getting-started]: https://material.angular.io/guide/getting-started
|
2017-06-02 13:51:21 -07:00
|
|
|
[lay_rp]: https://github.com/angular/flex-layout
|
2016-12-22 09:13:48 -08:00
|
|
|
|
2016-09-02 01:05:05 -04:00
|
|
|
|
2016-01-04 16:51:01 -08:00
|
|
|
## The goal of Angular Material
|
2017-01-27 01:35:39 +02:00
|
|
|
Our goal is to build a set of high-quality UI components built with Angular and TypeScript,
|
2016-12-22 18:08:00 +01:00
|
|
|
following the Material Design spec. These
|
2016-01-04 16:51:01 -08:00
|
|
|
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.
|
2016-03-14 12:24:22 -07:00
|
|
|
* Performance cost is minimized.
|
2016-01-04 16:51:01 -08:00
|
|
|
* Code is clean and well-documented to serve as an example for Angular devs.
|
|
|
|
|
|
|
|
|
|
## Browser and screen reader support
|
2016-12-22 18:08:00 +01:00
|
|
|
Angular Material supports the most recent two versions of all major browsers:
|
2016-01-04 16:51:01 -08:00
|
|
|
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.
|