Hacker News new | past | comments | ask | show | jobs | submit login
Uniform - Sexy forms with jQuery (pixelmatrixdesign.com)
151 points by mojombo on Feb 10, 2010 | hide | past | favorite | 33 comments



Have you ever wished you could style checkboxes, drop down menus, radio buttons, and file upload inputs? Ever wished you could control the look and feel of your form elements between all browsers?

No, because that is generally bad usability design. It's not quite as bad as the ultimate atrocity: making your own scrollbars, but changing the feel of widgets is bad, because it only makes it harder for people to manipulate them. It's ok to change the look if you are careful to preserve the feel and functionality.

A quick test of that example shows it's lacking visual indication of focus. I can still move between them and manipulate them with tab and space and arrow keys, but I don't know where I am. If that's just part of the theme, fine, but if the framework lacks support for it, not so fine.

On the other hand, I hope this library (or similar) becomes very popular among those that absolutely have to change widgets, because then you can address the usability issues in the library. If everyone rolls their own, you will end up with quite a few usability horrors.


The focus indicator is there, it's just subtle.


Why not include a matching style for textboxes? Those styled inputs are going to look pretty jarring next to native textboxes and creating matching styles for them is enough work for me that I wouldn't do it.

Overall they look nice, but with the incomplete control set and the gotchas listed (doesn't automatically handle dynamic changes and no IE6 support) it has a long way to go.


Adds a bit of irony to the project's name.


Ojay.Forms handles dynamic changes and supports IE6. You have to write your own styling, though, but generally one would have to do that with Uniform anyway.

http://ojay.othermedia.org/articles/forms.html


On a quick test, drop down boxes don't work on Chrome 4: when I click on the scroll bar it closes down. I've seen this bug somewhere else two years ago and there was some workaround but still...

Anyway, it's a nice idea!


Yes, we need to do some work to make things properly compatible with Chrome. Hopefully I'll have some spare time in the next couple of weeks to do that.


Indeed - in addition to type="text", textarea and button would be nice as well.


Nice use of our Aristo theme! http://github.com/280north/aristo


In the default theme, the disabled checkbox and radio buttons look too much like the enabled ones, especially when they're arranged like on the landing page, i.e. enabled / checked / disabled. Otherwise, sexy.


Uses own "theme creator" instead of plugging into jquery's unparalleled Theme Roller :-/


Theme roller is a cool idea, but the CSS it outputs has so much cruft... It's like they forgot about the cascading part.


It could learn a thing or two from YUI CSS here.

Also, I find the themeroller a bit clumsy, spitting out whole zip files - rather than just little my-theme.css files.


unfortunately much of themeroller's flexability depends on images. maybe more CSS support among popular browsers and more consistent CSS support will make it possible to achieve more with less images some day (hopefully none some day)


Hmm. Would be nice if the dropdown and buttons worked properly in Opera.


I'm really curious about why the author succeeded with the other four major browsers, but couldn't make it work with Opera.


I toyed with the code a bit (which was a bit bizarre looking until I realized the mix of tabs and spaces was meant to be viewed with tabs equalling 2 spaces). One minor thing worth noting: The demo page has a "console.log(...)" statement in it. That causes an error in Opera, so I took it out.

Here's why the dropdown doesn't [quite] work in Opera:

Uniform wraps form elements with divs and spans in order to achieve the altered look. The actual form elements are set to opacity 0 to hide them. For some reason (which I couldn't figure out), the actual select element ends up with a height of 5 pixels. You'll see that if you click on the upper 5 pixels of the dropdown, you'll get the dropdown to open up like it should.

The simple fix was to force the height of the select element with CSS to something bigger, such as 23px. I added "height: 23px;" to this CSS block: http://github.com/pixelmatrix/uniform/blob/master/css/unifor... and then the dropdown began working as advertised.


Awesome. :) I bet the author would appreciate knowing that.


Really beautiful.

I was a bit offended by the "155 KB download", but when downloaded and extracted it is just around 50 KBytes.


Is that minified/compressed?


It's not, but a lot of the size comes from a PNG sprite which is 30K. With yuicompressor (http://developer.yahoo.com/yui/compressor/) and pngcrush (http://pmt.sourceforge.net/pngcrush/) I got everything down to 37K.


No


Hey guys, thanks for the feedback. Constantly trying to improve things. If you have bug reports, please post them in Github's issue tracker. I pay close attention to issues posted there.

There have been a lot of requests to add styles for inputs/textareas and buttons. I do plan to add styles for those in the next version.

Also, Opera support is coming. I played around yesterday and I found a workaround for the bug that was plaguing it: not being able to hide form elements.

Can someone post more details on the Chrome 4 bug mentioned in the issue tracker?


Here's something egregious: the names of the radio buttons or the check boxes aren't labels for the input, and you can't click on them to select the option.


I've not looked at the source, but clicking on them works for me (Chrome 4)


Watch out you're not clicking the third one in the list. They're disabled, but don't look like it.


Good point. I upvoted lsb because that bothered me too, but the problem is what you describe.


Created by the best social media UI designers on the planet. Worked with Josh a ton, such a talented pro. If you can get on his wait list, do it


Very nice. The developer's responsiveness to bug reports is what makes this the best form-styling solution for a side project I'm working on at the moment; this should be pretty well-vetted. Josh, thanks for your efforts!


not to be confused with http://sprawsm.com/uni-form/


Can we get some nice date and time pickers please! :P


There should be millions of those around if you need one, the problem is that such a widget isn't part of the html standard, there's no baseline functionality that you can extend and make pretty, you have to do it all yourself.


It's actually part of HTML5:

http://diveintohtml5.org/forms.html#type-date

But "support is… sparse".




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: