 <?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Devin R. Olsen Web Developer</title>
	<atom:link href="http://www.devinrolsen.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.devinrolsen.com</link>
	<description>From Developer to Developer Information and Sharing</description>
	<lastBuildDate>Thu, 26 Apr 2012 08:01:15 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>How to texture a 3d building and interior</title>
		<link>http://www.devinrolsen.com/how-to-texture-a-3d-building-and-interior/</link>
		<comments>http://www.devinrolsen.com/how-to-texture-a-3d-building-and-interior/#comments</comments>
		<pubDate>Sun, 19 Feb 2012 08:29:03 +0000</pubDate>
		<dc:creator>Devin R. Olsen</dc:creator>
				<category><![CDATA[3D Tutorials]]></category>
		<category><![CDATA[Featured Articles]]></category>
		<category><![CDATA["3d texturing" "3d textureing tutorial" "unity3d building texturing" "low poly texturing tutorial" "low poly building texturing" "3d building texture tutorial" "game ready tutorial" "unity3d game buil]]></category>

		<guid isPermaLink="false">http://www.devinrolsen.com/?p=1593</guid>
		<description><![CDATA[Learn how to texture a low poly 3d building that has a multilevel interior an roof access in 3d Studio Max today!]]></description>
			<content:encoded><![CDATA[<p>Here we will attempt to go step by step at texturing a complete 3d building with multilevel interior and roof access in 3d studio max. This building was designed for a game I&#8217;m working on in the unity3d game engine.</p>
<p>I dunno, maybe someone might find this helpful, either way enjoy!<br/></p>
<p><iframe style="display: block; margin: auto;" width="610" height="440" src="http://www.youtube.com/embed/2DzZxp0R4vk" frameborder="0" allowfullscreen></iframe></p>
<p>If you did happen to find this tutorial informational or helpful in anyway, please let me know below by leaving a comment. As I venture more and more into 3d information sharing, I want to know how my teachings are being received by my viewers before really continue any further down this avenue.</p>
<p>Thanks everyone!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.devinrolsen.com/how-to-texture-a-3d-building-and-interior/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>How to model a 3d building and interior</title>
		<link>http://www.devinrolsen.com/how-to-model-a-3d-building-and-interior/</link>
		<comments>http://www.devinrolsen.com/how-to-model-a-3d-building-and-interior/#comments</comments>
		<pubDate>Mon, 02 Jan 2012 03:20:04 +0000</pubDate>
		<dc:creator>Devin R. Olsen</dc:creator>
				<category><![CDATA[3D Tutorials]]></category>
		<category><![CDATA[Featured Articles]]></category>
		<category><![CDATA[3d building]]></category>
		<category><![CDATA[3d building tutorial]]></category>
		<category><![CDATA[3d game building tutorial]]></category>
		<category><![CDATA[3d tutorial]]></category>
		<category><![CDATA[game ready building tutorial]]></category>
		<category><![CDATA[game ready tutorial]]></category>
		<category><![CDATA[low poly building]]></category>
		<category><![CDATA[low poly tutorial]]></category>
		<category><![CDATA[unity3d building]]></category>
		<category><![CDATA[unity3d building tutorial]]></category>
		<category><![CDATA[unity3d game building]]></category>
		<category><![CDATA[unity3d game building tutorial]]></category>

		<guid isPermaLink="false">http://www.devinrolsen.com/?p=1564</guid>
		<description><![CDATA[Learn how to model a low poly 3d building that has a multilevel interior an roof access in 3d Studio Max today!]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.devinrolsen.com/wp-content/uploads/2012/01/2.jpg" alt="" title="2" width="120" height="90" class="alignleft size-full wp-image-1567" style="float:left; position:absolute; left:-9999em;" /> Here we will attempt to go step by step at modeling a complete 3d building with multilevel interior and roof access in 3d studio max. This building was designed for a game I&#8217;m working on in the unity3d game engine.</p>
<p>I dunno, maybe someone might find this helpful, either way enjoy!<br/></p>
<p><iframe style="display: block; margin: auto;" width="610" height="440" src="http://www.youtube.com/embed/uHNzPpXemR4" frameborder="0" allowfullscreen></iframe></p>
<p>If you did happen to find this tutorial informational or helpful in anyway, please let me know below by leaving a comment. As I venture more and more into 3d information sharing, I wanting to know how my teach are being received by my viewers before really continue any further down this avenue.</p>
<p>Thanks everyone!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.devinrolsen.com/how-to-model-a-3d-building-and-interior/feed/</wfw:commentRss>
		<slash:comments>15</slash:comments>
		</item>
		<item>
		<title>Combat Extreme &#8211; Facebook 3D Shooter</title>
		<link>http://www.devinrolsen.com/combat-extreme-facebook-3d-shooter-video-game/</link>
		<comments>http://www.devinrolsen.com/combat-extreme-facebook-3d-shooter-video-game/#comments</comments>
		<pubDate>Mon, 05 Dec 2011 17:48:49 +0000</pubDate>
		<dc:creator>Devin R. Olsen</dc:creator>
				<category><![CDATA[3D Tutorials]]></category>
		<category><![CDATA[Ajax Tutorials]]></category>
		<category><![CDATA[CSS Tutorials]]></category>
		<category><![CDATA[Featured Articles]]></category>
		<category><![CDATA[General Web Development]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[JavaScript Tutorials]]></category>
		<category><![CDATA[Magento Tutorials]]></category>
		<category><![CDATA[PHP Tutorials]]></category>
		<category><![CDATA[SEO Tutorials]]></category>
		<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[3d combat facebook]]></category>
		<category><![CDATA[3d combat game]]></category>
		<category><![CDATA[3d facebook game]]></category>
		<category><![CDATA[combat]]></category>
		<category><![CDATA[combat 3d game]]></category>
		<category><![CDATA[combat extreme]]></category>
		<category><![CDATA[extreme]]></category>
		<category><![CDATA[extreme combat facebook game]]></category>
		<category><![CDATA[extreme combat game facebook]]></category>
		<category><![CDATA[facebook 3d combat game]]></category>
		<category><![CDATA[facebook 3d game]]></category>
		<category><![CDATA[facebook combat video game]]></category>
		<category><![CDATA[facebook shooter]]></category>
		<category><![CDATA[game]]></category>
		<category><![CDATA[shooter game]]></category>
		<category><![CDATA[third-person]]></category>
		<category><![CDATA[video game]]></category>

		<guid isPermaLink="false">http://www.devinrolsen.com/?p=1541</guid>
		<description><![CDATA[My little brother and I have been working on this third-person shooter video game together for well over a year now, come check it out and play for free through your web browser!]]></description>
			<content:encoded><![CDATA[<p>Hi readers! I thought I would take a different pace today, and instead of teaching lets play some games shall we? For over a year now I and my little brother have been working tirelessly on our first &#8220;Third-person shooter&#8221; video game.</p>
<p><iframe src="http://www.youtube.com/embed/rhx_eJxyRv8" frameborder="0" width="420" height="315"></iframe></p>
<p><strong><a title="Combat Extreme - Third-person shooter on Facebook.com" href="https://www.combat-extreme.com/">CLICK HERE TO START PLAYING OUR GAME!</a></strong></p>
<p>So what makes this game so different you ask? Well the game is completely browser-based. That&#8217;s right, a full 3D environment third person shooting game that is playable through your web browser!</p>
<p>It&#8217;s a simple game of Marines vs. Insurgents based in a mideast town (for the BETA at least, we have three total levels for full release of the video game).</p>
<p>We used the Unity3d game engine to develop this game, and although our game is still in a official &#8220;BETA&#8221; title, I felt it was finally time to share this awesome work with the rest of my readers and the world.</p>
<p>In order to play Combat Extreme (the 3d third-person shooter) on Facebook through your web browser, you must have the unity3d web player installed. The web player is designed specifically to render geometry and post process effects directly through ones browsers (Yes even IE).</p>
<p>Combat Extreme (the 3d third-person shooter) is indeed exclusive to facebook.com right now and may or may not be opened to further social gaming markets. We really wanted to create a seamless experience for our UX, and insisting the user create a new account with an email address conformation + allow the app on their page was asking way too much. Thus, we eliminated the biggest step and allow our users to login to Combat Extreme (the 3d third-person shooter game) through their facebook account.</p>
<p><strong><a title="Combat Extreme - Third-person shooter on Facebook.com" href="https://www.combat-extreme.com/">CLICK HERE TO START PLAYING OUR GAME!</a></strong></p>
]]></content:encoded>
			<wfw:commentRss>http://www.devinrolsen.com/combat-extreme-facebook-3d-shooter-video-game/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Understanding The Form Fundamentals</title>
		<link>http://www.devinrolsen.com/understanding-form-fundamentals/</link>
		<comments>http://www.devinrolsen.com/understanding-form-fundamentals/#comments</comments>
		<pubDate>Tue, 31 May 2011 01:32:46 +0000</pubDate>
		<dc:creator>Devin R. Olsen</dc:creator>
				<category><![CDATA[Featured Articles]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[accessibility]]></category>
		<category><![CDATA[accessibility layout]]></category>
		<category><![CDATA[accessibility markup]]></category>
		<category><![CDATA[behavior]]></category>
		<category><![CDATA[conformation]]></category>
		<category><![CDATA[form]]></category>
		<category><![CDATA[form accessibility]]></category>
		<category><![CDATA[form behavior]]></category>
		<category><![CDATA[form conformation]]></category>
		<category><![CDATA[form fundamentals]]></category>
		<category><![CDATA[form layout]]></category>
		<category><![CDATA[form validation]]></category>
		<category><![CDATA[forms]]></category>
		<category><![CDATA[forms accessibility markup]]></category>
		<category><![CDATA[forms visual layout]]></category>
		<category><![CDATA[fundamentals]]></category>
		<category><![CDATA[layout]]></category>
		<category><![CDATA[markup]]></category>
		<category><![CDATA[validation]]></category>

		<guid isPermaLink="false">http://www.devinrolsen.com/?p=1249</guid>
		<description><![CDATA[I'm starting to better identify a lot of basic form fundamentals being overlooked these days, so I felt this topic was long over due. Today we will break down six seeming basic ideas that all forms in one way or another need to embody to be considered any kind of a success.]]></description>
			<content:encoded><![CDATA[<p>What exactly are the basic form fundamentals? The fundamentals are more or less a checklist of steps or process, that each web form should be running through before ever being pushed live.</p>
<p>Here is how I like to think of every form&#8217;s fundamental steps:</p>
<ul>
<li><a href="#accessibility">Accessibility</a></li>
<li><a href="#markup">Markup</a></li>
<li><a href="#layout">Layout</a></li>
<li><a href="#behavior">Behavior</a></li>
<li><a href="#validation">Validation</a></li>
<li><a href="#conformation">Conformation</a></li>
</ul>
<p>Six seemingly basic ideas that all forms in one way or another need to embody to be considered any kind of success. Lets break down each step of our form fundamentals:</p>
<h2 id="accessibility">Accessibility</h2>
<div id="attachment_1379" class="wp-caption alignright" style="width: 234px"><a class="colorbox" href="http://www.devinrolsen.com/wp-content/uploads/2011/05/accessibility-stairs.jpg"><img class="size-medium wp-image-1379 " title="Staircase with painting of mountain states &quot;For some, it's Mt. everest&quot;" src="http://www.devinrolsen.com/wp-content/uploads/2011/05/accessibility-stairs-224x300.jpg" alt="Staircase with painting of mountain states &quot;For some, it's Mt. everest&quot;" width="224" height="300" /></a><p class="wp-caption-text">Taken from http://www.creativecriminals.com</p></div>
<p>I think we can all agree that collecting or sending information seems to be a huge corner-stone of importance amongst many websites. It should come as no surprise then that making our site&#8217;s forms work for all visitors is extremely important.  Being able to tab through, or screen read over different fields in a logical manner is key for success.</p>
<p>Screen readers are widely used for accessibility needs from a computer. Most screen readers observe and read off all the different parts of a window to the user. Screen readers also typically listen for voice and key events to help the user navigate through the windows of information.</p>
<p>When screen readers come to a web page, their typically tends to be lots of information it has to read off to the user. Most of the time this information is either redundant, meaningless or unhelpful information.</p>
<p>While keeping accessibility in mind through every step, we can better assist our visitors through our forms (<em>be it what ever size</em>) in a fast, descriptive and logical way. Not only will this greatly improve our very important forms, but grant a great user experience to all our visitors.</p>
<h2 id="markup">Markup</h2>
<p>Great lets take a peek at some form markup that only uses the follow elements:</p>
<ul>
<li>form</li>
<li>ol, li</li>
<li>fieldset, legend</li>
<li>label</li>
<li>input, textarea, select, options, button</li>
</ul>
<p>We use ol and li (ordered list) to better help guild accessibility through our form. We also keep accessibility in mind by making use of feildsets and legends to better organize and describe our form to screen readers, like so:</p>
<pre>&lt;form method="post" action="#"&gt;
    &lt;fieldset&gt;
        &lt;legend&gt;
            May 12th Event Registration
        &lt;/legend&gt;
        &lt;ol&gt;
            &lt;li&gt;
                &lt;fieldset&gt;
                    &lt;legend&gt;
                        Full Contact Name
                    &lt;/legend&gt;
                    &lt;ol&gt;
                        &lt;li&gt;
                            &lt;label for="first-name"&gt;
                                First Name
                            &lt;/label&gt;
                            &lt;input id="first-name" /&gt;
                        &lt;/li&gt;
                        &lt;li&gt;
                            &lt;label for="last-name"&gt;
                                Last Name
                            &lt;/label&gt;
                            &lt;input id="last-name" /&gt;
                        &lt;/li&gt;
                        &lt;li&gt;
                            &lt;label for="middle-initial"&gt;
                                Middle Initial
                            &lt;/label&gt;
                            &lt;input id="middle-initial" /&gt;
                        &lt;/li&gt;
                    &lt;/ol&gt;
                &lt;/fieldset&gt;
            &lt;/li&gt;
            &lt;li&gt;
                &lt;fieldset&gt;
                    &lt;legend&gt;
                        Contact Information
                    &lt;/legend&gt;
                    &lt;ol&gt;
                        &lt;li&gt;
                            &lt;label for="address"&gt;
                                Mailing Address
                            &lt;/label&gt;
                            &lt;input id="address" /&gt;
                        &lt;/li&gt;
                        &lt;li&gt;
                            &lt;label for="state"&gt;
                                State
                            &lt;/label&gt;
                            &lt;select id="state"&gt;
                            &lt;option&gt;..&lt;/option&gt;
                            &lt;select/&gt;
                        &lt;/li&gt;
                        &lt;li&gt;
                            &lt;label for="zip"&gt;
                                Zip Code
                            &lt;/label&gt;
                            &lt;input id="zip" /&gt;
                        &lt;/li&gt;
                        &lt;li&gt;
                            &lt;label for="email"&gt;
                                Email Address
                            &lt;/label&gt;
                            &lt;input id="email" /&gt;
                        &lt;/li&gt;
                    &lt;/ol&gt;
                &lt;/fieldset&gt;
            &lt;/li&gt;
            &lt;li&gt;
                &lt;fieldset&gt;
                    &lt;legend&gt;
                        Attending Questions
                    &lt;/legend&gt;
                    &lt;ol&gt;
                        &lt;li&gt;
                            &lt;label for="adults-attending"&gt;
                                How many adults will be attending?
                            &lt;/label&gt;
                            &lt;select id="adults-attending"&gt;
                            &lt;option&gt;..&lt;/option&gt;
                            &lt;select/&gt;
                        &lt;/li&gt;
                        &lt;li&gt;
                            &lt;label for="children-attending"&gt;
                                How many children will be attending?
                            &lt;/label&gt;
                            &lt;select id="children-attending"&gt;
                            &lt;option&gt;..&lt;/option&gt;
                            &lt;select/&gt;
                        &lt;/li&gt;
                        &lt;li&gt;
                            &lt;label for="meal-choice"&gt;
                                Choose a meal type
                            &lt;/label&gt;
                            &lt;select id="meal-choice"&gt;
                            &lt;option&gt;..&lt;/option&gt;
                            &lt;select/&gt;
                        &lt;/li&gt;
                    &lt;/ol&gt;
                &lt;/fieldset&gt;
            &lt;/li&gt;
        &lt;/ol&gt;
    &lt;/fieldset&gt;
&lt;/form&gt;</pre>
<p>The main idea for this form is described in our first legend (May 12th Event Registration), it describes both an event time and the form&#8217;s purpose. Next is our second level nested legends that describe our three fieldset sections (full contact name, contact information and attending questions).</p>
<p>Finally we use labels to better describe our input fields to the visitors. Notice each label carries the &#8220;for&#8221; attribute and value of its corresponding input&#8217;s id. This &#8220;for&#8221; attribute helps screen readers better identify what label is for what form field.</p>
<p style="display: none;">Notice our above markup&#8217;s semantics, this is key for both accessibility and development purposes. If you would like to read a great article on building with great semantics I suggest you read Christoph Saxe&#8217;s great article on the subject.</p>
<p>A great tip I use all the time when building out my form&#8217;s markup, is to simply turn off the browsers styles. With the browsers styles turned off, you get a perfect picture of the relationships between your form&#8217;s fieldset and legend nesting:</p>
<p style="text-align: center;">&nbsp;</p>
<div id="attachment_1260" class="wp-caption aligncenter" style="width: 505px"><a class="colorbox" href="http://www.devinrolsen.com/wp-content/uploads/2011/05/no-styles.png"><img class="size-full wp-image-1260   " title="Form Fundamentals - Learn to observe your forms without any styles " src="http://www.devinrolsen.com/wp-content/uploads/2011/05/no-styles.png" alt="Form Fundamentals - Learn to observe your forms without any styles " width="495" height="359" /></a><p class="wp-caption-text">Form Fundamentals - Learn to observe your forms without any styles </p></div>
<p>&nbsp;</p>
<p>You can see how we better make use of the ol now to better guide our visitors through the nested fieldsets and legends.</p>
<h2 id="layout">Layout</h2>
<p>Now let&#8217;s talk about form layout, and how it&#8217;s here to ultimately visually aid user experience. Visual layout is very important in better helping guide our visitors through our information quickly. Poor layout will always leave visitor&#8217;s feeling as if the form was more like work, than a simple information fill out.</p>
<p>Take a look at what our form&#8217;s layout with CSS applied would ultimately look like:</p>
<div id="attachment_1257" class="wp-caption aligncenter" style="width: 521px"><a class="colorbox" href="http://www.devinrolsen.com/wp-content/uploads/2011/05/layout.png"><img class="size-full wp-image-1257  " title="Form Fundamentals - Basic Form Layout" src="http://www.devinrolsen.com/wp-content/uploads/2011/05/layout.png" alt="Form Fundamentals - Basic Form Layout" width="511" height="379" /></a><p class="wp-caption-text">Form Fundamentals - Basic Form  Layout</p></div>
<p>As mentioned back in the markup step, all the different form&#8217;s markup parts are to help visitors through our form in a logical manner. The layout should not be any different, in that its goal is to visually help visitors better identify our form&#8217;s logical different parts.</p>
<div id="attachment_1258" class="wp-caption aligncenter" style="width: 521px"><a class="colorbox" href="http://www.devinrolsen.com/wp-content/uploads/2011/05/layout-wguides.png"><img class="size-full wp-image-1258 " title="Form Fundamentals - Clearly Indentify Form's Section." src="http://www.devinrolsen.com/wp-content/uploads/2011/05/layout-wguides.png" alt="Form Fundamentals - Clearly Indentify Form's Section." width="511" height="379" /></a><p class="wp-caption-text">Form Fundamentals - Clearly Indentify Form&#39;s Section.</p></div>
<p style="text-align: center;">&nbsp;</p>
<p>In the above figure, we can clearly identify all the main areas of our form by color:</p>
<ul>
<li>The main form it&#8217;s self (<strong><em>Peach</em></strong>)</li>
<li>Main Heading Legend (<strong><em>Purple:</em> </strong><em>Detailed Description of the overall form&#8217;s main purpose.</em>)</li>
<li>Section Fieldsets (<strong><em>Green: </em></strong><em>Feildsets help with accessibility to step through our form in a logical fashion.</em>)</li>
<li>Section Fieldset Legends (<strong><em>Blue:</em> </strong><em>Detailed Description of each grouping of fields with our fieldsets.</em>)</li>
</ul>
<p>Our first level legend has the largest font size to better visually bring the form&#8217;s main purpose to the forefront. Preceding the first form&#8217;s legend is our next level of fieldsets and legends that are spaced out, and also use a large font size.</p>
<p>There is one more layer of &#8220;patterns&#8221; to observe in this particular form however. Looking more closely we can see some repeated field sizes in their parent&#8217;s limited real estate under a fixed width:</p>
<div id="attachment_1261" class="wp-caption aligncenter" style="width: 521px"><a class="colorbox" href="http://www.devinrolsen.com/wp-content/uploads/2011/05/form-field-sizes.png"><img class="size-full wp-image-1261 " title="Form Fundamentals - Always identify or come up form field size patterns. " src="http://www.devinrolsen.com/wp-content/uploads/2011/05/form-field-sizes.png" alt="Form Fundamentals - Always identify or come up form field size patterns. " width="511" height="379" /></a><p class="wp-caption-text">Form Fundamentals - Always identify or come up form field size patterns. </p></div>
<p>In the figure above we have 4 colors representing our 4 different size variants for all our different fields. It&#8217;s smarter to identify and/or come up with a &#8220;field size pattern&#8221; to help cut down unneeded styles. Once you have a field size pattern, you can begin to class and distribute these different sizes over the form&#8217;s markup as you see fit.</p>
<p>Taking our 4 field size patterns from above, we would then have 4 CSS classes on hand to implement in our markup as we desired:</p>
<ul>
<li>form .tiny {&#8230;}</li>
<li>form .short {&#8230;}</li>
<li>form .medium {&#8230;}</li>
<li>form .long {&#8230;}</li>
</ul>
<p>Applying these &#8220;field size pattern&#8221; classes as you see fit (typically the field&#8217;s parent list item wrapper) will speed up the overall form layout process. Also, all the preceding forms you build should be just as fast to build, if using these same patterns.</p>
<p>Color contrast is also very important for visitors who happen to be colorblind. Keeping your labels, legends, fields and field values at best contrasted will help, and is always a good idea in general for a layout aimed at great user experience.</p>
<h4><em>Got Element Visual Problems?</em></h4>
<p>Sometimes you can be faced with the need to not display a label or legend, yet you don&#8217;t want to remove the element due to its use for accessibility.</p>
<p>At this point I suggest making a class called &#8220;.accessibility&#8221;, and give it a text-indent style of &#8220;-9999em&#8221; as well as a position absolute with a left of &#8220;-9999em&#8221;. By setting our accessibility class to use text-indent and position styles, we ensure to keep our markup intact for accessibility needs, but also achieve our visual goal. You never want to use the display:none; style to hide accessibility important elements, this will cause problems for screen readers.</p>
<pre>.accessibility {
    left:-9999em;
    position:absolute;
    text-indent:-9999em;
}</pre>
<h2 id="behavior">Behavior</h2>
<p>Behavior is sometimes grouped together with the idea of some fancy fade in and out, or things elasticizing all over your pages. The kind of behavior I&#8217;m referring to however, is the behavior that helps the users understand each part of the form&#8217;s steps under all its conditions.</p>
<p>Sometimes you may have a need to relocate a label&#8217;s text to say the value of an input, well out of this comes all kinds of behavior needs.</p>
<p>One great example of form behavior is at <a title="Twitter.com" href="http://www.twitter.com/">http://www.twitter.com/</a></p>
<div id="attachment_1262" class="wp-caption aligncenter" style="width: 494px"><a class="colorbox" href="http://www.devinrolsen.com/wp-content/uploads/2011/05/form-behavior.png"><img class="size-full wp-image-1262 " title="Form Fundamentals - Observe Form Behavior Needs" src="http://www.devinrolsen.com/wp-content/uploads/2011/05/form-behavior.png" alt="Form Fundamentals - Observe Form Behavior Needs" width="484" height="572" /></a><p class="wp-caption-text">Form Fundamentals - Observe Form Behavior Needs</p></div>
<p>You&#8217;ll notice on the login form for twitter.com, there is no visible form label above each field. Twitter had decided to remove them from the visual real-estate and relocated them in the text inputs them self&#8217;s. In doing this label relocating, they have introduced a whole host of behavior needs to these inputs. These behaviors are used to help guide the visitors in understanding what it is they are filling out under each condition:</p>
<ul>
<li><span style="text-decoration: underline;">Idle State</span> (Display label value in Input IF, nothing is filled out in the field.)</li>
<li><span style="text-decoration: underline;">Over State</span> (<em>While hovering over the field, its seems to light up telling me what I am about to edit.</em>)</li>
<li><span style="text-decoration: underline;">Focus State</span> (<em>The input cursor jumps to the beginning of the label value to prompt the user to type away, but not letting them forget what it is they are about to fill out</em>.)</li>
<li><span style="text-decoration: underline;">Change State</span> (The first stroke of a key wipes out the label&#8217;s value and replaces it with our typed value.)</li>
<li><span style="text-decoration: underline;">Blur State</span> (<em>Keep&#8217;s our typed value IF the input is not left blank, other wise our label copy animates back in and we start over.</em>)</li>
</ul>
<p>You should always think about these kinds of helping behaviors when build any form. If these behaviors help bring back form guidance or enhance the user experience, then you must consider using them.</p>
<h2 id="validation">Validation</h2>
<p>The line between validation and behavior may seem vague, but there is a big difference. Where behavior is meant normally to help guide the user through the process under most editing states, it has almost no value to users with  accessibility needs and screen readers. Validation on the other hand, should provide clear and importance guidance to form mistakes for all site visitors with or without accessibility needs, if done correctly.</p>
<p>Client side validation has three main goals:</p>
<ul>
<li>Making sure typed values are formatted or entered correctly.</li>
<li>Describe how the fields were not filled out correctly.</li>
<li>Show/bring the user to where the errors have begun to occur.</li>
</ul>
<p>If you can stick to these three main goals, you will meet the needs of your form&#8217;s requirements in a manner that all visitors can benefit from.</p>
<p>One great validation tool I personally like is the, <a href="http://bassistance.de/jquery-plugins/jquery-plugin-validation/">bassistance.de » <em>jQuery Validation Plugin</em></a>. This plugin will allow you to meet all three validation requirements from above for any field type or scenario imaginable possible.</p>
<p>Another great utility to help guide your visitors along the path of validation is the<a href="http://digitalbush.com/projects/masked-input-plugin/"> digitalBush » <em>Masked Input</em> Plugin.</a> This plugin will help give further visual formatting guidance to date or phone field types.</p>
<h2 id="conformation">Conformation</h2>
<p>Lastly, is conformation of a successful form submit. It becomes all to easy with HTTPRequest form submissions these days to forget the conformation message.</p>
<p>Without a successful conformation message (that all visitors are attuned to waiting for), you leave the visitor feeling lost or confused. It&#8217;s very important to confirm with the visitors that their information was successfully sent, received, and/or captured; this is what completes a full user experience.</p>
<p>&nbsp;</p>
<p><span style="font-size: 15px; font-weight: bold;">Final Thoughts</span></p>
<p>In conclusion, I really hope we as a community strive to meet the above points in this article, for each and every form we build here on out. Building the web to cater to all visitor&#8217;s needs is key to the over all success of any site, and frankly the web as a community in whole.</p>
<p>Thanks everyone!<br />
Devin R. Olsen</p>
]]></content:encoded>
			<wfw:commentRss>http://www.devinrolsen.com/understanding-form-fundamentals/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>Two Element CSS Selector Challenge</title>
		<link>http://www.devinrolsen.com/two-element-css-selector-challenge/</link>
		<comments>http://www.devinrolsen.com/two-element-css-selector-challenge/#comments</comments>
		<pubDate>Tue, 31 May 2011 01:11:50 +0000</pubDate>
		<dc:creator>Devin R. Olsen</dc:creator>
				<category><![CDATA[CSS Tutorials]]></category>
		<category><![CDATA[Featured Articles]]></category>
		<category><![CDATA[challenge]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[CSS Challenge]]></category>
		<category><![CDATA[CSS selector]]></category>
		<category><![CDATA[css selector challenge]]></category>
		<category><![CDATA[CSS selectors]]></category>
		<category><![CDATA[css two selectors]]></category>
		<category><![CDATA[elements]]></category>
		<category><![CDATA[selector]]></category>
		<category><![CDATA[selectors]]></category>
		<category><![CDATA[short]]></category>
		<category><![CDATA[short css selectors]]></category>
		<category><![CDATA[short selector]]></category>
		<category><![CDATA[short selectors]]></category>
		<category><![CDATA[small]]></category>
		<category><![CDATA[small css selectors]]></category>
		<category><![CDATA[small selector]]></category>
		<category><![CDATA[small selectors]]></category>
		<category><![CDATA[smaller]]></category>
		<category><![CDATA[two]]></category>
		<category><![CDATA[two css selectors]]></category>
		<category><![CDATA[two element selector]]></category>
		<category><![CDATA[two element selectors]]></category>
		<category><![CDATA[two elements]]></category>

		<guid isPermaLink="false">http://www.devinrolsen.com/?p=1237</guid>
		<description><![CDATA[A while ago I was asked by a follow co-worker if I think it was possible to build an entire site using only two CSS selectors. So after better defining, then adopting the challenge, I felt it was time to share. With this challenge, you push your thinking in a more minimalistic frame of mind with little impact and/or no learning curve.]]></description>
			<content:encoded><![CDATA[<h2>Introduction to a challenge</h2>
<p>A while ago I was asked by a follow co-worker if I think it was possible to build an entire site using only two elements in my CSS selectors. Now I must admit, at the time I found the whole idea to be kinda crazy, however the more I got to thinking about it the more I started to love the challenge. So after better defining, then adopting the challenge, I felt it was time to share this code game with everyone.</p>
<div id="attachment_1309" class="wp-caption alignright" style="width: 160px"><a href="http://www.devinrolsen.com/wp-content/themes/dolsen/_resources/css/global.css"><img class="size-thumbnail wp-image-1309 " title="document-code" src="http://www.devinrolsen.com/wp-content/uploads/2011/05/document-code-150x150.jpg" alt="" width="150" height="150" /></a><p class="wp-caption-text">Take a look at this very site&#39;s own style sheet that passes this two selector challenge</p></div>
<p>As most know, it&#8217;s always a good idea keep your CSS selectors slim to help the browser performance. With more and more complex sites however, there seems to be a trend of writing code that just works, and not code that works to the best of its ability.</p>
<p>When browsers read our style sheets, they do so by traversing our markup DOM through the selectors we feed it, then it applies our styles to that element or elements. The longer our selectors are, the more work the browser has to do to locate that element or elements.</p>
<p>Selector lengths may seem trivial at first. However if you multiply that long selector against the size of your style sheet, you can see this how this would impact a site&#8217;s performance. By cutting down the length of elements in our selector we help the browser parse through our style sheets faster. Not only does using shorter selectors help with performance, but also helps with organization and legibility for you the developer.</p>
<p>With the two element CSS selector challenge, you push your thinking in a more minimalistic frame of mind with little impact and/or no learning curve.</p>
<h2>The Rules:</h2>
<p>There is really only one rule at this time, and that&#8217;s to never ever exceed more than two elements in your CSS selectors. You may use pseudo, child, adjacent and element attributes in your selectors still, because this does not violate our rule of exceeding two elements.</p>
<h3>Examples of valid two element selectors:</h3>
<pre>li a { .. }

#header #nav { .. }
#nav li { .. }
#nav .active { .. }

.active a { .. }
.active .active { .. }
.category #nav { .. }

li.active a { .. }
li.active a.active { .. }

#nav &gt; li { .. }
li.current + li { .. }
form input[type="text"] { .. }

#nav li,
li.active a,
li.active a.active { .. }</pre>
<p>These are all valid and only using two elements, even if we point to an element and it&#8217;s attribute as well.</p>
<h3>What is not a valid two element selector?</h3>
<pre>ol li a { ... }
#nav li a { ... }
#nav .active a { ... }
#nav li.active a.active { ... }

#nav &gt; li a { .. }
li.current + li a{ .. }
form li input[type="text"]</pre>
<p>These are not valid because they simply exceed the &#8220;two elements only&#8221; rule.</p>
<p>When I first picked up this challenge I was really amazed at how natural it was for me to write selectors longer than two elements. During my challenge, I was faced with lots of little instances that really made me rethink my selector approach.</p>
<p>If you indeed try to pick up this challenge, the best advice I can give you is to not be afraid to use more classes in your markup. I found that whenever I was faced with a really tough instance, adding an additional class to my markup was always the best solution.</p>
<p>Over time, I fully adopted this challenge into my everyday practice and now it flows like second nature. So I can promise you, with just a little effort and almost no learning curve, you can drastically improved your style sheets performance and organization.</p>
<h3><a title="Your first two selector challenge" href="http://jsfiddle.net/yQ8Dw/">&gt;&gt; Click here to start your first two selector challenge</a></h3>
<p>Your first challenge is to take this markup and make a proper CSS layout for it using only two elements in your selectors. Once you have completed the challenge, share your link with me here in the comments below and tell me a little about your challenge experience.</p>
<p>Special thanks to <a title="Paul Farning (Orignal creator of this challenge)" href="http://www.waytoocrowded.com/">Paul Farning</a> and <a title="Fellow coworker who told me about the challenge." href="http://christophsaxe.com/">Christoph Saxe</a> for bringing this most excellent challenge to life!</p>
<p>Devin R. Olsen</p>
]]></content:encoded>
			<wfw:commentRss>http://www.devinrolsen.com/two-element-css-selector-challenge/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Working With CSS Sprites</title>
		<link>http://www.devinrolsen.com/beginners-guide-to-css-sprites/</link>
		<comments>http://www.devinrolsen.com/beginners-guide-to-css-sprites/#comments</comments>
		<pubDate>Tue, 31 May 2011 01:05:36 +0000</pubDate>
		<dc:creator>Devin R. Olsen</dc:creator>
				<category><![CDATA[CSS Tutorials]]></category>
		<category><![CDATA[Featured Articles]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[css sprite]]></category>
		<category><![CDATA[css sprite tutorial]]></category>
		<category><![CDATA[css sprites]]></category>
		<category><![CDATA[css sprites tutorial]]></category>
		<category><![CDATA[global]]></category>
		<category><![CDATA[global sprite]]></category>
		<category><![CDATA[learning]]></category>
		<category><![CDATA[learning css sprites]]></category>
		<category><![CDATA[learning sprites]]></category>
		<category><![CDATA[specific]]></category>
		<category><![CDATA[specific sprite]]></category>
		<category><![CDATA[specific sprites]]></category>
		<category><![CDATA[sprite]]></category>
		<category><![CDATA[sprite css]]></category>
		<category><![CDATA[sprite tutorial]]></category>
		<category><![CDATA[sprites]]></category>
		<category><![CDATA[sprites tutorial]]></category>
		<category><![CDATA[tutorial]]></category>

		<guid isPermaLink="false">http://www.devinrolsen.com/?p=1286</guid>
		<description><![CDATA[Sprites are compiled versions of different creative parts of a website that typically has no need for repeating axises. Sprites are recommended to be used when ever possible to help cut down on HTTP requests to the server, and ultimately help speed up the performance of your web site.]]></description>
			<content:encoded><![CDATA[<h2>What is a CSS Sprite anyways?</h2>
<p>Sprites are compiled versions of different creative parts of a website that typically has no need for repeating axises. Sprites are recommended to be used when ever possible to help cut down on HTTP requests to the server, and ultimately help speed up the performance of your website.</p>
<p>You should never include creative into a sprite that is page or content specific, or will need to be frequently updated. You absolutely can&#8217;t add creative that needs to be repeated on both the x and y value. You can however add creative that needs to be repeated by a single x or y axis, but only if you prepare the sprite so it indeed repeats from edge to edge of that sprites axis.</p>
<p>When thinking about how to organize my sprites, I tend to group everything into two parties:</p>
<ul>
<li>A global look and feel sprite.</li>
<li>All other specific Case Scenarios sprites.</li>
</ul>
<p>A global sprite is made up of all large site wide repeating creative parts (such as header and footer contents) that are compiled into a single image. Whereas specific case scenario sprites (such as custom buttons and their events) are on their own and should never be included into the global sprite. Again, we define this clear division based on the likely hood of the sprite ever needing to be update or changed at a later point.</p>
<p>Lets take a look at a global site sprite:</p>
<div id="attachment_1287" class="wp-caption aligncenter" style="width: 565px"><a href="http://www.devinrolsen.com/wp-content/uploads/2011/05/site-sprite.png"><img class="size-large wp-image-1287" title="site-sprite" src="http://www.devinrolsen.com/wp-content/uploads/2011/05/site-sprite-1024x336.png" alt="" width="555" height="182" /></a><p class="wp-caption-text">A global site sprite.</p></div>
<p>As you can see in the above sprite, we have most of the sites global creative components compiled into a single image. We even at the bottom of the above sprite have a perfect example of a creative part needing to be repeatable in (in this example the x axis) a single axis. Elements such as buttons that have different event states (hover,clicked or disabled) should always be a sprite no matter what, but again never added to this global sprite.</p>
<div id="attachment_1317" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.devinrolsen.com/wp-content/uploads/2011/05/btn_blue_sprite.gif"><img class="size-medium wp-image-1317" title="btn_blue_sprite" src="http://www.devinrolsen.com/wp-content/uploads/2011/05/btn_blue_sprite-300x131.gif" alt="" width="300" height="131" /></a><p class="wp-caption-text">A button sprite, see how it&#39;s setup to be used on a sliding door technique and has two event states.</p></div>
<p>Now that we have a good understanding of the requirements and organization or sprites, lets to dig into the CSS concepts of using our sprites with our site elements. You have two methods to set your sprites as background on elements with CSS, and they are:</p>
<ul>
<li>background</li>
<li>background-image</li>
</ul>
<p>Here are examples of these two background setting methods:</p>
<pre>#element{
    <strong>background</strong>:url("../sprite.png") x y no-repeat;
}</pre>
<p>The above is the short hand version of setting the background image,  x y positions (typically pixel values) and if the background should be repeatable or not. Again, with sprites you will only ever be using either no-repeat, repeat-x or repeat-y.</p>
<pre>.element-one,.element-two {
    <strong>background-image</strong>:url("../sprite.png");
    background-repeat:no-repeat;
}

.element-one { background-position:x y; }
.element-two { background-position:x y; }</pre>
<p>The above version makes use of the long hand version to set the sprite over two elements, make it not repeatable and then give two unique axis position values over the two elements.</p>
<p>As stated above, you may set the position values in pixel, but you can also position words as well:</p>
<pre>.element-one { background-position:0 0; }
.element-two { background-position:right bottom; }</pre>
<p>In the above example &#8220;.element-one&#8221; gets a very specific pixel x and y axis value(equals top left). Our &#8220;.element-two&#8221; however, just states its x and y values by using top, right, bottom or left words. This really comes in handy when you have the need to position the sprite to element constantly to the top, right, bottom or left, under any width or height variants.</p>
<p>As mentioned a few times now, buttons that have different creative states should be compiled into their own sprite. You can then use such things as the CSS pseudo hover selector to change between different creative states like so:</p>
<pre>.element-two:hover { background-position:right top; }</pre>
<p>You can also have &#8220;conditional&#8221; classes that change the sprites background-position over your elements with help of JavaScript, like so:</p>
<pre>.element-one,.element-two {
    background-image:url("../sprite.png");
    background-repeat:no-repeat;
}

/*The Conditional Classes*/
.on { background-position:left top; }
.off { background-position:left bottom;}

//jQuery code
$('.element-one,.element-two').toggle(function(){
$(this).removeClass('off').addClass('on');
},function(){
$(this).removeClass('on').addClass('off');
});</pre>
<p>We set our sprite to the background of our two elements (.element-one, .element-two) and then change the background-position through the on and off classes. Next we use a little jQuery to toggle the adding and removing of our on and off classes over our two elements when ever they happen to be clicked.</p>
<p>Here is an advanced example of using a simple sprite with CSS and JavaScript:</p>
<ul id="sprite">
<li><a href="#">Hover, then click me:</a>
<ul class="sub-sprite">
<li>
<div class="content">
<h2>Header to the content 1</h2>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. In luctus lacinia aliquam. Donec risus nisi, lacinia nec aliquet vitae, vehicula a quam. Phasellus ornare tempor neque, in laoreet urna eleifend a. Praesent id justo quis mi elementum adipiscing. Maecenas risus velit, fermentum at scelerisque ut, faucibus ac tortor.<a class="close" href="#"></a></p>
</div>
</li>
</ul>
</li>
<li><a href="#">Hover, then click me:</a>
<ul class="sub-sprite">
<li>
<div class="content">
<h2>Header to the content 2</h2>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. In luctus lacinia aliquam. Donec risus nisi, lacinia nec aliquet vitae, vehicula a quam. Phasellus ornare tempor neque, in laoreet urna eleifend a. Praesent id justo quis mi elementum adipiscing. Maecenas risus velit, fermentum at scelerisque ut, faucibus ac tortor.<a class="close" href="#"></a></p>
</div>
</li>
</ul>
</li>
<li><a href="#">Hover, then click me:</a>
<ul class="sub-sprite">
<li>
<div class="content">
<h2>Header to the content 3</h2>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. In luctus lacinia aliquam. Donec risus nisi, lacinia nec aliquet vitae, vehicula a quam. Phasellus ornare tempor neque, in laoreet urna eleifend a. Praesent id justo quis mi elementum adipiscing. Maecenas risus velit, fermentum at scelerisque ut, faucibus ac tortor.<a class="close" href="#"></a></p>
</div>
</li>
</ul>
</li>
<li><a href="#">Hover, then click me:</a>
<ul class="sub-sprite">
<li>
<div class="content">
<h2>Header to the content 4</h2>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. In luctus lacinia aliquam. Donec risus nisi, lacinia nec aliquet vitae, vehicula a quam. Phasellus ornare tempor neque, in laoreet urna eleifend a. Praesent id justo quis mi elementum adipiscing. Maecenas risus velit, fermentum at scelerisque ut, faucibus ac tortor.<a class="close" href="#"></a></p>
</div>
</li>
</ul>
</li>
</ul>
<p><strong><a title="sprite example's files" href="http://jsfiddle.net/s5Rfm/">&gt;&gt; Click Here for Above Example&#8217;s Code</a></strong><br />
<strong><a title="sprite example's sprite image" href="/wp-content/themes/dolsen/demos/css/css-sprites/img/site-sprite-demo.png">&gt;&gt; Click Here for Above Example&#8217;s Sprite</a></strong></p>
<h2>Final Thoughts</h2>
<p>Lastly, because our sprites make use of some very specific x and y pixel or word based positioning, it&#8217;s very important that you update sprites with extreme caution. A slight addition or subtraction to a sprite&#8217;s creative location or overall dimensions means having to fix all your CSS position values. So I say it again, we make a clear division between global sprite and specific case scenarios based off the likely hood of the sprite ever needing to be updated.</p>
<p>And that&#8217;s it, I hope this little article helps a few people gather what they need in order to create great site sprites.</p>
<p>Thanks everyone.</p>
<p>Devin R. Olsen</p>
]]></content:encoded>
			<wfw:commentRss>http://www.devinrolsen.com/beginners-guide-to-css-sprites/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>8bit Alpha Transparent Tool</title>
		<link>http://www.devinrolsen.com/8bit-alpha-transparent-tool/</link>
		<comments>http://www.devinrolsen.com/8bit-alpha-transparent-tool/#comments</comments>
		<pubDate>Mon, 30 May 2011 21:36:52 +0000</pubDate>
		<dc:creator>Devin R. Olsen</dc:creator>
				<category><![CDATA[Featured Articles]]></category>
		<category><![CDATA[General Web Development]]></category>
		<category><![CDATA[24bit]]></category>
		<category><![CDATA[24bit alpha]]></category>
		<category><![CDATA[24bit alpha transparency]]></category>
		<category><![CDATA[24bit alpha transparent]]></category>
		<category><![CDATA[24bit image]]></category>
		<category><![CDATA[24bit images]]></category>
		<category><![CDATA[24bit PNG]]></category>
		<category><![CDATA[8bit]]></category>
		<category><![CDATA[8bit alpha]]></category>
		<category><![CDATA[8bit alpha transparency]]></category>
		<category><![CDATA[8bit alpha transparent]]></category>
		<category><![CDATA[8bit conversion]]></category>
		<category><![CDATA[8bit convert]]></category>
		<category><![CDATA[8bit image]]></category>
		<category><![CDATA[8bit images]]></category>
		<category><![CDATA[8bit PNG]]></category>
		<category><![CDATA[alpha]]></category>
		<category><![CDATA[alpha transparency]]></category>
		<category><![CDATA[alpha transparent]]></category>
		<category><![CDATA[conversion]]></category>
		<category><![CDATA[convert]]></category>
		<category><![CDATA[convert 24bit]]></category>
		<category><![CDATA[convert 8bit]]></category>
		<category><![CDATA[image]]></category>
		<category><![CDATA[image alpha transparency]]></category>
		<category><![CDATA[image alpha transparent]]></category>
		<category><![CDATA[image transparency]]></category>
		<category><![CDATA[image transparent]]></category>
		<category><![CDATA[images]]></category>
		<category><![CDATA[png]]></category>
		<category><![CDATA[transparency]]></category>
		<category><![CDATA[transparent]]></category>

		<guid isPermaLink="false">http://www.devinrolsen.com/?p=1416</guid>
		<description><![CDATA[The other day I was in a scramble to create some rotator images, each rotator slide needed to be divided up into diffrent layers. This obviously calls for some PNG images for each layer and because they are of diffrent layers, they each needed to be alpha transparent. Thats when I found this little gem of a tool...]]></description>
			<content:encoded><![CDATA[<p>The other day I was in a scramble to create some rotator images, each needed to be divided up into different layers per rotator slide. This calls for obviously some PNG images for each layer, and because they are of different layers they each needed to be alpha transparent.</p>
<p>I could open up Photoshop and used the &#8220;save for web&#8221; feature to save them as PNG 24bit with alpha transparency, but my file size for these always seems way too bloated. Trying to save them as PNG 8bit alpha transparency in Photoshop&#8217;s &#8220;save for web&#8221;, always makes the images look really bad. Not having fireworks handy was my final breaking point to hunt down this little gem:</p>
<h2><a title="Great tool to convert 24bit alpha transparent images into 8bit alpha transparent images." href="http://www.8bitalpha.com/"><strong>http://www.8bitalpha.com/</strong></a></h2>
<p>8bitalpha.com is a great web site that does one thing and one thing well, it converts 24bit alpha transparent images into very nice looking 8bit alpha transparent with little to no lossy (compared to Photoshop&#8217;s save for web versions).</p>
<p>It&#8217;s very simple, when I needed my rotator layers to be 8bit I simply used Photoshop save for web, and saved each slide&#8217;s layer out as 24bit alpha transparent. Once done, I pull up 8bitalpha.com and drag my layers into the first box one at a time. Each time I drag a new layer, the site automatically converts and compresses my 24bit into an 8bit very nicely.</p>
<p>From here, I would then right-click on my 8bit version from 8bitalpha.com and save the 8bit compressed version over my 24bit version on my local machine. And that&#8217;s it, we now have nice beautiful compressed versions of our 24bit alpha transparent images into an 8bit version.</p>
<p>Still a little skeptical? I put a little test together to you show you my findings (pros and cons):</p>
<p><strong>My Test (Pros):</strong></p>
<p>Simply drag and drop a 24bit PNG into the page and it will auto convert it out to a 8bit PNG with little to no lossy. Then just right-click and save the newly converted version to your computer. (Much better looking than a Photoshop save for web 8bit)</p>
<p style="text-align: left; clear: both;"><a href="http://www.devinrolsen.com/wp-content/uploads/2011/05/png24-test.png"><img class="size-full wp-image-1417  aligncenter" title="png24-test" src="http://www.devinrolsen.com/wp-content/uploads/2011/05/png24-test.png" alt="" width="100" height="100" /></a></p>
<p>24bit PNG at (6.59kb)</p>
<p style="text-align: left; clear: both;"><a href="http://www.devinrolsen.com/wp-content/uploads/2011/05/png8-test.png"><img class="size-full wp-image-1418 aligncenter" title="png8-test" src="http://www.devinrolsen.com/wp-content/uploads/2011/05/png8-test.png" alt="" width="100" height="100" /></a><br />
8bit PNG at (3.84 KB)</p>
<p><strong>My Test (Cons)</strong>:</p>
<p>This tool really should only be used as the last step to any image edit. If you try to edit this newly created 8bit PNG version in Photoshop its transparency will be filled in with black (<strong>Fireworks is fine though, and you can continue to edit the image post 8bit conversion</strong>).</p>
<p>My only real concern is relying on a single site to help me in this area. I would kind of like to see this made open source, but that is a whole different type of conversation.</p>
<h2>My Conclusion</h2>
<p>I really like this little tool. In my every day work, I find that having to add whole other app (Fireworks) to my work flow makes me die a little inside. With this tool, I can continue to use my Photoshop and just fire up 8bitalpha.com when needed, drop a file or two in and away I go with little worry.</p>
<p>I do however think there should be a little more control to how your images get converted here, this would really make this tool valuable. All and all, I like it and use it, so I would say try it out.</p>
<p>&nbsp;</p>
<p>Special thanks to Simon Madine (<a href="http://twitter.com/thingsinjars">thingsinjars</a>), Chief Roboticist at the <a href="http://angryrobotzombie.com/">Angry Robot Zombie Factory</a> for building this great little tool that I like to use almost daily.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.devinrolsen.com/8bit-alpha-transparent-tool/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Basic jQuery touchmove Event Setup</title>
		<link>http://www.devinrolsen.com/basic-jquery-touchmove-event-setup/</link>
		<comments>http://www.devinrolsen.com/basic-jquery-touchmove-event-setup/#comments</comments>
		<pubDate>Mon, 10 Jan 2011 05:13:53 +0000</pubDate>
		<dc:creator>Devin R. Olsen</dc:creator>
				<category><![CDATA[JavaScript Tutorials]]></category>
		<category><![CDATA[jquery touchmove]]></category>
		<category><![CDATA[jquery touchmove coordinates]]></category>
		<category><![CDATA[jquery touchmove event]]></category>
		<category><![CDATA[touchmove coordinates jquery]]></category>
		<category><![CDATA[touchmove event jquery]]></category>
		<category><![CDATA[touchmove jquery]]></category>

		<guid isPermaLink="false">http://www.devinrolsen.com/?p=1182</guid>
		<description><![CDATA[I was recently tasked with replicating a "mousemove()" event on the iPad using the "touchmove()" event. I ran into a few snags and felt it was worthy enough to document my findings. Here I will show you how to properly setup a touchmove() event and even find the touch's page coordinates.]]></description>
			<content:encoded><![CDATA[<p>I was recently tasked with replicating a &#8220;mousemove()&#8221; event on the iPad using the &#8220;touchmove()&#8221; event. I ran into a few snags and felt it was worthy enough to document my findings.</p>
<p>Here is the basic setup for using the &#8220;touchmove()&#8221; event:</p>
<pre>$('#someElm').bind('touchmove',function(e){
      <span style="text-decoration: underline;"><strong>e.preventDefault();</strong></span>
      //CODE GOES HERE
});
</pre>
<p>Nothing really different about the setup behind the &#8220;touchmove()&#8221; event and any other native jQuery event. The only difference is that when using a &#8220;touchmove()&#8221;, you must always start your event handler with a event preventDefault();.</p>
<p>Next, its important to point out that if our script is ran as is, you will run into some issues with events being sent to your touch handlers, and none of them having whats called &#8220;e.touches&#8221; or &#8220;e.changedTouches&#8221; properties.</p>
<blockquote><p>&#8220;After deep debugging, I eventually discovered that the source of this problem was the <a href="http://github.com/jquery/jquery/blob/master/src/event.js#L430"><code>fix</code> method</a> in jquery&#8217;s event code.  The <code>fix</code> method tries to copy the event object in order to fix various cross  browser issues.  Unfortunately, it seems that mobile safari does not  allow the <code>e.touches</code> and <code>e.changedTouches</code> properties on event objects to be copied to another object.  This is  weird and annoying.  Luckily you can get around this issue by using <code>e.originalEvent</code>.&#8221; -  <a href="http://www.the-xavi.com/articles/trouble-with-touch-events-jquery"><em>http://www.the-xavi.com/articles/trouble-with-touch-events-jquery</em></a></p></blockquote>
<p>So to fix our issue we can simply create a new &#8220;touch&#8221; variable, then condition both &#8220;.originalEvent&#8221; and &#8220;.changedTouches&#8221; to this variable, like so:</p>
<pre>$('#someElm').bind('touchmove',function(e){
      e.preventDefault();
      <span style="text-decoration: underline;"><strong>var touch = e.originalEvent.touches[0] || e.originalEvent.changedTouches[0];</strong></span>
      //CODE GOES HERE
      console.log(touch.pageY+' '+touch.pageX);
});
</pre>
<p>I included a little console.log() demo showing how you could test your &#8220;touchmove()&#8221; event coordinates.</p>
<h2>The Problem:</h2>
<p>There is one slight problem (<em>depending on your functionality needs</em>) when using this &#8220;touchmove()&#8221;. The event continues to fire even when your &#8220;touch&#8221; has moved out side the element.</p>
<p>So in other words, it seems that once the event has started, it&#8217;s no longer confined to the element its being assigned to.</p>
<h2>The Fix:</h2>
<p>There is no real solid fix for this issue yet, however you can band-aid the issue with a little math.</p>
<p>Basically, by trimming the elements top and left offset from both of the touchmove&#8217;s x  and y event coordinates. You can then condition these trimmed values against  both the elements width and height (respectively of course).</p>
<h2>Completed touchmove() Event with jQuery with Confined Fix:</h2>
<pre>$('#someElm').bind('touchmove',function(e){
      e.preventDefault();
      var touch = e.originalEvent.touches[0] || e.originalEvent.changedTouches[0];
      <strong><span style="text-decoration: underline;">var elm = $(this).offset();</span>
      <span style="text-decoration: underline;">var x = touch.pageX - elm.left;</span>
      <span style="text-decoration: underline;">var y = touch.pageY - elm.top;</span>
      <span style="text-decoration: underline;">if(x &lt; $(this).width() &amp;&amp; x &gt; 0){</span>
	      <span style="text-decoration: underline;">if(y &lt; $(this).height() &amp;&amp; y &gt; 0){</span>
                  //CODE GOES HERE
                  console.log(touch.pageY+' '+touch.pageX);
	      <span style="text-decoration: underline;">}</span>
      <span style="text-decoration: underline;">}</span></strong>
});
</pre>
<p>Vole! No matter where the location of the element to the page, or the width and height of the element, the event will only be fired in side of the element.</p>
<p>And that&#8217;s your basic setup for a &#8220;touchmove()&#8221; event using jQuery alone.</p>
<p>Have fun.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.devinrolsen.com/basic-jquery-touchmove-event-setup/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>jQuery Selector Chain Conditions</title>
		<link>http://www.devinrolsen.com/jquery-selector-chain-conditions/</link>
		<comments>http://www.devinrolsen.com/jquery-selector-chain-conditions/#comments</comments>
		<pubDate>Mon, 10 Jan 2011 04:19:02 +0000</pubDate>
		<dc:creator>Devin R. Olsen</dc:creator>
				<category><![CDATA[JavaScript Tutorials]]></category>
		<category><![CDATA[chain]]></category>
		<category><![CDATA[chain selector condition]]></category>
		<category><![CDATA[chain selector conditions]]></category>
		<category><![CDATA[chaining]]></category>
		<category><![CDATA[chaining selector condition]]></category>
		<category><![CDATA[chaining selector conditions]]></category>
		<category><![CDATA[condition]]></category>
		<category><![CDATA[condition jquery selector chain]]></category>
		<category><![CDATA[conditions]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[jquery chain selector condition]]></category>
		<category><![CDATA[jquery chain selector conditions]]></category>
		<category><![CDATA[jquery chaining selector condition]]></category>
		<category><![CDATA[jquery chaining selector conditions]]></category>
		<category><![CDATA[jquery selector]]></category>
		<category><![CDATA[jquery selector chain condition]]></category>
		<category><![CDATA[jquery selector condition]]></category>
		<category><![CDATA[jquery selectors]]></category>
		<category><![CDATA[selector]]></category>
		<category><![CDATA[selector chain]]></category>
		<category><![CDATA[selector chaining]]></category>
		<category><![CDATA[selector condition]]></category>
		<category><![CDATA[selectors]]></category>

		<guid isPermaLink="false">http://www.devinrolsen.com/?p=1169</guid>
		<description><![CDATA[There has been a few times while writing a few jQuery plugins that I come across conditions that almost does the same thing in both the if and else. I always wondered if their was a way to condense such a condition and help lower my file size, and after a little bit of tweaking I figured it out.]]></description>
			<content:encoded><![CDATA[<p>There has been a few times while writing a few jQuery plugins, that I came across a condition that basically does the same thing in both the if and else, and it always bothers me. I always wondered if their was a way to condense such a condition and help lower my file size, and after a little bit of tweaking I figured it out.</p>
<p>Take this scenario for instance:</p>
<h2>The Problem:</h2>
<pre>if(animate == true){
    $('#someElm').animate({
        width:'512px',
        height:'512px'
    });
}else{
    $('#someElm').css({
        width:'512px',
        height:'512px'
    });
}
</pre>
<p>We have a bool variable (<em>animate</em>) that we condition against to either animate or set our element&#8217;s (<em>#someElm</em>) width and height. So why is the above bad exactly?</p>
<ul>
<li>Wasted bytes in our script by using this if/else condition.</li>
<li>We have to use two selectors that point to the same element.</li>
<li>Both conditions are altering the same styles thus it&#8217;s again a waste of script bytes.</li>
</ul>
<p>Hopefully you look at the above little piece of code in shame as much as I do now, and ponder on how one could possibly condense such a condition?</p>
<h2>The Solution:</h2>
<pre>$('#someElm')[(animate == true) ? 'animate' : 'css']({
    width:'512px',
    height:'512px'
});
</pre>
<p>In the above solution, we have inserted ([...]) an area that we can use to condition our jquery chaining. So in the above solution I have opened this condition area up, and conditioned our bool animate variable again. Depending on the results from our bool animate variable, our selector chooses to either use the animate or css in our chain.</p>
<p>So in a nut shell we have solved the following:</p>
<ul>
<li>No more wasteful if/else condition.</li>
<li>No more need for two selectors.</li>
<li>The values that are either set via &#8220;animate&#8221; or &#8220;css&#8221; are only declared once.</li>
</ul>
<p>Thanks!</p>
<p>(<em>If you wanted, you could take this optimization a step further by learning how to sum up repeated style values.</em>)</p>
<p><strong><a href="http://www.devinrolsen.com/faster-more-flexible-way-to-write-jquery-css/">Here is the artice on how to sum up repeated style values when using jquery animate or css.</a></strong></p>
]]></content:encoded>
			<wfw:commentRss>http://www.devinrolsen.com/jquery-selector-chain-conditions/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Realtime Image Typesetting with PHP GD</title>
		<link>http://www.devinrolsen.com/realtime-image-typesetting-with-php-gd/</link>
		<comments>http://www.devinrolsen.com/realtime-image-typesetting-with-php-gd/#comments</comments>
		<pubDate>Wed, 05 Jan 2011 07:51:35 +0000</pubDate>
		<dc:creator>Devin R. Olsen</dc:creator>
				<category><![CDATA[Ajax Tutorials]]></category>
		<category><![CDATA[JavaScript Tutorials]]></category>
		<category><![CDATA[PHP Tutorials]]></category>

		<guid isPermaLink="false">http://www.devinrolsen.com/?p=1114</guid>
		<description><![CDATA[Learn how to use both JavaScript Ajax and PHP GD (graphical library) to perform real-time image typesetting onto a image. We will also cover how to use custom text colors, sizes, rotation and even fonts in our example demo.]]></description>
			<content:encoded><![CDATA[<p>Today I wanted to go over some of the really cool things that can be done with both jQuery and PHP&#8217;s Graphical library. To begin, let&#8217;s go ahead and take a look at the demo of what I will be breaking down over this tutorial.</p>
<div class="wp-caption alignnone" style="width: 430px"><a href="http://www.devinrolsen.com/wp-content/themes/dolsen/demos/ajax/gd-realtime/"><img src="http://www.devinrolsen.com/wp-content/themes/typebased/demos/ajax/gd-realtime/scripts/server-side.php?companyName=Developer to Developer&amp;companySlogan=Company Slogan&amp;fullName=Devin R. Olsen&amp;jobTitle=Job Title&amp;businessAddress=1234 Main Street\nSuite 101\nCity, ST 12345&amp;phoneOne=P: 954-555-1234&amp;phoneTwo=F: 954-555-5678&amp;emailAddress=devin@company.com&amp;siteUrl=www.WebSiteUrl.com&amp;" alt="" width="420" height="252" /></a><p class="wp-caption-text">Click to see demo of Business Card Builder</p></div>
<h2>The Markup</h2>
<hr />
<pre>&lt;h3&gt;Realtime Business Card Builder&lt;/h3&gt;
&lt;div class="preview"&gt;
    <strong>&lt;img src="<span style="text-decoration: underline;">scripts/server-side.php</span>" /&gt;</strong>
&lt;/div&gt;</pre>
<p>Notice how the preview image&#8217;s &#8220;src&#8221; attribute is not pointing to a graphical file, but rather a server side php script? This is important because although we could use PHP to render new images out on our web server on every change, its best to view a single rendering through a static image element.</p>
<h2>The client side code</h2>
<hr />
<p>By simply building up a query string that contains the values of our form fields, we can get a realtime performance. The first thing we want to create is a variable named &#8220;base&#8221; that will contain our preview image&#8217;s &#8220;src&#8221; orignal attribute value.</p>
<pre><strong>var base = $(".preview img").attr("src");</strong></pre>
<p>We make the &#8220;base&#8221; variable so that we may reference to the original URL of the server side file later on.</p>
<p>Next we want to gather our image from server side when the document is done loading for the first time. By utilizing jQuery&#8217;s serialize we will gather all our form&#8217;s fields and their values and request our image from php like so:</p>
<pre>var base = $(".preview img").attr("src");

<strong>//GATHER IMAGE FOR FIRST TIME
$(".preview img").attr("src",base+'?'+$("#realtime-form").serialize());</strong></pre>
<p>As you can see, we set our image&#8217;s source attribute to be that of our base url, plus a serialized string of all our form&#8217;s input names and values.</p>
<p>Finally we want to setup our keyup event so as the user types into any of our form inputs, a &#8220;change request&#8221; for our image to be updated will be sent to php.</p>
<pre>var base = $(".preview img").attr("src");

//GATHER IMAGE FOR FIRST TIME
$(".preview img").attr("src",base+'?'+$("#realtime-form").serialize());

<strong>//KEYUP EVENT AND NEW IMAGE GATHER
$("input,textarea").keyup(function(){
	$(".preview img").attr("src",base+'?'+$("#realtime-form").serialize());
});</strong></pre>
<p>Notice how within our new keyup event we are basicly repeating our previous step of gather our image the first time? This is how we both gather changes the user has made, and request a new version of our image at the same time.</p>
<h2>The server side code</h2>
<hr />
<p>Now lets take a look at our PHP image rendering file. The first thing we want to do in this file is to declare what format of image should it be rendering:</p>
<pre>header ("Content-type: image/png");</pre>
<p>We pass a content type of &#8220;image/png&#8221; to our files header so that we can have alpha transparency ability that is natural to png image formats.</p>
<p>Next we need to gather every possible value that is being sent to this file via our URI string. We do this by creating new variables and setting their value to each URI string value, like so:</p>
<pre>$companyName = $_GET["companyName"];
$companySlogan = $_GET["companySlogan"];
$fullName = $_GET["fullName"];
$jobTitle = $_GET["jobTitle"];
$businessAddress = $_GET["businessAddress"];
$businessAddress = str_replace("\\n","\n",$businessAddress);
$businessAddress = str_replace("\\","",$businessAddress);
$phoneOne = $_GET["phoneOne"];
$phoneTwo = $_GET["phoneTwo"];
$emailAddress = $_GET["emailAddress"];
$siteUrl = $_GET["siteUrl"];</pre>
<p>Notice how on some of the value gatherings I am using a str_replace() function? Again, we are replacing any instance of our hard return character (\\n) into an actual hard return upon rending our image and copy.</p>
<p>Next we are going to gather a temp image we will use to create the actual image we render on dynamically, like so:</p>
<pre>$handle = $img = imagecreatefrompng( 'template.png' );</pre>
<p>(<em>&#8216;template.png&#8217; is a image file that lives on your server.</em>)</p>
<p>Now we need to setup a few more variables that will come in handy when rendering our results:</p>
<pre>$brown = ImageColorAllocate ($handle, 84, 48, 26);
$lightBrown = ImageColorAllocate ($handle, 145, 116, 94);
$white = ImageColorAllocate ($handle, 255, 255, 255);
$peach = ImageColorAllocate ($handle, 238, 222, 200);</pre>
<p>We setup different font colors by making use of the &#8220;ImageColorAllocate()&#8221; PHP GD function and assigning it to our new &#8220;template.png&#8221; image ($handle). The array of numbers that proceeds &#8220;$handle&#8221; are RGB color values.</p>
<p>Now that we have everything (variable wise) setup to render our image, we need to place and setup our text in our image. Here is an example of how to do just that.</p>
<pre>//company name
ImageTTFText ($handle, 18, 0, 20, 35, $brown, "timesbd.TTF", $companyName);</pre>
<p>By using the &#8220;ImageTTFText()&#8221; PHP GD function, we can setup an array of parameters to place and render our copy in our image.<br />
First, we point to our &#8220;template.png&#8221; image ($handle) want to place this copy onto. Next is an array of numerical values and they are in order as follows:</p>
<ul>
<li> Font Size of Copy</li>
<li> Rotation of Copy</li>
<li> X Position to Image&#8217;s size</li>
<li> Y Position to Image&#8217;s size</li>
</ul>
<p>After the &#8220;size, rotation and position&#8221; values, we set our desired font color via our pre-defined color variables. Next we can choose to use a custom font file that live along side this php file. Last is the copy value it&#8217;s self that we gathered from our URI string and turned into variables.</p>
<p>The very last part to rending our image with PHP GD, is to do some clean up work like so:</p>
<pre>imagealphablending( $handle, false );
imagesavealpha( $handle, true );
ImagePng ($handle);
imagedestroy( $handle );</pre>
<p>We finish off our file format of &#8220;.png&#8221; and its transparency, and lastly destroy the image when completed to free up server memory.</p>
<p>(<em>Some may notice that the web address copy is rendered from an align of center on out, I show this example in the demo download.</em>)</p>
<p>That&#8217;s it everyone! With a little JavaScript and PHP GD you can do some really cool stuff, and I hope to see some great examples soon.</p>
<p>~ <a href="http://www.devinrolsen.com/wp-content/themes/dolsen/demos/ajax/gd-realtime/realtime-phpgd.zip">Download a copy of the demo</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.devinrolsen.com/realtime-image-typesetting-with-php-gd/feed/</wfw:commentRss>
		<slash:comments>12</slash:comments>
		</item>
		<item>
		<title>All jQuery Google Hosted Repository Links</title>
		<link>http://www.devinrolsen.com/jquery-google-hosted-repository-links/</link>
		<comments>http://www.devinrolsen.com/jquery-google-hosted-repository-links/#comments</comments>
		<pubDate>Tue, 04 Jan 2011 22:26:27 +0000</pubDate>
		<dc:creator>Devin R. Olsen</dc:creator>
				<category><![CDATA[JavaScript Tutorials]]></category>
		<category><![CDATA[every google hosted jquery links]]></category>
		<category><![CDATA[every google jquery links]]></category>
		<category><![CDATA[every repository link]]></category>
		<category><![CDATA[google hosted links]]></category>
		<category><![CDATA[google jquery hosted links]]></category>
		<category><![CDATA[google jquery links]]></category>
		<category><![CDATA[google jquery repository]]></category>
		<category><![CDATA[google jquery repository links]]></category>
		<category><![CDATA[google repository jquery]]></category>
		<category><![CDATA[google repository jquery links]]></category>
		<category><![CDATA[jquery google links]]></category>
		<category><![CDATA[jquery hosted links]]></category>
		<category><![CDATA[jquery repository links]]></category>
		<category><![CDATA[repository links]]></category>

		<guid isPermaLink="false">http://www.devinrolsen.com/?p=1089</guid>
		<description><![CDATA[I find myself now and then on Google trying to hunt down jQuery and jQuery-UI repository links. Over time, I only felt it was necessary to compile everything into one place for other developers to quickly reference and gather their needed jQuery parts.]]></description>
			<content:encoded><![CDATA[<p>If you were not aware, you not longer need to store the jQuery or jQuery-UI JavaScript frameworks on your servers anymore. Google now hosts all the JavaScript, CSS and Images in both these frameworks for you!</p>
<p><a href="http://encosia.com/2008/12/10/3-reasons-why-you-should-let-google-host-jquery-for-you/" target="_blank">You can read more about why using Google&#8217;s hosting of everything jQuery here.</a></p>
<p>Ok with all that said, I still find myself on Google now and then trying to hunt down Google repository links to most things jQuery. So I only felt it was necessary to compile everything into one place for other developer to quickly reference and gather their needed jQuery parts.</p>
<h2>jQuery &#8211; Google Hosted Repository Links</h2>
<p><strong><em>Minified</em></strong></p>
<pre>&lt;script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"&gt;&lt;/script&gt;</pre>
<p><strong><em>Full Source</em></strong></p>
<pre>&lt;script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.js"&gt;&lt;/script&gt;</pre>
<p>&nbsp;</p>
<hr />
<h2>jQuery UI &#8211; Google Hosted Repository Links</h2>
<p><strong><em>Minified</em></strong></p>
<pre>&lt;script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jqueryui/1/jquery-ui.min.js"&gt;&lt;/script&gt;</pre>
<p><strong><em>Full Source</em></strong></p>
<pre>&lt;script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jqueryui/1/jquery-ui.js"&gt;&lt;/script&gt;</pre>
<p>&nbsp;</p>
<hr />
<h2>jQuery UI &#8211; Google Hosted Repository Theme Links</h2>
<p>Google is also hosting each of the following theme&#8217;s images and sprites, so there is no need to fiddle with hosting and images for any theme on your own server.</p>
<p><em><strong>Base:</strong></em></p>
<pre>&lt;link rel="stylesheet" href="http://ajax.googleapis.com/ajax/libs/jqueryui/1/themes/base/jquery-ui.css" type="text/css" /&gt;</pre>
<p><strong><em>Black Tie:</em> (<a href="http://jqueryui.com/themeroller/#ffDefault=Verdana,+Arial,+sans-serif&amp;fwDefault=normal&amp;fsDefault=1.1em&amp;cornerRadius=4px&amp;bgColorHeader=333333&amp;bgTextureHeader=08_diagonals_thick.png&amp;bgImgOpacityHeader=8&amp;borderColorHeader=a3a3a3&amp;fcHeader=eeeeee&amp;iconColorHeader=bbbbbb&amp;bgColorContent=f9f9f9&amp;bgTextureContent=04_highlight_hard.png&amp;bgImgOpacityContent=100&amp;borderColorContent=cccccc&amp;fcContent=222222&amp;iconColorContent=222222&amp;bgColorDefault=111111&amp;bgTextureDefault=02_glass.png&amp;bgImgOpacityDefault=40&amp;borderColorDefault=777777&amp;fcDefault=e3e3e3&amp;iconColorDefault=ededed&amp;bgColorHover=1c1c1c&amp;bgTextureHover=02_glass.png&amp;bgImgOpacityHover=55&amp;borderColorHover=000000&amp;fcHover=ffffff&amp;iconColorHover=ffffff&amp;bgColorActive=ffffff&amp;bgTextureActive=01_flat.png&amp;bgImgOpacityActive=65&amp;borderColorActive=cccccc&amp;fcActive=222222&amp;iconColorActive=222222&amp;bgColorHighlight=ffeb80&amp;bgTextureHighlight=06_inset_hard.png&amp;bgImgOpacityHighlight=55&amp;borderColorHighlight=ffde2e&amp;fcHighlight=363636&amp;iconColorHighlight=4ca300&amp;bgColorError=cd0a0a&amp;bgTextureError=06_inset_hard.png&amp;bgImgOpacityError=45&amp;borderColorError=9e0505&amp;fcError=ffffff&amp;iconColorError=ffcf29&amp;bgColorOverlay=aaaaaa&amp;bgTextureOverlay=04_highlight_hard.png&amp;bgImgOpacityOverlay=40&amp;opacityOverlay=30&amp;bgColorShadow=aaaaaa&amp;bgTextureShadow=03_highlight_soft.png&amp;bgImgOpacityShadow=50&amp;opacityShadow=20&amp;thicknessShadow=8px&amp;offsetTopShadow=-8px&amp;offsetLeftShadow=-8px&amp;cornerRadiusShadow=8px" target="_blank">preview theme</a>)</strong></p>
<pre>&lt;link rel="stylesheet" href="http://ajax.googleapis.com/ajax/libs/jqueryui/1/themes/black-tie/jquery-ui.css" type="text/css" /&gt;</pre>
<p><strong>Blitzer: (<a href="http://jqueryui.com/themeroller/#ffDefault=Arial,sans-serif&amp;fwDefault=bold&amp;fsDefault=1.1em&amp;cornerRadius=6px&amp;bgColorHeader=cc0000&amp;bgTextureHeader=03_highlight_soft.png&amp;bgImgOpacityHeader=15&amp;borderColorHeader=e3a1a1&amp;fcHeader=ffffff&amp;iconColorHeader=ffffff&amp;bgColorContent=ffffff&amp;bgTextureContent=01_flat.png&amp;bgImgOpacityContent=75&amp;borderColorContent=eeeeee&amp;fcContent=333333&amp;iconColorContent=cc0000&amp;bgColorDefault=eeeeee&amp;bgTextureDefault=04_highlight_hard.png&amp;bgImgOpacityDefault=100&amp;borderColorDefault=d8dcdf&amp;fcDefault=004276&amp;iconColorDefault=cc0000&amp;bgColorHover=f6f6f6&amp;bgTextureHover=04_highlight_hard.png&amp;bgImgOpacityHover=100&amp;borderColorHover=cdd5da&amp;fcHover=111111&amp;iconColorHover=cc0000&amp;bgColorActive=ffffff&amp;bgTextureActive=01_flat.png&amp;bgImgOpacityActive=65&amp;borderColorActive=eeeeee&amp;fcActive=cc0000&amp;iconColorActive=cc0000&amp;bgColorHighlight=fbf8ee&amp;bgTextureHighlight=02_glass.png&amp;bgImgOpacityHighlight=55&amp;borderColorHighlight=fcd3a1&amp;fcHighlight=444444&amp;iconColorHighlight=004276&amp;bgColorError=f3d8d8&amp;bgTextureError=08_diagonals_thick.png&amp;bgImgOpacityError=75&amp;borderColorError=cc0000&amp;fcError=2e2e2e&amp;iconColorError=cc0000&amp;bgColorOverlay=a6a6a6&amp;bgTextureOverlay=09_dots_small.png&amp;bgImgOpacityOverlay=65&amp;opacityOverlay=40&amp;bgColorShadow=333333&amp;bgTextureShadow=01_flat.png&amp;bgImgOpacityShadow=0&amp;opacityShadow=10&amp;thicknessShadow=8px&amp;offsetTopShadow=-8px&amp;offsetLeftShadow=-8px&amp;cornerRadiusShadow=8px" target="_blank">preview theme</a>)</strong></p>
<pre>&lt;link rel="stylesheet" href="http://ajax.googleapis.com/ajax/libs/jqueryui/1/themes/blitzer/jquery-ui.css" type="text/css" /&gt;</pre>
<p><strong><em>Cupertino:</em> (<a href="http://jqueryui.com/themeroller/#ffDefault=Lucida+Grande%2C+Lucida+Sans%2C+Arial%2C+sans-serif&amp;fwDefault=bold&amp;fsDefault=1.1em&amp;cornerRadius=6px&amp;bgColorHeader=deedf7&amp;bgTextureHeader=03_highlight_soft.png&amp;bgImgOpacityHeader=100&amp;borderColorHeader=aed0ea&amp;fcHeader=222222&amp;iconColorHeader=72a7cf&amp;bgColorContent=f2f5f7&amp;bgTextureContent=04_highlight_hard.png&amp;bgImgOpacityContent=100&amp;borderColorContent=dddddd&amp;fcContent=362b36&amp;iconColorContent=72a7cf&amp;bgColorDefault=d7ebf9&amp;bgTextureDefault=02_glass.png&amp;bgImgOpacityDefault=80&amp;borderColorDefault=aed0ea&amp;fcDefault=2779aa&amp;iconColorDefault=3d80b3&amp;bgColorHover=e4f1fb&amp;bgTextureHover=02_glass.png&amp;bgImgOpacityHover=100&amp;borderColorHover=74b2e2&amp;fcHover=0070a3&amp;iconColorHover=2694e8&amp;bgColorActive=3baae3&amp;bgTextureActive=02_glass.png&amp;bgImgOpacityActive=50&amp;borderColorActive=2694e8&amp;fcActive=ffffff&amp;iconColorActive=ffffff&amp;bgColorHighlight=ffef8f&amp;bgTextureHighlight=03_highlight_soft.png&amp;bgImgOpacityHighlight=25&amp;borderColorHighlight=f9dd34&amp;fcHighlight=363636&amp;iconColorHighlight=2e83ff&amp;bgColorError=cd0a0a&amp;bgTextureError=01_flat.png&amp;bgImgOpacityError=15&amp;borderColorError=cd0a0a&amp;fcError=ffffff&amp;iconColorError=ffffff&amp;bgColorOverlay=eeeeee&amp;bgTextureOverlay=08_diagonals_thick.png&amp;bgImgOpacityOverlay=90&amp;opacityOverlay=80&amp;bgColorShadow=000000&amp;bgTextureShadow=04_highlight_hard.png&amp;bgImgOpacityShadow=70&amp;opacityShadow=30&amp;thicknessShadow=7px&amp;offsetTopShadow=-7px&amp;offsetLeftShadow=-7px&amp;cornerRadiusShadow=8px" target="_blank">preview theme</a>)</strong></p>
<pre>&lt;link rel="stylesheet" href="http://ajax.googleapis.com/ajax/libs/jqueryui/1/themes/cupertino/jquery-ui.css" type="text/css" /&gt;</pre>
<p><strong><em>Dark Hive:</em> (<a href="http://jqueryui.com/themeroller/#ffDefault=Verdana%2C+Arial%2C+sans-serif&amp;fwDefault=normal&amp;fsDefault=1.1em&amp;cornerRadius=6px&amp;bgColorHeader=444444&amp;bgTextureHeader=03_highlight_soft.png&amp;bgImgOpacityHeader=44&amp;borderColorHeader=333333&amp;fcHeader=ffffff&amp;iconColorHeader=ffffff&amp;bgColorContent=000000&amp;bgTextureContent=14_loop.png&amp;bgImgOpacityContent=25&amp;borderColorContent=555555&amp;fcContent=ffffff&amp;iconColorContent=cccccc&amp;bgColorDefault=222222&amp;bgTextureDefault=03_highlight_soft.png&amp;bgImgOpacityDefault=35&amp;borderColorDefault=444444&amp;fcDefault=eeeeee&amp;iconColorDefault=cccccc&amp;bgColorHover=003147&amp;bgTextureHover=03_highlight_soft.png&amp;bgImgOpacityHover=33&amp;borderColorHover=0b93d5&amp;fcHover=ffffff&amp;iconColorHover=ffffff&amp;bgColorActive=0972a5&amp;bgTextureActive=04_highlight_hard.png&amp;bgImgOpacityActive=20&amp;borderColorActive=26b3f7&amp;fcActive=ffffff&amp;iconColorActive=222222&amp;bgColorHighlight=eeeeee&amp;bgTextureHighlight=03_highlight_soft.png&amp;bgImgOpacityHighlight=80&amp;borderColorHighlight=cccccc&amp;fcHighlight=2e7db2&amp;iconColorHighlight=4b8e0b&amp;bgColorError=ffc73d&amp;bgTextureError=02_glass.png&amp;bgImgOpacityError=40&amp;borderColorError=ffb73d&amp;fcError=111111&amp;iconColorError=a83300&amp;bgColorOverlay=5c5c5c&amp;bgTextureOverlay=01_flat.png&amp;bgImgOpacityOverlay=50&amp;opacityOverlay=80&amp;bgColorShadow=cccccc&amp;bgTextureShadow=01_flat.png&amp;bgImgOpacityShadow=30&amp;opacityShadow=60&amp;thicknessShadow=7px&amp;offsetTopShadow=-7px&amp;offsetLeftShadow=-7px&amp;cornerRadiusShadow=8px" target="_blank">preview theme</a>)</strong></p>
<pre>&lt;link rel="stylesheet" href="http://ajax.googleapis.com/ajax/libs/jqueryui/1/themes/dark-hive/jquery-ui.css" type="text/css" /&gt;</pre>
<p><strong><em>Dot Luv:</em> (<a href="http://jqueryui.com/themeroller/#ffDefault=Arial,+sans-serif&amp;fwDefault=bold&amp;fsDefault=1.3em&amp;cornerRadius=4px&amp;bgColorHeader=0b3e6f&amp;bgTextureHeader=08_diagonals_thick.png&amp;bgImgOpacityHeader=15&amp;borderColorHeader=0b3e6f&amp;fcHeader=f6f6f6&amp;iconColorHeader=98d2fb&amp;bgColorContent=111111&amp;bgTextureContent=12_gloss_wave.png&amp;bgImgOpacityContent=20&amp;borderColorContent=000000&amp;fcContent=d9d9d9&amp;iconColorContent=9ccdfc&amp;bgColorDefault=333333&amp;bgTextureDefault=09_dots_small.png&amp;bgImgOpacityDefault=20&amp;borderColorDefault=333333&amp;fcDefault=ffffff&amp;iconColorDefault=9ccdfc&amp;bgColorHover=00498f&amp;bgTextureHover=09_dots_small.png&amp;bgImgOpacityHover=40&amp;borderColorHover=222222&amp;fcHover=ffffff&amp;iconColorHover=ffffff&amp;bgColorActive=292929&amp;bgTextureActive=01_flat.png&amp;bgImgOpacityActive=40&amp;borderColorActive=096ac8&amp;fcActive=75abff&amp;iconColorActive=00498f&amp;bgColorHighlight=0b58a2&amp;bgTextureHighlight=10_dots_medium.png&amp;bgImgOpacityHighlight=30&amp;borderColorHighlight=052f57&amp;fcHighlight=ffffff&amp;iconColorHighlight=ffffff&amp;bgColorError=a32d00&amp;bgTextureError=09_dots_small.png&amp;bgImgOpacityError=30&amp;borderColorError=cd0a0a&amp;fcError=ffffff&amp;iconColorError=ffffff&amp;bgColorOverlay=aaaaaa&amp;bgTextureOverlay=01_flat.png&amp;bgImgOpacityOverlay=0&amp;opacityOverlay=30&amp;bgColorShadow=aaaaaa&amp;bgTextureShadow=01_flat.png&amp;bgImgOpacityShadow=0&amp;opacityShadow=30&amp;thicknessShadow=8px&amp;offsetTopShadow=-8px&amp;offsetLeftShadow=-8px&amp;cornerRadiusShadow=8px" target="_blank">preview theme</a>)</strong></p>
<pre>&lt;link rel="stylesheet" href="http://ajax.googleapis.com/ajax/libs/jqueryui/1/themes/dot-luv/jquery-ui.css" type="text/css" /&gt;</pre>
<p><strong><em>Eggplant:</em> (<a href="http://jqueryui.com/themeroller/#ffDefault=Lucida+Grande%2C+Lucida+Sans%2C+Arial%2C+sans-serif&amp;fwDefault=bold&amp;fsDefault=1.1em&amp;cornerRadius=6px&amp;bgColorHeader=30273a&amp;bgTextureHeader=03_highlight_soft.png&amp;bgImgOpacityHeader=25&amp;borderColorHeader=231d2b&amp;fcHeader=ffffff&amp;iconColorHeader=a8a3ae&amp;bgColorContent=3d3644&amp;bgTextureContent=12_gloss_wave.png&amp;bgImgOpacityContent=30&amp;borderColorContent=7e7783&amp;fcContent=ffffff&amp;iconColorContent=ffffff&amp;bgColorDefault=dcd9de&amp;bgTextureDefault=03_highlight_soft.png&amp;bgImgOpacityDefault=100&amp;borderColorDefault=dcd9de&amp;fcDefault=665874&amp;iconColorDefault=8d78a5&amp;bgColorHover=eae6ea&amp;bgTextureHover=03_highlight_soft.png&amp;bgImgOpacityHover=100&amp;borderColorHover=d1c5d8&amp;fcHover=734d99&amp;iconColorHover=734d99&amp;bgColorActive=5f5964&amp;bgTextureActive=03_highlight_soft.png&amp;bgImgOpacityActive=45&amp;borderColorActive=7e7783&amp;fcActive=ffffff&amp;iconColorActive=454545&amp;bgColorHighlight=fafafa&amp;bgTextureHighlight=01_flat.png&amp;bgImgOpacityHighlight=55&amp;borderColorHighlight=ffdb1f&amp;fcHighlight=333333&amp;iconColorHighlight=8d78a5&amp;bgColorError=994d53&amp;bgTextureError=01_flat.png&amp;bgImgOpacityError=55&amp;borderColorError=994d53&amp;fcError=ffffff&amp;iconColorError=ebccce&amp;bgColorOverlay=eeeeee&amp;bgTextureOverlay=01_flat.png&amp;bgImgOpacityOverlay=0&amp;opacityOverlay=80&amp;bgColorShadow=aaaaaa&amp;bgTextureShadow=01_flat.png&amp;bgImgOpacityShadow=0&amp;opacityShadow=60&amp;thicknessShadow=4px&amp;offsetTopShadow=-4px&amp;offsetLeftShadow=-4px&amp;cornerRadiusShadow=0px" target="_blank">preview theme</a>)</strong></p>
<pre>&lt;link rel="stylesheet" href="http://ajax.googleapis.com/ajax/libs/jqueryui/1/themes/eggplant/jquery-ui.css" type="text/css" /&gt;</pre>
<p><strong><em>Excite Bike:</em> (<a href="http://jqueryui.com/themeroller/#ffDefault=segoe+ui,+Arial,+sans-serif&amp;fwDefault=bold&amp;fsDefault=1.1em&amp;cornerRadius=3px&amp;bgColorHeader=f9f9f9&amp;bgTextureHeader=03_highlight_soft.png&amp;bgImgOpacityHeader=100&amp;borderColorHeader=cccccc&amp;fcHeader=e69700&amp;iconColorHeader=5fa5e3&amp;bgColorContent=eeeeee&amp;bgTextureContent=06_inset_hard.png&amp;bgImgOpacityContent=100&amp;borderColorContent=aaaaaa&amp;fcContent=222222&amp;iconColorContent=0a82eb&amp;bgColorDefault=1484e6&amp;bgTextureDefault=08_diagonals_thick.png&amp;bgImgOpacityDefault=22&amp;borderColorDefault=ffffff&amp;fcDefault=ffffff&amp;iconColorDefault=fcdd4a&amp;bgColorHover=2293f7&amp;bgTextureHover=08_diagonals_thick.png&amp;bgImgOpacityHover=26&amp;borderColorHover=2293f7&amp;fcHover=ffffff&amp;iconColorHover=ffffff&amp;bgColorActive=e69700&amp;bgTextureActive=08_diagonals_thick.png&amp;bgImgOpacityActive=20&amp;borderColorActive=e69700&amp;fcActive=ffffff&amp;iconColorActive=ffffff&amp;bgColorHighlight=c5ddfc&amp;bgTextureHighlight=07_diagonals_small.png&amp;bgImgOpacityHighlight=25&amp;borderColorHighlight=ffffff&amp;fcHighlight=333333&amp;iconColorHighlight=0b54d5&amp;bgColorError=e69700&amp;bgTextureError=08_diagonals_thick.png&amp;bgImgOpacityError=20&amp;borderColorError=e69700&amp;fcError=ffffff&amp;iconColorError=ffffff&amp;bgColorOverlay=e6b900&amp;bgTextureOverlay=01_flat.png&amp;bgImgOpacityOverlay=0&amp;opacityOverlay=30&amp;bgColorShadow=e69700&amp;bgTextureShadow=01_flat.png&amp;bgImgOpacityShadow=0&amp;opacityShadow=20&amp;thicknessShadow=0px&amp;offsetTopShadow=6px&amp;offsetLeftShadow=6px&amp;cornerRadiusShadow=3px" target="_blank">preview theme</a>)</strong></p>
<pre>&lt;link rel="stylesheet" href="http://ajax.googleapis.com/ajax/libs/jqueryui/1/themes/excite-bike/jquery-ui.css" type="text/css" /&gt;</pre>
<p><strong><em>Flick:</em> (<a href="http://jqueryui.com/themeroller/#ffDefault=Helvetica%2C+Arial%2C+sans-serif&amp;fwDefault=bold&amp;fsDefault=1.1em&amp;cornerRadius=2px&amp;bgColorHeader=dddddd&amp;bgTextureHeader=03_highlight_soft.png&amp;bgImgOpacityHeader=50&amp;borderColorHeader=dddddd&amp;fcHeader=444444&amp;iconColorHeader=0073ea&amp;bgColorContent=ffffff&amp;bgTextureContent=01_flat.png&amp;bgImgOpacityContent=75&amp;borderColorContent=dddddd&amp;fcContent=444444&amp;iconColorContent=ff0084&amp;bgColorDefault=f6f6f6&amp;bgTextureDefault=03_highlight_soft.png&amp;bgImgOpacityDefault=100&amp;borderColorDefault=dddddd&amp;fcDefault=0073ea&amp;iconColorDefault=666666&amp;bgColorHover=0073ea&amp;bgTextureHover=03_highlight_soft.png&amp;bgImgOpacityHover=25&amp;borderColorHover=0073ea&amp;fcHover=ffffff&amp;iconColorHover=ffffff&amp;bgColorActive=ffffff&amp;bgTextureActive=02_glass.png&amp;bgImgOpacityActive=65&amp;borderColorActive=dddddd&amp;fcActive=ff0084&amp;iconColorActive=454545&amp;bgColorHighlight=ffffff&amp;bgTextureHighlight=01_flat.png&amp;bgImgOpacityHighlight=55&amp;borderColorHighlight=cccccc&amp;fcHighlight=444444&amp;iconColorHighlight=0073ea&amp;bgColorError=ffffff&amp;bgTextureError=01_flat.png&amp;bgImgOpacityError=55&amp;borderColorError=ff0084&amp;fcError=222222&amp;iconColorError=ff0084&amp;bgColorOverlay=eeeeee&amp;bgTextureOverlay=01_flat.png&amp;bgImgOpacityOverlay=0&amp;opacityOverlay=80&amp;bgColorShadow=aaaaaa&amp;bgTextureShadow=01_flat.png&amp;bgImgOpacityShadow=0&amp;opacityShadow=60&amp;thicknessShadow=4px&amp;offsetTopShadow=-4px&amp;offsetLeftShadow=-4px&amp;cornerRadiusShadow=0px" target="_blank">preview theme</a>)</strong></p>
<pre>&lt;link rel="stylesheet" href="http://ajax.googleapis.com/ajax/libs/jqueryui/1/themes/flick/jquery-ui.css" type="text/css" /&gt;</pre>
<p><strong><em>Hot Sneaks:</em> (<a href="http://jqueryui.com/themeroller/#ffDefault=Gill+Sans,Arial,sans-serif&amp;fwDefault=bold&amp;fsDefault=1.2em&amp;cornerRadius=4px&amp;bgColorHeader=35414f&amp;bgTextureHeader=09_dots_small.png&amp;bgImgOpacityHeader=35&amp;borderColorHeader=2c4359&amp;fcHeader=e1e463&amp;iconColorHeader=e1e463&amp;bgColorContent=ffffff&amp;bgTextureContent=01_flat.png&amp;bgImgOpacityContent=75&amp;borderColorContent=aaaaaa&amp;fcContent=2c4359&amp;iconColorContent=c02669&amp;bgColorDefault=93c3cd&amp;bgTextureDefault=07_diagonals_small.png&amp;bgImgOpacityDefault=50&amp;borderColorDefault=93c3cd&amp;fcDefault=333333&amp;iconColorDefault=ffffff&amp;bgColorHover=ccd232&amp;bgTextureHover=07_diagonals_small.png&amp;bgImgOpacityHover=75&amp;borderColorHover=999999&amp;fcHover=212121&amp;iconColorHover=454545&amp;bgColorActive=db4865&amp;bgTextureActive=07_diagonals_small.png&amp;bgImgOpacityActive=40&amp;borderColorActive=ff6b7f&amp;fcActive=ffffff&amp;iconColorActive=ffffff&amp;bgColorHighlight=ffff38&amp;bgTextureHighlight=10_dots_medium.png&amp;bgImgOpacityHighlight=80&amp;borderColorHighlight=b4d100&amp;fcHighlight=363636&amp;iconColorHighlight=88a206&amp;bgColorError=ff3853&amp;bgTextureError=07_diagonals_small.png&amp;bgImgOpacityError=50&amp;borderColorError=ff6b7f&amp;fcError=ffffff&amp;iconColorError=ffeb33&amp;bgColorOverlay=f7f7ba&amp;bgTextureOverlay=11_white_lines.png&amp;bgImgOpacityOverlay=85&amp;opacityOverlay=80&amp;bgColorShadow=ba9217&amp;bgTextureShadow=01_flat.png&amp;bgImgOpacityShadow=75&amp;opacityShadow=20&amp;thicknessShadow=10px&amp;offsetTopShadow=8px&amp;offsetLeftShadow=8px&amp;cornerRadiusShadow=5px" target="_blank">preview theme</a>)</strong></p>
<pre>&lt;link rel="stylesheet" href="http://ajax.googleapis.com/ajax/libs/jqueryui/1/themes/hot-sneaks/jquery-ui.css" type="text/css" /&gt;</pre>
<p><strong><em>Humanity:</em> (<a href="http://jqueryui.com/themeroller/#tr=ffDefault=Helvetica,Arial,sans-serif&amp;fwDefault=normal&amp;fsDefault=1.1em&amp;cornerRadius=6px&amp;bgColorHeader=cb842e&amp;bgTextureHeader=02_glass.png&amp;bgImgOpacityHeader=25&amp;borderColorHeader=d49768&amp;fcHeader=ffffff&amp;iconColorHeader=ffffff&amp;bgColorContent=f4f0ec&amp;bgTextureContent=05_inset_soft.png&amp;bgImgOpacityContent=100&amp;borderColorContent=e0cfc2&amp;fcContent=1e1b1d&amp;iconColorContent=c47a23&amp;bgColorDefault=ede4d4&amp;bgTextureDefault=02_glass.png&amp;bgImgOpacityDefault=70&amp;borderColorDefault=cdc3b7&amp;fcDefault=3f3731&amp;iconColorDefault=f08000&amp;bgColorHover=f5f0e5&amp;bgTextureHover=02_glass.png&amp;bgImgOpacityHover=100&amp;borderColorHover=f5ad66&amp;fcHover=a46313&amp;iconColorHover=f08000&amp;bgColorActive=f4f0ec&amp;bgTextureActive=04_highlight_hard.png&amp;bgImgOpacityActive=100&amp;borderColorActive=e0cfc2&amp;fcActive=b85700&amp;iconColorActive=f35f07&amp;bgColorHighlight=f5f5b5&amp;bgTextureHighlight=04_highlight_hard.png&amp;bgImgOpacityHighlight=75&amp;borderColorHighlight=d9bb73&amp;fcHighlight=060200&amp;iconColorHighlight=cb672b&amp;bgColorError=fee4bd&amp;bgTextureError=04_highlight_hard.png&amp;bgImgOpacityError=65&amp;borderColorError=f8893f&amp;fcError=592003&amp;iconColorError=ff7519&amp;bgColorOverlay=aaaaaa&amp;bgTextureOverlay=01_flat.png&amp;bgImgOpacityOverlay=75&amp;opacityOverlay=30&amp;bgColorShadow=aaaaaa&amp;bgTextureShadow=01_flat.png&amp;bgImgOpacityShadow=75&amp;opacityShadow=30&amp;thicknessShadow=8px&amp;offsetTopShadow=-8px&amp;offsetLeftShadow=-8px&amp;cornerRadiusShadow=8px" target="_blank">preview theme</a>)</strong></p>
<pre>&lt;link rel="stylesheet" href="http://ajax.googleapis.com/ajax/libs/jqueryui/1/themes/humanity/jquery-ui.css" type="text/css" /&gt;</pre>
<p><strong><em>Le Frog:</em> (<a href="http://jqueryui.com/themeroller/#ffDefault=Lucida+Grande%2C+Lucida+Sans%2C+Arial%2C+sans-serif&amp;fwDefault=normal&amp;fsDefault=1.1em&amp;cornerRadius=10px&amp;bgColorHeader=3a8104&amp;bgTextureHeader=03_highlight_soft.png&amp;bgImgOpacityHeader=33&amp;borderColorHeader=3f7506&amp;fcHeader=ffffff&amp;iconColorHeader=ffffff&amp;bgColorContent=285c00&amp;bgTextureContent=05_inset_soft.png&amp;bgImgOpacityContent=10&amp;borderColorContent=72b42d&amp;fcContent=ffffff&amp;iconColorContent=72b42d&amp;bgColorDefault=4ca20b&amp;bgTextureDefault=03_highlight_soft.png&amp;bgImgOpacityDefault=60&amp;borderColorDefault=45930b&amp;fcDefault=ffffff&amp;iconColorDefault=ffffff&amp;bgColorHover=4eb305&amp;bgTextureHover=03_highlight_soft.png&amp;bgImgOpacityHover=50&amp;borderColorHover=8bd83b&amp;fcHover=ffffff&amp;iconColorHover=ffffff&amp;bgColorActive=285c00&amp;bgTextureActive=04_highlight_hard.png&amp;bgImgOpacityActive=30&amp;borderColorActive=72b42d&amp;fcActive=ffffff&amp;iconColorActive=ffffff&amp;bgColorHighlight=fbf5d0&amp;bgTextureHighlight=02_glass.png&amp;bgImgOpacityHighlight=55&amp;borderColorHighlight=f9dd34&amp;fcHighlight=363636&amp;iconColorHighlight=4eb305&amp;bgColorError=ffdc2e&amp;bgTextureError=08_diagonals_thick.png&amp;bgImgOpacityError=95&amp;borderColorError=fad000&amp;fcError=2b2b2b&amp;iconColorError=cd0a0a&amp;bgColorOverlay=444444&amp;bgTextureOverlay=08_diagonals_thick.png&amp;bgImgOpacityOverlay=15&amp;opacityOverlay=30&amp;bgColorShadow=aaaaaa&amp;bgTextureShadow=07_diagonals_small.png&amp;bgImgOpacityShadow=0&amp;opacityShadow=30&amp;thicknessShadow=0px&amp;offsetTopShadow=4px&amp;offsetLeftShadow=4px&amp;cornerRadiusShadow=4px" target="_blank">preview theme</a>)</strong></p>
<pre>&lt;link rel="stylesheet" href="http://ajax.googleapis.com/ajax/libs/jqueryui/1/themes/le-frog/jquery-ui.css" type="text/css" /&gt;</pre>
<p><strong><em>Mint Chocolate:</em> (<a href="http://jqueryui.com/themeroller/#ffDefault=Segoe+UI%2C+Helvetica%2C+Arial%2C+sans-serif&amp;fwDefault=bold&amp;fsDefault=1.1em&amp;cornerRadius=4px&amp;bgColorHeader=453326&amp;bgTextureHeader=12_gloss_wave.png&amp;bgImgOpacityHeader=25&amp;borderColorHeader=695649&amp;fcHeader=e3ddc9&amp;iconColorHeader=e3ddc9&amp;bgColorContent=201913&amp;bgTextureContent=05_inset_soft.png&amp;bgImgOpacityContent=10&amp;borderColorContent=9c947c&amp;fcContent=ffffff&amp;iconColorContent=222222&amp;bgColorDefault=1c160d&amp;bgTextureDefault=12_gloss_wave.png&amp;bgImgOpacityDefault=20&amp;borderColorDefault=695444&amp;fcDefault=9bcc60&amp;iconColorDefault=9bcc60&amp;bgColorHover=44372c&amp;bgTextureHover=12_gloss_wave.png&amp;bgImgOpacityHover=30&amp;borderColorHover=9c947c&amp;fcHover=baec7e&amp;iconColorHover=add978&amp;bgColorActive=201913&amp;bgTextureActive=03_highlight_soft.png&amp;bgImgOpacityActive=20&amp;borderColorActive=9c947c&amp;fcActive=e3ddc9&amp;iconColorActive=e3ddc9&amp;bgColorHighlight=619226&amp;bgTextureHighlight=03_highlight_soft.png&amp;bgImgOpacityHighlight=20&amp;borderColorHighlight=add978&amp;fcHighlight=ffffff&amp;iconColorHighlight=ffffff&amp;bgColorError=5f391b&amp;bgTextureError=02_glass.png&amp;bgImgOpacityError=15&amp;borderColorError=5f391b&amp;fcError=ffffff&amp;iconColorError=f1fd86&amp;bgColorOverlay=aaaaaa&amp;bgTextureOverlay=01_flat.png&amp;bgImgOpacityOverlay=0&amp;opacityOverlay=30&amp;bgColorShadow=aaaaaa&amp;bgTextureShadow=01_flat.png&amp;bgImgOpacityShadow=0&amp;opacityShadow=30&amp;thicknessShadow=8px&amp;offsetTopShadow=-8px&amp;offsetLeftShadow=-8px&amp;cornerRadiusShadow=8px" target="_blank">preview theme</a>)</strong></p>
<pre>&lt;link rel="stylesheet" href="http://ajax.googleapis.com/ajax/libs/jqueryui/1/themes/mint-choc/jquery-ui.css" type="text/css" /&gt;</pre>
<p><strong><em>Overcast:</em> (<a href="http://jqueryui.com/themeroller/#ffDefault=Trebuchet+MS%2C+Helvetica%2C+Arial%2C+sans-serif&amp;fwDefault=bold&amp;fsDefault=1.1em&amp;cornerRadius=6px&amp;bgColorHeader=dddddd&amp;bgTextureHeader=02_glass.png&amp;bgImgOpacityHeader=35&amp;borderColorHeader=bbbbbb&amp;fcHeader=444444&amp;iconColorHeader=999999&amp;bgColorContent=c9c9c9&amp;bgTextureContent=05_inset_soft.png&amp;bgImgOpacityContent=50&amp;borderColorContent=aaaaaa&amp;fcContent=333333&amp;iconColorContent=999999&amp;bgColorDefault=eeeeee&amp;bgTextureDefault=02_glass.png&amp;bgImgOpacityDefault=60&amp;borderColorDefault=cccccc&amp;fcDefault=3383bb&amp;iconColorDefault=70b2e1&amp;bgColorHover=f8f8f8&amp;bgTextureHover=02_glass.png&amp;bgImgOpacityHover=100&amp;borderColorHover=bbbbbb&amp;fcHover=599fcf&amp;iconColorHover=3383bb&amp;bgColorActive=999999&amp;bgTextureActive=06_inset_hard.png&amp;bgImgOpacityActive=75&amp;borderColorActive=999999&amp;fcActive=ffffff&amp;iconColorActive=454545&amp;bgColorHighlight=eeeeee&amp;bgTextureHighlight=01_flat.png&amp;bgImgOpacityHighlight=55&amp;borderColorHighlight=ffffff&amp;fcHighlight=444444&amp;iconColorHighlight=3383bb&amp;bgColorError=c0402a&amp;bgTextureError=01_flat.png&amp;bgImgOpacityError=55&amp;borderColorError=c0402a&amp;fcError=ffffff&amp;iconColorError=fbc856&amp;bgColorOverlay=eeeeee&amp;bgTextureOverlay=01_flat.png&amp;bgImgOpacityOverlay=0&amp;opacityOverlay=80&amp;bgColorShadow=aaaaaa&amp;bgTextureShadow=01_flat.png&amp;bgImgOpacityShadow=0&amp;opacityShadow=60&amp;thicknessShadow=4px&amp;offsetTopShadow=-4px&amp;offsetLeftShadow=-4px&amp;cornerRadiusShadow=0pxdow%3D0px">preview theme</a>)</strong></p>
<pre>&lt;link rel="stylesheet" href="http://ajax.googleapis.com/ajax/libs/jqueryui/1/themes/overcast/jquery-ui.css" type="text/css" /&gt;</pre>
<p><strong><em>Peper Grinder:</em> (<a href="http://jqueryui.com/themeroller/#ffDefault=Trebuchet+MS%2C+Tahoma%2C+Verdana%2C+Arial%2C+sans-serif&amp;fwDefault=bold&amp;fsDefault=1.1em&amp;cornerRadius=6px&amp;bgColorHeader=ffffff&amp;bgTextureHeader=23_fine_grain.png&amp;bgImgOpacityHeader=15&amp;borderColorHeader=d4d1bf&amp;fcHeader=453821&amp;iconColorHeader=b83400&amp;bgColorContent=eceadf&amp;bgTextureContent=23_fine_grain.png&amp;bgImgOpacityContent=10&amp;borderColorContent=d9d6c4&amp;fcContent=1f1f1f&amp;iconColorContent=222222&amp;bgColorDefault=f8f7f6&amp;bgTextureDefault=23_fine_grain.png&amp;bgImgOpacityDefault=10&amp;borderColorDefault=cbc7bd&amp;fcDefault=654b24&amp;iconColorDefault=b83400&amp;bgColorHover=654b24&amp;bgTextureHover=23_fine_grain.png&amp;bgImgOpacityHover=65&amp;borderColorHover=654b24&amp;fcHover=ffffff&amp;iconColorHover=ffffff&amp;bgColorActive=eceadf&amp;bgTextureActive=23_fine_grain.png&amp;bgImgOpacityActive=15&amp;borderColorActive=d9d6c4&amp;fcActive=140f06&amp;iconColorActive=8c291d&amp;bgColorHighlight=f7f3de&amp;bgTextureHighlight=23_fine_grain.png&amp;bgImgOpacityHighlight=15&amp;borderColorHighlight=b2a266&amp;fcHighlight=3a3427&amp;iconColorHighlight=3572ac&amp;bgColorError=b83400&amp;bgTextureError=23_fine_grain.png&amp;bgImgOpacityError=68&amp;borderColorError=681818&amp;fcError=ffffff&amp;iconColorError=fbdb93&amp;bgColorOverlay=6e4f1c&amp;bgTextureOverlay=16_diagonal_maze.png&amp;bgImgOpacityOverlay=20&amp;opacityOverlay=60&amp;bgColorShadow=000000&amp;bgTextureShadow=16_diagonal_maze.png&amp;bgImgOpacityShadow=40&amp;opacityShadow=60&amp;thicknessShadow=5px&amp;offsetTopShadow=0&amp;offsetLeftShadow=-10px&amp;cornerRadiusShadow=18px" target="_blank">preview theme</a>)</strong></p>
<pre>&lt;link rel="stylesheet" href="http://ajax.googleapis.com/ajax/libs/jqueryui/1/themes/pepper-grinder/jquery-ui.css" type="text/css" /&gt;</pre>
<p><strong><em>Redmond:</em> (<a href="http://jqueryui.com/themeroller/#ffDefault=Lucida+Grande,+Lucida+Sans,+Arial,+sans-serif&amp;fwDefault=bold&amp;fsDefault=1.1em&amp;cornerRadius=5px&amp;bgColorHeader=5c9ccc&amp;bgTextureHeader=12_gloss_wave.png&amp;bgImgOpacityHeader=55&amp;borderColorHeader=4297d7&amp;fcHeader=ffffff&amp;iconColorHeader=d8e7f3&amp;bgColorContent=fcfdfd&amp;bgTextureContent=06_inset_hard.png&amp;bgImgOpacityContent=100&amp;borderColorContent=a6c9e2&amp;fcContent=222222&amp;iconColorContent=469bdd&amp;bgColorDefault=dfeffc&amp;bgTextureDefault=02_glass.png&amp;bgImgOpacityDefault=85&amp;borderColorDefault=c5dbec&amp;fcDefault=2e6e9e&amp;iconColorDefault=6da8d5&amp;bgColorHover=d0e5f5&amp;bgTextureHover=02_glass.png&amp;bgImgOpacityHover=75&amp;borderColorHover=79b7e7&amp;fcHover=1d5987&amp;iconColorHover=217bc0&amp;bgColorActive=f5f8f9&amp;bgTextureActive=06_inset_hard.png&amp;bgImgOpacityActive=100&amp;borderColorActive=79b7e7&amp;fcActive=e17009&amp;iconColorActive=f9bd01&amp;bgColorHighlight=fbec88&amp;bgTextureHighlight=01_flat.png&amp;bgImgOpacityHighlight=55&amp;borderColorHighlight=fad42e&amp;fcHighlight=363636&amp;iconColorHighlight=2e83ff&amp;bgColorError=fef1ec&amp;bgTextureError=02_glass.png&amp;bgImgOpacityError=95&amp;borderColorError=cd0a0a&amp;fcError=cd0a0a&amp;iconColorError=cd0a0a&amp;bgColorOverlay=aaaaaa&amp;bgTextureOverlay=01_flat.png&amp;bgImgOpacityOverlay=0&amp;opacityOverlay=30&amp;bgColorShadow=aaaaaa&amp;bgTextureShadow=01_flat.png&amp;bgImgOpacityShadow=0&amp;opacityShadow=30&amp;thicknessShadow=8px&amp;offsetTopShadow=-8px&amp;offsetLeftShadow=-8px&amp;cornerRadiusShadow=8px">preview theme</a>)</strong></p>
<pre>&lt;link rel="stylesheet" href="http://ajax.googleapis.com/ajax/libs/jqueryui/1/themes/redmond/jquery-ui.css" type="text/css" /&gt;</pre>
<p><strong><em>Smoothness:</em> (<a href="http://jqueryui.com/themeroller/#ffDefault=Verdana,Arial,sans-serif&amp;fwDefault=normal&amp;fsDefault=1.1em&amp;cornerRadius=4px&amp;bgColorHeader=cccccc&amp;bgTextureHeader=03_highlight_soft.png&amp;bgImgOpacityHeader=75&amp;borderColorHeader=aaaaaa&amp;fcHeader=222222&amp;iconColorHeader=222222&amp;bgColorContent=ffffff&amp;bgTextureContent=01_flat.png&amp;bgImgOpacityContent=75&amp;borderColorContent=aaaaaa&amp;fcContent=222222&amp;iconColorContent=222222&amp;bgColorDefault=e6e6e6&amp;bgTextureDefault=02_glass.png&amp;bgImgOpacityDefault=75&amp;borderColorDefault=d3d3d3&amp;fcDefault=555555&amp;iconColorDefault=888888&amp;bgColorHover=dadada&amp;bgTextureHover=02_glass.png&amp;bgImgOpacityHover=75&amp;borderColorHover=999999&amp;fcHover=212121&amp;iconColorHover=454545&amp;bgColorActive=ffffff&amp;bgTextureActive=02_glass.png&amp;bgImgOpacityActive=65&amp;borderColorActive=aaaaaa&amp;fcActive=212121&amp;iconColorActive=454545&amp;bgColorHighlight=fbf9ee&amp;bgTextureHighlight=02_glass.png&amp;bgImgOpacityHighlight=55&amp;borderColorHighlight=fcefa1&amp;fcHighlight=363636&amp;iconColorHighlight=2e83ff&amp;bgColorError=fef1ec&amp;bgTextureError=02_glass.png&amp;bgImgOpacityError=95&amp;borderColorError=cd0a0a&amp;fcError=cd0a0a&amp;iconColorError=cd0a0a&amp;bgColorOverlay=aaaaaa&amp;bgTextureOverlay=01_flat.png&amp;bgImgOpacityOverlay=0&amp;opacityOverlay=30&amp;bgColorShadow=aaaaaa&amp;bgTextureShadow=01_flat.png&amp;bgImgOpacityShadow=0&amp;opacityShadow=30&amp;thicknessShadow=8px&amp;offsetTopShadow=-8px&amp;offsetLeftShadow=-8px&amp;cornerRadiusShadow=8px" target="_blank">preview theme</a>)</strong></p>
<pre>&lt;link rel="stylesheet" href="http://ajax.googleapis.com/ajax/libs/jqueryui/1/themes/smoothness/jquery-ui.css" type="text/css" /&gt;</pre>
<p><strong><em>South Street:</em> (<a href="http://jqueryui.com/themeroller/#ffDefault=segoe+ui%2C+Arial%2C+sans-serif&amp;fwDefault=bold&amp;fsDefault=1.1em&amp;cornerRadius=6px&amp;bgColorHeader=ece8da&amp;bgTextureHeader=12_gloss_wave.png&amp;bgImgOpacityHeader=100&amp;borderColorHeader=d4ccb0&amp;fcHeader=433f38&amp;iconColorHeader=847e71&amp;bgColorContent=f5f3e5&amp;bgTextureContent=04_highlight_hard.png&amp;bgImgOpacityContent=100&amp;borderColorContent=dfd9c3&amp;fcContent=312e25&amp;iconColorContent=808080&amp;bgColorDefault=459e00&amp;bgTextureDefault=04_highlight_hard.png&amp;bgImgOpacityDefault=15&amp;borderColorDefault=327E04&amp;fcDefault=ffffff&amp;iconColorDefault=eeeeee&amp;bgColorHover=67b021&amp;bgTextureHover=03_highlight_soft.png&amp;bgImgOpacityHover=25&amp;borderColorHover=327E04&amp;fcHover=ffffff&amp;iconColorHover=ffffff&amp;bgColorActive=fafaf4&amp;bgTextureActive=04_highlight_hard.png&amp;bgImgOpacityActive=100&amp;borderColorActive=d4ccb0&amp;fcActive=459e00&amp;iconColorActive=8DC262&amp;bgColorHighlight=fcf0ba&amp;bgTextureHighlight=02_glass.png&amp;bgImgOpacityHighlight=55&amp;borderColorHighlight=e8e1b5&amp;fcHighlight=363636&amp;iconColorHighlight=8DC262&amp;bgColorError=ffedad&amp;bgTextureError=03_highlight_soft.png&amp;bgImgOpacityError=95&amp;borderColorError=e3a345&amp;fcError=cd5c0a&amp;iconColorError=cd0a0a&amp;bgColorOverlay=2b2922&amp;bgTextureOverlay=05_inset_soft.png&amp;bgImgOpacityOverlay=15&amp;opacityOverlay=90&amp;bgColorShadow=cccccc&amp;bgTextureShadow=04_highlight_hard.png&amp;bgImgOpacityShadow=95&amp;opacityShadow=20&amp;thicknessShadow=12px&amp;offsetTopShadow=-12px&amp;offsetLeftShadow=-12px&amp;cornerRadiusShadow=10px" target="_blank">preview theme</a>)</strong></p>
<pre>&lt;link rel="stylesheet" href="http://ajax.googleapis.com/ajax/libs/jqueryui/1/themes/south-street/jquery-ui.css" type="text/css" /&gt;</pre>
<p><strong><em>Start:</em> (<a href="http://jqueryui.com/themeroller/#ffDefault=Verdana%2CArial%2Csans-serif&amp;fwDefault=normal&amp;fsDefault=1.1em&amp;cornerRadius=5px&amp;bgColorHeader=2191c0&amp;bgTextureHeader=12_gloss_wave.png&amp;bgImgOpacityHeader=75&amp;borderColorHeader=4297d7&amp;fcHeader=eaf5f7&amp;iconColorHeader=d8e7f3&amp;bgColorContent=fcfdfd&amp;bgTextureContent=06_inset_hard.png&amp;bgImgOpacityContent=100&amp;borderColorContent=a6c9e2&amp;fcContent=222222&amp;iconColorContent=0078ae&amp;bgColorDefault=0078ae&amp;bgTextureDefault=02_glass.png&amp;bgImgOpacityDefault=45&amp;borderColorDefault=77d5f7&amp;fcDefault=ffffff&amp;iconColorDefault=e0fdff&amp;bgColorHover=79c9ec&amp;bgTextureHover=02_glass.png&amp;bgImgOpacityHover=75&amp;borderColorHover=448dae&amp;fcHover=026890&amp;iconColorHover=056b93&amp;bgColorActive=6eac2c&amp;bgTextureActive=12_gloss_wave.png&amp;bgImgOpacityActive=50&amp;borderColorActive=acdd4a&amp;fcActive=ffffff&amp;iconColorActive=f5e175&amp;bgColorHighlight=f8da4e&amp;bgTextureHighlight=02_glass.png&amp;bgImgOpacityHighlight=55&amp;borderColorHighlight=fcd113&amp;fcHighlight=915608&amp;iconColorHighlight=f7a50d&amp;bgColorError=e14f1c&amp;bgTextureError=12_gloss_wave.png&amp;bgImgOpacityError=45&amp;borderColorError=cd0a0a&amp;fcError=ffffff&amp;iconColorError=fcd113&amp;bgColorOverlay=aaaaaa&amp;bgTextureOverlay=01_flat.png&amp;bgImgOpacityOverlay=75&amp;opacityOverlay=30&amp;bgColorShadow=999999&amp;bgTextureShadow=01_flat.png&amp;bgImgOpacityShadow=55&amp;opacityShadow=45&amp;thicknessShadow=0px&amp;offsetTopShadow=5px&amp;offsetLeftShadow=5px&amp;cornerRadiusShadow=5px" target="_blank">preview theme</a>)</strong></p>
<pre>&lt;link rel="stylesheet" href="http://ajax.googleapis.com/ajax/libs/jqueryui/1/themes/start/jquery-ui.css" type="text/css" /&gt;</pre>
<p><strong><em>Sunny:</em> (<a href="http://jqueryui.com/themeroller/#ffDefault=Segoe+UI%2C+Arial%2C+sans-serif&amp;fwDefault=bold&amp;fsDefault=1.1em&amp;cornerRadius=8px&amp;bgColorHeader=817865&amp;bgTextureHeader=12_gloss_wave.png&amp;bgImgOpacityHeader=45&amp;borderColorHeader=494437&amp;fcHeader=ffffff&amp;iconColorHeader=fadc7a&amp;bgColorContent=feeebd&amp;bgTextureContent=03_highlight_soft.png&amp;bgImgOpacityContent=100&amp;borderColorContent=8e846b&amp;fcContent=383838&amp;iconColorContent=d19405&amp;bgColorDefault=fece2f&amp;bgTextureDefault=12_gloss_wave.png&amp;bgImgOpacityDefault=60&amp;borderColorDefault=d19405&amp;fcDefault=4c3000&amp;iconColorDefault=3d3d3d&amp;bgColorHover=ffdd57&amp;bgTextureHover=12_gloss_wave.png&amp;bgImgOpacityHover=70&amp;borderColorHover=a45b13&amp;fcHover=381f00&amp;iconColorHover=bd7b00&amp;bgColorActive=ffffff&amp;bgTextureActive=05_inset_soft.png&amp;bgImgOpacityActive=30&amp;borderColorActive=655e4e&amp;fcActive=0074c7&amp;iconColorActive=eb990f&amp;bgColorHighlight=fff9e5&amp;bgTextureHighlight=12_gloss_wave.png&amp;bgImgOpacityHighlight=90&amp;borderColorHighlight=eeb420&amp;fcHighlight=1f1f1f&amp;iconColorHighlight=ed9f26&amp;bgColorError=d34d17&amp;bgTextureError=07_diagonals_medium.png&amp;bgImgOpacityError=20&amp;borderColorError=ffb73d&amp;fcError=ffffff&amp;iconColorError=ffe180&amp;bgColorOverlay=5c5c5c&amp;bgTextureOverlay=01_flat.png&amp;bgImgOpacityOverlay=50&amp;opacityOverlay=80&amp;bgColorShadow=cccccc&amp;bgTextureShadow=01_flat.png&amp;bgImgOpacityShadow=30&amp;opacityShadow=60&amp;thicknessShadow=7px&amp;offsetTopShadow=-7px&amp;offsetLeftShadow=-7px&amp;cornerRadiusShadow=8px" target="_blank">preview theme</a>)</strong></p>
<pre>&lt;link rel="stylesheet" href="http://ajax.googleapis.com/ajax/libs/jqueryui/1/themes/sunny/jquery-ui.css" type="text/css" /&gt;</pre>
<p><strong><em>Swanky Purse: </em>(<a href="http://jqueryui.com/themeroller/#ffDefault=Georgia%2C+Verdana%2CArial%2Csans-serif&amp;fwDefault=bold&amp;fsDefault=1.2em&amp;cornerRadius=5px&amp;bgColorHeader=261803&amp;bgTextureHeader=13_diamond.png&amp;bgImgOpacityHeader=8&amp;borderColorHeader=baaa5a&amp;fcHeader=eacd86&amp;iconColorHeader=e9cd86&amp;bgColorContent=443113&amp;bgTextureContent=13_diamond.png&amp;bgImgOpacityContent=8&amp;borderColorContent=efec9f&amp;fcContent=efec9f&amp;iconColorContent=efec9f&amp;bgColorDefault=4f4221&amp;bgTextureDefault=13_diamond.png&amp;bgImgOpacityDefault=10&amp;borderColorDefault=362917&amp;fcDefault=f8eec9&amp;iconColorDefault=e8e2b5&amp;bgColorHover=675423&amp;bgTextureHover=13_diamond.png&amp;bgImgOpacityHover=25&amp;borderColorHover=362917&amp;fcHover=f8eec9&amp;iconColorHover=f2ec64&amp;bgColorActive=443113&amp;bgTextureActive=13_diamond.png&amp;bgImgOpacityActive=8&amp;borderColorActive=efec9f&amp;fcActive=f9f2bd&amp;iconColorActive=f9f2bd&amp;bgColorHighlight=d5ac5d&amp;bgTextureHighlight=13_diamond.png&amp;bgImgOpacityHighlight=25&amp;borderColorHighlight=362917&amp;fcHighlight=060200&amp;iconColorHighlight=070603&amp;bgColorError=fee4bd&amp;bgTextureError=04_highlight_hard.png&amp;bgImgOpacityError=65&amp;borderColorError=c26629&amp;fcError=803f1e&amp;iconColorError=ff7519&amp;bgColorOverlay=372806&amp;bgTextureOverlay=13_diamond.png&amp;bgImgOpacityOverlay=20&amp;opacityOverlay=80&amp;bgColorShadow=ddd4b0&amp;bgTextureShadow=01_flat.png&amp;bgImgOpacityShadow=75&amp;opacityShadow=30&amp;thicknessShadow=8px&amp;offsetTopShadow=-8px&amp;offsetLeftShadow=-8px&amp;cornerRadiusShadow=12px" target="_blank">preview theme</a>)</strong></p>
<pre>&lt;link rel="stylesheet" href="http://ajax.googleapis.com/ajax/libs/jqueryui/1/themes/swanky-purse/jquery-ui.css" type="text/css" /&gt;</pre>
<p><strong><em>Trontastic:</em> (<a href="http://jqueryui.com/themeroller/#ffDefault=Segoe+UI,+Helvetica,+Arial,+sans-serif&amp;fwDefault=bold&amp;fsDefault=1.1em&amp;cornerRadius=6px&amp;bgColorHeader=9fda58&amp;bgTextureHeader=12_gloss_wave.png&amp;bgImgOpacityHeader=85&amp;borderColorHeader=000000&amp;fcHeader=222222&amp;iconColorHeader=1f1f1f&amp;bgColorContent=000000&amp;bgTextureContent=12_gloss_wave.png&amp;bgImgOpacityContent=55&amp;borderColorContent=4a4a4a&amp;fcContent=ffffff&amp;iconColorContent=9fda58&amp;bgColorDefault=0a0a0a&amp;bgTextureDefault=02_glass.png&amp;bgImgOpacityDefault=40&amp;borderColorDefault=1b1613&amp;fcDefault=b8ec79&amp;iconColorDefault=b8ec79&amp;bgColorHover=000000&amp;bgTextureHover=02_glass.png&amp;bgImgOpacityHover=60&amp;borderColorHover=000000&amp;fcHover=96f226&amp;iconColorHover=b8ec79&amp;bgColorActive=4c4c4c&amp;bgTextureActive=01_flat.png&amp;bgImgOpacityActive=0&amp;borderColorActive=696969&amp;fcActive=ffffff&amp;iconColorActive=ffffff&amp;bgColorHighlight=f1fbe5&amp;bgTextureHighlight=02_glass.png&amp;bgImgOpacityHighlight=55&amp;borderColorHighlight=8cce3b&amp;fcHighlight=030303&amp;iconColorHighlight=000000&amp;bgColorError=f6ecd5&amp;bgTextureError=12_gloss_wave.png&amp;bgImgOpacityError=95&amp;borderColorError=f1ac88&amp;fcError=74736d&amp;iconColorError=cd0a0a&amp;bgColorOverlay=262626&amp;bgTextureOverlay=07_diagonals_small.png&amp;bgImgOpacityOverlay=50&amp;opacityOverlay=30&amp;bgColorShadow=303030&amp;bgTextureShadow=01_flat.png&amp;bgImgOpacityShadow=0&amp;opacityShadow=50&amp;thicknessShadow=6px&amp;offsetTopShadow=-6px&amp;offsetLeftShadow=-6px&amp;cornerRadiusShadow=12px" target="_blank">preview theme</a>)</strong></p>
<pre>&lt;link rel="stylesheet" href="http://ajax.googleapis.com/ajax/libs/jqueryui/1/themes/trontastic/jquery-ui.css" type="text/css" /&gt;</pre>
<p><strong><em>UI Darkness:</em> (<a href="http://jqueryui.com/themeroller/#ffDefault=Segoe+UI%2C+Arial%2C+sans-serif&amp;fwDefault=bold&amp;fsDefault=1.1em&amp;cornerRadius=6px&amp;bgColorHeader=333333&amp;bgTextureHeader=12_gloss_wave.png&amp;bgImgOpacityHeader=25&amp;borderColorHeader=333333&amp;fcHeader=ffffff&amp;iconColorHeader=ffffff&amp;bgColorContent=000000&amp;bgTextureContent=05_inset_soft.png&amp;bgImgOpacityContent=25&amp;borderColorContent=666666&amp;fcContent=ffffff&amp;iconColorContent=cccccc&amp;bgColorDefault=555555&amp;bgTextureDefault=02_glass.png&amp;bgImgOpacityDefault=20&amp;borderColorDefault=666666&amp;fcDefault=eeeeee&amp;iconColorDefault=cccccc&amp;bgColorHover=0078a3&amp;bgTextureHover=02_glass.png&amp;bgImgOpacityHover=40&amp;borderColorHover=59b4d4&amp;fcHover=ffffff&amp;iconColorHover=ffffff&amp;bgColorActive=f58400&amp;bgTextureActive=05_inset_soft.png&amp;bgImgOpacityActive=30&amp;borderColorActive=ffaf0f&amp;fcActive=ffffff&amp;iconColorActive=222222&amp;bgColorHighlight=eeeeee&amp;bgTextureHighlight=03_highlight_soft.png&amp;bgImgOpacityHighlight=80&amp;borderColorHighlight=cccccc&amp;fcHighlight=2e7db2&amp;iconColorHighlight=4b8e0b&amp;bgColorError=ffc73d&amp;bgTextureError=02_glass.png&amp;bgImgOpacityError=40&amp;borderColorError=ffb73d&amp;fcError=111111&amp;iconColorError=a83300&amp;bgColorOverlay=5c5c5c&amp;bgTextureOverlay=01_flat.png&amp;bgImgOpacityOverlay=50&amp;opacityOverlay=80&amp;bgColorShadow=cccccc&amp;bgTextureShadow=01_flat.png&amp;bgImgOpacityShadow=30&amp;opacityShadow=60&amp;thicknessShadow=7px&amp;offsetTopShadow=-7px&amp;offsetLeftShadow=-7px&amp;cornerRadiusShadow=8px" target="_blank">preview theme</a>)</strong></p>
<pre>&lt;link rel="stylesheet" href="http://ajax.googleapis.com/ajax/libs/jqueryui/1/themes/ui-darkness/jquery-ui.css" type="text/css" /&gt;</pre>
<p><strong><em>UI Lightness:</em> (<a href="http://jqueryui.com/themeroller/#ffDefault=Trebuchet+MS,+Tahoma,+Verdana,+Arial,+sans-serif&amp;fwDefault=bold&amp;fsDefault=1.1em&amp;cornerRadius=4px&amp;bgColorHeader=f6a828&amp;bgTextureHeader=12_gloss_wave.png&amp;bgImgOpacityHeader=35&amp;borderColorHeader=e78f08&amp;fcHeader=ffffff&amp;iconColorHeader=ffffff&amp;bgColorContent=eeeeee&amp;bgTextureContent=03_highlight_soft.png&amp;bgImgOpacityContent=100&amp;borderColorContent=dddddd&amp;fcContent=333333&amp;iconColorContent=222222&amp;bgColorDefault=f6f6f6&amp;bgTextureDefault=02_glass.png&amp;bgImgOpacityDefault=100&amp;borderColorDefault=cccccc&amp;fcDefault=1c94c4&amp;iconColorDefault=ef8c08&amp;bgColorHover=fdf5ce&amp;bgTextureHover=02_glass.png&amp;bgImgOpacityHover=100&amp;borderColorHover=fbcb09&amp;fcHover=c77405&amp;iconColorHover=ef8c08&amp;bgColorActive=ffffff&amp;bgTextureActive=02_glass.png&amp;bgImgOpacityActive=65&amp;borderColorActive=fbd850&amp;fcActive=eb8f00&amp;iconColorActive=ef8c08&amp;bgColorHighlight=ffe45c&amp;bgTextureHighlight=03_highlight_soft.png&amp;bgImgOpacityHighlight=75&amp;borderColorHighlight=fed22f&amp;fcHighlight=363636&amp;iconColorHighlight=228ef1&amp;bgColorError=b81900&amp;bgTextureError=08_diagonals_thick.png&amp;bgImgOpacityError=18&amp;borderColorError=cd0a0a&amp;fcError=ffffff&amp;iconColorError=ffd27a&amp;bgColorOverlay=666666&amp;bgTextureOverlay=08_diagonals_thick.png&amp;bgImgOpacityOverlay=20&amp;opacityOverlay=50&amp;bgColorShadow=000000&amp;bgTextureShadow=01_flat.png&amp;bgImgOpacityShadow=10&amp;opacityShadow=20&amp;thicknessShadow=5px&amp;offsetTopShadow=-5px&amp;offsetLeftShadow=-5px&amp;cornerRadiusShadow=5px" target="_blank">preview theme</a>)</strong></p>
<pre>&lt;link rel="stylesheet" href="http://ajax.googleapis.com/ajax/libs/jqueryui/1/themes/ui-lightness/jquery-ui.css" type="text/css" /&gt;</pre>
<p><strong><em>Vader:</em> <a href="http://jqueryui.com/themeroller/#tr&amp;ffDefault=Helvetica,+Arial,+sans-serif&amp;fwDefault=normal&amp;fsDefault=1.1&amp;fsDefaultUnit=em&amp;cornerRadius=5&amp;cornerRadiusUnit=px&amp;bgColorHeader=888888&amp;bgTextureHeader=04_highlight_hard.png&amp;bgImgOpacityHeader=15&amp;borderColorHeader=404040&amp;fcHeader=ffffff&amp;iconColorHeader=cccccc&amp;bgColorContent=121212&amp;bgTextureContent=12_gloss_wave.png&amp;bgImgOpacityContent=16&amp;borderColorContent=404040&amp;fcContent=eeeeee&amp;iconColorContent=bbbbbb&amp;bgColorDefault=adadad&amp;bgTextureDefault=03_highlight_soft.png&amp;bgImgOpacityDefault=35&amp;borderColorDefault=cccccc&amp;fcDefault=333333&amp;iconColorDefault=666666&amp;bgColorHover=dddddd&amp;bgTextureHover=03_highlight_soft.png&amp;bgImgOpacityHover=60&amp;borderColorHover=dddddd&amp;fcHover=000000&amp;iconColorHover=c98000&amp;bgColorActive=121212&amp;bgTextureActive=05_inset_soft.png&amp;bgImgOpacityActive=15&amp;borderColorActive=000000&amp;fcActive=ffffff&amp;iconColorActive=f29a00&amp;bgColorHighlight=555555&amp;bgTextureHighlight=04_highlight_hard.png&amp;bgImgOpacityHighlight=55&amp;borderColorHighlight=404040&amp;fcHighlight=cccccc&amp;iconColorHighlight=aaaaaa&amp;bgColorError=fef1ec&amp;bgTextureError=02_glass.png&amp;bgImgOpacityError=95&amp;borderColorError=cd0a0a&amp;fcError=cd0a0a&amp;iconColorError=cd0a0a" target="_blank">(preview theme)</a></strong></p>
<pre>&lt;link rel="stylesheet" href="http://ajax.googleapis.com/ajax/libs/jqueryui/1/themes/vader/jquery-ui.css" type="text/css" /&gt;</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.devinrolsen.com/jquery-google-hosted-repository-links/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>The Beginners Guide to jQuery Plugins</title>
		<link>http://www.devinrolsen.com/beginners-guide-to-jquery-plugin-development/</link>
		<comments>http://www.devinrolsen.com/beginners-guide-to-jquery-plugin-development/#comments</comments>
		<pubDate>Mon, 03 Jan 2011 10:14:46 +0000</pubDate>
		<dc:creator>Devin R. Olsen</dc:creator>
				<category><![CDATA[JavaScript Tutorials]]></category>

		<guid isPermaLink="false">http://www.devinrolsen.com/?p=1046</guid>
		<description><![CDATA[<img class="alignleft" src="https://www.packtpub.com/sites/default/files/imagecache/productview/2244OS_MockupCover_Beginers%20guide_0.jpg" alt="" width="100" height="127" />I was recently given the opportunity to read over the new book "<a href="https://www.packtpub.com/jquery-plugin-development-beginners-guide/book" target="_blank">jQuery Plugin Development Beginners Guide</a>" by Giulio Bai, and I must admit this is a must have guide!]]></description>
			<content:encoded><![CDATA[<p><a href="https://www.packtpub.com/jquery-plugin-development-beginners-guide/book" target="_blank"><img class="alignleft" src="https://www.packtpub.com/sites/default/files/imagecache/productview/2244OS_MockupCover_Beginers%20guide_0.jpg" alt="" width="125" height="152" style="border:none;" /></a>I was recently given the opportunity to read over the new book &#8220;<a href="https://www.packtpub.com/jquery-plugin-development-beginners-guide/book" target="_blank">jQuery Plugin Development Beginners Guide</a>&#8221; by Giulio Bai, and I must admit this is a must have guide! This book is perfect for beginners to gather not only a solid foundation of jQuery plugin concepts, but also best practices. The book it&#8217;s self is aimed at teaching the absolute basics jquery plugin development such as:</p>
<ul style="clear:both; font-weight:bolder;">
<li>What is jQuery</li>
<li>Plugin Basics</li>
<li>Your First Plugin</li>
</ul>
<p>What makes this book so great is how the &#8220;basics and best practices&#8221; are covered early on, while a series of introductions to actual real world plugin topics are also covered later on, such as:</p>
<ul style="font-weight:bolder;">
<li>Media Plugins
<ul style=" margin-top:0px; margin-bottom:0px;">
<li>Image Plugins</li>
<li>Video Plugins</li>
<li>Audio Plugins</li>
</ul>
</li>
<li>Forms and Validation Plugins</li>
<li>UI Plugins</li>
</ul>
<p>What also makes this book top notch is that after each chapter, they tend to pose a optional 5 to 10 question quiz to help with all learning types. Now, as if that was not enough, this book also covers other topics such as:</p>
<ul style=" font-weight:bolder;">
<li> Top jQuery Plugins</li>
<li> Reference and bibliography</li>
<li> Blogs to follow</li>
<li> Browsers: compatibility, comparisons, and plugins</li>
</ul>
<p>If your looking to dive head first into the world of jquery plugin development, then this the must have guide that all developers should carry with them. I recommend you grab this great book if your looking to invest into anything jQuery right now and enjoy it as much as I have these past weeks.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.devinrolsen.com/beginners-guide-to-jquery-plugin-development/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

<!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Minified using disk

Served from: www.devinrolsen.com @ 2012-05-17 21:53:29 -->
