<?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>Design in Development</title>
	<atom:link href="http://designindevelopment.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://designindevelopment.com</link>
	<description>Creating elegant designs with ones and zeros</description>
	<lastBuildDate>Wed, 07 Jul 2010 00:32:54 +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>Replaceholder jQuery Plugin</title>
		<link>http://designindevelopment.com/plugins/replaceholder-jquery-plugin/</link>
		<comments>http://designindevelopment.com/plugins/replaceholder-jquery-plugin/#comments</comments>
		<pubDate>Tue, 06 Jul 2010 23:46:15 +0000</pubDate>
		<dc:creator>Seth Aldridge</dc:creator>
				<category><![CDATA[Plugins]]></category>
		<category><![CDATA[HTML5]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[plugin]]></category>

		<guid isPermaLink="false">http://designindevelopment.com/?p=135</guid>
		<description><![CDATA[In two recent posts I used a simple JavaScript function to replace the placeholder attribute of an input element with a value attribute.  Since I&#8217;ve used it twice now I decided to make it into a simple jQuery plugin and &#8230; <a href="http://designindevelopment.com/plugins/replaceholder-jquery-plugin/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>In two <a href="http://designindevelopment.com/css/grooveshark-search-with-css3/">recent</a> <a href="http://designindevelopment.com/css/apple-navigation-with-css3">posts</a> I used a simple JavaScript function to replace the placeholder attribute of an input element with a value attribute.  Since I&#8217;ve used it twice now I decided to make it into a simple jQuery plugin and wanted to give it to everyone else as well. The best part is you can now start using this HTML5 attribute before it&#8217;s fully supported!</p>
<p><a href="http://designindevelopment.com/demos/replaceholder/">Demo</a> | <a class="download" onclick="pageTracker._trackPageview('http://designindevelopment.com/download/replaceholder.zip')" href="http://designindevelopment.com/download/replaceholder.zip">Download</a></p>
<h2>What does it do?</h2>
<p>Replaceholder simply scans your file for input elements with the placeholder attribute and replaces it with a value attribute for cross-browser feng shui. It mimics the basic placeholder functionality by saving the placeholder value of each field and on focus removes the value from the input. As the user interacts with the field it removes and replaces the value of the field unless the user has added content.  <strong>From this:</strong></p>
<pre>&lt;input type="text" class="search" placeholder="Search" /&gt;</pre>
<p><strong>To this:</strong></p>
<pre>&lt;input type="text" class="search" value="Search" /&gt;</pre>
<h2>How it works</h2>
<ol>
<li><a class="download" onclick="pageTracker._trackPageview('http://designindevelopment.com/download/replaceholder.zip')" href="http://designindevelopment.com/download/replaceholder.zip">Download</a> the plugin</li>
<li>Unzip the file and grab either the development version (jquery.replaceholder.js) or the production version (jquery.replaceholder-min.js)</li>
<li>Add the &lt;script&gt; tag
<pre>&lt;script type="text/javascript" src="path/to/file/jquery.replaceholder.min.js"&gt;&lt;/script&gt;</pre>
</li>
<li>Run plugin
<pre>$.fn.replaceholder();</pre>
</li>
<li>???</li>
<li>Profit!</li>
</ol>
<p>That&#8217;s all you need to do.</p>
<h3>Copypasta?</h3>
<pre>&lt;script type="text/javascript" src="http://code.jquery.com/jquery-1.4.2.min.js"&gt;&lt;/script&gt;
&lt;script type="text/javascript" src="path/to/file/jquery.replaceholder.min.js"&gt;&lt;/script&gt;
&lt;script type="text/javascript"&gt;
$(function() {
	$.fn.replaceholder();
});
&lt;/script&gt;</pre>
<p>Using the above code you should only have to update &#8220;path/to/file/&#8221; with the location to your saved file!</p>
<h2>Customizing the Plugin</h2>
<p>You can change the focus text color and the blur text color by passing these two properties:</p>
<pre>$.fn.replaceholder({
	focusColor:'#000',
	blurColor:'#aaa'
});</pre>
<p>You can also specify the elements you want to apply replaceholder to:</p>
<pre>$('.search').replaceholder();</pre>
<p>Feel free to use and abuse this code. If you end up using it let me know!  Enjoy!</p>
]]></content:encoded>
			<wfw:commentRss>http://designindevelopment.com/plugins/replaceholder-jquery-plugin/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
		<item>
		<title>Prototype in CSS</title>
		<link>http://designindevelopment.com/soap-box/prototype-in-css/</link>
		<comments>http://designindevelopment.com/soap-box/prototype-in-css/#comments</comments>
		<pubDate>Tue, 06 Jul 2010 13:26:51 +0000</pubDate>
		<dc:creator>Seth Aldridge</dc:creator>
				<category><![CDATA[Soap Box]]></category>

		<guid isPermaLink="false">http://designindevelopment.com/?p=133</guid>
		<description><![CDATA[Over the last three years I have slowly been learning JavaScript and one of my favorite and still somewhat most confusing ideas go grasp is JavaScript&#8217;s use of Prototyping with Objects. I get the basics that a prototype is a &#8230; <a href="http://designindevelopment.com/soap-box/prototype-in-css/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Over the last three years I have slowly been learning JavaScript and one of my favorite and still somewhat most confusing ideas go grasp is JavaScript&#8217;s use of Prototyping with Objects. I get the basics that a prototype is a copy of the original object with all it&#8217;s properties, but I haven&#8217;t been able to use it much in my day to day.</p>
<p>As I&#8217;ve experimented with CSS3 the one thing I&#8217;ve really struggled with is the crazy amount of extra code you end up writing in order to achieve cross-browser chi. Then it hit me, what if prototyping was extended to CSS. The idea isn&#8217;t that complex, but it&#8217;s all in my head at this point. Here is the basic idea:</p>
<p>I first start by defining a class that has a drop shadow property, and it&#8217;s set for all browsers, then reference that class using a prototype attribute:</p>
<pre>.shadow-class {
	-moz-box-shadow:0 1px #000;
	-webkit-box-shadow:0 1px #000;
	box-shadow:0 1px #000;
}

#my_div { prototype:".shadow-class"; }</pre>
<p>The basic idea is to add the attribute &#8220;prototype&#8221; and it accepts an existing Class or ID and then adds those styles to the element.  This is along the lines of variables in CSS, but it&#8217;s a little more complex. If any browser vendors would like to play around with the idea I would love to see it.</p>
<p>What do you guys think? Do you think it would be worth while and does it make sense to you?</p>
]]></content:encoded>
			<wfw:commentRss>http://designindevelopment.com/soap-box/prototype-in-css/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Apple Navigation with CSS3</title>
		<link>http://designindevelopment.com/css/apple-navigation-with-css3/</link>
		<comments>http://designindevelopment.com/css/apple-navigation-with-css3/#comments</comments>
		<pubDate>Sun, 04 Jul 2010 04:18:34 +0000</pubDate>
		<dc:creator>Seth Aldridge</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[Tutorial]]></category>
		<category><![CDATA[Apple]]></category>
		<category><![CDATA[CSS3]]></category>
		<category><![CDATA[JavaScript]]></category>

		<guid isPermaLink="false">http://designindevelopment.com/?p=115</guid>
		<description><![CDATA[Apple is known for very clean design and if you have been to their website in the last few years you&#8217;ve seen their primary navigation. It&#8217;s a staple of the apple website and today I wanted to take a crack &#8230; <a href="http://designindevelopment.com/css/apple-navigation-with-css3/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Apple is known for very clean design and if you have been to their website in the last few years you&#8217;ve seen their primary navigation. It&#8217;s a staple of the apple website and today I wanted to take a crack at recreating the Apple navigation using CSS3 techniques.</p>
<p><a href="http://designindevelopment.com/demos/apple/"><img class="alignnone size-full wp-image-117" title="Apple Navigation with CSS3" src="http://designindevelopment.com/wp-content/uploads/2010/07/apple_screenshot.jpg" alt="" /></a></p>
<h2>The Markup</h2>
<pre class="brush:[html]">&lt;ul id="nav"&gt;
	&lt;li&gt;&lt;a href="#" class="apple"&gt;&lt;span&gt;Apple&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
	&lt;li&gt;&lt;a href="#"&gt;Store&lt;/a&gt;&lt;/li&gt;
	&lt;li&gt;&lt;a href="#"&gt;Mac&lt;/a&gt;&lt;/li&gt;
	&lt;li&gt;&lt;a href="#"&gt;iPod&lt;/a&gt;&lt;/li&gt;
	&lt;li&gt;&lt;a href="#"&gt;iPhone&lt;/a&gt;&lt;/li&gt;
	&lt;li&gt;&lt;a href="#"&gt;iPad&lt;/a&gt;&lt;/li&gt;
	&lt;li&gt;&lt;a href="#"&gt;iTunes&lt;/a&gt;&lt;/li&gt;
	&lt;li&gt;&lt;a href="#"&gt;Support&lt;/a&gt;&lt;/li&gt;
	&lt;li class="search_container"&gt;
		&lt;form class="search" method="get" action="#"&gt;
			&lt;label for="search"&gt;
				&lt;input type="text" id="search" placeholder="Search" /&gt;
			&lt;/label&gt;
		&lt;/form&gt;
	&lt;/li&gt;
&lt;/ul&gt;</pre>
<p>I wanted to keep it very light weight and semantic. Using an unordered list is fairly standard for a navigation system and I&#8217;m not really breaking new ground here.</p>
<p>I built this with an additional class named &#8220;current&#8221; which will set when you are viewing a specific page.</p>
<h2>The CSS</h2>
<pre class="brush:[css]">#nav {
	background:-webkit-gradient(linear, 0 0, 0 100%, from(#cacaca), to(#848484));
	background:-moz-linear-gradient(top, #cacaca, #848484);
	-webkit-border-radius:3px;
	-moz-border-radius:3px;
	border-radius:3px;
	-webkit-box-shadow:0 1px 2px rgba(0,0,0,.3);
	display:inline-block;
	list-style:none;
	margin:0 0 20px;
	overflow:hidden;
	padding:0;
}
#nav li { border-right:1px solid #808080; -webkit-box-shadow:inset 0 0 0 1px rgba(255,255,255,.1); -moz-box-shadow:inset 0 0 0 1px rgba(255,255,255,.1); float:left; }
#nav li a { color:#262626; display:block; font:13px "Lucida Sans Unicode", "Lucida Grande", sans-serif; height:36px; line-height:34px; padding:0 30px; text-decoration:none; text-shadow:0 1px #cecece; }
#nav li a:hover { background:-webkit-gradient(linear, 0 0, 0 100%, from(#929292), to(#535353)); background:-moz-linear-gradient(top, #929292, #535353); -webkit-box-shadow:inset 0 -10px 20px rgba(0,0,0,.05), inset 0 0 0 1px rgba(255,255,255,.1); -moz-box-shadow:inset 0 -10px 20px rgba(0,0,0,.05), inset 0 0 0 1px rgba(255,255,255,.1); color:#fff; text-shadow:0 -1px #414141; }
#nav li a:active { -webkit-box-shadow:inset 0 -10px 20px rgba(0,0,0,.05), inset 0 2px 5px #363636, inset 0 0 0 1px rgba(255,255,255,.1); -moz-box-shadow:inset 0 -10px 20px rgba(0,0,0,.05), inset 0 2px 5px #363636, inset 0 0 0 1px rgba(255,255,255,.1); }
#nav li .apple { padding:0; }
#nav li .apple:hover { -moz-border-radius-topleft:3px; -moz-border-radius-bottomleft:3px; -webkit-border-top-left-radius:3px; -webkit-border-bottom-left-radius:3px; }
#nav li .apple span { background:url(images/apple.png) center 6px no-repeat; display:block; padding:0; text-indent:-99999em; width:102px; }
#nav li .current,
#nav li .current:hover { background:-webkit-gradient(linear, 0 0, 0 100%, from(#373737), to(#525051)); background:-moz-linear-gradient(top, #373737, #525051); -webkit-box-shadow:inset 0 -10px 20px rgba(0,0,0,.05), inset 0 2px 5px #363636, inset 0 0 0 1px rgba(255,255,255,.1); -moz-box-shadow:inset 0 -10px 20px rgba(0,0,0,.05), inset 0 2px 5px #363636, inset 0 0 0 1px rgba(255,255,255,.1); color:#fff; text-shadow:0 1px #242323; }
#nav .search_container { border-right:none; padding-right:5px; }
#nav .search { background:url(images/site-search-sprite.png) right -53px no-repeat; padding:7px 20px 8px 5px; }
#nav .search label { background:url(images/site-search-sprite.png) 0 0 no-repeat; display:block; height:20px; }
#nav .search input { border:none; color:#a9a9a9; height:12px; margin-left:25px; -webkit-appearance:none; }
#nav .search input:focus { border:none; outline:none; }</pre>
<p>Things to note in the CSS would be multiple box-shadow properties.</p>
<pre class="brush:[css]">-webkit-box-shadow:inset 0 -10px 20px rgba(0,0,0,.05), inset 0 2px 5px #363636, inset 0 0 0 1px rgba(255,255,255,.1);</pre>
<p>The above code is used for the active state. This is triggered when you click one of the buttons. You can see I have chained three different styles to one property using a comma separated list. I tend to use box-shadow a lot to add a lot of detail to the end result. The great thing about using CSS rather than slicing images is the amount of time I saved.  I was able to put this example together in a few hours.  In fact it has taken me longer to write about what I&#8217;ve done that it actually took to create it. I think that says more about me as a writer than it says about my programming skills, but that&#8217;s not the point! <img src='http://designindevelopment.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Making it work on Mobile Safari was something I wanted to get right this time. I did some low level Googling and found the -webkit-appearance property.</p>
<pre>-webkit-appearance:none;</pre>
<p>By setting it to &#8216;none&#8217; I am able to remove the rounded corners and inner shadow from the element.</p>
<h2>The JavaScript</h2>
<p>I was able to use some code from <a href="http://designindevelopment.com/css/grooveshark-search-with-css3/">my last posting</a> and tweak it a little bit to give it some extra functionality.</p>
<pre class="brush:[js]">$(function() {

	var $placeholder = $('input[placeholder]');

	if ($placeholder.length &gt; 0) {

		var attrPh = $placeholder.attr('placeholder');

		$placeholder.attr('value', attrPh)
		  .bind('focus', function() {

			var $this = $(this),
				$form = $this.parents('.search');

			if($this.val() === attrPh)
				$this.val('').css('color','#333');

			$form.addClass('focus');

		}).bind('blur', function() {

			var $this = $(this),
				$form = $this.parents('.search');

			if($this.val() === '')
				$this.val(attrPh).css('color','#a9a9a9');

			$form.removeClass('focus');
		});
	}
});</pre>
<p>What does this script do? Well to start I define my variables, which is a great practice to get into. I use $ in front of my variables to let me know I&#8217;m dealing with a jQuery object. I think check to see if any of those objects exist on the page. From there it&#8217;s pretty simple.  I grab the placeholder value and duplicate it as a value attribute.  On focus, or when you click into the text field, I&#8217;m checking to see if the text in the field matches the text that was in the placeholder attribute.  If they are the same then I remove the text. Then I find the parent form and set it&#8217;s class to &#8220;focus&#8221; which toggles the style of the blue outline around the search box.</p>
<p>It&#8217;s important to note that since this is a demo I grabbed the sprite image from Apple&#8217;s website for the search box, saving a local copy to not burn their bandwidth. So while you are, as always, free to copy all my code please note that I do not own the image used for the search box.</p>
<p>I wanted to thank everyone for the great feedback I&#8217;ve been receiving lately. It&#8217;s so much fun writing these examples and I really enjoy see what everyone has to say about them.  If you have anything that you want to see please let me know in the comments. Please feel free to grab this code or the <a href="http://designindevelopment.com/demos/apple/">code from the demo</a> and play with it.  Enjoy!</p>
]]></content:encoded>
			<wfw:commentRss>http://designindevelopment.com/css/apple-navigation-with-css3/feed/</wfw:commentRss>
		<slash:comments>20</slash:comments>
		</item>
		<item>
		<title>Grooveshark Search with CSS3</title>
		<link>http://designindevelopment.com/css/grooveshark-search-with-css3/</link>
		<comments>http://designindevelopment.com/css/grooveshark-search-with-css3/#comments</comments>
		<pubDate>Fri, 25 Jun 2010 03:02:53 +0000</pubDate>
		<dc:creator>Seth Aldridge</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[Tutorial]]></category>

		<guid isPermaLink="false">http://designindevelopment.com/?p=78</guid>
		<description><![CDATA[I am a huge fan of the Grooveshark interface. Every time I look at the site I start to dissect the UI and turn it into code in my head. I wanted to see if I could create the search &#8230; <a href="http://designindevelopment.com/css/grooveshark-search-with-css3/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I am a huge fan of the <a href="http://listen.grooveshark.com/">Grooveshark</a> interface. Every time I look at the site I start to dissect the UI and turn it into code in my head. I wanted to see if I could create the search box only using HTML and CSS. Sadly there is one image and it&#8217;s the search icon in the button.  I recently read a tutorial that shows you how to create a custom font and use the <a href="http://net.tutsplus.com/tutorials/html-css-techniques/quick-tip-ever-thought-about-using-font-face-for-icons/">font-face property for icons</a>, but they didn&#8217;t have the search icon I needed.</p>
<h2>The Grooveshark Search Box</h2>
<p><a title="GrooveShark Search Bar with CSS3" href="http://designindevelopment.com/demos/grooveshark/" target="_blank"><img class="alignnone size-full wp-image-84" title="GrooveShark Search Box with CSS3" src="http://designindevelopment.com/wp-content/uploads/2010/06/grooveshark_search1.jpg" alt="" width="630" height="112" /></a></p>
<p>The above image is my final attempt.  You can also checkout <a href="http://designindevelopment.com/demos/grooveshark/" target="_blank">a working demo</a>.</p>
<h3>The Structure</h3>
<p>I wanted to keep the front-end code really light and still make it easy to theme and have a flexible width.</p>
<pre class="brush:[html]">&lt;form action="#" id="search_box"&gt;
	&lt;div class="wrapper"&gt;
		&lt;input type="text" id="search" name="search" placeholder="Search for Music" /&gt;
		&lt;button type="submit" class="search_btn"&gt;&lt;img src="search_icon.png" title="Search" /&gt;&lt;/button&gt;
	&lt;/div&gt;
&lt;/form&gt;</pre>
<p>I start with a simple form tag and give it an id of &#8220;search_box&#8221;. Then I have a div that acts as a wrapper.  This creates the full white background behind the input field.  For the input field I&#8217;m using the new HTML5 placeholder attribute which is currently only supported in Google Chrome. I&#8217;m using a button element because they are easier to style and give you more control cross browser. The button has an image inside with the title tag set for accessibility.  I kept it pretty light and as you&#8217;ll see CSS3 offers you a ton of options.</p>
<h3>The Sexy</h3>
<p>I love the new properties that are coming out in CSS3. I hate managing them. Let me stand on my soap box quickly and ask the developers who create browsers for a living to please talk to other developers.  If you all implement box-shadow with the same formatting please also support using the proper attribute name.  It&#8217;s just ugly.</p>
<p>&#8230;and now back to the sexy.</p>
<p>I started with styling the form tag by referencing its id of &#8220;search_box&#8221;.  For those who don&#8217;t know the id is represented in CSS by the # or hash/pound symbol.</p>
<pre class="brush:[css]">#search_box {
	background:-moz-linear-gradient(top, #ffd73a, #ffa500);
	background:-webkit-gradient(linear, 0 0, 0 100%, from(#ffd73a), to(#ffa500));
	border:1px solid #d28703;
	border-radius:5px;
	-moz-border-radius:5px;
	-webkit-border-radius:5px;
	-moz-box-shadow:inset 0 1px #ffff90, inset 0 -2px 5px #ffd05d, 0 0 0 4px rgba(255,255,255,0.65);
	-webkit-box-shadow:inset 0 1px #ffff90, inset 0 -2px 5px #ffd05d, 0 0 0 4px rgba(255,255,255,0.65);
	padding:9px;
	width:570px;
}</pre>
<p>I am personally not a fan of writing css stacked like this, however, with all the -vendor- declarations it can get really messy. The cool part in the above section is the use of gradient backgrounds and box shadows.  For my gradients I usually set a fairly basic color-a to color-b style.  I then create accent colors with box-shadow.  This allows you to achieve the 1px glows by using the inset property. On the form tag alone I&#8217;m using 3 different box shadow styles&#8230;I love box-shadow <img src='http://designindevelopment.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Next I styled the .wrapper class.</p>
<pre class="brush:[css]">#search_box .wrapper {
	background:#fff;
	border:1px solid #d28703;
	-moz-border-radius:2px;
	-webkit-border-radius:2px;
	-moz-box-shadow:inset 0 1px 2px rgba(0,0,0,.3), 0 1px #ff0;
	-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,.3), 0 1px #ff0;
	padding:13px 0 10px 8px;
	position:relative;
}</pre>
<p>The wrapper creates the white box surrounding the input field and the button. I&#8217;m setting the input field&#8217;s border to none so the backgrounds will blend together creating a seamless effect.</p>
<pre class="brush:[css]">#search_box input { border:none; color:#333; font:bold 24px Helvetica, Arial, sans-serif; width:510px; }
#search_box button {
	background:-moz-linear-gradient(top, #453e26, #000);
	border:1px solid #000;
	-moz-border-radius:2px;
	-webkit-border-radius:2px;
	-moz-box-shadow:inset 0 -2px 3px #193544, inset 0 1px #907817, 0 1px 1px rgba(0,0,0,4);
	-webkit-box-shadow:inset 0 -2px 3px #193544, inset 0 1px #907817, 0 1px 1px rgba(0,0,0,.4);
	cursor:pointer;
	height:45px;
	position:absolute;
	right:2px;
	top:2px;
	width:45px;
}</pre>
<p>The button tag allows you to customize everything about it.  I absolutely positioned it to the bottom right by 2px to make it stay in the same place regardless of the size of the containing element.</p>
<h3>Taking It A Step Further</h3>
<p>As I mentioned above I was using the placeholder attribute in the input field. Since this is only currently supported in Google Chrome I have to replace that value in all other browsers.  I wrote a quick jQuery function to mimic the placeholder functionality. This way as browsers start to implement the placeholder attribute I can simply remove a JavaScript function.</p>
<pre class="brush:[js]">$(function() {

	var $placeholder = $('input[placeholder]');

	if ($placeholder.length &gt; 0) {

		var attrPh = $placeholder.attr('placeholder');

		$placeholder.attr('value', attrPh)
		  .bind('focus', function() {

			var $this = $(this);

			if($this.val() === attrPh)
				$this.val('').css('color','#171207');

		}).bind('blur', function() {

			var $this = $(this);

			if($this.val() === '')
				$this.val(attrPh).css('color','#333');

		});

	}

});</pre>
<p>The first thing I always do is declare my variables. In this case I grab all the input fields with the placeholder attribute set. I then run a quick check to see if any elements exist and if so set a few variables and bind a few events.  Again always start by defining your variables. I first grab the value of the placeholder attribute and then create a value attribute on the input element with the value of the placeholder.  This allows me to use a new HTML5 property and provide a fall back until full support is provided.</p>
<p>Next I bind my focus event. This fires every time a user clicks or tabs into the form element. What am I doing first? That&#8217;s right&#8230;declaring my variables. I have gotten into the habit of using the $ to signify a jQuery object.  This quickly lets me know if I&#8217;m dealing with a value such as a number or string, or if I&#8217;m am dealing with an object. I then run a quick check to see if the values match. If so, I clear the value attribute. Then when the user blurs or clicks off the field the logic simply is reversed. By checking to see if the value is the same or completely blank I avoid overwriting user input.</p>
<p>Let me know if the comments what you think and feel free to use and manipulate the code. Enjoy!</p>
]]></content:encoded>
			<wfw:commentRss>http://designindevelopment.com/css/grooveshark-search-with-css3/feed/</wfw:commentRss>
		<slash:comments>23</slash:comments>
		</item>
		<item>
		<title>Z-index Blocking</title>
		<link>http://designindevelopment.com/css/z-index-blocking/</link>
		<comments>http://designindevelopment.com/css/z-index-blocking/#comments</comments>
		<pubDate>Mon, 19 Apr 2010 22:42:35 +0000</pubDate>
		<dc:creator>Seth Aldridge</dc:creator>
				<category><![CDATA[Concepts]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[Blocking]]></category>
		<category><![CDATA[Spectrum]]></category>
		<category><![CDATA[Z-index]]></category>

		<guid isPermaLink="false">http://designindevelopment.com/?p=64</guid>
		<description><![CDATA[What it is If you have worked with absolutely positioned elements then you should be familiar with z-index. Z-index is a CSS property that allows you to stack elements much like layers in Photoshop. This can quickly get confusing if &#8230; <a href="http://designindevelopment.com/css/z-index-blocking/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<h2>What it is</h2>
<p>If you have worked with absolutely positioned elements then you should be familiar with z-index. Z-index is a CSS property that allows you to stack elements much like layers in Photoshop. This can quickly get confusing if you have no structural base to work from. Deciding what elements supersede other elements and how your website displays important information can be a cumbersome task and one that if not handled properly can cost you a lot of time and money in bug fixes later on.</p>
<p>Z-index blocking is a simple way to help you quickly organize and debug site issues that are related to improper stacking.</p>
<p>Lets use primary navigation as an example. If you have a hover menu then you want that menu to display overtop your main content. If you randomly set that to 500 and then later need a modal window that has an error message display and you set that to 450 the modal will display below the primary navigation and will look like a visual glitch.</p>
<p>With z-index blocking you assign spectrums with a range of 100 blocks in each range. You then assign labels to each spectrum and that will help you quickly understand where to place elements.</p>
<h2>How to use it</h2>
<p>I have built a basic example using 0-1000 as my global spectrum that I them break down into 10 sub-spectrums.</p>
<p>901-1000 &#8211; Error Message Windows (if modal)<br />
801-900 &#8211; Modal Windows<br />
701-800 &#8211; Primary Navigation<br />
601-700 &#8211; Page Based Error Messaging<br />
501-600 &#8211; Open<br />
401-500 &#8211; Open<br />
301-400 &#8211; Open<br />
201-300 &#8211; Open<br />
101-200 &#8211; Promotional/Advertising<br />
1-100 &#8211; General Content</p>
<h2>Conclusion</h2>
<p>This is still a new concept but one that I think will help in the long run. It&#8217;s always important to plan early and test often.</p>
]]></content:encoded>
			<wfw:commentRss>http://designindevelopment.com/css/z-index-blocking/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>jQuery&#8217;s .delegate()</title>
		<link>http://designindevelopment.com/javascript/jquery/jquerys-delegate/</link>
		<comments>http://designindevelopment.com/javascript/jquery/jquerys-delegate/#comments</comments>
		<pubDate>Mon, 19 Apr 2010 08:00:45 +0000</pubDate>
		<dc:creator>Seth Aldridge</dc:creator>
				<category><![CDATA[jQuery]]></category>

		<guid isPermaLink="false">http://designindevelopment.com/?p=55</guid>
		<description><![CDATA[This weekend I saw a really good talk by John Resig on the .delegate() function in jQuery. It allows you to apply one event to the parent element rather than applying multiple functions to several children elements.  This can be &#8230; <a href="http://designindevelopment.com/javascript/jquery/jquerys-delegate/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>This weekend I saw a really good talk by John Resig on the <a href="http://api.jquery.com/delegate/">.delegate()</a> function in jQuery. It allows you to apply one event to the parent element rather than applying multiple functions to several children elements.  This can be very useful for a number of reasons.  Traditionally I&#8217;ve used the .bind() method for adding events to my code, but .delegate() gives you the ability to listen to new elements added to the page.  This has be very helpful for projects that are more ajax based where I have new elements created at run time.  I&#8217;m no longer setting and resetting events!</p>
<h2>The Javascript</h2>
<p>In the example provided in the jQuery documentation they use a case where you would have multiple table cells nested within a table element.  The beauty of this is you apply the event one time rather than once for each child node.</p>
<pre class="brush:[js]">$("table").delegate("td", "hover", function(){
	$(this).toggleClass("hover");
});</pre>
<p>If you look at my <a href="http://designindevelopment.com/css/css3-chess-board/">CSS3 Chessboard</a> example this would be a great way to add the drag/drop support and also save me from looping through all my elements.  I&#8217;m still working with the function and trying to do some speed tests to see how much this can save on performance.  If you have any tips post them in the comments.</p>
]]></content:encoded>
			<wfw:commentRss>http://designindevelopment.com/javascript/jquery/jquerys-delegate/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>CSS3 Chess Board</title>
		<link>http://designindevelopment.com/css/css3-chess-board/</link>
		<comments>http://designindevelopment.com/css/css3-chess-board/#comments</comments>
		<pubDate>Fri, 16 Apr 2010 04:10:59 +0000</pubDate>
		<dc:creator>Seth Aldridge</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[Tutorial]]></category>
		<category><![CDATA[board]]></category>
		<category><![CDATA[chess]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[CSS3]]></category>

		<guid isPermaLink="false">http://designindevelopment.com/?p=22</guid>
		<description><![CDATA[I was browsing the web today and found something exciting.  I noticed that there are unicode characters for chess pieces.  Always looking for ways to play with CSS3 I decided to try and build a chess board using my new &#8230; <a href="http://designindevelopment.com/css/css3-chess-board/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I was browsing the web today and found something exciting.  I noticed that there are unicode characters for chess pieces.  Always looking for ways to play with CSS3 I decided to try and build a chess board using my new best friend :nth-child and some unicode characters.</p>
<p><a href="http://designindevelopment.com/demos/chessboard/"><img class="alignnone size-full wp-image-93" title="chessboard" src="http://designindevelopment.com/wp-content/uploads/2010/04/chessboard.jpg" alt="" width="630" height="630" /></a></p>
<h2>The Characters:</h2>
<pre>&amp;#9812; = ♔
&amp;#9813; = ♕
&amp;#9814; = ♖
&amp;#9815; = ♗
&amp;#9816; = ♘
&amp;#9817; = ♙
&amp;#9818; = ♚
&amp;#9819; = ♛
&amp;#9820; = ♜
&amp;#9821; = ♝
&amp;#9822; = ♞
&amp;#9823; = ♟</pre>
<p>I always get excited when I find cool characters to play with and these are no different.  Now that I had all the pieces I needed I started to build out the chess board.</p>
<h2>The HTML:</h2>
<p>First I created a quick table to hold all the chess cells and then added my chess pieces as anchors so I could add some fun drag/drop support.</p>
<pre class="brush:[html]">&lt;table id="chess_board" cellpadding="0" cellspacing="0"&gt;
	&lt;tr&gt;
		&lt;td id="A8"&gt;&lt;a href="#" class="rook black"&gt;&amp;#9820;&lt;/a&gt;&lt;/td&gt;
		&lt;td id="B8"&gt;&lt;a href="#" class="night black"&gt;&amp;#9822;&lt;/a&gt;&lt;/td&gt;
		&lt;td id="C8"&gt;&lt;a href="#" class="bishop black"&gt;&amp;#9821;&lt;/a&gt;&lt;/td&gt;
		&lt;td id="D8"&gt;&lt;a href="#" class="king black"&gt;&amp;#9819;&lt;/a&gt;&lt;/td&gt;
		&lt;td id="E8"&gt;&lt;a href="#" class="queen black"&gt;&amp;#9818;&lt;/a&gt;&lt;/td&gt;
		&lt;td id="F8"&gt;&lt;a href="#" class="bishop black"&gt;&amp;#9821;&lt;/a&gt;&lt;/td&gt;
		&lt;td id="G8"&gt;&lt;a href="#" class="night black"&gt;&amp;#9822;&lt;/a&gt;&lt;/td&gt;
		&lt;td id="H8"&gt;&lt;a href="#" class="rook black"&gt;&amp;#9820;&lt;/a&gt;&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr&gt;
		&lt;td id="A7"&gt;&lt;a href="#" class="pawn black"&gt;&amp;#9823;&lt;/a&gt;&lt;/td&gt;
		&lt;td id="B7"&gt;&lt;a href="#" class="pawn black"&gt;&amp;#9823;&lt;/a&gt;&lt;/td&gt;
		&lt;td id="C7"&gt;&lt;a href="#" class="pawn black"&gt;&amp;#9823;&lt;/a&gt;&lt;/td&gt;
		&lt;td id="D7"&gt;&lt;a href="#" class="pawn black"&gt;&amp;#9823;&lt;/a&gt;&lt;/td&gt;
		&lt;td id="E7"&gt;&lt;a href="#" class="pawn black"&gt;&amp;#9823;&lt;/a&gt;&lt;/td&gt;
		&lt;td id="F7"&gt;&lt;a href="#" class="pawn black"&gt;&amp;#9823;&lt;/a&gt;&lt;/td&gt;
		&lt;td id="G7"&gt;&lt;a href="#" class="pawn black"&gt;&amp;#9823;&lt;/a&gt;&lt;/td&gt;
		&lt;td id="H7"&gt;&lt;a href="#" class="pawn black"&gt;&amp;#9823;&lt;/a&gt;&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr&gt;
		&lt;td id="A6"&gt;&lt;/td&gt;
		&lt;td id="B6"&gt;&lt;/td&gt;
		&lt;td id="C6"&gt;&lt;/td&gt;
		&lt;td id="D6"&gt;&lt;/td&gt;
		&lt;td id="E6"&gt;&lt;/td&gt;
		&lt;td id="F6"&gt;&lt;/td&gt;
		&lt;td id="G6"&gt;&lt;/td&gt;
		&lt;td id="H6"&gt;&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr&gt;
		&lt;td id="A5"&gt;&lt;/td&gt;
		&lt;td id="B5"&gt;&lt;/td&gt;
		&lt;td id="C5"&gt;&lt;/td&gt;
		&lt;td id="D5"&gt;&lt;/td&gt;
		&lt;td id="E5"&gt;&lt;/td&gt;
		&lt;td id="F5"&gt;&lt;/td&gt;
		&lt;td id="G5"&gt;&lt;/td&gt;
		&lt;td id="H5"&gt;&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr&gt;
		&lt;td id="A4"&gt;&lt;/td&gt;
		&lt;td id="B4"&gt;&lt;/td&gt;
		&lt;td id="C4"&gt;&lt;/td&gt;
		&lt;td id="D4"&gt;&lt;/td&gt;
		&lt;td id="E4"&gt;&lt;/td&gt;
		&lt;td id="F4"&gt;&lt;/td&gt;
		&lt;td id="G4"&gt;&lt;/td&gt;
		&lt;td id="H4"&gt;&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr&gt;
		&lt;td id="A3"&gt;&lt;/td&gt;
		&lt;td id="B3"&gt;&lt;/td&gt;
		&lt;td id="C3"&gt;&lt;/td&gt;
		&lt;td id="D3"&gt;&lt;/td&gt;
		&lt;td id="E3"&gt;&lt;/td&gt;
		&lt;td id="F3"&gt;&lt;/td&gt;
		&lt;td id="G3"&gt;&lt;/td&gt;
		&lt;td id="H3"&gt;&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr&gt;
		&lt;td id="A2"&gt;&lt;a href="#" class="pawn white"&gt;&amp;#9817;&lt;/a&gt;&lt;/td&gt;
		&lt;td id="B2"&gt;&lt;a href="#" class="pawn white"&gt;&amp;#9817;&lt;/a&gt;&lt;/td&gt;
		&lt;td id="C2"&gt;&lt;a href="#" class="pawn white"&gt;&amp;#9817;&lt;/a&gt;&lt;/td&gt;
		&lt;td id="D2"&gt;&lt;a href="#" class="pawn white"&gt;&amp;#9817;&lt;/a&gt;&lt;/td&gt;
		&lt;td id="E2"&gt;&lt;a href="#" class="pawn white"&gt;&amp;#9817;&lt;/a&gt;&lt;/td&gt;
		&lt;td id="F2"&gt;&lt;a href="#" class="pawn white"&gt;&amp;#9817;&lt;/a&gt;&lt;/td&gt;
		&lt;td id="G2"&gt;&lt;a href="#" class="pawn white"&gt;&amp;#9817;&lt;/a&gt;&lt;/td&gt;
		&lt;td id="H2"&gt;&lt;a href="#" class="pawn white"&gt;&amp;#9817;&lt;/a&gt;&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr&gt;
		&lt;td id="A1"&gt;&lt;a href="#" class="rook white"&gt;&amp;#9814;&lt;/a&gt;&lt;/td&gt;
		&lt;td id="B1"&gt;&lt;a href="#" class="night white"&gt;&amp;#9816;&lt;/a&gt;&lt;/td&gt;
		&lt;td id="C1"&gt;&lt;a href="#" class="bishop white"&gt;&amp;#9815;&lt;/a&gt;&lt;/td&gt;
		&lt;td id="D1"&gt;&lt;a href="#" class="king white"&gt;&amp;#9813;&lt;/a&gt;&lt;/td&gt;
		&lt;td id="E1"&gt;&lt;a href="#" class="wife white"&gt;&amp;#9812;&lt;/a&gt;&lt;/td&gt;
		&lt;td id="F1"&gt;&lt;a href="#" class="bishop white"&gt;&amp;#9815;&lt;/a&gt;&lt;/td&gt;
		&lt;td id="G1"&gt;&lt;a href="#" class="night white"&gt;&amp;#9816;&lt;/a&gt;&lt;/td&gt;
		&lt;td id="H1"&gt;&lt;a href="#" class="rook white"&gt;&amp;#9814;&lt;/a&gt;&lt;/td&gt;
	&lt;/tr&gt;
&lt;/table&gt;</pre>
<h2>The CSS:</h2>
<pre class="brush:[css]">a {
	color:#000;
	display:block;
	font-size:60px;
	height:80px;
	position:relative;
	text-decoration:none;
	text-shadow:0 1px #fff;
	width:80px;
}
#chess_board { border:5px solid #333; }
#chess_board td {
	background:#fff;
	background:-moz-linear-gradient(top, #fff, #eee);
	background:-webkit-gradient(linear,0 0, 0 100%, from(#fff), to(#eee));
	box-shadow:inset 0 0 0 1px #fff;
	-moz-box-shadow:inset 0 0 0 1px #fff;
	-webkit-box-shadow:inset 0 0 0 1px #fff;
	height:80px;
	text-align:center;
	vertical-align:middle;
	width:80px;
}
#chess_board tr:nth-child(odd) td:nth-child(even),
#chess_board tr:nth-child(even) td:nth-child(odd) {
	background:#ccc;
	background:-moz-linear-gradient(top, #ccc, #eee);
	background:-webkit-gradient(linear,0 0, 0 100%, from(#ccc), to(#eee));
	box-shadow:inset 0 0 10px rgba(0,0,0,.4);
	-moz-box-shadow:inset 0 0 10px rgba(0,0,0,.4);
	-webkit-box-shadow:inset 0 0 10px rgba(0,0,0,.4);
}</pre>
<p>I started by using some <a href="http://designindevelopment.com/css/css3-gradients/">CSS3 gradients</a>, which I recently posted about, but the exciting thing here is the really cool use of the :nth-child pseudo selector.  At first I just used the :nth-child(odd) on the table cell, but that created an evenly distributed zebra stripe effect.  I was able to flip it and reverse it nth-child style by applying the reverse on the table row.</p>
<pre>#chess_board tr:nth-child(odd) td:nth-child(even),
#chess_board tr:nth-child(even) td:nth-child(odd)</pre>
<p>What this gives me is the staggered tiling of the rows.  From there I added some box-shadow properties to make the darker tiles seem depressed and the white tiles I added a 1px inset white shadow to act as a highlight.</p>
<p>I can not say enough about box-shadow, text-shadow and gradients.</p>
]]></content:encoded>
			<wfw:commentRss>http://designindevelopment.com/css/css3-chess-board/feed/</wfw:commentRss>
		<slash:comments>23</slash:comments>
		</item>
		<item>
		<title>Going to the jQuery Conference</title>
		<link>http://designindevelopment.com/javascript/going-to-the-jquery-conference/</link>
		<comments>http://designindevelopment.com/javascript/going-to-the-jquery-conference/#comments</comments>
		<pubDate>Thu, 15 Apr 2010 17:32:23 +0000</pubDate>
		<dc:creator>Seth Aldridge</dc:creator>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[2010]]></category>
		<category><![CDATA[Conference]]></category>

		<guid isPermaLink="false">http://designindevelopment.com/?p=17</guid>
		<description><![CDATA[Next weekend I&#8217;ll be going to my first conference and it will be in Mountain View, CA! Needless to say I&#8217;m pretty excited. You can count on a lot of random tweeting from the event and hopefully some interviews with &#8230; <a href="http://designindevelopment.com/javascript/going-to-the-jquery-conference/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Next weekend I&#8217;ll be going to my first conference and it will be in Mountain View, CA!  Needless to say I&#8217;m pretty excited.  You can count on a lot of random tweeting from the event and hopefully some interviews with a few of the speakers.  Worst case I&#8217;ll be writing a review as a sort of postmortem.</p>
<p>If you are also going to the conference hit me up and we&#8217;ll grab a beer!</p>
<p><a href="http://www.twitter.com/sethaldridge">@sethaldridge</a> on twitter.</p>
]]></content:encoded>
			<wfw:commentRss>http://designindevelopment.com/javascript/going-to-the-jquery-conference/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>CSS3 Gradients!</title>
		<link>http://designindevelopment.com/css/css3-gradients/</link>
		<comments>http://designindevelopment.com/css/css3-gradients/#comments</comments>
		<pubDate>Wed, 14 Apr 2010 17:49:00 +0000</pubDate>
		<dc:creator>Seth Aldridge</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[Gradient]]></category>
		<category><![CDATA[Tutorial]]></category>
		<category><![CDATA[Cross Browser]]></category>
		<category><![CDATA[CSS3]]></category>
		<category><![CDATA[Gradients]]></category>
		<category><![CDATA[Mozilla]]></category>
		<category><![CDATA[Webkit]]></category>

		<guid isPermaLink="false">http://designindevelopment.com/?p=4</guid>
		<description><![CDATA[I&#8217;ve been doing a lot of work lately with CSS3 and all that it offers. Gradients have really been fun to work with but can be a little confusing at first if you are unfamiliar with them. This is mostly due to &#8230; <a href="http://designindevelopment.com/css/css3-gradients/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been doing a lot of work lately with CSS3 and all that it offers. Gradients have really been fun to work with but can be a little confusing at first if you are unfamiliar with them. This is mostly due to the fact that not all browsers support them and you have to work a little voodoo magic to get them to look the way you want.</p>
<p>The more I work with them the more I like them. Today I&#8217;m going to focus on the basics and how you can quickly start working with CSS3 Gradients.</p>
<h2>Cross browser support</h2>
<p>The first and most important thing to think about when delving into the new world of CSS3 is making sure you provide a consistent user experience from browser to browser. I&#8217;ve argued that the majority of your users will never notice, meaning a user who uses IE7 probably doesn&#8217;t often use Firefox or Chrome, but to me cross browser support is like a puzzle and one that I love to work on.</p>
<p>On a side note if you use IE at your office and run Windows feel free to install Firefox because it doesn&#8217;t write to your registry and therefor will more than likely pass your companies IT securities. Do this at your own risk. It&#8217;s always good to check with your corporate IT policy before installing anything, but as they say it&#8217;s easier to ask for forgiveness than permission. <img src='http://designindevelopment.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<h2>The CSS</h2>
<p>To start we will create a basic gradient that will fill the body and act as our background.</p>
<pre class="brush:[css]">body {
	/* IE and none awesome browser support */
	background:url(path/to/image.jpg) 0 0 repeat-x;
	/* Firefox support */
	background:-moz-linear-gradient(top, #ccc, #eee);
	/* Chrome/Safari support */
	background:-webkit-gradient(linear, 0 0, 0 100%, from(#ccc), to(#eee));
}</pre>
<p>In the above example I specify background 3 times. The first is a standard CSS2.1 use where we display an image. This will be displayed to anyone using a legacy browser.</p>
<h3>Mozilla (Firefox)</h3>
<p>The second example is for Mozilla Firefox and is by far the easiest to use:</p>
<pre>background:-moz-linear-gradient(top, #ccc, #eee);</pre>
<p>The first thing to note is how you reference the gradient.</p>
<pre>-moz-linear-gradient();</pre>
<p>With Firefox you specify that the gradient will be linear, meaning from one point to another in a straight line.  If you are familiar with javascript then this surprisingly starts to look like a function — which only occurred to me recently as I&#8217;ve learned more about Javascript and PHP style languages, but I&#8217;m slower than most people.</p>
<p>The next part specifies the &#8220;top&#8221; property meaning we are starting our first color from the top and moving downward.  From there we specify our starting color and ending color.  In our example our starting color is &#8220;#ccc&#8221; and our ending color is &#8220;#eee&#8221;.</p>
<h3>Webkit (Chrome/Safari)</h3>
<p>The third example is for Webkit based browsers.  This typically covers Google Chrome, Safari, and Mobile Safari.</p>
<pre>background:-webkit-gradient(linear, 0 0, 0 100%, from(#ccc), to(#eee));</pre>
<p>The Webkit version is a little more complex, but arguably gives you more fine control over the gradient position.</p>
<pre>-webkit-gradient();</pre>
<p>You should notice that calling the style is different than the Firefox version in that you specify &#8220;linear&#8221; as a parameter rather than in the name.  After specifying which type of gradient you want you then list out the points &#8220;Left Top&#8221; and &#8220;Right Bottom&#8221;. Similar to the firefox version you next specify the &#8220;from()&#8221; color and &#8220;to()&#8221; color.</p>
<h2>In Closing</h2>
<p>I have really enjoyed playing with gradients on the web, and while they aren&#8217;t supported in earlier version of modern browsers or IE, it&#8217;s always a good idea to get familiar with these new concepts. If there is one thing I&#8217;ve learned it is always important to get ahead of new information and not be struggling to pick it up when it&#8217;s in demand.</p>
<p>I&#8217;ll make sure to go deeper into this topic in the future so keep checking back for updates.  Also, if there is something specific you are interested in learning let me know in the comments.</p>
]]></content:encoded>
			<wfw:commentRss>http://designindevelopment.com/css/css3-gradients/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>

