From first glance it appears that the form input elements on both of those projects are not going to be nearly as mobile friendly as I've found with Angular Material Design components.
I could very easily be mistaken, but already having a sense of what I feel like I need in order to make a nice mobile experience my first instinct would be to skip even trying out either of them for future mobile projects. That said, they both seem solid for building a standard web app the user will navigate with a mouse and keyboard.
1. To get more feedback on the docs if that's how you arrived there. 2. To get more feedback on the system itself (design and code) to see if there are bugs we can fix and issues we can improve.
A few examples:
- Alot of people will probably see the fancy animation in Angular Material 'placeholder' on text fields transition into a floating label when it receives focus as not having much functional purpose. On mobile, given space constraints, I feel it's a real innovation, not just sugar.
- Because of the differences (and discrepancies in behavior) between the 'time' input field on both mobile web platforms I went out of my way to build an analog clock face to bring consistency between platforms and more reasonable behavior. Some of it is probably personal preference, but I think having an analog clock face is objectively better from the perspective that you can set time (at least how I designed mine) with 2 taps (and maybe one more to toggle the meridian). Compared to how iOS and Android HTML inputs work natively it may not be much of a difference in the eye of the user, but I think there is a lot of room for improvement in this space.
- "tabbing" behavior between fields on a form are different, and because of a strange design decision on Apple's part, it's impossible to reconcile. There are 2 "tabbing" arrows on the iOS keyboard which send no events to the DOM.
- I could probably go on but hopefully it paints a picture of how difficult it is to create a consistent experience easily across these platforms. Not to mention that I get the feeling the number of mobile browser / web-view options (and thus differences that may or may not be reconcilable) will just continue to grow. By decoupling the UI form input component from the native elements it will bring more consistency to the user. I don't know if Angular Material (or other material design libraries) have a goal currently to decouple from the native elements completely, but they feel like they're the furthest along in this respect.
That said, one of the main reasons to use native form controls is accessibility, which is one of our biggest priorities. Maintaining accessibility with non-semantic elements is feasible, but we would end up with bugs fully breaking it, as opposed to a slightly worse UX on some mobile devices.
More importantly, we strongly believe that aiming for the exact same experience across all possible screen sizes is a mistake. If you are trying to write an application that feels natural on both desktops and mobiles, you will need to design two different interfaces, different patterns and probably different amounts of data displayed at once. Your time input example is very relevant: on desktops, you have easy access to a keyboard and a mouse, but sliding UI elements can be a drag. On phones, keyboards are painful to use, but swiping with your finger is extremely natural. Sticking to the native interface (or a customization of the native interface) in both cases will lead to an apparently "inconsistent" behavior, but a user experience that's more enjoyable on both sides.
This is the choice we have made after quite a bit of research, and you can see it for instance on our responsive navigation patterns: we support 3 levels of navigation across the app on desktops, but we limit to 2 on mobiles.
I agree with the point about designing different experiences across screen sizes also. It definitely has to be considered on a case-by-case basis, but I've seen some interesting design choices which significantly reduce this pain point. I've almost convinced myself at this point that almost all cases (app types) can be handled by some clever flexbox manipulation and some reasonable media query break points.
This seems to be a great option for ng2 projects considering the NG2 Material Design is currently in alpha, whereas this looks more "ready-to-go". To my more Bootstrap familiar mind, I feel like I "get" it much faster than some Material Design examples I've seen.
Do you guys have plans for a Tree component ? Would be great if it was and extension to the DataGrid (something like SlickGrid: http://mleibman.github.io/SlickGrid/examples/example5-collap...)
I wanted to make sure you saw the Datagrid component [1] we have. We just published it so please feel free to provide us with feedback and/or raise any issues!
[0] https://github.com/vmware/clarity/issues/67 [1] https://vmware.github.io/clarity/documentation/datagrid
I am not sure if there is confusion here but those components are built on top of Angular 2. We use and love Angular 2. In fact, we talk and work with the Angular team and both Angular and Clarity are open source projects. We contributed and would like to continue to contribute back to Angular as well!
regarding keeping pace with the Angular team, one thing worth noting is that we were up-to-date with Angular 2 Final within two days after its release.
i think we're good on that.
Before deciding to open source, we thought really hard about the long term strategy for Clarity. We did not want to open source the project and not be able to continue to build it. One of the many reasons we felt confident this is going to happen is that in the past year, we've build a very strong Clarity community internally. Over 35 product teams within VMware use Clarity and many more are on the way (many of them have not released yet but they depend on Clarity as a Design System for their future).
The team you see on the community page [0] of Clarity is a 100% dedicated to making Clarity successful. This will become more apparent in the next days and weeks as we continue to push more work into Clarity and continue to have more releases of it!