<?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>Codrops &#187; CSS</title>
	<atom:link href="http://tympanus.net/codrops/tag/css/feed/" rel="self" type="application/rss+xml" />
	<link>http://tympanus.net/codrops</link>
	<description>Useful resources and inspiration for creative minds</description>
	<lastBuildDate>Mon, 06 Feb 2012 07:30:10 +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>CSS Buttons with Pseudo-elements</title>
		<link>http://tympanus.net/codrops/2012/01/11/css-buttons-with-pseudo-elements/</link>
		<comments>http://tympanus.net/codrops/2012/01/11/css-buttons-with-pseudo-elements/#comments</comments>
		<pubDate>Wed, 11 Jan 2012 16:42:09 +0000</pubDate>
		<dc:creator>Sergio Camalich</dc:creator>
				<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[::before]]></category>
		<category><![CDATA[buttons]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[CSS3]]></category>
		<category><![CDATA[gradients]]></category>
		<category><![CDATA[pseudo-elements]]></category>

		<guid isPermaLink="false">http://tympanus.net/codrops/?p=7170</guid>
		<description><![CDATA[In this tutorial, I'll show you how to create buttons with a twist, using just one anchor tag per button and the great power of CSS.]]></description>
			<content:encoded><![CDATA[<p><a href="http://tympanus.net/Tutorials/CSSButtonsPseudoElements/"><img src="http://tympanus.net/codrops/wp-content/uploads/2012/01/cssbuttons_main1.jpg" alt="cssbuttons_main" title="" width="580" height="315" class="aligncenter size-full wp-image-7259" /></a></p>
<p><a class="demo" href="http://tympanus.net/Tutorials/CSSButtonsPseudoElements/">View demo</a> <a class="download" href="http://tympanus.net/Tutorials/CSSButtonsPseudoElements/CSSButtonsPseudoElements.zip">Download source</a></p>
<p>Hola, amigos. For the last month or so, I&#8217;ve been experimenting with the power of CSS pseudo-elements, specially when it comes to mixing them with buttons and that way recreating some great effects that were only possible to do with sprites, in the past.</p>
<p>In this tutorial, I&#8217;ll show you how to create buttons with a twist, using just one anchor tag per button and the great power of CSS.</p>
<p>The font used is &#8216;Open Sans&#8217; by <a href="https://profiles.google.com/107777320916704234605/about">Steve Matteson</a>.</p>
<p><strong>Disclaimer:</strong><br />
<em>I&#8217;ll not be using CSS vendor prefixes in this tutorial or else it would be crazy long, but you will find them in the downloadable files.</p>
<p>I avoided CSS transitions since, right now, Firefox is the only browser that supports them on pseudo-elements. Plus, I believe that these buttons work just fine without them.</em></p>
<div id="bsap_1266918" class="bsarocks bsap_af25dfd2f1908889af7a1aa5f4dcbd9e"></div><div style="clear:both;"></div>
<h4>Markup</h4>
<p>The structure of all these buttons needs just one anchor tag for it to work, since we will be creating the other elements with the ::before pseudo-class.</p>
<pre class="brush:xml">
<a href="#" class="a_demo_one">
     Click me!
</a>
</pre>
<h3>Example 1</h3>
<p><a href="http://tympanus.net/Tutorials/CSSButtonsPseudoElements/"><img src="http://tympanus.net/codrops/wp-content/uploads/2012/01/cssbuttons_01.jpg" alt="cssbuttons_01" title="" width="580" height="250" class="aligncenter size-full wp-image-7246" /></a></p>
<p>I think this is the easiest one, with a very regular CSS.</p>
<h4>CSS</h4>
<p>First of all, we will give the general style of the button, including its active state. It is important to notice the relative positioning, since it will help us later with the positioning of the ::before element:</p>
<pre class="brush:css">
.a_demo_one {
	background-color:#ba2323;
	padding:10px;
	position:relative;
	font-family: 'Open Sans', sans-serif;
	font-size:12px;
	text-decoration:none;
	color:#fff;
	border: solid 1px #831212;
	background-image: linear-gradient(bottom, rgb(171,27,27) 0%, rgb(212,51,51) 100%);
	border-radius: 5px;
}

.a_demo_one:active {
	padding-bottom:9px;
	padding-left:10px;
	padding-right:10px;
	padding-top:11px;
	top:1px;
	background-image: linear-gradient(bottom, rgb(171,27,27) 100%, rgb(212,51,51) 0%);
}
</pre>
<p>Then, we create the gray container using the ::before pseudo-element. Absolute positioning makes our life easier to, believe it or not, position our element:</p>
<pre class="brush:css">
.a_demo_one::before {
	background-color:#ccd0d5;
	content:"";
	display:block;
	position:absolute;
	width:100%;
	height:100%;
	padding:8px;
	left:-8px;
	top:-8px;
	z-index:-1;
	border-radius: 5px;
	box-shadow: inset 0px 1px 1px #909193, 0px 1px 0px #fff;
}
</pre>
<h3>Example 2</h3>
<p><a href="http://tympanus.net/Tutorials/CSSButtonsPseudoElements/index2.html"><img src="http://tympanus.net/codrops/wp-content/uploads/2012/01/cssbuttons_021.jpg" alt="cssbuttons_02" title="" width="580" height="250" class="aligncenter size-full wp-image-7258" /></a></p>
<p>This one is a little bit more complex because of the 3D&#8217;ish look. This button is outside of its &#8216;container&#8217;, but when you click it, it goes down:</p>
<h4>CSS</h4>
<pre class="brush:css">
.a_demo_two {
	background-color:#6fba26;
	padding:10px;
	position:relative;
	font-family: 'Open Sans', sans-serif;
	font-size:12px;
	text-decoration:none;
	color:#fff;
	background-image: linear-gradient(bottom, rgb(100,170,30) 0%, rgb(129,212,51) 100%);
	box-shadow: inset 0px 1px 0px #b2f17f, 0px 6px 0px #3d6f0d;
	border-radius: 5px;
}

.a_demo_two:active {
	top:7px;
	background-image: linear-gradient(bottom, rgb(100,170,30) 100%, rgb(129,212,51) 0%);
	box-shadow: inset 0px 1px 0px #b2f17f, inset 0px -1px 0px #3d6f0d;
	color: #156785;
	text-shadow: 0px 1px 1px rgba(255,255,255,0.3);
	background: rgb(44,160,202);
}
</pre>
<p><strong>And here&#8217;s the tricky part: </strong></p>
<p>Since the position of the pseudo-element depends on its parent, once the parent moves down a few pixels, you have to move up the pseudo-element that same amount of pixels.</p>
<pre class="brush:css">
.a_demo_two::before {
	background-color:#072239;
	content:"";
	display:block;
	position:absolute;
	width:100%;
	height:100%;
	padding-left:2px;
	padding-right:2px;
	padding-bottom:4px;
	left:-2px;
	top:5px;
	z-index:-1;
	border-radius: 6px;
	box-shadow: 0px 1px 0px #fff;
}

.a_demo_two:active::before {
	top:-2px;
}
</pre>
<h3>Example 3</h3>
<p><a href="http://tympanus.net/Tutorials/CSSButtonsPseudoElements/index3.html"><img src="http://tympanus.net/codrops/wp-content/uploads/2012/01/cssbuttons_03.jpg" alt="cssbuttons_03" title="" width="580" height="250" class="aligncenter size-full wp-image-7248" /></a></p>
<p>I think this one is my favorite since it was the first one I ever made this way and people seem to really like it. It is a divided button that &#8220;breaks&#8221; once you click it.</p>
<h4>CSS</h4>
<p>Again, the first thing we have to do is create the lighter part. In here, you&#8217;ll notice a right margin, this is in order to compensate for the width of the pseudo-element if you want to center the button. You don&#8217;t need it if that is not a problem for you.</p>
<pre class="brush:css">
.a_demo_three {
	background-color:#3bb3e0;
	font-family: 'Open Sans', sans-serif;
	font-size:12px;
	text-decoration:none;
	color:#fff;
	position:relative;
	padding:10px 20px;
	border-left:solid 1px #2ab7ec;
	margin-left:35px;
	background-image: linear-gradient(bottom, rgb(44,160,202) 0%, rgb(62,184,229) 100%);
	border-top-right-radius: 5px;
	border-bottom-right-radius: 5px;
	box-shadow: inset 0px 1px 0px #2ab7ec, 0px 5px 0px 0px #156785, 0px 10px 5px #999;
}

.a_demo_three:active {
	top:3px;
	background-image: linear-gradient(bottom, rgb(62,184,229) 0%, rgb(44,160,202) 100%);
	box-shadow: inset 0px 1px 0px #2ab7ec, 0px 2px 0px 0px #156785, 0px 5px 3px #999;
}
</pre>
<p>And then the pseudo-element&#8217;s CSS:</p>
<pre class="brush:css">
.a_demo_three::before {
	content:"·";
	width:35px;
	max-height:29px;
	height:100%;
	position:absolute;
	display:block;
	padding-top:8px;
	top:0px;
	left:-36px;
	font-size:16px;
	font-weight:bold;
	color:#8fd1ea;
	text-shadow:1px 1px 0px #07526e;
	border-right:solid 1px #07526e;
	background-image: linear-gradient(bottom, rgb(10,94,125) 0%, rgb(14,139,184) 100%);
	border-top-left-radius: 5px;
	border-bottom-left-radius: 5px;
	box-shadow:inset 0px 1px 0px #2ab7ec, 0px 5px 0px 0px #032b3a, 0px 10px 5px #999 ;
}

.a_demo_three:active::before {
	top:-3px;
	box-shadow:inset 0px 1px 0px #2ab7ec, 0px 5px 0px 0px #032b3a, 1px 1px 0px 0px #044a64, 2px 2px 0px 0px #044a64, 2px 5px 0px 0px #044a64, 6px 4px 2px #0b698b, 0px 10px 5px #999 ;
}
</pre>
<h3>Example 4</h3>
<p><a href="http://tympanus.net/Tutorials/CSSButtonsPseudoElements/index4.html"><img src="http://tympanus.net/codrops/wp-content/uploads/2012/01/cssbuttons_04.jpg" alt="cssbutton_04" title="" width="580" height="250" class="aligncenter size-full wp-image-7249" /></a></p>
<p>This time, we will use the pseudo-element as a pointer, using one image as a background, though you can use some of those great <a href="http://css-tricks.com/examples/IconFont/">icon fonts</a>.</p>
<h4>CSS</h4>
<pre class="brush:css">
.a_demo_four {
	background-color:#4b3f39;
	font-family: 'Open Sans', sans-serif;
	font-size:12px;
	text-decoration:none;
	color:#fff;
	position:relative;
	padding:10px 20px;
	padding-right:50px;
	background-image: linear-gradient(bottom, rgb(62,51,46) 0%, rgb(101,86,78) 100%);
	border-radius: 5px;
	box-shadow: inset 0px 1px 0px #9e8d84, 0px 5px 0px 0px #322620, 0px 10px 5px #999;
}

.a_demo_four:active {
	top:3px;
	background-image: linear-gradient(bottom, rgb(62,51,46) 100%, rgb(101,86,78) 0%);
	box-shadow: inset 0px 1px 0px #9e8d84, 0px 2px 0px 0px #322620, 0px 5px 3px #999;
}

.a_demo_four::before {
	background-color:#322620;
	background-image:url(../images/right_arrow.png);
	background-repeat:no-repeat;
	background-position:center center;
	content:"";
	width:20px;
	height:20px;
	position:absolute;
	right:15px;
	top:50%;
	margin-top:-9px;
	border-radius: 50%;
	box-shadow: inset 0px 1px 0px #19120f, 0px 1px 0px #827066;
}

.a_demo_four:active::before {
	top:50%;
	margin-top:-12px;
	box-shadow: inset 0px 1px 0px #827066, 0px 3px 0px #19120f, 0px 6px 3px #382e29;
}
</pre>
<h3>Example 5</h3>
<p><a href="http://tympanus.net/Tutorials/CSSButtonsPseudoElements/index5.html"><img src="http://tympanus.net/codrops/wp-content/uploads/2012/01/cssbuttons_05.jpg" alt="cssbuttons_05" title="" width="580" height="250" class="aligncenter size-full wp-image-7250" /></a></p>
<p>This example is a bit cheesy, I know, but you can use it in so many and really useful ways.</p>
<h4>CSS</h4>
<pre class="brush:css">
.a_demo_five {
	background-color:#9827d3;
	width:150px;
	display:inline-block;
	font-family: 'Open Sans', sans-serif;
	font-size:12px;
	text-decoration:none;
	color:#fff;
	position:relative;
	margin-top:40px;
	padding-bottom:10px;
	padding-top:10px;
	background-image: linear-gradient(bottom, rgb(168,48,232) 100%, rgb(141,32,196) 0%);
	border-bottom-right-radius: 5px;
	border-bottom-left-radius: 5px;
	box-shadow: inset 0px 1px 0px #ca73f8, 0px 5px 0px 0px #6a1099, 0px 10px 5px #999;
}

.a_demo_five:active {
	top:3px;
	background-image: linear-gradient(bottom, rgb(168,48,232) 0%, rgb(141,32,196) 100%);
	box-shadow: inset 0px 4px 1px #7215a3, 0px 2px 0px 0px #6a1099, 0px 5px 3px #999;
}

.a_demo_five::before {
	background-color:#fff;
	background-image:url(../images/heart.gif);
	background-repeat:no-repeat;
	background-position:center center;
	border-left:solid 1px #CCC;
	border-top:solid 1px #CCC;
	border-right:solid 1px #CCC;
	content:"";
	width:148px;
	height:40px;
	position:absolute;
	top:-30px;
	left:0px;
	margin-top:-11px;
	z-index:-1;
	border-top-left-radius: 5px;
	border-top-right-radius: 5px;
}

.a_demo_five:active::before {
	top: -33px;
	box-shadow: 0px 3px 0px #ccc;
}
</pre>
<h3>In the end</h3>
<p>And well, this is it, for now. Remember that these buttons are still kind of experimental, so not every browser supports them that well. </p>
<p>Thank you for reading this tutorial and I hope that you find it useful.</p>
<p><a class="demo" href="http://tympanus.net/Tutorials/CSSButtonsPseudoElements/">View demo</a> <a class="download" href="http://tympanus.net/Tutorials/CSSButtonsPseudoElements/CSSButtonsPseudoElements.zip">Download source</a></p>
<div class="googlead"><!-- wp_ad_camp_1 --></div>
]]></content:encoded>
			<wfw:commentRss>http://tympanus.net/codrops/2012/01/11/css-buttons-with-pseudo-elements/feed/</wfw:commentRss>
		<slash:comments>61</slash:comments>
		</item>
		<item>
		<title>Slopy Elements with CSS3</title>
		<link>http://tympanus.net/codrops/2011/12/21/slopy-elements-with-css3/</link>
		<comments>http://tympanus.net/codrops/2011/12/21/slopy-elements-with-css3/#comments</comments>
		<pubDate>Wed, 21 Dec 2011 11:27:36 +0000</pubDate>
		<dc:creator>Mary Lou</dc:creator>
				<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[CSS3]]></category>
		<category><![CDATA[html5]]></category>
		<category><![CDATA[rotate]]></category>
		<category><![CDATA[transform]]></category>

		<guid isPermaLink="false">http://tympanus.net/codrops/?p=6895</guid>
		<description><![CDATA[It's always a delight to see some non-straight elements in web design. Angled shapes and diagonal lines can create an interesting visual flow and add some unexpected excitement. Inspired by many superb designs that use non-straight elements, I want to show you some simple examples and ways how to create slopy, skewed elements with CSS only.]]></description>
			<content:encoded><![CDATA[<p><a href="http://tympanus.net/Tutorials/SlopyElements/" target="_blank"><img src="http://tympanus.net/codrops/wp-content/uploads/2011/12/SlopyElements1.jpg" alt="SlopyElements" width="580" height="315" class="aligncenter size-full wp-image-6944" /></a></p>
<p><a class="demo" href="http://tympanus.net/Tutorials/SlopyElements/" target="_blank">View demo</a> <a class="download" href="http://tympanus.net/Tutorials/SlopyElements/SlopyElements.zip">Download source</a></p>
<p>It&#8217;s always a delight to see some non-straight elements in web design. Angled shapes and diagonal lines can create an interesting visual flow and add some unexpected excitement. Inspired by many superb designs that use non-straight elements, I want to show you some simple examples and ways how to create slopy, skewed elements with CSS only.</p>
<p>So, let&#8217;s begin!</p>
<div id="bsap_1266918" class="bsarocks bsap_af25dfd2f1908889af7a1aa5f4dcbd9e"></div><div style="clear:both;"></div>
<h3>Example 1</h3>
<p><a href="http://tympanus.net/Tutorials/SlopyElements/" target="_blank"><img src="http://tympanus.net/codrops/wp-content/uploads/2011/12/SlopyElements_01.jpg" alt="SlopyElements_01" width="580" height="297" class="aligncenter size-full wp-image-6898" /></a></p>
<p>In our first example, we want to have a pretty normal layout with a little twist: we want a diagonal separation between the elements. We will achieve that by rotating the wrappers of the content articles. But, since we don&#8217;t want the content itself to be rotated, we&#8217;ll simply rotate each article back.</p>
<h4>The Markup</h4>
<p>Let&#8217;s create a section for our whole content and inside we&#8217;ll add some divisions with the class <strong>se-slope</strong>. Each one is going to have an article with some headline and text:</p>
<pre class="brush:xml">
&lt;section class="se-container"&gt;
	&lt;div class="se-slope"&gt;
		&lt;article class="se-content"&gt;
			&lt;h3&gt;Some headline&lt;/h3&gt;
			&lt;p&gt;Some text&lt;/p&gt;
		&lt;/article&gt;
	&lt;/div&gt;
	&lt;div class="se-slope"&gt;
		&lt;!-- ... --&gt;
	&lt;/div&gt;
	&lt;!-- ... --&gt;
&lt;/section&gt;
</pre>
<p>Now, let&#8217;s check our the style.</p>
<h4>The CSS</h4>
<p>The body will have the same background color like all the even <strong>se-slope</strong> elements, which is pink. This will &#8220;hide&#8221; some edges of the rotated elements:</p>
<pre class="brush:css">
body{
	background: #e90089;
}
</pre>
<p>The main wrapper will have the overflow hidden because we will want to pull the rotated elements in a way that they would stick out, so let&#8217;s not show that:</p>
<pre class="brush:css">
.se-container{
	display: block;
	width: 100%;
	overflow: hidden;
	padding-top: 150px;
}
</pre>
<p>The divisions will all be rotated: the odd ones will be black and rotated 5 degrees and the even ones will be pink and rotated -5 degrees. Because of the rotation, we&#8217;ll need to adjust the positioning of the odd elements in order to fit as we want them to. So, we&#8217;ll add a negative top margin in order to pull them up:</p>
<pre class="brush:css">
.se-slope{
	margin: 0 -50px;
	transform-origin: left center;
}
.se-slope:nth-child(odd){
	background: #000;
	transform: rotate(5deg);
	margin-top: -200px;
	box-shadow: 0px -1px 3px rgba(0,0,0,0.4);
}
.se-slope:nth-child(even){
	background: #e90089;
	transform: rotate(-5deg);
	box-shadow: 0px 2px 3px rgba(0,0,0,0.4) inset;
}
</pre>
<p>Let&#8217;s center the article:</p>
<pre class="brush:css">
.se-content{
	margin: 0 auto;
}
</pre>
<p>Let&#8217;s give the headline a special look. We&#8217;ll add the :before and :after pseudo element in order to create some asymmetric triangles on both sides using the transparent border trick:</p>
<pre class="brush:css">
.se-content h3{
	font-size: 60px;
	position: relative;
	display: inline-block;
	padding: 10px 30px 8px 30px;
	height: 80px;
	line-height: 80px;
	margin-bottom: 20px;
	font-family: 'Bitter', 'Trebuchet MS', Arial;
	text-shadow: 1px 1px 1px rgba(0,0,0,0.9);
}
.se-slope:nth-child(odd) .se-content h3{
	background: #e90089;
	color: #000;
}
.se-slope:nth-child(even) .se-content h3{
	background: #000;
	color: #e90089;
}
.se-content h3:before{
	content: '';
	width: 0;
	height: 0;
	border-top: 38px solid transparent;
	border-bottom: 60px solid transparent;
	border-right: 60px solid black;
	position: absolute;
	left: -59px;
	top: 0px;
}
.se-content h3:after{
	content: '';
	width: 0;
	height: 0;
	border-top: 38px solid transparent;
	border-bottom: 60px solid transparent;
	border-left: 60px solid black;
	position: absolute;
	right: -59px;
	top: 0px;
}
</pre>
<p>Let&#8217;s adjust the color for the odd elements:</p>
<pre class="brush:css">
.se-slope:nth-child(odd) .se-content h3:before,
.se-slope:nth-child(odd) .se-content h3:after{
	border-right-color: #e90089;
	border-left-color: #e90089;
}
</pre>
<p>The style for the paragraph will be the following:</p>
<pre class="brush:css">
.se-content p{
	width: 75%;
	max-width: 500px;
	margin: 0 auto;
	font-style: italic;
	font-size: 18px;
	line-height: 24px;
	padding-top: 10px;
}
</pre>
<p>With the :first-letter selector we can style the first letter differently:</p>
<pre class="brush:css">
.se-content p:first-letter{
	font-size: 40px;
	font-family: 'Adobe Garamond Pro', Georgia, serif;
}
</pre>
<p>Let&#8217;s rotate the article back to 0 and adjust the paddings to fit the content nicely:</p>
<pre class="brush:css">
.se-slope:nth-child(odd) .se-content{
	transform: rotate(-5deg);
	color: #e90089;
	padding: 130px 100px 250px 100px;
}
.se-slope:nth-child(even) .se-content{
	transform: rotate(5deg);
	color: #000;
	padding: 150px 100px 250px 100px;
}
</pre>
<p>And that was the first example! Let&#8217;s look at the second one.</p>
<h3>Example 2</h3>
<p><a href="http://tympanus.net/Tutorials/SlopyElements/index2.html" target="_blank"><img src="http://tympanus.net/codrops/wp-content/uploads/2011/12/SlopyElements_02.jpg" alt="SlopyElements_02" width="580" height="276" class="aligncenter size-full wp-image-6899" /></a></p>
<p>In the second example, we&#8217;ll only use the transparent border trick and some pseudo elements in order to create an arrow-shaped, alternating structure. </p>
<h4>The Markup</h4>
<p>In the second example we&#8217;ll have the same structure, except for some classes: we&#8217;ll be adding the class <strong>sl-slope-black</strong> or <strong>sl-slope-pink</strong>, depening on which color we want the division to be:</p>
<pre class="brush:xml">
&lt;section class="se-container"&gt;
	&lt;div class="se-slope sl-slope-black"&gt;
		&lt;article class="se-content"&gt;
			&lt;h3&gt;Some headline&lt;/h3&gt;
			&lt;p&gt;Some text&lt;/p&gt;
		&lt;/article&gt;
	&lt;/div&gt;
	&lt;div class="se-slope sl-slope-pink"&gt;
		&lt;!-- ... --&gt;
	&lt;/div&gt;
	&lt;!-- ... --&gt;
&lt;/section&gt;
</pre>
<p>Let style &#8216;em!</p>
<h4>The CSS</h4>
<p>The container will have the same style as before and the body will have a pink background, again:</p>
<pre class="brush:css">
body{
	background: #e90089
}
.se-container{
	display: block;
	width: 100%;
	overflow: hidden;
	box-shadow: 0px 0px 10px #000;
}
</pre>
<p>The slope divisions will be floating and we&#8217;ll stack two next to each other, so let&#8217;s set the width to 50%:</p>
<pre class="brush:css">
.se-slope{
	width: 50%;
	height: 300px;
	position: relative;
	float: left;
	overflow: hidden;
}
</pre>
<p>Let&#8217;s add some padding to the content:</p>
<pre class="brush:css">
.se-slope .se-content{
	margin: 50px 100px 0px 100px;
}
</pre>
<p>Let&#8217;s give the background colors to the black and pink divisions:</p>
<pre class="brush:css">
.se-slope-black{
	background: #000;
}
.se-slope-pink{
	background: #e90089;
}
</pre>
<p>So, each black element is going to have a :after pseudo element style for the arrow shape. The odd black elements will have it pointing to the left and the even ones will have it pointing to the right:</p>
<pre class="brush:css">
.se-slope-black:nth-child(odd):after,
.se-slope-black:nth-child(even):after{
	content: '';
	position: absolute;
	bottom: 0px;
	width: 0px;
	height: 0px;
	border-top: 150px solid transparent;
	border-bottom: 150px solid transparent;
}
.se-slope-black:nth-child(odd):after{
	border-right: 60px solid #e90089;
	right: 0px;
}
.se-slope-black:nth-child(even):after{
	border-left: 60px solid #e90089;
	left: 0px;
}
</pre>
<p>Let&#8217;s style the headlines and give them the respective background color:</p>
<pre class="brush:css">
.se-content h3{
	z-index: 10;
	font-size: 30px;
	margin-top: 60px;
	position: relative;
	display: inline-block;
	padding: 15px 20px;
	line-height: 40px;
	font-family: 'Bitter', 'Trebuchet MS', Arial;
	text-shadow: 1px 1px 1px rgba(0,0,0,0.9);
}
.se-slope.se-slope-black h3{
	background: #e90089;
}
.se-slope.se-slope-pink h3{
	background: #000;
}
</pre>
<p>Let&#8217;s add some skewed shape to the ends of the heading using :after and :before:</p>
<pre class="brush:css">
.se-slope.se-slope-black h3:after,
.se-slope.se-slope-black h3:before,
.se-slope.se-slope-pink h3:after,
.se-slope.se-slope-pink h3:before{
	content: '';
	width: 0px;
	height: 0px;
	top: 0px;
	position: absolute;
}
.se-slope.se-slope-black h3:after{
	border-top: 70px solid transparent;
	border-left: 30px solid #e90089;
	right: -30px;
}
.se-slope.se-slope-black h3:before{
	border-bottom: 70px solid transparent;
	border-right: 30px solid #e90089;
	left: -30px;
}
.se-slope.se-slope-pink h3:after{
	border-top: 70px solid transparent;
	border-right: 30px solid #000;
	left: -30px;
}
.se-slope.se-slope-pink h3:before{
	border-bottom: 70px solid transparent;
	border-left: 30px solid #000;
	right: -30px;
}
</pre>
<p>We&#8217;ll use the paragraph as a decorative element. The ones on the left side will be rotated 15 degrees and the ones on the right side will be rotated -15 degrees:</p>
<pre class="brush:css">
.se-content p{
	position: absolute;
	z-index: 9;
	opacity: 0.3;
	font-size: 50px;
	text-align: left;
	transform-origin: top center;
}
.se-slope:nth-child(even) .se-content p{
	transform: rotate(-15deg);
	top: -100px;
	right: -50px;
	text-align: left;
	width: 95%;
}
.se-slope:nth-child(odd) .se-content p{
	transform: rotate(15deg);
	top: -100px;
	left: -50px;
	text-align: right;
	width: 90%;
}
.se-slope.sl-slope-pink .se-content p{
	color: #000;
}
</pre>
<p>And that&#8217;s it! I hope you enjoyed this tutorial and find it useful!</p>
<p><a class="demo" href="http://tympanus.net/Tutorials/SlopyElements/" target="_blank">View demo</a> <a class="download" href="http://tympanus.net/Tutorials/SlopyElements/SlopyElements.zip">Download source</a></p>
<div class="googlead"><!-- wp_ad_camp_1 --></div>
]]></content:encoded>
			<wfw:commentRss>http://tympanus.net/codrops/2011/12/21/slopy-elements-with-css3/feed/</wfw:commentRss>
		<slash:comments>15</slash:comments>
		</item>
		<item>
		<title>HTML Only &#8211; The Significance of Proper Markup in Web Design</title>
		<link>http://tympanus.net/codrops/2011/08/31/html-only-the-significance-of-proper-markup/</link>
		<comments>http://tympanus.net/codrops/2011/08/31/html-only-the-significance-of-proper-markup/#comments</comments>
		<pubDate>Wed, 31 Aug 2011 10:13:24 +0000</pubDate>
		<dc:creator>Patrick Cox</dc:creator>
				<category><![CDATA[Web Design]]></category>
		<category><![CDATA[best practice]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[markup]]></category>
		<category><![CDATA[semantic]]></category>
		<category><![CDATA[website]]></category>

		<guid isPermaLink="false">http://tympanus.net/codrops/?p=5585</guid>
		<description><![CDATA[This article is about the importance of proper markup in a website. A great way to make sure your site works properly is to write your HTML first before you jump into the CSS and JS. This will allow you to focus on the content and the functions and test them before you start making everything pretty.]]></description>
			<content:encoded><![CDATA[<p><img class="aligncenter size-full wp-image-5593" title="featured_image" src="http://tympanus.net/codrops/wp-content/uploads/2011/08/featured_image3.jpg" alt="" width="580" height="315" />On our trip back from Yellowstone National Park recently, we wanted to stop by a Redbox and grab a few DVD&#8217;s for our daughter to watch on the way. Not familiar with the surroundings, I pulled out my semi-smart Blackberry phone and hit up Redbox.com to find some locations and maybe reserve a few items. After the phone locked up while &#8220;loading style sheets&#8221; (I&#8217;ll blame T-Mobile&#8217;s coverage for this one) I turned off CSS and reloaded. With Javascript disabled I received the bare bones HTML only Redbox site and was greeted with big text that read &#8220;<em>Sorry, Your Shopping Cart is Full</em>&#8220;. I&#8217;m not sure where that came from since I hadn&#8217;t signed into my account yet, but I should have realized that this was the first of many problems I would have.</p>
<p>The <strong>bare bones HTML</strong> site was pretty easy to read and I was able to located the &#8220;Find A Redbox&#8221; button but was unable to click on it. My cursor highlighted the button, but no clicky for me. After reloading with a few times with Javascript and without I was finally able to click the button and fill out the form, but the Javascript buttons wouldn&#8217;t work yet again. Eventually (45 minutes later) I was able to almost have success. But luckily, my wife just Google texted Redbox and with seconds received a few texts with Redbox locations. Now, I&#8217;m not writing this to talk about how great Google text is, I&#8217;m writing this to discuss how websites like Redbox.com can make their web experiences better even when the operating system, service and all other variables are not.</p>
<div id="bsap_1266918" class="bsarocks bsap_af25dfd2f1908889af7a1aa5f4dcbd9e"></div><div style="clear:both;"></div>
<p>The fix is really pretty simple, it&#8217;s really just a matter of making sure that our markup is <strong>readable, workable, usable</strong>. These are really just basic things that we all know, but it seems like there is still a lot of sites being created with bad habits, so it&#8217;s a matter of changing a few old habits.</p>
<p>Try implementing some of these methods on your next project:</p>
<ul>
<li>think about content before you code</li>
<li>make sure it works before you style</li>
<li>think more semantically</li>
</ul>
<h3>Content, Content, Content</h3>
<p><img class="aligncenter size-full wp-image-5589" title="content" src="http://tympanus.net/codrops/wp-content/uploads/2011/08/content.jpg" alt="" width="580" height="315" /></p>
<p>Content is the reason why anybody actually visits a website. Some of us visit or find sites just for pure design reasons, but the majority of surfers, shoppers and readers only view websites for the <strong>content</strong>. People are generally looking for something to learn, buy or inspire them so the content is still king over pretty design. Your HTML should always present all the important content you want your users to view &#8211; avoid injecting important content through Javascript or CSS. Along with headers and paragraphs, also make sure you include forms, buttons, navigation and images.</p>
<p>Images can be tricky, especially when you are thinking mobile first because you don&#8217;t want to load a bunch of images that are not necessary and slow down you mobile load time. Some designers <em>prefer</em> to never use the tag and load images via CSS through the background property, but this method may hurt the bare bones user experience because images can be just as valuable as content. My little rule of thumb is to separate images into <strong>two categories</strong>: content and style. &#8216;Style&#8217; images are used for navigation buttons, backgrounds, list icons, etc. &#8216;Content&#8217; images are images that relate to the actual content like author pics, related images within articles, or basically any image that is inline with content.</p>
<p>Refrain from using any inline styling. Now depending on the OS, CSS inline styles may or may not be displayed when CSS is turned off so it becomes unpredictable and we all know we should never use inline CSS (if at all possible). But more critical, use discretion on HTML styles like height and width. If you are presenting some table data or something that needs to be laid out then by all means lay it out &#8211; that makes your HTML easier to read and follow. Basically, don&#8217;t use CSS inline styles and avoid block <strong>HTML styling</strong> where possible.</p>
<h3>Everything Needs to Work</h3>
<p><img class="aligncenter size-full wp-image-5590" title="works" src="http://tympanus.net/codrops/wp-content/uploads/2011/08/works.jpg" alt="" width="580" height="315" /></p>
<p>Okay, now this really is a no-brainer, but there are probably thousands of sites out there that don&#8217;t work properly when stripped down to HTML only. If you have a search form or any kind of form, make sure the user can fill it out and submit it without any a Javascript (JS) or CSS crutch. At the very least, if you have forms or functions that require JS, add a friendly, nice reminder that such elements need JS turned on in order to work &#8211; this will at least let the user know so that they can make the decision instead of fumbling around for an hour trying to figure it out.</p>
<p>A great way to make sure your site works properly is to write your HTML first before you jump into the CSS and JS. This will allow you to focus on the content and the functions and <strong>test</strong> them before you start making everything pretty. I used to write my HTML and CSS together, where I would take a portion of the psd file (like the header) and code it up completely with images and layout, then move to the next portion. But now, I stare at the psd file, code up the layout in my head (or in a sketch book), and then write my HTML from start to finish.</p>
<h3>Think More Semantically</h3>
<p><img class="aligncenter size-full wp-image-5591" title="meaning" src="http://tympanus.net/codrops/wp-content/uploads/2011/08/meaning.jpg" alt="" width="580" height="315" /></p>
<p>The big buzz word in web design (beside HTML5, CSS3 or responsive web design) is &#8220;<em>semantic markup</em>&#8220;. But what really is it? Semantic markup is just basically the meaning of the content and using the tags that reflect that meaning. <strong>A good example</strong> is the difference between the strong/em tags versus the bold/italic tags. Bold and italic are really just a text style but they don&#8217;t really show any meaning to the text &#8211; strong and em attach meaning to the content as well as assign style.</p>
<p>Now, thanks to HTML5, we have a variety of tags we can use to make out site more semantic like &#8216;header&#8217;, &#8216;footer&#8217;, &#8216;aside&#8217; and &#8216;article&#8217;,  just to name a few. Not everything is implemented in HTML5 but there is still a lot of new tags that you can use to markup your site in a more semantic way. Even if you decide not to make the jump in quite yet or you want to use new HTML5 tags that aren&#8217;t fully adopted yet, just assign your divs those tag names and get in the habit. Assign your header div the id of &#8220;header&#8221; or assigning your post divs, change their class name to &#8220;article&#8221;. <em>The point is this</em>: start thinking about semantics and start thinking about what HTML5 can do, even just thinking about your code more semantically <strong>now</strong> is better than not.</p>
<h3>So Easy a Caveman Can Do It</h3>
<p>HTML is the most primitive web language and is the foundation of pretty much every web site &#8211; it&#8217;s so easy even a caveman can do it&#8230; right. This doesn&#8217;t mean that it&#8217;s the easiest thing to use in it&#8217;s bare form or even easy to design with (<em>hence CSS</em>). Not everybody knows how to start a fire with just a few twigs and rock, so not everybody will know how to work an HTML only view of a website &#8211; <em>that&#8217;s why design is so important</em> &#8211; but we can design our HTML code better to make the experience a little bit easier to <strong>read, work and use</strong>.</p>
<div class="googlead"><!-- wp_ad_camp_1 --></div>
]]></content:encoded>
			<wfw:commentRss>http://tympanus.net/codrops/2011/08/31/html-only-the-significance-of-proper-markup/feed/</wfw:commentRss>
		<slash:comments>15</slash:comments>
		</item>
		<item>
		<title>Beautiful Photo Stack Gallery with jQuery and CSS3</title>
		<link>http://tympanus.net/codrops/2010/06/27/beautiful-photo-stack-gallery-with-jquery-and-css3/</link>
		<comments>http://tympanus.net/codrops/2010/06/27/beautiful-photo-stack-gallery-with-jquery-and-css3/#comments</comments>
		<pubDate>Sun, 27 Jun 2010 17:33:26 +0000</pubDate>
		<dc:creator>Mary Lou</dc:creator>
				<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[CSS3]]></category>
		<category><![CDATA[gallery]]></category>
		<category><![CDATA[images]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[rotation]]></category>
		<category><![CDATA[sliding]]></category>

		<guid isPermaLink="false">http://tympanus.net/codrops/?p=2455</guid>
		<description><![CDATA[View demoDownload source In this tutorial we are going to create a nice and fresh image gallery. The idea is to show the albums as a slider, and when an album is chosen, we show the images of that album as a beautiful photo stack. In the photo stack view, we can browse through the [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://tympanus.net/Tutorials/PhotoStack/" target="_blank"><img class="aligncenter size-full wp-image-2456" title="photoStack" src="http://tympanus.net/codrops/wp-content/uploads/2010/06/photoStack.jpg" alt="" width="580" height="315" /></a><br />
<a class="demo" href="http://tympanus.net/Tutorials/PhotoStack/" target="_blank">View demo</a><a class="download" href="http://tympanus.net/Tutorials/PhotoStack/PhotoStack.zip">Download source</a></p>
<p>In this tutorial we are going to create a nice and fresh image gallery. The idea is to show the albums as a slider, and when an album is chosen, we show the images of that album as a beautiful photo stack. In the photo stack view, we can browse through the images by putting the top most image behind all the stack with a slick animation.</p>
<p>We will use jQuery and CSS3 properties for the rotated image effect. We will also use the webkit-box-reflect property in order to mirror the boxes in the album view &#8211; check out the demo in Google Chrome or Apple Safari to see this wonderful effect.</p>
<p>We will also use a bit of PHP for getting the images from each album.</p>
<p>So, let&#8217;s start!</p>
<div id="bsap_1266918" class="bsarocks bsap_af25dfd2f1908889af7a1aa5f4dcbd9e"></div><div style="clear:both;"></div>
<h3>The Markup</h3>
<p>In our HTML structure we will have several elements. The main ones are for the album columns with thumbnail and description, and the preview with the photo stack.<br />
The structure for the album view is going to look as follows:</p>
<pre class="brush:xml">
&lt;div id="ps_slider" class="ps_slider">

	&lt;a class="prev disabled">&lt;/a>
	&lt;a class="next disabled">&lt;/a>

	&lt;div id="ps_albums">

		&lt;div class="ps_album" style="opacity:0;">
			&lt;img src="albums/album1/thumb/thumb.jpg" alt=""/>
			&lt;div class="ps_desc">
				&lt;h2>Album title&lt;/h2>
				&lt;span>Description text&lt;/span>
			&lt;/div>
		&lt;/div>

		&lt;div class="ps_album" style="opacity:0;">
			...
		&lt;/div>

		...
	&lt;/div>	

&lt;/div>
</pre>
<p>The opacity of the album div is going to be 0 in the beginning, we will then use JavaScript to fade in the columns.<br />
The information that we need to provide in the HTML is the location of each album and its thumbnail images. With our little PHP script we will then get all the images from the respective album.</p>
<p>The structure for the dark overlay and the preview with the photo stack is going to look like this:</p>
<pre class="brush:xml">
&lt;div id="ps_overlay" class="ps_overlay" style="display:none;"&gt;&lt;/div&gt;

&lt;a id="ps_close" class="ps_close" style="display:none;"&gt;&lt;/a&gt;

&lt;div id="ps_container" class="ps_container" style="display:none;"&gt;
	&lt;a id="ps_next_photo" class="ps_next_photo" style="display:none;"&gt;&lt;/a&gt;
&lt;/div&gt;
</pre>
<p>We will dynamically insert the pictures of each album into the ps_container div.<br />
Now, let&#8217;s take a look at the PHP.</p>
<h3>The PHP</h3>
<p>Our PHP file will be called from our JavaScript and we will get the information with AJAX call. The PHP looks as follows:</p>
<pre class="brush:php">
$location 	= 'albums';
$album_name	= $_GET['album_name'];
$files 		= glob($location . '/' . $album_name . '/*.{jpg,gif,png}', GLOB_BRACE);
$encoded 	= json_encode($files);
echo $encoded;
unset($encoded);
</pre>
<h3>The CSS</h3>
<p>The style for the gallery is going to contain some CSS3 properties and also a Webkit specific property for a mirror effect.<br />
Let&#8217;s start by resetting some paddings and margins and defining the general style for the body:</p>
<pre class="brush:css">
body, ul, li, h1, h2, h3{
	margin:0;
	padding:0;
}
body{
	background:#121212;
	font-family:Arial, Helvetica, sans-serif;
	font-size:11px;
	color:#fff;
	overflow-x:hidden;
}
</pre>
<p>We will continue with the style of the preview. The overlay is going to have the following style:</p>
<pre class="brush:css">
.ps_overlay{
    z-index:90;
    background:#111;
    width:100%;
    height:100%;
    position:fixed;
    top:0px;
    left:0px;
    opacity:0.5;
}
</pre>
<p>The container for the photo stack will have a defined height and width. We will position it absolutely and center it with the &#8220;50%/negative margins&#8221; method:</p>
<pre class="brush:css">
.ps_container{
	width:480px;
	height:350px;
	position:absolute;
	top:50%;
	margin-top:-175px;
	left:50%;
	margin-left:-240px;
	z-index:100;
}
</pre>
<p>The image will have a thick white border and a nice box shadow. We will center the image relatively to its container but since we will only know the width and height of the images once we dynamically add them, we will set the margins in our JavaScript function:</p>
<pre class="brush:css">
.ps_container img{
	border:10px solid #fff;
	position:absolute;
	top:50%;
	left:50%;
	-moz-box-shadow:1px 1px 10px #000;
	-webkit-box-shadow:1px 1px 10px #000;
	box-shadow:1px 1px 10px #000;
}
</pre>
<p>The close button for the preview is going to be fixed at the top right of the window:</p>
<pre class="brush:css">
a.ps_close{
	background:#000 url(../images/close.png) no-repeat center center;
	cursor:pointer;
	width:56px;
	height:56px;
	position:fixed;
	right:10px;
	top:10px;
	z-index:1000;
	-moz-border-radius:10px;
	-webkit-border-radius:10px;
	border-radius:10px;
	opacity:0.6;
}
</pre>
<p>We will show a &#8220;next photo&#8221; element on top of the current image when the user hovers over it:</p>
<pre class="brush:css">
a.ps_next_photo{
	position:absolute;
	top:50%;
	left:50%;
	width:56px;
	height:56px;
	margin:-28px 0 0 -28px;
	z-index:200;
	cursor:pointer;
	background:#000 url(../images/next_photo.png) no-repeat 50% 50%;
	opacity:0.6;
    -moz-border-radius:10px;
    -webkit-border-radius:10px;
    border-radius:10px;
}
</pre>
<p>The hover classes for the last two elements:</p>
<pre class="brush:css">
a.ps_next_photo:hover,
a.ps_close:hover{
	opacity:0.8;
}
</pre>
<p>Now we are going to define the style for the album view and its columns. The slider container will be positioned relatively. With the auto values for the left and right margins we center the container horizontally on the page:</p>
<pre class="brush:css">
.ps_slider{
	width:845px;
	height:300px;
	position:relative;
	margin:110px auto 0px auto;
}
</pre>
<p>The navigation elements are going to have the following style:</p>
<pre class="brush:css">
.ps_slider a.next,
.ps_slider a.prev{
	position:absolute;
	background-color:#000;
    background-position:center center;
    background-repeat:no-repeat;
    border:1px solid #232323;
    width:20px;
    height:20px;
    top:50%;
    margin-top:-10px;
    opacity:0.6;
    -moz-border-radius:5px;
    -webkit-border-radius:5px;
    border-radius:5px;
    cursor:pointer;
    outline:none;
}
.ps_slider a.prev{
    left:-30px;
    background-image:url(../images/prev.png);
}
.ps_slider a.next{
    right:-30px;
    background-image:url(../images/next.png);
}
.ps_slider a.prev:hover,
.ps_slider a.next:hover{
    border:1px solid #333;
    opacity:0.9;
}
</pre>
<p>We also define a class for the navigation elements when they are disabled:</p>
<pre class="brush:css">
.ps_slider a.disabled,
.ps_slider a.disabled:hover{
    opacity:0.4;
    border:1px solid #111;
    cursor:default;
}
</pre>
<p>Each album column is going to have the following style:</p>
<pre class="brush:css">
.ps_slider .ps_album{
	width:140px;
	height:310px;
	padding:10px;
	background-color:#333;
	border:1px solid #444;
	position:absolute;
	top:0px;
	text-align:center;
	cursor:pointer;
	-moz-box-shadow:1px 1px 4px #000;
	-webkit-box-shadow:1px 1px 4px #000;
	box-shadow:1px 1px 4px #000;
	-webkit-box-reflect:
		below 5px
		-webkit-gradient(
			linear,
			left top,
			left bottom,
			from(transparent),
			color-stop(0.6, transparent),
			to(rgb(18, 18, 18))
		);
}
</pre>
<p>The last property is the Webkit box reflex that mirrors the columns. We say that it should mirror the element in a gradient like way.</p>
<p>We add a hover class for the whole column:</p>
<pre class="brush:css">
.ps_slider .ps_album:hover{
		background-color:#383838;
}
</pre>
<p>The thumbnail image and the content of the column are going to have the following styles:</p>
<pre class="brush:css">
.ps_slider .ps_album img{
	height:90px;
	border:1px solid #444;
	-moz-box-shadow:1px 1px 4px #000;
	-webkit-box-shadow:1px 1px 4px #000;
	box-shadow:1px 1px 4px #000;
}
.ps_slider .ps_album .ps_desc{
	display:block;
	color:#666;
	background:#111 url(../images/overlay.png) no-repeat bottom right;
	height:200px;
	margin-top:10px;
	text-align:left;
	line-height:20px;
	overflow:hidden;
	text-overflow:ellipsis;
	border:1px solid #393939;
	-moz-box-shadow:0px 0px 2px #000 inset;
	-webkit-box-shadow:0px 0px 2px #000 inset;
	box-shadow:0px 0px 2px #000 inset;
}
.ps_slider .ps_album:hover .ps_desc{
	background-image:none;
}
.ps_slider .ps_album .ps_desc span{
	display:block;
	margin:0px 10px 10px 10px;
	border-top:1px solid #333;
	padding-top:5px;
}
.ps_slider .ps_album .ps_desc h2{
	margin:10px 10px 0px 10px;
	text-align:left;
	padding-bottom:5px;
	font-weight:normal;
	color:#ddd;
	text-shadow:0px 0px 1px #fff;
	border-bottom:1px solid #000;
}
</pre>
<p>The loading element will show when we click on an album and all the images get loaded in the preview:</p>
<pre class="brush:css">
.ps_slider .loading{
	background:#121212 url(../images/loading.gif) no-repeat 50% 50%;
	position:absolute;
	top:0px;
	left:0px;
	width:100%;
	height:100%;
	opacity:0.7;
}
</pre>
<p>For the opacity to work in IE you need to add this filter (with the right value):<br />
<code><br />
	filter:progid:DXImageTransform.Microsoft.Alpha(opacity=60);<br />
</code><br />
I did not want to uglify the code.</p>
<p>Let&#8217;s add the magic!</p>
<h3>The JavaScript</h3>
<p>First, we need to define some variables that help us control the album navigation and keep some elements. The variable <strong>positions</strong> saves the left value for each album column. This depends on the width of the column.</p>
<pre class="brush:js">
/**
* navR,navL are flags for controlling the albums navigation
* first gives us the position of the album on the left
* positions are the left positions for each of the 5 albums displayed at a time
*/
var navR,navL	= false;
var first		= 1;
var positions 	= {
	'0'		: 0,
	'1' 	: 170,
	'2' 	: 340,
	'3' 	: 510,
	'4' 	: 680
}
var $ps_albums 		= $('#ps_albums');
/**
* number of albums available
*/
var elems			= $ps_albums.children().length;
var $ps_slider		= $('#ps_slider');
</pre>
<p>We are going to give an initial positioning to the album columns:</p>
<pre class="brush:js">

/**
* position all the albums on the right side of the window
*/
var hiddenRight 	= $(window).width() - $ps_albums.offset().left;
$ps_albums.children('div').css('left',hiddenRight + 'px');

/**
* move the first 5 albums to the viewport
*/
$ps_albums.children('div:lt(5)').each(
	function(i){
		var $elem = $(this);
		$elem.animate({'left': positions[i] + 'px','opacity':1},800,function(){
			if(elems &gt; 5)
				enableNavRight();
		});
	}
);
</pre>
<p>For sliding through the albums, we will define what happens when we click on the next or previous button and create two functions for moving left or right:</p>
<pre class="brush:js">
/**
* next album
*/
$ps_slider.find('.next').bind('click',function(){
	if(!$ps_albums.children('div:nth-child('+parseInt(first+5)+')').length || !navR) return;
	disableNavRight();
	disableNavLeft();
	moveRight();
});

/**
* we move the first album (the one on the left) to the left side of the window
* the next 4 albums slide one position, and finally the next one in the list
* slides in, to fill the space of the first one
*/
function moveRight () {
	var hiddenLeft 	= $ps_albums.offset().left + 163;

	var cnt = 0;
	$ps_albums.children('div:nth-child('+first+')').animate({'left': - hiddenLeft + 'px','opacity':0},500,function(){
			var $this = $(this);
			$ps_albums.children('div').slice(first,parseInt(first+4)).each(
				function(i){
					var $elem = $(this);
					$elem.animate({'left': positions[i] + 'px'},800,function(){
						++cnt;
						if(cnt == 4){
							$ps_albums.children('div:nth-child('+parseInt(first+5)+')').animate({'left': positions[cnt] + 'px','opacity':1},500,function(){
								//$this.hide();
								++first;
								if(parseInt(first + 4) &lt; elems)
									enableNavRight();
								enableNavLeft();
							});
						}
					});
				}
			);
	});
}

/**
* previous album
*/
$ps_slider.find('.prev').bind('click',function(){
	if(first==1  || !navL) return;
	disableNavRight();
	disableNavLeft();
	moveLeft();
});

/**
* we move the last album (the one on the right) to the right side of the window
* the previous 4 albums slide one position, and finally the previous one in the list
* slides in, to fill the space of the last one
*/
function moveLeft () {
	var hiddenRight 	= $(window).width() - $ps_albums.offset().left;

	var cnt = 0;
	var last= first+4;
	$ps_albums.children('div:nth-child('+last+')').animate({'left': hiddenRight + 'px','opacity':0},500,function(){
			var $this = $(this);
			$ps_albums.children('div').slice(parseInt(last-5),parseInt(last-1)).each(
				function(i){
					var $elem = $(this);
					$elem.animate({'left': positions[i+1] + 'px'},800,function(){
						++cnt;
						if(cnt == 4){
							$ps_albums.children('div:nth-child('+parseInt(last-5)+')').animate({'left': positions[0] + 'px','opacity':1},500,function(){
								//$this.hide();
								--first;
								enableNavRight();
								if(first > 1)
									enableNavLeft();
							});
						}
					});
				}
			);
	});
}
</pre>
<p>The next helper functions deal with disabling and enabling the the navigation items:</p>
<pre class="brush:js">
/**
* disable or enable albums navigation
*/
function disableNavRight () {
	navR = false;
	$ps_slider.find('.next').addClass('disabled');
}
function disableNavLeft () {
	navL = false;
	$ps_slider.find('.prev').addClass('disabled');
}
function enableNavRight () {
	navR = true;
	$ps_slider.find('.next').removeClass('disabled');
}
function enableNavLeft () {
	navL = true;
	$ps_slider.find('.prev').removeClass('disabled');
}
</pre>
<p>In the next steps we will define what happens when we open an album. We first make the loading element appear and show the preview after we loaded all the images. The information of the source comes from an AJAX call to our PHP class. For the rotation effect, we use the rotate CSS3 property which we restrict to a certain range of degrees, so that we don&#8217;t rotate an image crazily:</p>
<pre class="brush:js">
var $ps_container 	= $('#ps_container');
var $ps_overlay 	= $('#ps_overlay');
var $ps_close		= $('#ps_close');
/**
* when we click on an album,
* we load with AJAX the list of pictures for that album.
* we randomly rotate them except the last one, which is
* the one the User sees first. We also resize and center each image.
*/
$ps_albums.children('div').bind('click',function(){
	var $elem = $(this);
	var album_name 	= 'album' + parseInt($elem.index() + 1);
	var $loading 	= $('&lt;div />',{className:'loading'});
	$elem.append($loading);
	$ps_container.find('img').remove();
	$.get('photostack.php', {album_name:album_name} , function(data) {
		var items_count	= data.length;
		for(var i = 0; i &lt; items_count; ++i){
			var item_source = data[i];
			var cnt 		= 0;
			$('&lt;img />').load(function(){
				var $image = $(this);
				++cnt;
				resizeCenterImage($image);
				$ps_container.append($image);
				var r		= Math.floor(Math.random()*41)-20;
				if(cnt &lt; items_count){
					$image.css({
						'-moz-transform'	:'rotate('+r+'deg)',
						'-webkit-transform'	:'rotate('+r+'deg)',
						'transform'			:'rotate('+r+'deg)'
					});
				}
				if(cnt == items_count){
					$loading.remove();
					$ps_container.show();
					$ps_close.show();
					$ps_overlay.show();
				}
			}).attr('src',item_source);
		}
	},'json');
});

/**
* when hovering each one of the images,
* we show the button to navigate through them
*/
$ps_container.live('mouseenter',function(){
	$('#ps_next_photo').show();
}).live('mouseleave',function(){
	$('#ps_next_photo').hide();
});
</pre>
<p>The nice animation of putting the current image at the back of our stack is defined in the following:</p>
<pre class="brush:js">
/**
* navigate through the images:
* the last one (the visible one) becomes the first one.
* we also rotate 0 degrees the new visible picture
*/
$('#ps_next_photo').bind('click',function(){
	var $current 	= $ps_container.find('img:last');
	var r			= Math.floor(Math.random()*41)-20;

	var currentPositions = {
		marginLeft	: $current.css('margin-left'),
		marginTop	: $current.css('margin-top')
	}
	var $new_current = $current.prev();

	$current.animate({
		'marginLeft':'250px',
		'marginTop':'-385px'
	},250,function(){
		$(this).insertBefore($ps_container.find('img:first'))
			   .css({
					'-moz-transform'	:'rotate('+r+'deg)',
					'-webkit-transform'	:'rotate('+r+'deg)',
					'transform'			:'rotate('+r+'deg)'
				})
			   .animate({
					'marginLeft':currentPositions.marginLeft,
					'marginTop'	:currentPositions.marginTop
					},250,function(){
						$new_current.css({
							'-moz-transform'	:'rotate(0deg)',
							'-webkit-transform'	:'rotate(0deg)',
							'transform'			:'rotate(0deg)'
						});
			   });
	});
});
</pre>
<p>We animate the top and left margins with certain values that create the &#8220;putting back&#8221; effect. Since our structure always shows the last image on the top, we will also need to insert the moving image at the beginning, so that it appear as last one in the stack.</p>
<p>Clicking on the close element brings us back to the album view:</p>
<pre class="brush:js">
/**
* close the images view, and go back to albums
*/
$('#ps_close').bind('click',function(){
	$ps_container.hide();
	$ps_close.hide();
	$ps_overlay.fadeOut(400);
});
</pre>
<p>Our famous resize function resizes the image according to the given container width and height.<br />
In the end of the function we apply the sizes and we also apply the negative margins &#8211; remember, that&#8217;s the way we can center an absolute positioned element; we defined top and left in the CSS to be 50%, so now we need to pull it to the right place with these margin values.</p>
<pre class="brush:js">
/**
* resize and center the images
*/
function resizeCenterImage($image){
	var theImage 	= new Image();
	theImage.src 	= $image.attr("src");
	var imgwidth 	= theImage.width;
	var imgheight 	= theImage.height;

	var containerwidth  = 460;
	var containerheight = 330;

	if(imgwidth	> containerwidth){
		var newwidth = containerwidth;
		var ratio = imgwidth / containerwidth;
		var newheight = imgheight / ratio;
		if(newheight > containerheight){
			var newnewheight = containerheight;
			var newratio = newheight/containerheight;
			var newnewwidth =newwidth/newratio;
			theImage.width = newnewwidth;
			theImage.height= newnewheight;
		}
		else{
			theImage.width = newwidth;
			theImage.height= newheight;
		}
	}
	else if(imgheight > containerheight){
		var newheight = containerheight;
		var ratio = imgheight / containerheight;
		var newwidth = imgwidth / ratio;
		if(newwidth > containerwidth){
			var newnewwidth = containerwidth;
			var newratio = newwidth/containerwidth;
			var newnewheight =newheight/newratio;
			theImage.height = newnewheight;
			theImage.width= newnewwidth;
		}
		else{
			theImage.width = newwidth;
			theImage.height= newheight;
		}
	}
	$image.css({
		'width'			:theImage.width,
		'height'		:theImage.height,
		'margin-top'	:-(theImage.height/2)-10+'px',
		'margin-left'	:-(theImage.width/2)-10+'px'
	});
}
});
</pre>
<p>And that&#8217;s it! We hope you enjoyed this tutorial and find it useful!</p>
<p>P.S. Because of some Webkit properties, this demo is a really nice experience if you use a Webkit browser like Chrome or Safari. It will also be fully functional in all latest browsers like Firefox and IE (without those beautiful properties, though).</p>
<p><a class="demo" href="http://tympanus.net/Tutorials/PhotoStack/" target="_blank">View demo</a><a class="download" href="http://tympanus.net/Tutorials/PhotoStack/PhotoStack.zip">Download source</a></p>
<div class="googlead"><!-- wp_ad_camp_1 --></div>
<div class="partner_section_post"><span>Message from Testking</span>We offer professional <a href="http://www.testkingsite.com/redhat/RH302.html">testking RH302</a>  training with <a href="http://www.testkingsite.com/cisco/646-671.html">testking 646-671</a> video tutorials and <a href="http://www.testkingsite.com/microsoft/70-643.html">testking 70-643</a> guide to help the designers learn how to create beautiful website designs using Jquery and css.</div>
]]></content:encoded>
			<wfw:commentRss>http://tympanus.net/codrops/2010/06/27/beautiful-photo-stack-gallery-with-jquery-and-css3/feed/</wfw:commentRss>
		<slash:comments>190</slash:comments>
		</item>
		<item>
		<title>Collective: 50 Great CSS Awarded Websites and Works Of Designers, Design Agencies</title>
		<link>http://tympanus.net/codrops/2010/06/07/collective-50-great-css-awarded-websites-and-works-of-designers-design-agencies/</link>
		<comments>http://tympanus.net/codrops/2010/06/07/collective-50-great-css-awarded-websites-and-works-of-designers-design-agencies/#comments</comments>
		<pubDate>Mon, 07 Jun 2010 14:11:43 +0000</pubDate>
		<dc:creator>Community</dc:creator>
				<category><![CDATA[Collective]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[showcase]]></category>

		<guid isPermaLink="false">http://tympanus.net/codrops/?p=2336</guid>
		<description><![CDATA[One of the best CSS showcase site is The CSS Awards Site.The reason is that, they analyse the submitted CSS sites very detailed.They have really professional judges and all the CSS sites are selected daily under a strict system of valoration and every month they decide the &#8220;Site Of The Month&#8221;. Source http://designbeep.com/2010/05/15/50-great-css-awarded-websites-of-designersdesign-agencies-and-studios/]]></description>
			<content:encoded><![CDATA[<p><!-- Digg Digg Disabled --></p>
<p><a href="http://designbeep.com/2010/05/15/50-great-css-awarded-websites-of-designersdesign-agencies-and-studios/"><img src="http://tympanus.net/codrops/wp-content/uploads/2010/06/awards.gif" alt="" title="awards" width="580" height="271" class="aligncenter size-full wp-image-2337" /></a></p>
<p>One of the best CSS showcase site is The CSS Awards Site.The reason is that, they analyse the submitted CSS sites very detailed.They have really professional judges and all the CSS sites are selected daily under a strict system of valoration and every month they decide the &#8220;Site Of The Month&#8221;.</p>
<h3>Source</h3>
<p><a href="http://designbeep.com/2010/05/15/50-great-css-awarded-websites-of-designersdesign-agencies-and-studios/" target="_blank">http://designbeep.com/2010/05/15/50-great-css-awarded-websites-of-designersdesign-agencies-and-studios/</a></p>
<div style="margin-bottom:100px;"></div>
<p><!-- wp_ad_camp_1 --></p>
]]></content:encoded>
			<wfw:commentRss>http://tympanus.net/codrops/2010/06/07/collective-50-great-css-awarded-websites-and-works-of-designers-design-agencies/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Collective: Browser Compatible Info for HTML and CSS</title>
		<link>http://tympanus.net/codrops/2010/05/12/collective-browser-compatible-info-for-html-and-css/</link>
		<comments>http://tympanus.net/codrops/2010/05/12/collective-browser-compatible-info-for-html-and-css/#comments</comments>
		<pubDate>Wed, 12 May 2010 19:10:22 +0000</pubDate>
		<dc:creator>Community</dc:creator>
				<category><![CDATA[Collective]]></category>
		<category><![CDATA[browser]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[Web Design]]></category>

		<guid isPermaLink="false">http://tympanus.net/codrops/?p=2092</guid>
		<description><![CDATA[CSS and HTML is used to design a website to look attractive. However, the development of CSS and HTML, and every browser that is not balanced to make the UI developers need to ensure that information can be seen very well in every browser. Browser becomes a very important media for conveying information in the [...]]]></description>
			<content:encoded><![CDATA[<p><!-- Digg Digg Disabled --></p>
<p><a href="http://www.denbagus.net/browser-compatible-html-and-css/"><img src="http://tympanus.net/codrops/wp-content/uploads/2010/05/browserinfo.gif" alt="" title="browserinfo" width="580" height="322" class="aligncenter size-full wp-image-2093" /></a></p>
<p>CSS and HTML is used to design a website to look attractive. However, the development of CSS and HTML, and every browser that is not balanced to make the UI developers need to ensure that information can be seen very well in every browser.<br />
Browser becomes a very important media for conveying information in the Internet world. And appearance to be a very important step to ensure the information presented is easy and convenient to read.<br />
This article has been collecting a variety of info about compatible browsers for CSS and HTML&#8230;</p>
<h3>Source</h3>
<p><a href="http://www.denbagus.net/browser-compatible-html-and-css/" target="_blank">http://www.denbagus.net/browser-compatible-html-and-css/</a></p>
<div style="margin-bottom:100px;"></div>
<p><!-- wp_ad_camp_1 --></p>
]]></content:encoded>
			<wfw:commentRss>http://tympanus.net/codrops/2010/05/12/collective-browser-compatible-info-for-html-and-css/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Beautiful Background Image Navigation with jQuery</title>
		<link>http://tympanus.net/codrops/2010/05/05/beautiful-background-image-navigation-with-jquery/</link>
		<comments>http://tympanus.net/codrops/2010/05/05/beautiful-background-image-navigation-with-jquery/#comments</comments>
		<pubDate>Wed, 05 May 2010 11:46:42 +0000</pubDate>
		<dc:creator>Mary Lou</dc:creator>
				<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[animation]]></category>
		<category><![CDATA[background-image]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[menu]]></category>
		<category><![CDATA[Navigation]]></category>
		<category><![CDATA[sliding]]></category>

		<guid isPermaLink="false">http://tympanus.net/codrops/?p=2047</guid>
		<description><![CDATA[View demoDownload source In this tutorial we are going to create a beautiful navigation that has a background image slide effect. The main idea is to have three list items that contain the same background image but with a different position. The background image for each item will be animated to slide into place in [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;"><a href="http://tympanus.net/Tutorials/BeautifulBackgroundImageNavigation/" target="_blank"><img class="size-full wp-image-2054 aligncenter" title="backgroundImageNavigation" src="http://tympanus.net/codrops/wp-content/uploads/2010/05/backgroundImageNavigation.jpg" alt="" width="580" height="360" /></a></p>
<p><a class="demo" href="http://tympanus.net/Tutorials/BeautifulBackgroundImageNavigation/" target="_blank">View demo</a><a class="download" href="http://tympanus.net/Tutorials/BeautifulBackgroundImageNavigation/BeautifulBackgroundImageNavigation.zip">Download source</a></p>
<p>In this tutorial we are going to create a beautiful navigation that has a background image slide effect. The main idea is to have three list items that contain the same background image but with a different position. The background image for each item will be animated to slide into place in different times, creating a really nice effect. The background image sliding direction from the list item in the middle will depend on which item the user was before: coming from the right, it will slide from the left and vice versa.</p>
<p>On top of that we will have sub-menus that appear with their semi-transparent background sliding in. These backgrounds create an awesome effect of actually just being one element that slides into place, changing its color.</p>
<p><strong>Note:</strong> There is a new version which let&#8217;s you customize things better:<br />
<a href="http://tympanus.net/codrops/2011/07/03/sliding-background-image-menu/">Sliding Background Image Menu with jQuery</a></p>
<p>We will be using the amazing <a href="http://plugins.jquery.com/project/backgroundPosition-Effect" target="_blank">Background-Position Animation Plugin</a> by Alexander Farkas.</p>
<p>The photos that we will be using are from Pat&#8217;s beautiful <a href="http://www.flickr.com/photos/patdavid/sets/72157622106008372/" target="_blank">B&amp;W collection</a> on Flickr.</p>
<p>There will be a little bit of CSS3 involved which absence will almost not be notable when using a browser that does not support its properties (like IE).</p>
<p>We tried to make this one cross-browser compatible and voilà! It works beautifully in Google Chrome, Firefox, Opera, Safari, IE8, IE7 and guess what, it even works respectively in IE6. (We are using an adapted style sheet and you will have to apply some PNG fix if you want the sub-menu backgrounds to be  semi-transparent. )</p>
<p>OK, so let&#8217;s get started!</p>
<div id="bsap_1266918" class="bsarocks bsap_af25dfd2f1908889af7a1aa5f4dcbd9e"></div><div style="clear:both;"></div>
<h3>The Markup</h3>
<p>The HTML will consist of a wrapper div and an unordered list with three list items. We will initially set some &#8220;bg&#8221; classes that will have the respective background images. The &#8220;menuWrapper&#8221; will always have the &#8220;bg&#8221; class of the current list item so that we have the background image of the current list item.</p>
<pre class="brush:xml">&lt;div id="menuWrapper" class="menuWrapper bg1"&gt;
	&lt;ul class="menu" id="menu"&gt;
		&lt;li class="bg1" style="background-position:0 0;"&gt;
			&lt;a id="bg1" href="#"&gt;Our Passion&lt;/a&gt;
			&lt;ul class="sub1" style="background-position:0 0;"&gt;
				&lt;li&gt;&lt;a href="#"&gt;Submenu 1&lt;/a&gt;&lt;/li&gt;
				&lt;li&gt;&lt;a href="#"&gt;Submenu 2&lt;/a&gt;&lt;/li&gt;
				&lt;li&gt;&lt;a href="#"&gt;Submenu 3&lt;/a&gt;&lt;/li&gt;
			&lt;/ul&gt;
		&lt;/li&gt;
		&lt;li class="bg1" style="background-position:-266px 0px;"&gt;
			&lt;a id="bg2" href="#"&gt;Our Brands&lt;/a&gt;
			&lt;ul class="sub2" style="background-position:-266px 0;"&gt;
				&lt;li&gt;&lt;a href="#"&gt;Submenu 1&lt;/a&gt;&lt;/li&gt;
				&lt;li&gt;&lt;a href="#"&gt;Submenu 2&lt;/a&gt;&lt;/li&gt;
				&lt;li&gt;&lt;a href="#"&gt;Submenu 3&lt;/a&gt;&lt;/li&gt;
			&lt;/ul&gt;
		&lt;/li&gt;
		&lt;li class="last bg1" style="background-position:-532px 0px;"&gt;
			&lt;a id="bg3" href="#"&gt;Contact&lt;/a&gt;
			&lt;ul class="sub3" style="background-position:-266px 0;"&gt;
				&lt;li&gt;&lt;a href="#"&gt;Submenu 1&lt;/a&gt;&lt;/li&gt;
				&lt;li&gt;&lt;a href="#"&gt;Submenu 2&lt;/a&gt;&lt;/li&gt;
				&lt;li&gt;&lt;a href="#"&gt;Submenu 3&lt;/a&gt;&lt;/li&gt;
			&lt;/ul&gt;
		&lt;/li&gt;
	&lt;/ul&gt;
&lt;/div&gt;</pre>
<p>For the background animation plugin to work correctly we need to set the position of the background image as inline styles initially. We already set the right position for each background image, for example, the third item will have the background image positioned to the outer right.</p>
<p>As you can see, every list item has another sub-list with three more items. The background image position of these sublists is set to a value that hides the image. When we animate the background then, we will create the effect of sliding it in from the left or the right.</p>
<h3>The CSS</h3>
<p>Let&#8217;s start by the general style of the the &#8220;menuWrapper&#8221; which will contain the font styles and the size of the whole element:</p>
<pre class="brush:css">.menuWrapper{
    font-family: "Trebuchet MS", Arial, sans-serif;;
    font-size: 15px;
    font-style: normal;
    font-weight: normal;
    text-transform:uppercase;
    letter-spacing: normal;
    line-height: 1.45em;
    position:relative;
    margin:20px auto;
    height:542px;
    width:797px;
    background-position:0 0;
    background-repeat:no-repeat;
    background-color:transparent;
}</pre>
<p>The list and the list items of the first layer will have the following style:</p>
<pre class="brush:css">ul.menu{
    list-style:none;
    width:797px;
}
ul.menu &gt; li{
    float:left;
    width:265px;
    height:542px;
    border-right:1px solid #777;
    background-repeat:no-repeat;
    background-color:transparent;
}
ul.menu &gt; li.last{
    border:none;
}</pre>
<p>The selector &#8220;&gt;&#8221; addresses only the li elements of the first layer and will not be applied to the ones of the sub-menus. We will give the last li the class &#8220;last&#8221; in order to remove the right border.</p>
<p>The following three classes define the background images. We will give these classes to all the li elements depending on which one we hover. So, if we hover the second li, we will give the &#8220;bg2&#8243; class to all the first layer list items:</p>
<pre class="brush:css">.bg1{
    background-image: url(../images/1.jpg);
}
.bg2{
    background-image: url(../images/2.jpg);
}
.bg3{
    background-image: url(../images/3.jpg);
}</pre>
<p>Let&#8217;s define the look of the link elements in the first layer list. Since the li elements have a big height, we need to push the link elements down. We do that by setting a high top margin:</p>
<pre class="brush:css">ul.menu &gt; li &gt; a{
    float:left;
    width:265px;
    height:50px;
    margin-top:450px;
    text-align:center;
    line-height:50px;
    color:#ddd;
    background-color:#333;
    letter-spacing:1px;
    cursor:pointer;
    text-decoration:none;
    text-shadow:0px 0px 1px #fff;
}</pre>
<p>To center the text of a link element vertically, you can give a line-height value equal to the height of the element. (I don&#8217;t know why, but when I started with learning CSS, I automatically always used paddings to adapt the height of the element and to center it. Using line-height was a real delight because you can control sizes much better like that.)</p>
<p>The second layer lists would naturally appear after the first layer list, so we use a negative top margin to &#8220;pull&#8221; them up:</p>
<pre class="brush:css">ul.menu &gt; li ul{
    list-style:none;
    float:left;
    margin-top:-180px;
    width:100%;
    height:110px;
    padding-top:20px;
    background-repeat:no-repeat;
    background-color:transparent;
}</pre>
<p>The li elements of the sub-menu will be initially hidden. In the script we will fade them in when we hover over their parent list item link:</p>
<pre class="brush:css">ul.menu &gt; li ul li{
    display:none;
}</pre>
<p>Now we define the classes for the background images of the sub-menus:</p>
<pre class="brush:css">ul.menu &gt; li ul.sub1{
    background-image:url(../images/bg1sub.png);
}
ul.menu &gt; li ul.sub2{
    background-image:url(../images/bg2sub.png);
}
ul.menu &gt; li ul.sub3{
    background-image:url(../images/bg3sub.png);
}</pre>
<p>The link elements of the li elements will have the following style:</p>
<pre class="brush:css">ul.menu &gt; li ul li a{
    color:#fff;
    text-decoration:none;
    line-height:30px;
    margin-left:20px;
    text-shadow:1px 1px 1px #444;
    font-size:11px;
}

ul.menu &gt; li ul li a:hover{
    border-bottom:1px dotted #fff;
}</pre>
<p>The first sub-list will be shown in the beginning:</p>
<pre class="brush:css">ul.menu &gt; li ul.sub1 li{
    display:block;
}</pre>
<p>And that&#8217;s all the style. Take a look at the ZIP file for the IE6 style sheet.<br />
Now let&#8217;s take a look at the JavaScript.</p>
<h3>The JavaScript</h3>
<p>What we do in the script is the following: we first check where we are coming from and then we animate the background positions of the list elements in the first level and the backgrounds of the sub-menus accordingly:</p>
<pre class="brush:js">$(function() {
	/* position of the &lt;li&gt; that is currently shown */
	var current = 0;

	$('#bg1,#bg2,#bg3').mouseover(function(e){

		var $this = $(this);
		/* if we hover the current one, then don't do anything */
		if($this.parent().index() == current)
			return;

		/* item is bg1 or bg2 or bg3, depending where we are hovering */
		var item = e.target.id;

		/*
		this is the sub menu overlay. Let's hide the current one
		if we hover the first &lt;li&gt; or if we come from the last one,
		then the overlay should move left -&gt; right,
		otherwise right-&gt;left
		 */
		if(item == 'bg1' || current == 2)
			$('#menu .sub'+parseInt(current+1))
			    .stop()
				.animate({backgroundPosition:"(-266px 0)"},300,function(){
					$(this).find('li').hide();
				});
		else
			$('#menu .sub'+parseInt(current+1))
				.stop()
				.animate({backgroundPosition:"(266px 0)"},300,function(){
					$(this).find('li').hide();
				});

		if(item == 'bg1' || current == 2){
			/*
			if we hover the first &lt;li&gt; or if we come from
			the last one, then the images should move left -&gt; right
			*/
			$('#menu &gt; li')
				.animate({backgroundPosition:"(-800px 0)"},0)
				.removeClass('bg1 bg2 bg3')
				.addClass(item);
			move(1,item);
		}
		else{
			/*
			if we hover the first &lt;li&gt; or if we come
			from the last one, then the images should move
			right -&gt; left
			*/
			$('#menu &gt; li')
				.animate({backgroundPosition:"(800px 0)"},0)
				.removeClass('bg1 bg2 bg3')
				.addClass(item);
			move(0,item);
		}

		/*
		We want that if we go from the first one to the last one
		(without hovering the middle one), or from the last one
		to the first one, the middle menu's overlay should also
		slide, either from left to right or right to left.
		 */
		if(current == 2 &amp;&amp; item == 'bg1'){
			$('#menu .sub'+parseInt(current))
			.stop()
			.animate({backgroundPosition:"(-266px 0)"},300);
		}
		if(current == 0 &amp;&amp; item == 'bg3'){
			$('#menu .sub'+parseInt(current+2))
			.stop()
			.animate({backgroundPosition:"(266px 0)"},300);
		}

		/* change the current element */
		current = $this.parent().index();

		/* let's make the overlay of the current one appear */

		$('#menu .sub'+parseInt(current+1))
			.stop().animate({backgroundPosition:"(0 0)"},300,function(){
				$(this).find('li').fadeIn();
			});
	});
	/*
	dir:1 - move left-&gt;right
	dir:0 - move right-&gt;left
	 */
	function move(dir,item){
		if(dir){
			$('#bg1').parent()
					 .stop()
					 .animate({backgroundPosition:"(0 0)"},200);
			$('#bg2').parent()
					 .stop()
					 .animate({backgroundPosition:"(-266px 0)"},300);
			$('#bg3').parent()
					 .stop()
					 .animate({backgroundPosition:"(-532px 0)"},400,function(){
						$('#menuWrapper').removeClass('bg1 bg2 bg3')
										 .addClass(item);
					 });
		}
		else{
			$('#bg1').parent()
					 .stop()
					 .animate({backgroundPosition:"(0 0)"},400,function(){
						$('#menuWrapper').removeClass('bg1 bg2 bg3')
										 .addClass(item);
					 });
			$('#bg2').parent()
					 .stop()
					 .animate({backgroundPosition:"(-266px 0)"},300);
			$('#bg3').parent()
					 .stop()
					 .animate({backgroundPosition:"(-532px 0)"},200);
		}
	}
});</pre>
<p>And that&#8217;s it! A beautiful cross-browser capable effect!<br />
I hope that you enjoyed the tutorial.</p>
<p><a class="demo" href="http://tympanus.net/Tutorials/BeautifulBackgroundImageNavigation/" target="_blank">View demo</a><a class="download" href="http://tympanus.net/Tutorials/BeautifulBackgroundImageNavigation/BeautifulBackgroundImageNavigation.zip">Download source</a></p>
<p><!-- wp_ad_camp_1 --></p>
<div class="partner_section_post"><span>Message from Testking</span>If want to learn professional web designing  but have no time to attent regular class then <a href="http://www.testkingsite.com/comptia/A-plus.html">testking a+</a> is best solution though.  Download the <a href="http://www.testkingsite.com/microsoft/MCSE-2008.html">testking mcse</a>  design tutorials and  <a href="http://www.testkingsite.com/vmware/VCP-410.html">testking VCP-410</a>  study guide  to learn how to create beautiful and unique logo designs.</div>
]]></content:encoded>
			<wfw:commentRss>http://tympanus.net/codrops/2010/05/05/beautiful-background-image-navigation-with-jquery/feed/</wfw:commentRss>
		<slash:comments>335</slash:comments>
		</item>
		<item>
		<title>A Fresh Bottom Slide Out Menu with jQuery</title>
		<link>http://tympanus.net/codrops/2010/03/09/a-fresh-bottom-slide-out-menu-with-jquery/</link>
		<comments>http://tympanus.net/codrops/2010/03/09/a-fresh-bottom-slide-out-menu-with-jquery/#comments</comments>
		<pubDate>Tue, 09 Mar 2010 20:22:23 +0000</pubDate>
		<dc:creator>Mary Lou</dc:creator>
				<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[CSS3]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[menu]]></category>
		<category><![CDATA[slide out]]></category>

		<guid isPermaLink="false">http://tympanus.net/codrops/?p=1651</guid>
		<description><![CDATA[View demoDownload source In this tutorial we will create a unique bottom slide out menu. This large menu will contain some title and a description of the menu item. It will slide out from the bottom revealing the description text and some icon. We will use some CSS3 properties for some nice shadow effects and [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.tympanus.net/Tutorials/FreshBottomSlideOutMenu/" target="_blank"><img class="aligncenter size-full wp-image-1659" title="bottomSlideOut" src="http://tympanus.net/codrops/wp-content/uploads/2010/03/bottomSlideOut.png" alt="bottomSlideOut" width="580" height="362" /></a></p>
<p><a class="demo" href="http://www.tympanus.net/Tutorials/FreshBottomSlideOutMenu/" target="_blank">View demo</a><a class="download" href="http://www.tympanus.net/Tutorials/FreshBottomSlideOutMenu/FreshBottomSlideOutMenu.zip">Download source</a></p>
<p>In this tutorial we will create a unique bottom slide out menu. This large menu will contain some title and a description of the menu item. It will slide out from the bottom revealing the description text and some icon. We will use some CSS3 properties for some nice shadow effects and jQuery for the interaction.</p>
<p>The Luna Grey iconset can be downloaded at DryIcons: <a href="http://dryicons.com/free-icons/preview/luna-grey-icons/" target="_blank">http://dryicons.com/free-icons/preview/luna-grey-icons/</a></p>
<p>In the downloadable ZIP I will not be able to provide them, but I kept the naming, so that you can easily integrate it.</p>
<p>Ok, let&#8217;s start with the Markup.</p>
<div id="bsap_1266918" class="bsarocks bsap_af25dfd2f1908889af7a1aa5f4dcbd9e"></div><div style="clear:both;"></div>
<h3>The Markup</h3>
<p>The menu will be placed inside of a container. The menu itself will be an unordered list with link elements inside. The link elements will contain two spans: one for the title and one for the description. We will also have an i element for the icon:</p>
<pre class="brush:xml">&lt;div class="container"&gt;
	&lt;ul id="menu"&gt;
		&lt;li&gt;
			&lt;a&gt;
				&lt;i class="icon_about"&gt;&lt;/i&gt;
				&lt;span class="title"&gt;About&lt;/span&gt;
				&lt;span class="description"&gt;
					Learn about us and our services
				&lt;/span&gt;
			&lt;/a&gt;
		&lt;/li&gt;
		 &lt;li&gt;
			&lt;a&gt;
				&lt;i class="icon_work"&gt;&lt;/i&gt;
				&lt;span class="title"&gt;Work&lt;/span&gt;
				&lt;span class="description"&gt;
					See our work and portfolio
				&lt;/span&gt;
			&lt;/a&gt;
		&lt;/li&gt;
		&lt;li&gt;
			&lt;a&gt;
				&lt;i class="icon_help"&gt;&lt;/i&gt;
				&lt;span class="title"&gt;Help&lt;/span&gt;
				&lt;span class="description"&gt;
					Talk to our support
				&lt;/span&gt;
			&lt;/a&gt;
		&lt;/li&gt;
		 &lt;li&gt;
			&lt;a&gt;
				&lt;i class="icon_search"&gt;&lt;/i&gt;
				&lt;span class="title"&gt;Search&lt;/span&gt;
				&lt;span class="description"&gt;
					Search our website
				&lt;/span&gt;
			&lt;/a&gt;
		&lt;/li&gt;
	&lt;/ul&gt;
&lt;/div&gt;</pre>
<p>Don&#8217;t forget to adapt the link element and to add your destination into an href if you need to.</p>
<h3>The CSS</h3>
<p>Let&#8217;s start with the style of the surrounding container. The container will be of relative position since we will make the menu absolute. We will have to hide the description part of the menu items and so we will hide any overflow of the container. If you place this menu absolutely to the page, i.e. at the bottom, the description part will simply disappear outside of you window. This container allows you to see how to implement this menu relatively to some other element:</p>
<pre class="brush:css">.container{
    width:900px;
    height:130px;
    margin:0 auto;
    position:relative;
    overflow:hidden;
    border:3px solid #fff;
	background-color:#fff;
    -moz-box-shadow:1px 1px 6px #000;
    -webkit-box-shadow:1px 1px 6px #000;
    -moz-border-radius:0px 0px 20px 20px;
    -webkit-border-bottom-left-radius:20px;
    -webkit-border-bottom-right-radius:20px;
    border-radius:0px 0px 20px 20px;
}</pre>
<p>We create some fancy shadowing and rounded borders with the CSS3 properties. Keep in mind that they will only work in modern browsers (so, basically all except marvelous IE).<br />
The list will have the following style:</p>
<pre class="brush:css">ul#menu{
    list-style:none;
    position:absolute;
    bottom:0px;
    left:20px;
    font-size:36px;
    font-family: Helvetica, Arial, sans-serif;
    font-weight: bold;
    color:#999;
    letter-spacing:-2px;
}
ul#menu li{
    float:left;
    margin:0px 10px 0px 0px;
}
ul#menu a{
    cursor:pointer;
    position:relative;
    float:left;
    bottom:-95px;
    line-height:20px;
    width:210px;
}</pre>
<p>As you can see, we hide the push the link element down in order to almost hide the description span. We do that by giving a negative bottom position. You can adapt this value to make the span appear a little bit more or not at all.<br />
Now, let&#8217;s take a look at the classes for the icons:</p>
<pre class="brush:css">.icon_about,
.icon_work,
.icon_help,
.icon_search{
    width:64px;
    height:64px;
    display:block;
    left:140px;
    top:50px;
    position:absolute;
}
.icon_about{
    background:transparent url(../images/id_card.png) no-repeat top left;
}
.icon_work{
    background:transparent url(../images/globe.png) no-repeat top left;
}
.icon_help{
    background:transparent url(../images/help.png) no-repeat top left;
}
.icon_search{
    background:transparent url(../images/find.png) no-repeat top left;
}</pre>
<p>The CSS of the title and description spans will look as follows:</p>
<pre class="brush:css">ul#menu span.title{
    display:block;
    height:26px;
    text-shadow:1px 1px 1px #000;
    color:#B7B7B6;
    text-indent:10px;
}
ul#menu span.description{
    width:140px;
    height:80px;
    background-color:#B7B7B6;
    border:3px solid #fff;
    color:#fff;
    display:block;
    font-size:24px;
    padding:10px;
    -moz-box-shadow:1px 1px 6px #000;
    -webkit-box-shadow:1px 1px 6px #000;
    box-shadow:1px 1px 6px #000;
    -moz-border-radius:10px;
    -webkit-border-radius:10px;
    border-radius:10px;
}</pre>
<p>We also want the two spans to change text and background color, so we define the style for the hover of the parent link element:</p>
<pre class="brush:css">ul#menu a:hover span.description{
    background-color:#54504F;
}
ul#menu a:hover span.title{
    color:#54504F;
}</pre>
<p>And that&#8217;s all the style. Now, let&#8217;s add some nice interaction effects with jQuery.</p>
<h3>The Javascript</h3>
<p>The JavaScript will be pretty straightforward since we will only do two things: slide out the link element and the icon. The following function makes that happen (and the opposite when we move the mouse out):</p>
<pre class="brush:js">$(function() {
    $('#menu &gt; li').hover(
        function () {
            var $this = $(this);
            $('a',$this).stop(true,true).animate({
                    'bottom':'-15px'
                }, 300);
            $('i',$this).stop(true,true).animate({
                    'top':'-10px'
                }, 400);
        },
        function () {
            var $this = $(this);
            $('a',$this).stop(true,true).animate({
                    'bottom':'-95px'
                }, 300);
            $('i',$this).stop(true,true).animate({
                    'top':'50px'
                }, 400);
        }
    );
});</pre>
<p>In order to slide out the link element, we change the bottom position and animate that. For the icon we change the top value and give the effect more time, since we want to create a little delay.</p>
<p>And that&#8217;s it! Enjoy it!</p>
<p><a class="demo" href="http://www.tympanus.net/Tutorials/FreshBottomSlideOutMenu/" target="_blank">View demo</a><a class="download" href="http://www.tympanus.net/Tutorials/FreshBottomSlideOutMenu/FreshBottomSlideOutMenu.zip">Download source</a></p>
<p><!-- wp_ad_camp_1 --></p>
<div class="partner_section_post"><span>Message from Testking</span>Whether you want to get <a href="http://www.pass4sure.com/Exin-ITIL.html">itil certification</a> or interested in <a href="http://www.pass4sure.com/Cisco-index.html">cisco certification</a>, using <a href="http://www.pass4sure.com/CCNA.html">ccna</a> prep resources you pass your certification exam on first attempt.</div>
]]></content:encoded>
			<wfw:commentRss>http://tympanus.net/codrops/2010/03/09/a-fresh-bottom-slide-out-menu-with-jquery/feed/</wfw:commentRss>
		<slash:comments>38</slash:comments>
		</item>
		<item>
		<title>Photo Zoom Out Effect with jQuery</title>
		<link>http://tympanus.net/codrops/2010/03/07/photo-zoom-out-effect-with-jquery/</link>
		<comments>http://tympanus.net/codrops/2010/03/07/photo-zoom-out-effect-with-jquery/#comments</comments>
		<pubDate>Sun, 07 Mar 2010 15:46:51 +0000</pubDate>
		<dc:creator>Mary Lou</dc:creator>
				<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[zoom out]]></category>

		<guid isPermaLink="false">http://tympanus.net/codrops/?p=1641</guid>
		<description><![CDATA[View demoDownload source Today we will show you how to create a simple image zoom out effect with jQuery. The idea is show some images which are zoomed in initially and when hovering over an image it gets zoomed out. This effect could be used in photography websites or image galleries. Our example uses some [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.tympanus.net/Tutorials/PhotoZoomOutEffect/" target="_blank"><img class="aligncenter size-full wp-image-1647" title="photozoom" src="http://tympanus.net/codrops/wp-content/uploads/2010/03/photozoom.png" alt="photozoom" width="580" height="250" /></a></p>
<p><a class="demo" href="http://www.tympanus.net/Tutorials/PhotoZoomOutEffect/" target="_blank">View demo</a><a class="download" href="http://www.tympanus.net/Tutorials/PhotoZoomOutEffect/PhotoZoomOutEffect.zip">Download source</a></p>
<p>Today we will show you how to create a simple image zoom out effect with jQuery. The idea is show some images which are zoomed in initially and when hovering over an image it gets zoomed out. This effect could be used in photography websites or image galleries. Our example uses some black and white images to focus on the effect.</p>
<p>Ok, let&#8217;s get started.</p>
<div id="bsap_1266918" class="bsarocks bsap_af25dfd2f1908889af7a1aa5f4dcbd9e"></div><div style="clear:both;"></div>
<h3>The Markup</h3>
<p>We will create some wrappers for the images which will be divs. These wrappers will hide any overflow, because we don&#8217;t want the picture (which will be much bigger) to show completely. Inside we will have a link element that surrounds the image:</p>
<pre class="brush:xml">&lt;div class="wrap"&gt;
	&lt;a href="http://www.flickr.com/photos/archetypefotografie/3601313864/"&gt;
		&lt;img src="images/image1.jpg" alt="Picture 1"/&gt;
	&lt;/a&gt;
&lt;/div&gt;
&lt;div class="wrap"&gt;
	&lt;a href="http://www.flickr.com/photos/vegaseddie/3910559910/"&gt;
		&lt;img src="images/image2.jpg" alt="Picture 2"/&gt;
	&lt;/a&gt;
&lt;/div&gt;
&lt;div class="wrap"&gt;
	&lt;a href="http://www.flickr.com/photos/62337512@N00/445175934/"&gt;
		&lt;img src="images/image3.jpg" alt="Picture 3"/&gt;
	&lt;/a&gt;
&lt;/div&gt;
&lt;div class="wrap"&gt;
	&lt;a href="http://www.flickr.com/photos/brunociampi/2461177417/"&gt;
		&lt;img src="images/image4.jpg" alt="Picture 4"/&gt;
	&lt;/a&gt;
&lt;/div&gt;
&lt;div class="wrap"&gt;
	&lt;a href="http://www.flickr.com/photos/beadmobile/3298460491/"&gt;
		&lt;img src="images/image5.jpg" alt="Picture 5"/&gt;
	&lt;/a&gt;
&lt;/div&gt;
&lt;div class="wrap"&gt;
	&lt;a href="http://www.flickr.com/photos/tonythemisfit/3839281139/"&gt;
		&lt;img src="images/image6.jpg" alt="Picture 6"/&gt;
	&lt;/a&gt;
&lt;/div&gt;</pre>
<p>All images have the same size (500px times 333px) because we want the effect to be the same on each image. You can use images of a different size, but keep in mind that you need to adapt the JavaScript function in order to achieve a smooth effect.</p>
<h3>The CSS</h3>
<p>The wrapper for the link and the image will float left and have relative positioning. The image will have absolute positioning and we will define the top and left in a way that it centers the image:</p>
<pre class="brush:css">.wrap{
    width:200px;
    height:200px;
    margin:0px;
    overflow:hidden;
    position:relative;
    float:left;
}
.wrap a img{
    border:none;
    position:absolute;
    top:-66.5px;
    left:-150px;
    height:500px;
    opacity: 0.5;
}</pre>
<p>As mentioned before, the image has a height of 333px. We want the image to be &#8220;zoomed in&#8221; initially so we set the size bigger. In this case we chose to set it to a height of 500px. When setting the size of just one side, the image will resize accordingly and you don&#8217;t have to worry about the other value.</p>
<p>With the JavaScript function we will then zoom the image out.</p>
<h3>The JavaScript</h3>
<p>The function for hovering over the images will be pretty straightforward: we make the image opaque, change the height to 200px and set the top and left to zero. When moving the mouse out we will set the style back to the initial one:</p>
<pre class="brush:js">$(function() {
	$('#container img').hover(
		function(){
			var $this = $(this);
			$this.stop().animate({
					'opacity':'1.0',
					'height':'200px',
					'top':'0px',
					'left':'0px'
				});
		},
		function(){
			var $this = $(this);
			$this.stop().animate({
				'opacity':'0.5',
				'height':'500px',
				'top':'-66.5px',
				'left':'-150px'
				});
		}
	);
});</pre>
<p>And that&#8217;s it!<br />
Enjoy!</p>
<p><a class="demo" href="http://www.tympanus.net/Tutorials/PhotoZoomOutEffect/" target="_blank">View demo</a><a class="download" href="http://www.tympanus.net/Tutorials/PhotoZoomOutEffect/PhotoZoomOutEffect.zip">Download source</a></p>
<p><!-- wp_ad_camp_1 --></p>
<div class="partner_section_post"><span>Message from Testking</span>Get professional <a href="http://www.pass4sure.com/CCIE.html">ccie training</a> to learn about jQuery plugins.  Sign up for <a href="http://www.pass4sure.com/CCENT.html">ccent course</a> to prepare and pass your <a href="http://www.pass4sure.com/Exin-ITIL.html">itil v3 certification</a> on time.</div>
]]></content:encoded>
			<wfw:commentRss>http://tympanus.net/codrops/2010/03/07/photo-zoom-out-effect-with-jquery/feed/</wfw:commentRss>
		<slash:comments>32</slash:comments>
		</item>
		<item>
		<title>Our 10 Absolute Favorite Smashing Magazine Articles</title>
		<link>http://tympanus.net/codrops/2010/02/23/our-10-absolute-favorite-smashing-magazine-articles/</link>
		<comments>http://tympanus.net/codrops/2010/02/23/our-10-absolute-favorite-smashing-magazine-articles/#comments</comments>
		<pubDate>Tue, 23 Feb 2010 13:02:05 +0000</pubDate>
		<dc:creator>Mary Lou</dc:creator>
				<category><![CDATA[Web Design]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[smashing magazine]]></category>

		<guid isPermaLink="false">http://tympanus.net/codrops/?p=1596</guid>
		<description><![CDATA[Some years back when I was starting to study I began to regularly read news and blogs on the web. It was a very exciting time back then since there were many &#8220;first timers&#8221; rising up. One of those innovative &#8220;first timers&#8221; was Smashing Magazine and whenever I was reading their posts I felt like [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://tympanus.net/codrops/wp-content/uploads/2010/02/smashing.png" alt="smashing" title="smashing" width="580" height="314" class="aligncenter size-full wp-image-1602" /><br />
Some years back when I was starting to study I began to regularly read news and blogs on the web. It was a very exciting time back then since there were many &#8220;first timers&#8221; rising up.</p>
<p>One of those innovative &#8220;first timers&#8221; was Smashing Magazine and whenever I was reading their posts I felt like walking inside of a shopping mall at sales time (the girls will understand).</p>
<p>There were so many goodies and interesting articles to soak in (&#8220;we smash you with the information which will make your life easier. really.&#8221;). My favorite were and still are articles about CSS and design trends. And as a developer you couldn&#8217;t really live without the &#8220;Lists&#8221; which would include collections of reference cards and cheat sheets of all kinds of languages (even LaTeX which was widely used for creating homework and scientific papers in universities, at least in Germany) and, of course, all the other famous collections.</p>
<p>Now, that we have our own little blog about web development and design, I can&#8217;t help but to think that one of the reasons why we did it is because of all of the inspiration and discussion that came along with Smashing Magazine and the whole community that was based upon it. They were and are that big example that you point at and say &#8220;this is how you do it&#8221;, and it made many bloggers follow their footsteps.</p>
<p>So, this article is not going to be a roundup of things that I believe are the best Smashing Magazine articles. It is going to be a collection of articles that shaped me as a web developer and recall nostalgic memories when I read them again (some of them are really &#8220;old&#8221; and one might not want to use them for inspiration nowadays :-D).</p>
<p>Here they are, our 10 absolute favorite Smashing Magazine Articles:</p>
<h3><span class="number">1.</span><a href="http://www.smashingmagazine.com/2006/10/30/cheat-sheet-round-up-ajax-css-latex-ruby/">Cheat Sheet Round-Up: Ajax, CSS, LaTeX, Ruby…</a></h3>
<p>This is a great collection of cheat sheets and reference cards from Actionscript to XML. It was incredibly helpful to have this at hand.</p>
<h3><span class="number">2.</span><a href="http://www.smashingmagazine.com/2006/10/11/17-more-free-quality-fonts/">19 More Free Quality Fonts</a></h3>
<p>This one was an amazing collection of free fonts. Smashing Magazine classic: free and quality.</p>
<div id="bsap_1266918" class="bsarocks bsap_af25dfd2f1908889af7a1aa5f4dcbd9e"></div><div style="clear:both;"></div>
<h3><span class="number">3.</span><a href="http://www.smashingmagazine.com/2006/11/11/css-based-forms-modern-solutions/">CSS-Based Forms: Modern Solutions</a></h3>
<p>It was THE reference for form design. Whenever I had to create a form, I opened this article. I still do it&#8230;</p>
<h3><span class="number">4.</span><a href="http://www.smashingmagazine.com/2007/05/24/freebies-round-up-icons-buttons-and-templates/">Freebies Round-Up: Icons, Buttons and Templates</a></h3>
<p>Here we have one of these articles where you drooled over as a web developer. I was thinking, OMG this is too good to be true&#8230;ALL FREE?</p>
<h3><span class="number">5.</span><a href="http://www.smashingmagazine.com/2007/02/09/83-beautiful-wordpress-themes-you-probably-havent-seen/">83 Beautiful WordPress Themes You (Probably) Haven’t Seen</a></h3>
<p>The absolute gigantic WordPress themes showcase.</p>
<h3><span class="number">6.</span><a href="http://www.smashingmagazine.com/2007/05/10/70-expert-ideas-for-better-css-coding/">70 Expert Ideas For Better CSS Coding</a></h3>
<p>This is one of the articles where you can say that it determined your style of coding CSS. It was one of the few really complete guides on how to start and organize your stylesheet creation. Classic!</p>
<h3><span class="number">7.</span><a href="http://www.smashingmagazine.com/2007/03/14/css-based-navigation-menus-modern-solutions/">CSS-Based Navigation Menus: Modern Solutions</a></h3>
<p>I think the term &#8220;Modern Solutions&#8221; is so Smashing Magazine. There was a really classy comment on this one by Agust Gudbjornsson:</p>
<blockquote><p>
Great article guys (as usual!),</p>
<p>Really need to comment on some of the users who commented here above where they talk about the modern part of the menus.</p>
<p>The meaning of modern is not something that you don’t see anywhere else or have never seen before, modern means that its used by variety of companies/people in the today market, in this case websites. By saying that these menus are not modern is kind of stupidity or lack of knowledge over the today´s web designs, since you see nearly all major players (such as apple.com) online use menus such as those.</p>
<p>Tabbed menus have been available since paper tabbed bags where created, even before that time. That does not mean that they cant be modern in the year 2008 on websites :o)</p>
<p>Weird to see how people can always complain, or be the “clever” one.</p>
<p>Appreciate the time that these guys are giving us here at SM, awesome content and good resource to keep alive!</p>
<p>Agust
</p></blockquote>
<h3><span class="number">8.</span><a href="http://www.smashingmagazine.com/2008/03/06/35-really-incredible-free-icon-sets/">35 (Really) Incredible Free Icon Sets</a></h3>
<p>Of course, there were many free icon sets that Smashing Magazine made round-ups of, but this one stood in my head as the most beautiful one. Again, I was thinking, no way these ones are for free!</p>
<h3><span class="number">9.</span><a href="http://www.smashingmagazine.com/2009/02/18/9-common-usability-blunders/">9 Common Usability Mistakes In Web Design</a></h3>
<p>This one really makes you think. I was horrified with how many mistakes I have been doing in designing and this articles just threw it right into my face! It gave so many detailed and helpful ways to rethink my designs.<br />
At this point, a great thanks to Dmitry Fadeyev! You can read more of him on <a href="http://www.usabilitypost.com/">http://www.usabilitypost.com/</a> or at Smashing Magazine under <a href="http://www.smashingmagazine.com/author/dmitry-fadeyev/">http://www.smashingmagazine.com/author/dmitry-fadeyev/</a></p>
<h3><span class="number">10.</span><a href="http://www.smashingmagazine.com/2006/09/03/webdesign-trends-badges-tag-clouds-enormous-fonts/">Design Patterns: Badges, Tag Clouds, Huge Fonts</a></h3>
<p>Ok, this one is really nostalgic, I have to smile at it now, but in 2006 it was so incredibly hip! Some of these trends really made their way and still persist in web design nowadays.</p>
<h3>&#8230;and that&#8217;s it!</h3>
<p>Of course, there are so many articles that one could list here. But this was my little collection of Smashing posts that really smashed me! Enjoy!</p>
]]></content:encoded>
			<wfw:commentRss>http://tympanus.net/codrops/2010/02/23/our-10-absolute-favorite-smashing-magazine-articles/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>
<!-- This Quick Cache file was built for (  tympanus.net/codrops/tag/css/feed/ ) in 0.32028 seconds, on Feb 7th, 2012 at 11:51 am UTC. -->
<!-- This Quick Cache file will automatically expire ( and be re-built automatically ) on Feb 7th, 2012 at 12:51 pm UTC -->
