The goal of https://github.com/angular/components/commit/2ce5ffd56b70c3791331ceedeadc1f1f6daf3924 was to avoid the use of Bazel through the `node_modules` because it adds unnecessary code overhead, slows down CI and means that some tools need to be installed multiple times (such as `yarn`). Unfortunately when building a release with Bazel right now, the bazel workspace status script depends on the global `node` binary. This means that we need to bring in Node when running with the `--config=release` flag.. Since that causes inconsistent behavior and just complicates the setup, we are using Bazel through Yarn for now. Similar to how we did it for `angular/angular` with https://github.com/angular/angular/commit/8fc4ae51fb66d14f6dc82712a536c3842205fc6d.
Components and Material Design for Angular
This is the home for the Angular team's UI components built for and with Angular. These include Material Design components and the Angular Component Development Kit (CDK).
Quick links
Documentation, demos, and guides | Google group | Contributing | StackBlitz Template
Getting started
See our Getting Started Guide if you're building your first project with Angular Material.
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 GitHub issues (which should be up-to-date on who is working on which features and which pieces are blocked) and make a comment.
Please see our help wanted
label for a list of issues where we could use help from the community.
High level stuff planned for Q1 → Q2 2019 (January - June):
- Most of the Angular Components team is on loan to the framework team helping with Ivy. 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.
Available features
| Feature | Notes | Docs |
|---|---|---|
| autocomplete | Docs | |
| badge | Docs | |
| bottom-sheet | Docs | |
| button | Docs | |
| button-toggle | Docs | |
| cards | Docs | |
| checkbox | Docs | |
| chips | Docs | |
| data-table | Docs | |
| datepicker | Docs | |
| dialog | Docs | |
| divider | Docs | |
| drag-drop | Docs | |
| expansion-panel | Docs | |
| grid-list | Docs | |
| icon | Docs | |
| input | Docs | |
| list | Docs | |
| menu | Docs | |
| paginator | Docs | |
| progress-bar | Docs | |
| progress-spinner | Docs | |
| radio | Docs | |
| ripples | Docs | |
| select | Docs | |
| sidenav | Docs | |
| slide-toggle | Docs | |
| slider | Docs | |
| snackbar / toast | Docs | |
| sort-header | Docs | |
| stepper | Docs | |
| tabs | Docs | |
| textarea | Docs | |
| toolbar | Docs | |
| tooltip | Docs | |
| tree | Docs | |
| virtual-scroll | Docs | |
| ---------------- | ------------------------------------------------------ | ------------ |
| theming | Guide | |
| typography | Guide | |
| layout | See CDK Layout or @angular/flex-layout | - |
| cdk | Docs |
The goal of Angular Material and the CDK
Our goal is to build a set of high-quality UI components built with Angular and TypeScript. These include foundational components and services, found in the CDK, and components that follow the Material Design spec. These components serve as an example of how to build Angular UI components that follow 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 developers.
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 aim for great user experience with the following screen readers:
- Windows: NVDA and JAWS with IE11 / FF / Chrome.
- macOS: VoiceOver with Safari / Chrome.
- iOS: VoiceOver with Safari
- Android: Android Accessibility Suite (formerly TalkBack) with Chrome.
- Chrome OS: ChromeVox with Chrome.