Once you’ve taken the leap to start using the jQuery library (or another JS library of your choice) for many “simple” tasks you are faced with the dilemma of 3 development approaches:
- use the CSS3
- use a mixture of CSS3 and jQuery i.e. add a class defined in CSS using jQuery
- use a jQuery plugin where available – which usually intelligently chooses between native CSS or another solution.
With regards to the following types of CSS3 enhancements, should one always use the plugins approach?
- Rounded Corners
- Rotating things
- Simple animation / transitions
- Transparent Colours
- Rounded Corners
- Text Shadows Box Shadows
- Multiple Backgrounds
I am less concerned with performance but more concerned about speed of development and long term maintenance. I also need to support IE6 and Macs. So I'm thinking jQuery/plugins all the way but if you know any better please share your experience.
If there are lots of plugins do people combine them into one download?
Thanks
Mike
mkoistinen's answer prompted me to write this but it was too big to fit in as a comment.
I think this kind of decision depends on your project needs. In the majority of cases I think you are absolutely right plugins can be over kill. Especially for the experienced 'front end engineer' with good HTML, CSS and JavaScript skills.
In my case we have a lot of different people involved, wide range in skills, different teams/3rd parties/off shore, delivering a complex site with content and forms.
The jQuery plugins offers:
- a lower learning curve for those less able
- reuse across different parts of the business
- accessibility is important
- theme roller support is also important
- we have forms that could use the majority of the widgets
- support from the jQuery team (and Microsoft if you are using .net)
That said, this is not a cut and dry decision. I think we will have to feel our way as we gain experience.
Some of our team like jQuery Tools http://flowplayer.org/tools/index.html - it looks good and has a smaller footprint but I think we actually want most of the additional functionality in jQuery UI.