Hi! I work on Brick. Yes, there are still rough edges on these components, and we're putting them out there in the hopes of getting feedback and bug reports- a traditional beta.
Cool. I see the date picker has been fixed - thanks muchly & thanks for putting this out there.
In terms of feedback :) I gave it a shot. The only one that had a native date picker component (on my setup) was Chrome. The polyfill version didn't seem fully operational (just an overflow list of the same date?).
The Chrome native suffers from the same UX snafu that so many Date Pickers do - it's fine for relative dates, but terrible for absolute ones. If you want to schedule an event in a week it's great. Or of you want to search for flights.
However, if you want to enter a Date of Birth, it's terrible. You have to scroll through hundreds of months to get to the year you want.
So maybe you fall back to typing? In the native picker in Chrome, you can muddle through the day/month piece, but you can't type a straight year. e.g. start by typing "19" for "1975" and it'll match "1909". This also makes it impossible to enter a date in the 2000's!
You do get a "spinner" that might let you set the year, but the buttons are so small I think it defies practical usability.
Bah! Interestingly the iOS version does not suffer from this gripe as has a slot-machine three drum date selector. It does default to today, but it's pretty easy to move +/-50 years in either direction.
Sorry, that was a genuine rant. I know this is not intrinsic to Brick, but for me a universal Date Picker is #1 bugbear that I'd like it to solve.
(* The Chrome one also defaulted to the wrong timezone. Clicking "today" selected the wrong date.)
I'm not having the freezing issue with Chrome (28). But I think there're some major usability issues. I cannot figure out how to input a date. If I input "8" then "16" it's current value is 08/16/yyyy with the "yyyy" part selected. If I continue to input "2" for the year part it changes to 1902. Inputting "20" will reset the date picker back to mm/dd/yyyy.
I believe you are describing the native datepicker, I am seeing the same weirdness. Be advised, the calendar polyfilled calendar is only active when a native implementation is not detected, or you force it to be used. This may be a bug in Chrome itself.
Yes you're correct. It's neat that it uses the native datepicker if available, but one area of concern is they use different date input formats. Native forces mm/dd/yyyy while the polyfill suggests yyyy-mm-dd (though it accepts the former format as well).
Given that the errors and ability to reproduce are so erratic (to the extent that people with the very same browser versions on the same platform are seeing different behavior), I have a feeling the issue may be something like this: https://github.com/eternicode/bootstrap-datepicker/issues/95...
Another thing about the date picker that was at least happening on my desktop: when it expands, it expands well beyond the bounds of the mobile phone container they're using in their example:
I'm also running Chrome 28 (Version 28.0.1500.95) on Windows, but everything is running fine. I'm wondering if Chrome itself is locking up, because the calendar demo is has only one demo of the polyfill picker, the rest are the native calendar that it uses when it detects it is available.
We're actually not using the Polymer Web Components shim- it attempts to simulate Shadow DOM by overriding DOM Methods(!), which didn't seem necessary.
Yep. The web components aspect is the most interesting aspect of this. It would have been useful to put that in the post title (until a mod reverts it).
Underlying Polymer's opinionated framework, there is a set of polyfills for the emerging Web Components standards - both Mozilla's X-Tag library and Polymer use these polyfills as the basis of their offerings.
This is cool and certainly useful but I have concerns. Forgetting for a moment that this is a shim and imagining that all browsers support this natively, isn't this sort of thing outside the intended purpose of html. Html should describe content not styling and this sort of thing seems ripe for abuse. I thought XML was the markup language for describing custom data. Adding the ability to create your own DOM elements for the purpose of using them as hooks for interactivity and styling seems like something that should be avoided in HTML.
Am I being a too much of a purist or overlooking something here?
You're overlooking that the underlying technology - Web Components - is landing as a standard as we speak in both Firefox and Chrome. The idea that creating custom elements is inherently bad is an urban legend - there is no empirical basis for such a claim. Additionally, you are mixing metaphors, Custom Elements are not meant to describe data, they are meant to create new, active UI components and other useful tags.
The web components spec is precisely what AngularJS has been anticipating since Angular's inception. I believe the idea was (and still may be) to integrate web components once they are officially adopted by the major browsers.
These are UI elements built on top of (a shim for) the coming standard Web Components.
For another Web Components shim check out polymer-project.org along with a small, opinionated framework leveraging Web Components. Especially look at the awesome Sandbox application allowing you to compose web components :)
I think it's fucking awesome and it works like a boss in FF 24 (beta) on OS X. I'm very excited about this project only because standard UI elements are so irritating to make (after having done it hundreds of times) and the alternative libraries (in my opinion) all do too much and too little at the same time.
For everyone complaining about Chrome, I would like to say this is "beta" and "ahahahahaha."
Not to be malicious though! I just have a really shit experience on the web with a lot developers only targeting Chrome/Webkit. Like ScalaTour for instance-- a wretched experience if you're /not/ using Chrome (read unusable).
It's nice to see it go the other way for once! ;-)
I would much prefer one piece of javascript per component. So if I liked one, I could use it and improve it. Im not so much inclined to use a library of tons of stuff I dont use.
The folks working on the components are going to be incorporating all this feedback and reporting going forward. Everyone is encouraged to file bugs with the repo here: https://github.com/mozilla/brick/issues
Just an FYI - Mozilla will be employing this highly technical problem resolution strategy to ensure a high level of quality prior to official release: http://www.youtube.com/watch?v=yo3uxqwTxk0
It working for you doesn't change the fact that it's not working for somebody else. It's still broken in at least that one case, and that's enough to raise concern among those of us who want to avoid such failures.
With this and Polymer, I think the whole idea of software components might actually happen. I cannot wait for this to happen. Having this stuff would be great!
Thanks to the people behind HTML5 for kicking off the innovation.
Thanks to the team that put this together at Mozilla. I went to the demo page and things just worked.
For those of you reporting crashes in calendar/datepicker, can you please indicate what region you are in (UK, etc)? The issue is most likely caused by non-American date formats, and we are working on a fix.
yeesh, I respect Mozilla for their true open-source-everything-all-the-time philosophy but this is an example where I think it backfires - it's too early! Even if these really are awesome components it's really hard to see past the lack of polish. People are fickle and you only get one chance to make a first impression, it's important that these things look good
I dont believe it backfires. People are fickle, you get lots of chances to make a first impression.
I think the key is clarity in your communication, doing a lot of polish on top of unstable software and advertising it as stable causes people to waste time using it, advertising as beta / for early adopters lets the early adopters pick it up and the people who just want it to 'just work' can wait. If you lose a few people who dont understand the benefits still far outweight the negatives.
This is mostly just a disclaimer for people who are waiting to open source their software until 'its ready', its never ready, do it now.
We were torn whether to call the current state of things alpha or beta, but yes, these are not ready for prime time. Where we and some other orgs disagree is that things should be kept secret until they're 'ready', when outside contributions could help you get them ready!
The one I was most interested in was the Date Picker, but locks up Chrome (28) and Safari (6) on my machine. http://mozilla.github.io/brick/component/datepicker/demo/ind...