Ionic directives VS Angular material directives with Ionic Framework

JavascriptAngularjsIonic FrameworkIonic2Material Design

Javascript Problem Overview


I want to use ionic with material design. I am stuck between using ionic directives with custom CSS and angular-material

I have read that using ionic directives we get lot of efficient features like

  • App data is remembered with UI-router, even after navigating to other view and coming back to the page

  • Ionic list items are rendered only up to display height and reused when scrolling down or up

and a lot of performance improvements.

But, if I use ionic directives they don't have the material design.

If I use angular-material I will not have these performance improvements, and extra features needed for a mobile application.

Angular-material directives are like

<md-list>
  <md-item ng-repeat="item in items">
    Hello, {{item}}!
  </md-item>
</md-list>

Ionic directives are like

<ion-list>
  <ion-item ng-repeat="item in items">
    Hello, {{item}}!
  </ion-item>
</ion-list>

Looks like Ionic is funding angular-material project development, then why is angular-material not compatible to use with ionic?

How can I use angular-material components without losing the performance improvements and features of ionic?

OR

is there a better idea for using material design with ionic?

Javascript Solutions


Solution 1 - Javascript

I found a material design CSS framework known as Materializecss. It looks promising. It's just plain CSS and javascript framework.

http://materializecss.com/

Advantages over other frameworks

  1. Pure CSS classes, will not conflict with ionic directives. No performance loss.

  2. Of all the frameworks I have seen, this is the only one closely following material design rules

  3. Almost ready it has about 50+ contributors it's current Version 0.95.3 in less than 6 months

  4. Easy to use. Well documented with feature wise navigation.

  5. It has almost all the material design features needed for an app.

This page http://materializecss.com/getting-started.html will show you how to include it in your projects.

I hope this helps for any of you searching for a good material design framework.

UPDATE: 2015-07-09

I Found another lightweight powerful beautiful CSS framework for material design

Material Design Light http://www.getmdl.io/

It is lightweight, has smooth and quick animations, looking pretty good. It was made by one of the Google developers. It is officially promoted by google https://developers.google.com/web/. It is getting quite popular, try it. Comparision with Angular Material

UPDATE: 2015-10-23

Ionic2 has InBuilt Support for Material Design in Android

It's Official, You can watch Ionic2 demo in AngularConnect, It has Material Design as default for Android. We don't need to worry about choosing a Material Design framework.

Solution 2 - Javascript

There is a fairly new project called Ionic Material.

I've tried it out and it works pretty well, but be advised that it is still in "Pre-Release Preview" mode.

According to the github repo it should enter Alpha in April 2015.

It can be installed with bower

bower install ionic-material

That's pretty much all you need to do, but be warned, there are bugs and the documentation is basically non-existent.

Good luck!

Solution 3 - Javascript

Ionic Material and Ionic Material Design Lite are two budding new libraries that aim to be an extension of ionic framework. Though a little immature, works well with ionic components and supports the material theming well.

This probably could give more of an insight.

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionVamsiView Question on Stackoverflow
Solution 1 - JavascriptVamsiView Answer on Stackoverflow
Solution 2 - Javascriptdarryn.tenView Answer on Stackoverflow
Solution 3 - JavascriptvarnaView Answer on Stackoverflow