Update( 16 March 2018 ):
From the comments provided by @elDuderino Material2 seems to have a way to customize . The answer provided was before Material had cdk ..
https://material.angular.io/guide/customizing-component-styles
Both frameworks are very matured now. I use both of them in different projects. It took me only a week to migrate a project from one framework to other. So I would suggest try both and see which you find comfortable.
I will share my experience. Its opinionated and biased. Love to be corrected.
We are starting from scratch and using Angular. We decided to go with Material.
I started my hunt for a better framework and tried all of them: Materialize, MDL, Angular Material 2 and finally MDC for web.
Here are my observations, especially for Material2 vs MDC for Web.
Material2
- Pros
- Readymade. Everything is available and ready to start working on
- Architecture close to Angular
Cons
- Components list is not complete yet ( they will get over the time, so its ok )
Customizing is impossible
I know we can add themes, that's all. All the HTML and CSS for the components is added in Angular Components. So it's compiled as JavaScript and applies at runtime. So, there is no way to override the behavior. I tried for a week and could not do it.
Here are questions I asked ( one of them marked to close as it appeared to be asking for opinions -.- )
How to customize Angular Material 2
How to Extend Angular Component style
Of course they did not get any answers and I could not customize them. If I am wrong, please direct me.
Check update provided above
Documentation is bad
Lets see an example. See the number of examples provided.
MDC for web card examples
Material2 examples for Card
MDC for Web
Cons
- Not readily available for Angular
We can't start using it straight away if you want to do it Angular way. Need to write a wrapper for Angular for each component. Might take some effort. But every team can afford some time to customize and there are third party efforts to make it easier. If it's ok not to do it in angular way, I believe we can start off without the wrappers.
- Components list is not complete yet ( they will get over the time, so it's ok )
Pros
- Generic, not tied to framework. Always safe to invest in.
- More contribution, since other frameworks developers also use it. Over the time it gets more contributions and future proof (almost )
- Totally customizable.
- Appears like only framework Material design team is directly involved with
- Can use the knowledge/styles for mobile devices too.
- Documentation is awesome. Looks like a lot of effort and time is put in.