<?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>teddy-risation &#187; CSS</title>
	<atom:link href="http://teddy-o-ted.com/blog/category/design/css-design/feed/" rel="self" type="application/rss+xml" />
	<link>http://teddy-o-ted.com</link>
	<description>Design of a minimalist, content of a maximalist</description>
	<lastBuildDate>Mon, 07 Nov 2011 17:41:03 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.4.1</generator>
		<item>
		<title>25 Out of the Box Tutorials powered by jQuery and CSS3</title>
		<link>http://teddy-o-ted.com/blog/2010/04/02/25-out-of-the-box-tutorials-powered-by-jquery-and-css3/</link>
		<comments>http://teddy-o-ted.com/blog/2010/04/02/25-out-of-the-box-tutorials-powered-by-jquery-and-css3/#comments</comments>
		<pubDate>Fri, 02 Apr 2010 00:09:53 +0000</pubDate>
		<dc:creator>Terry</dc:creator>
				<category><![CDATA[Bookmarked]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[Design]]></category>

		<guid isPermaLink="false">http://www.teddy-o-ted.com/?p=4633</guid>
		<description><![CDATA[Here is a list of 25 amazing tutorials that are powered by jQuery and CSS3. jQuery has recently released its latest version (v1.4) and some of the tutorials are making good use of the new functions (such as passing attributes to jQuery). Net Tuts Plus have compiled a handy list of new jQuery features that [...]]]></description>
			<content:encoded><![CDATA[<p>Here is a list of 25 amazing tutorials that are powered by jQuery and CSS3. jQuery has recently released its latest version (v1.4) and some of the tutorials are making good use of the new functions (such as passing attributes to jQuery). <a href="http://net.tutsplus.com/tutorials/javascript-ajax/jquery-1-4-released-the-15-new-features-you-must-know/" title="jQuery 1.4 Released: The 15 New Features you Must Know">Net Tuts Plus have compiled a handy list</a> of new jQuery features that designers should be looking at. Oh, and speaking of CSS3, it allows simple CSS animations, rounded corners, text and box shadows and a lot more features initially unavailable in CSS2.1.</p>
<p>Now let&#8217;s forget about IE6 and have fun!</p>
<h3  class="related_post_title">Random</h3><p>Related posts that might interest you:</p><ul class="related_post"><li><a href="http://teddy-o-ted.com/blog/2006/09/04/crocodile-hunter-steve-irwin-dies/" title="Crocodile Hunter Dies">Crocodile Hunter Dies</a></li><li><a href="http://teddy-o-ted.com/blog/2006/08/19/taegukgi-brotherhood-of-war/" title="Taegukgi: Brotherhood Of War">Taegukgi: Brotherhood Of War</a></li><li><a href="http://teddy-o-ted.com/blog/2008/02/21/im-getting-a-new-headgear/" title="I&#8217;m Getting A New&#8230; Headgear!">I&#8217;m Getting A New&#8230; Headgear!</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://teddy-o-ted.com/blog/2010/04/02/25-out-of-the-box-tutorials-powered-by-jquery-and-css3/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Borders &#8211; An experiment with border widths</title>
		<link>http://teddy-o-ted.com/blog/2010/03/01/borders-an-experiment-with-border-widths/</link>
		<comments>http://teddy-o-ted.com/blog/2010/03/01/borders-an-experiment-with-border-widths/#comments</comments>
		<pubDate>Sun, 28 Feb 2010 16:32:42 +0000</pubDate>
		<dc:creator>Terry</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[Design]]></category>
		<category><![CDATA[Tutorials]]></category>

		<guid isPermaLink="false">http://www.teddy-o-ted.com/?p=4582</guid>
		<description><![CDATA[After reading the fantastic writeups about manipulating CSS borders to create graphics that are impossible with grid-like elements on Slantastic and Border Slants, I was inspired to do a simply followup demo page on the capabilities of CSS borders. I started working on this secret, clandestine page on my domain since half a year ago [...]]]></description>
			<content:encoded><![CDATA[<p>After reading the fantastic writeups about manipulating CSS borders to create graphics that are impossible with grid-like elements on <a href="http://meyerweb.com/eric/css/edge/slantastic/demo.html" title="Slantastic">Slantastic</a> and <a href="http://infimum.dk/HTML/slantinfo.html" title="Border Slants">Border Slants</a>, I was inspired to do a simply followup demo page on the capabilities of CSS borders. I started working on this secret, clandestine page on my domain since half a year ago but I didn&#8217;t had enough time to complete everything. Finally came my long-awaited semester break, when I can devote a day&#8217;s time to finish this demo page.</p>
<p>You can view the demo page here. Do not right click on the link, simply do a click-through.<br />
<p class="download download-html" title="Download link for Borders - An experiment with border widths"><a href="http://teddy-o-ted.com/download/10" title="Download link for Borders - An experiment with border widths."><span class="download-title"><strong>view demo</strong>: Borders - An experiment with border widths</span><span class="download-stats">Version 1.0 &#92; File size: 40.54 kB &#92; 447 downloads</span><span class="download-desc">A demonstration page on how we can manipulate CSS borders to create custom shapes and polygons.</span></a></p></p>
<div id="attachment_4584" class="wp-caption aligncenter" style="width: 610px"><img src="http://www.teddy-o-ted.com/wp-content/uploads/2010/02/cssborders01.png" alt="Borders - An experiment with border widths" title="Borders - An experiment with border widths" width="600" height="398" class="size-full wp-image-4584" /><p class="wp-caption-text">Borders - An experiment with border widths</p></div>
<p>The visual elements shown in the remainder of this post will be drawn purely using CSS only &#8211; not images. Feel free to dissect the code for reference. It helps a lot if you can try imagining how you would want to construct a specific shape before referring to the source code to see how it is done.</p>
<h2>The Basics</h2>
<p>The principle behind creating custom shapes using border is the interface between two borders:</p>
<div class="wp-caption aligncenter">
<div style="float: left; margin: 5px 11px; font-size: 0; line-height: 0; border-top: 1px solid #6e94b8; border-right: 1px solid #386085; border-bottom: 1px solid #173755; border-left: 1px solid #051525; width: 98px; height: 98px;"></div>
<div style="float: left; margin: 5px 11px; font-size: 0; line-height: 0; border-top: 10px solid #6e94b8; border-right: 10px solid #386085; border-bottom: 10px solid #173755; border-left: 10px solid #051525; width: 80px; height: 80px;"></div>
<div style="float: left; margin: 5px 11px; font-size: 0; line-height: 0; border-top: 20px solid #6e94b8; border-right: 20px solid #386085; border-bottom: 20px solid #173755; border-left: 20px solid #051525; width: 60px; height: 60px;"></div>
<div style="float: left; margin: 5px 11px; font-size: 0; line-height: 0; border-top: 34px solid #6e94b8; border-right: 34px solid #386085; border-bottom: 35px solid #173755; border-left: 35px solid #051525; width: 30px; height: 30px;"></div>
<div style="float: left; margin: 5px 11px; font-size: 0; line-height: 0; border-top: 50px solid #6e94b8; border-right: 50px solid #386085; border-bottom: 50px solid #173755; border-left: 50px solid #051525; width: 0; height: 0;"></div>
<div style="clear: both;"></div>
</div>
<p>By increasing the <code>border-width</code>, the slant becomes more apparent. We can manipulate each of the <code>border-width</code>s to create the gradient that we want as well.</p>
<h2>Triangles and Trapeziums</h2>
<p>It becomes clear that we can create triangles and trapeziums based on the observation of such behaviours at the interface of two borders.</p>
<div class="wp-caption aligncenter">
<div style="float: left; margin: 5px 11px; font-size: 0; line-height: 0; border-top: 50px solid #6e94b8; border-right: 50px solid #386085; border-bottom: 50px solid #173755; border-left: 50px solid #051525; width: 0; height: 0;"></div>
<div style="float: left; margin: 5px 11px; font-size: 0; line-height: 0; border-top: 25px solid #6e94b8; border-right: 50px solid #386085; border-bottom: 75px solid #173755; border-left: 50px solid #051525; width: 0; height: 0;"></div>
<div style="float: left; margin: 5px 11px; font-size: 0; line-height: 0; border-right: 50px solid #386085; border-bottom: 100px solid #173755; border-left: 50px solid #051525; width: 0; height: 0;"></div>
<div style="float: left; margin: 5px 11px; font-size: 0; line-height: 0; border-right: 50px solid #9bafc2; border-bottom: 100px solid #173755; border-left: 50px solid #828a92; width: 0; height: 0;"></div>
<div style="float: left; margin: 5px 11px; font-size: 0; line-height: 0; border-right: 50px solid #fff; border-bottom: 100px solid #173755; border-left: 50px solid #fff; width: 0; height: 0;"></div>
<div style="clear: both;"></div>
</div>
<p>Trapeziums are possible too, if we increase the width of the empty <code>&lt;div&gt;</code> from zero to a positive numerical value:</p>
<div class="wp-caption aligncenter">
<div style="float: left; margin: 5px 11px; font-size: 0; line-height: 0; border-right: 50px solid #fff; border-bottom: 100px solid #173755; border-left: 50px solid #fff; width: 0; height: 0;"></div>
<div style="float: left; margin: 5px 11px; font-size: 0; line-height: 0; border-right: 40px solid #fff; border-bottom: 100px solid #173755; border-left: 40px solid #fff; width: 20px; height: 0;"></div>
<div style="float: left; margin: 5px 11px; font-size: 0; line-height: 0; border-right: 30px solid #fff; border-bottom: 100px solid #173755; border-left: 30px solid #fff; width: 40px; height: 0;"></div>
<div style="float: left; margin: 5px 11px; font-size: 0; line-height: 0; border-right: 30px solid #fff; border-bottom: 80px solid #173755; border-left: 30px solid #fff; width: 40px; height: 20px;"></div>
<div style="float: left; margin: 5px 11px; font-size: 0; line-height: 0; border-right: 30px solid #fff; border-bottom: 60px solid #173755; border-left: 30px solid #fff; width: 40px; height: 40px;"></div>
<div style="clear: both;"></div>
</div>
<h2>Regular Polygons</h2>
<p>Creating regular polygons require some calculation. Their parameters can be found in the source code, and you can scale the <code>border-width</code> and <code>width</code> properties in order to scale the entire polygon proportionately.</p>
<div class="wp-caption aligncenter">
<div style="float: left; margin: 12px 11px;">
<div style="font-size: 0; line-height: 0; border-left: 50px solid #fff; border-bottom: 87px solid #173755; border-right: 50px solid #fff; width: 0;"></div>
</div>
<div style="float: left; margin: 5px 11px;">
<div style="font-size: 0; line-height: 0; border-left: 50px solid #fff; border-bottom: 50px solid #173755; border-right: 50px solid #fff; width: 0;"></div>
<div style="font-size: 0; line-height: 0; border-left: 50px solid #fff; border-top: 50px solid #173755; border-right: 50px solid #fff; width: 0;"></div>
</div>
<div style="float: left; margin: 8px 11px;">
<div style="font-size: 0; line-height: 0; border-left: 50px solid #fff; border-bottom: 36px solid #173755; border-right: 50px solid #fff; width: 0;"></div>
<div style="font-size: 0; line-height: 0; border-left: 19px solid #fff; border-top: 58px solid #173755; border-right: 19px solid #fff; width: 62px;"></div>
</div>
<div style="float: left; margin: 5px 11px;">
<div style="font-size: 0; line-height: 0; border-left: 43px solid #fff; border-bottom: 25px solid #173755; border-right: 43px solid #fff; width: 0;"></div>
<div style="font-size: 0; line-height: 0; background-color: #173755; width: 86px; height: 50px;"></div>
<div style="font-size: 0; line-height: 0; border-left: 43px solid #fff; border-top: 25px solid #173755; border-right: 43px solid #fff; width: 0;"></div>
</div>
<div style="float: left; margin: 6px 11px;">
<div style="font-size: 0; line-height: 0; border-left: 40px solid #fff; border-bottom: 20px solid #173755; border-right: 40px solid #fff; margin-left: 10px; width: 0; "></div>
<div style="font-size: 0; line-height: 0; border-left: 10px solid #fff; border-bottom: 43px solid #173755; border-right: 10px solid #fff; width: 80px;"></div>
<div style="font-size: 0; line-height: 0; border-left: 27px solid #fff; border-top: 35px solid #173755; border-right: 27px solid #fff; width: 46px;"></div>
</div>
<div style="clear: both;"></div>
</div>
<p>From left to right, we have triangle (trigon), quadrilateral (tetragon), pentagon, hexagon and heptagon. The demo page will have more regular polygons, up to decagon.</p>
<h2>Creating Graphics</h2>
<p>For more examples, refer to the demo page: <a href="http://teddy-o-ted.com/download/10" title="Download link for Borders - An experiment with border widths.">Borders - An experiment with border widths</a>.</p>
<p>One advantage of creating visual elements using CSS (and in this case, CSS borders) is that your visitors will not have to download images that are huge. Of course, this technique is usually experimental because certain image extensions such as .png and .gif will greatly reduce the size of images (given certain conditions) and that it is sometimes not feasible to code an image from ground up.</p>
<div class="wp-caption alignleft" style="width: 210px;">
<div style="margin: 0 auto; font-size: 0; line-height: 0; border-left: 10px solid #fff; border-bottom: 20px solid #238229; border-right: 10px solid #fff; float: none; margin-left: 90px; width: 0;"></div>
<div style="margin: 0 auto; font-size: 0; line-height: 0; border-left: 10px solid #fff; border-bottom: 20px solid #238229; border-right: 10px solid #fff; float: none; margin-left: 86px; width: 8px;"></div>
<div style="margin: 0 auto; font-size: 0; line-height: 0; border-left: 14px solid #fff; border-bottom: 20px solid #238229; border-right: 14px solid #fff; float: none; margin-left: 78px; width: 16px;"></div>
<div style="margin: 0 auto; font-size: 0; line-height: 0; border-left: 18px solid #fff; border-bottom: 20px solid #238229; border-right: 18px solid #fff; float: none; margin-left: 68px; width: 28px;"></div>
<div style="margin: 0 auto; font-size: 0; line-height: 0; border-left: 22px solid #fff; border-bottom: 20px solid #238229; border-right: 22px solid #fff; float: none; margin-left: 56px; width: 44px;"></div>
<div style="margin: 0 auto; font-size: 0; line-height: 0; border-left: 26px solid #fff; border-bottom: 20px solid #238229; border-right: 26px solid #fff; float: none; margin-left: 42px; width: 64px;"></div>
<div style="margin: 0 auto; font-size: 0; line-height: 0; border-left: 30px solid #fff; border-bottom: 20px solid #238229; border-right: 30px solid #fff; float: none; margin-left: 26px; width: 88px;"></div>
<div style="margin: 0 auto; font-size: 0; line-height: 0; border-left: 34px solid #fff; border-bottom: 20px solid #238229; border-right: 34px solid #fff; float: none; margin-left: 8px; width: 116px;"></div>
<div style="margin: 0 auto; font-size: 0; line-height: 0; background-color: #6e3912; border-right: 2px solid #ac5f26; margin-left: 92px; width: 14px; height: 40px;"></div>
</div>
<p>What you see on the left is one of the examples demonstrated on the demo page. The Christmas tree is actually constructed from 10 <code>&lt;div&gt;</code> elements vertically stacked on top of each other. The topmost <code>&lt;div&gt;</code> has its borders modeled after a triangle, while subsequent <code>&lt;div&gt;</code>s have their borders modeled after trapeziums. Their <code>border-width</code>, <code>margin</code> and <code>width</code> has been adjusted so as to give the tree a tapered out look towards the bottom. I finished off the tree with a brown stump made from a single <code>&lt;div&gt;</code> again.</p>
<p>And there you go &#8211; the code for the lovely, purely CSS Christmas tree (all encoded in inline CSS so that you can understand how it works &#8211; and for the sake of clarity). Do remember to wrap it around a box with a defined width.</p>
<pre><code>&lt;div style=&quot;margin: 0 auto; font-size: 0; line-height: 0; border-left: 10px solid #fff; border-bottom: 20px solid #238229; border-right: 10px solid #fff; float: none; margin-left: 90px; width: 0;&quot;&gt;&lt;/div&gt;
&lt;div style=&quot;margin: 0 auto; font-size: 0; line-height: 0; border-left: 10px solid #fff; border-bottom: 20px solid #238229; border-right: 10px solid #fff; float: none; margin-left: 86px; width: 8px;&quot;&gt;&lt;/div&gt;
&lt;div style=&quot;margin: 0 auto; font-size: 0; line-height: 0; border-left: 14px solid #fff; border-bottom: 20px solid #238229; border-right: 14px solid #fff; float: none; margin-left: 78px; width: 16px;&quot;&gt;&lt;/div&gt;
&lt;div style=&quot;margin: 0 auto; font-size: 0; line-height: 0; border-left: 18px solid #fff; border-bottom: 20px solid #238229; border-right: 18px solid #fff; float: none; margin-left: 68px; width: 28px;&quot;&gt;&lt;/div&gt;
&lt;div style=&quot;margin: 0 auto; font-size: 0; line-height: 0; border-left: 22px solid #fff; border-bottom: 20px solid #238229; border-right: 22px solid #fff; float: none; margin-left: 56px; width: 44px;&quot;&gt;&lt;/div&gt;
&lt;div style=&quot;margin: 0 auto; font-size: 0; line-height: 0; border-left: 26px solid #fff; border-bottom: 20px solid #238229; border-right: 26px solid #fff; float: none; margin-left: 42px; width: 64px;&quot;&gt;&lt;/div&gt;
&lt;div style=&quot;margin: 0 auto; font-size: 0; line-height: 0; border-left: 30px solid #fff; border-bottom: 20px solid #238229; border-right: 30px solid #fff; float: none; margin-left: 26px; width: 88px;&quot;&gt;&lt;/div&gt;
&lt;div style=&quot;margin: 0 auto; font-size: 0; line-height: 0; border-left: 34px solid #fff; border-bottom: 20px solid #238229; border-right: 34px solid #fff; float: none; margin-left: 8px; width: 116px;&quot;&gt;&lt;/div&gt;
&lt;div style=&quot;margin: 0 auto; font-size: 0; line-height: 0; background-color: #6e3912; border-right: 2px solid #ac5f26; margin-left: 92px; width: 14px; height: 40px;&quot;&gt;&lt;/div&gt;</code></pre>
<p>One may also explore other options of using CSS borders in creating visual elements &#8211; for example, you can use jQuery insert the necessary code into the start of list items, bulleting each item with a tiny triangle created by CSS borders. Of course, this method will be frown upon by semantics purists, but I&#8217;m going to leave the discussion open.</p>
<h2>Credits, Resources &amp; References</h2>
<p>I would like to thank the genius designers who conceived the idea of creating custom shapes using border slants. It never came across my mind until I read <a href="http://meyerweb.com/eric/css/edge/slantastic/demo.html" title="Slantastic">Slantastic</a> and <a href="http://infimum.dk/HTML/slantinfo.html" title="Border Slants">Border Slants</a>. I have also learned how to code for border slants from there too.</p>
<p>There are several aspects of the application of border slants that I fail to cover in this article and my demo page. The reason is simple &#8211; because they have been done before and little follow-up is needed. Try checking the two links above &#8211; they provide intricate explanation on how wrapping text around a diagonal shape is possible. Go figure!</p>
<p><strong>There are a lot more techniques and ideas that I have included in the demo page</strong>. I did not include them in this article to keep it short and palatable :) </p>
<h2>Your thoughts?</h2>
<p>What are your thoughts on the manipulation of CSS borders and their applicability? If you have any questions regarding the demo page, feel free to post your questions in the comments below. I will be more than happy to help!</p>
<h3  class="related_post_title">Random</h3><p>Related posts that might interest you:</p><ul class="related_post"><li><a href="http://teddy-o-ted.com/blog/2008/05/14/designing-is-fun-a-wordpress-poster/" title="Designing is Fun &#8211; a Wordpress Poster">Designing is Fun &#8211; a Wordpress Poster</a></li><li><a href="http://teddy-o-ted.com/blog/2006/11/03/panorama-mania/" title="Panorama Mania">Panorama Mania</a></li><li><a href="http://teddy-o-ted.com/blog/2005/03/22/penang-exchange-programme-day-3-slack/" title="Penang Exchange Programme Day #3 &#8211; Slack">Penang Exchange Programme Day #3 &#8211; Slack</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://teddy-o-ted.com/blog/2010/03/01/borders-an-experiment-with-border-widths/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>WP theme: teddy-risation Theta</title>
		<link>http://teddy-o-ted.com/blog/2009/05/24/wp-theme-teddy-risation-theta/</link>
		<comments>http://teddy-o-ted.com/blog/2009/05/24/wp-theme-teddy-risation-theta/#comments</comments>
		<pubDate>Sat, 23 May 2009 18:25:39 +0000</pubDate>
		<dc:creator>Terry</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[Design]]></category>
		<category><![CDATA[Photoshop]]></category>
		<category><![CDATA[Framework]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[Theme]]></category>
		<category><![CDATA[Wordpress]]></category>

		<guid isPermaLink="false">http://www.teddy-o-ted.com/?p=3695</guid>
		<description><![CDATA[So here we have, the eight teddy-risation WP theme in it&#8217;s fully glory. Just like the other write-ups that I do for my previous themes, I will be doing one for this one as well, no exceptions. Not only does this entry helps to catalogue my list of themes and my insights of designing them [...]]]></description>
			<content:encoded><![CDATA[<div id="attachment_3696" class="wp-caption aligncenter" style="width: 610px"><img class="size-full wp-image-3696" title="teddy-risation Theta released!" src="http://www.teddy-o-ted.com/wp-content/uploads/2009/05/teddyrisationtheta02.jpg" alt="teddy-risation Theta released!" width="600" height="400" /><p class="wp-caption-text">teddy-risation Theta released!</p></div>
<p>So here we have, the eight teddy-risation WP theme in it&#8217;s fully glory. Just like the other write-ups that I do for my previous themes, I will be doing one for this one as well, no exceptions. Not only does this entry helps to catalogue my list of themes and my insights of designing them (I have goldfish memory, so a backup medium for my cranial storage is needed), but I hope it will also inspire others as well.</p>
<p>teddy-risation Theta is coupled with the tiny rebranding movement I&#8217;ve embarked on, to ditch the funky (and not very impressive) capitalised letters in the site name and my nick as well. Known by the pseudonym &#8216;teddY&#8217; in the past, I am now changing back to &#8216;Teddy&#8217; or as simple as it gets, my real name, Terry. You can address me with both names now, I really don&#8217;t mind, no worries!</p>
<p>This theme took the longest to design &#8211; the date of its conception was actually somewhere during and after my first year final semester examinations. Ideas always have to came at the wrongest of all wrong times, don&#8217;t they? I did a simple sketch on what I wanted on paper, and moved on to my studies. When the exams ended, I immediately started materialising the layout in Photoshop, starting from the header section.</p>
<h2>Theme Hybrid</h2>
<p>Theta is actually a child theme of <a title="Theme Hybrid: A WordPress theme club" href="http://themehybrid.com/">Theme Hybrid</a>. It is a <em>free</em> WP theme and you can modify it in anyway you want, or even create your own child themes that rely on the Hybrid framework. I did modify a few core files on the Hybrid theme, but other than that, all the styling and customisation you see here leaves the original Hybrid files completely untouched. That means that I can easily update my theme when Hybrid issues one, without breaking my child theme.</p>
<p>In the past I&#8217;ve always used <a title="Sandbox theme" href="http://www.plaintxt.org/themes/sandbox/">Sandbox</a>. However, I&#8217;ve decided to try out other new WP themes because sadly, the Sandbox creators have paused the development of the theme and the future is rather bleak. I have to say that I really loved working on Sandbox, <a title="Andy Skelton" href="http://andy.wordpress.com/">Andy</a> and <a title="Scott Allan Wallick" href="http://www.plaintxt.org/">Scott</a> &#8211; I really appreciate the support and help you&#8217;ve rendered to users of your theme and your dedicated effort. Because of that reason, I realised that I have to start learning how to work on other WP themes &#8211; out of the many available options like <a title="Thematic theme" href="http://wordpress.org/extend/themes/thematic">Thematic</a>, <a title="WP Framework" href="http://wpframework.com/">WP Framework</a>, <a title="Whiteboard" href="http://plainbeta.com/2008/05/20/whiteboard-a-free-wordpress-theme-framework/">Whiteboard</a> and <a title="The Buffet Framework" href="http://www.zy.sg/the-buffet-framework/">The Buffet Framework</a>, I&#8217;ve chose Hybrid&#8230; for just one reason &#8211; the main colour scheme is greyish blue. What a biased choice, isn&#8217;t it?</p>
<p>Hybrid was a little hard to tame at first, I find myself constantly referring to different files in the library for hooks, filters and etc. The styling was a little more challenging to do, because unlike Sandbox that came in plain and simple, Hybrid has a basic stylesheet built into it and it takes time to figure things out. One thing I really love about Hybrid is that it has <em>wonderful typography</em> &#8211; while I have inherited the font family from the previous theme, the spacings and arrangement of text-based elements are all inherited wholely from the 22px stylesheet. Hybrid comes with a few different stylehsheets &#8211; 18px, 20px and etc, indicating the line height. I wanted my text to be more spaced out, so I picked 22px.</p>
<h2>Randomity, and the essence of it</h2>
<p>This theme incorporated some interesting randomity in it &#8211; the gallery images in the gallery window changes everytime you load it &#8211; not only does the array of images displayed changes, their arrangement is also jumbled up upon each reload. I&#8217;ve combined several shuffling and randomising techniques to achieve that, maybe I&#8217;ll blog about it later :) if you want it, just tell me.</p>
<p>Another one is the Twitter users that I follow &#8211; I have their avatars displayed in the sidebar. I have a lot of them, but I only randomly display 14 of them while the rest is hidden so that I do not clutter the sidebar up. It&#8217;s a lot of PHP stuff that I had to do, but it was fun! I spent one whole day just doing the PHP part for the Twitter widget. Tedious, but very fun and enlightening.</p>
<h2>Fonts and sIFR</h2>
<p>The main typeface I use for the headers and the introductory paragraph is <a title="Alte Haas Grotesk" href="http://www.dafont.com/alte-haas-grotesk.font">Alte Haas Grotesk</a> by designer <a title="Yann le Coroller's site" href="http://www.yannlecoroller.com/">Yann le Coroller</a>. The fontw as featured in the previous week&#8217;s <em>Fonty Friday</em> feature, which I run on a weekly basis. For the logo, I used <a title="Colaborate Font Family" href="http://www.fontsquirrel.com/fonts/Colaborate">Colaborate Regular</a> by <a title="Ralph Oliver du Carrois" href="http://www.carrois.com/">Ralph Oliver du Carrois</a>.</p>
<p>Since not everyone has Alte Haas Grotesk installed in their computers and that the CSS support for @font-face is rather patchy, font replacement methods, whether is it by flash or by images, are preferred. I did a little research and decide to settle for <a title="sIFR 2.0: Rich Accessible Typography for the Masses" href="http://www.mikeindustries.com/blog/sifr/">sIFR</a> &#8211; Scalable Inman Flash Replacement. I&#8217;ve made sIFR to only replace post and page titles, so that I won&#8217;t overload your computer and make performance sluggish &#8211; anyway, it&#8217;s really, really not recommended that you use sIFR for a big chuck of text! Keep it to headers only :)</p>
<h2>Javascript-powered feautures that gracefully degrades</h2>
<p>One feature that I put in a lot of effort struggling to make sure that it gets incorporated into the theme is gracefully-degrading javascript-powered features when javascript is not available or disabled. As you know, many sites nowadays are powered by javascript and many of them actually breaks when JS is disabled &#8211; a good example will be YouTube &#8211; try disabling JS in your browser and see what happens.</p>
<p>Most of the effects you see here are powered by<a title="jQuery: The Write Less, Do More, JavaScript Library" href="http://jquery.com/"> jQuery</a>, a very light-weight javascript library that helps you to achieve many things that requires advance knowledge of javascript in the past. Simple actions like the toggle effect in the comment form (try clicking on the labels and see what happen) and in the Twitter section on the sidebar (visible on main page only) are easily achieved by knowing just a little bit of jQuery. Lovely, isn&#8217;t it?</p>
<p>jQuery also allows me to select last-child of a parent element &#8211; the :last-child pseudo-class is not very well supported in every single browser (hint hint, IE6) and so we can actually use jQuery to insert a class to the last-child. If JS is disabled, the visual impact is not too obvious to be seen while in most JS-enabled visitors, it helps to achieve a uniform, consistent appearance of list items and etc.</p>
<p>jQuery is also used to create the fading effect of the header navigation links, as well as the Next and Prev buttons of the gallery window in the header. I might be writing a little more about how that is achieved in the future, but I shall not bore you to death in this entry.</p>
<p>I&#8217;m still learning how to use jQuery, so in this theme&#8217;s <a title="Functions javascript" href="http://www.teddy-o-ted.com/wp-content/themes/Teddyrisationtheta/js/functions.js">functions.js file</a>, I&#8217;ve also added annotations and urls to useful websites for first-time jQuery learners. They are excellent resources where one can start learning jQuery, with little prior knowledge of any programming languages.</p>
<h2>The 404 page</h2>
<p>For this theme, I&#8217;ve also designed a cute little 404 page that people will land on if they&#8217;ve followed a <a title="A 404 Page (/wp-admins/ does not exist, only /wp-admin/)" href="http://www.teddy-o-ted.com/wp-admins/">broken link</a> (it can be any, but I &#8216;m giving you this for convenience&#8217;s sake). Check it out!</p>
<h2>Improved gallery</h2>
<p>Last, but not least, the <a title="Gallery" href="http://www.teddy-o-ted.com/gallery/">Gallery page</a> has been improved upon too. Without the obstruction of the sidebar, there&#8217;s now more space for photos, heh!</p>
<h2>That&#8217;s all!</h2>
<p>I guess I shall keep this post short. If you have any questions, feel free to shoot! Anyway, I have a question for anyone who&#8217;s reading this: <strong>what WP themes do you use for your theme framework? Do you create a theme completely from groundup, or modify existing themes</strong> (like me)<strong> ?</strong></p>
<h3  class="related_post_title">Related</h3><p>Related posts that might interest you:</p><ul class="related_post"><li><a href="http://teddy-o-ted.com/blog/2009/09/10/35-stylish-and-modern-wordpress-plugins-using-jquery-ui/" title="35 Stylish And Modern Wordpress Plugins Using jQuery UI">35 Stylish And Modern Wordpress Plugins Using jQuery UI</a></li><li><a href="http://teddy-o-ted.com/blog/2008/12/01/presenting-teddy-risation-eta/" title="Presenting teddY-risatioNâ„¢ Eta">Presenting teddY-risatioNâ„¢ Eta</a></li><li><a href="http://teddy-o-ted.com/blog/2008/06/13/teddy-risation%e2%84%a2-zeta-released/" title="teddY-risatioNâ„¢ Zeta Released!">teddY-risatioNâ„¢ Zeta Released!</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://teddy-o-ted.com/blog/2009/05/24/wp-theme-teddy-risation-theta/feed/</wfw:commentRss>
		<slash:comments>20</slash:comments>
		</item>
		<item>
		<title>8 Javascript solutions to common CSS problems</title>
		<link>http://teddy-o-ted.com/blog/2009/03/24/8-javascript-solutions-to-common-css-problems/</link>
		<comments>http://teddy-o-ted.com/blog/2009/03/24/8-javascript-solutions-to-common-css-problems/#comments</comments>
		<pubDate>Mon, 23 Mar 2009 20:34:45 +0000</pubDate>
		<dc:creator>Terry</dc:creator>
				<category><![CDATA[Bookmarked]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[Design]]></category>
		<category><![CDATA[Fix]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[jQuery]]></category>

		<guid isPermaLink="false">http://www.teddy-o-ted.com/?p=3384</guid>
		<description><![CDATA[Jean-Baptiste Jung shares <a title="8 Javascript solutions to common CSS problems" href="http://www.catswhocode.com/blog/8-javascript-solutions-to-common-css-problems">8 ingenious jQuery-based javascript solutions</a> on CatsWhoCode.comto circumvent the common CSS problems. While CSS is a semantically correct way of styling your webpages, not all popular browsers (like IE6, I know this comes very naturally for a designer) support CSS3 and there's always this problem of cross-browser compatibility.]]></description>
			<content:encoded><![CDATA[<div id="attachment_3386" class="wp-caption aligncenter" style="width: 610px"><a href="http://www.catswhocode.com/blog/8-javascript-solutions-to-common-css-problems"><img class="size-full wp-image-3386" title="8 Javascript solutions to common CSS problems" src="http://www.teddy-o-ted.com/wp-content/uploads/2009/03/8jsfixesforcss.jpg" alt="8 Javascript solutions to common CSS problems" width="600" height="233" /></a><p class="wp-caption-text">8 Javascript solutions to common CSS problems</p></div>
<p>Jean-Baptiste Jung shares <a title="8 Javascript solutions to common CSS problems" href="http://www.catswhocode.com/blog/8-javascript-solutions-to-common-css-problems">8 ingenious jQuery-based javascript solutions</a> on CatsWhoCode.comto circumvent the common CSS problems. While CSS is a semantically correct way of styling your webpages, not all popular browsers (like IE6, I know this comes very naturally for a designer) support CSS3 and there&#8217;s always this problem of cross-browser compatibility. Little do many people know that Javascript can actually fix a myriad of CSS problems &#8211; you&#8217;ve never thought they go along well together, do you?</p>
<p>From important fixes like the jQuery PNG transparency fix to the absolutely evil IE6-crashing script (so as to scare visitors into switching browsers, or is it more like scaring visitors away? That&#8217;s up to you), this article is a must-read for designers and coders alike.</p>
<h3  class="related_post_title">Related</h3><p>Related posts that might interest you:</p><ul class="related_post"><li><a href="http://teddy-o-ted.com/blog/2009/03/22/easy-display-switch-with-css-and-jquery/" title="Easy Display Switch with CSS and jQuery">Easy Display Switch with CSS and jQuery</a></li><li><a href="http://teddy-o-ted.com/blog/2009/02/21/compacting-contents-using-glider-script/" title="Compacting contents using Glider script">Compacting contents using Glider script</a></li><li><a href="http://teddy-o-ted.com/blog/2008/09/05/fix-for-buggy-flickr-badge-js/" title="Fix for buggy Flickr badge JS">Fix for buggy Flickr badge JS</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://teddy-o-ted.com/blog/2009/03/24/8-javascript-solutions-to-common-css-problems/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Easy Display Switch with CSS and jQuery</title>
		<link>http://teddy-o-ted.com/blog/2009/03/22/easy-display-switch-with-css-and-jquery/</link>
		<comments>http://teddy-o-ted.com/blog/2009/03/22/easy-display-switch-with-css-and-jquery/#comments</comments>
		<pubDate>Sat, 21 Mar 2009 17:39:51 +0000</pubDate>
		<dc:creator>Terry</dc:creator>
				<category><![CDATA[Bookmarked]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[Design]]></category>
		<category><![CDATA[Fluid]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[Switch]]></category>

		<guid isPermaLink="false">http://www.teddy-o-ted.com/?p=3360</guid>
		<description><![CDATA[As javascript libraries becomes increasingly popular among designers and website visitors alike, your daily visitors are now expecting more than just static pages - they would be thrilled to see interactive, fluid pages. In 2006 <a title="In Search of the Holy Grail" href="http://www.alistapart.com/articles/holygrail/">A List Apart published an article</a> on the holy grail of webdesign, which involves coding for fluid layouts in CSS. With the popularity of  javascript libraries like jQuery, <a title="Easy Display Switch with CSS and jQuery" href="http://designm.ag/tutorials/jquery-display-switch/">Soh Tanaka has written an excellent tutorial</a> on teaching us how to incorporate fluid display options on our pages - allowing visitors to switch between different forms of display (think iTunes libraries). An interesting concept that is actually very simple, and can be easily done with a few lines of jQuery and CSS.]]></description>
			<content:encoded><![CDATA[<div id="attachment_3361" class="wp-caption aligncenter" style="width: 610px"><a href="http://designm.ag/tutorials/jquery-display-switch/"><img class="size-full wp-image-3361" title="Easy Display Switch with CSS and jQuery" src="http://www.teddy-o-ted.com/wp-content/uploads/2009/03/displayswitch01.jpg" alt="Easy Display Switch with CSS and jQuery" width="600" height="588" /></a><p class="wp-caption-text">Easy Display Switch with CSS and jQuery</p></div>
<p>As javascript libraries becomes increasingly popular among designers and website visitors alike, your daily visitors are now expecting more than just static pages &#8211; they would be thrilled to see interactive, fluid pages. In 2006 <a title="In Search of the Holy Grail" href="http://www.alistapart.com/articles/holygrail/">A List Apart published an article</a> on the holy grail of webdesign, which involves coding for fluid layouts in CSS. With the popularity ofÂ  javascript libraries like jQuery, <a title="Easy Display Switch with CSS and jQuery" href="http://designm.ag/tutorials/jquery-display-switch/">Soh Tanaka has written an excellent tutorial</a> on teaching us how to incorporate fluid display options on our pages &#8211; allowing visitors to switch between different forms of display (think iTunes libraries). An interesting concept that is actually very simple, and can be easily done with a few lines of jQuery and CSS.</p>
<p>Basically, the technique behind the display switch is simply to style the list containing the gallery items separately &#8211; one in the thumbnail form and the other in the detailed listing form. And then you will use jQuery to add/remove a class that is appended to the list, to achieve the different appearance all coded by CSS.</p>
<h3  class="related_post_title">Related</h3><p>Related posts that might interest you:</p><ul class="related_post"><li><a href="http://teddy-o-ted.com/blog/2009/03/24/8-javascript-solutions-to-common-css-problems/" title="8 Javascript solutions to common CSS problems">8 Javascript solutions to common CSS problems</a></li><li><a href="http://teddy-o-ted.com/blog/2009/02/21/compacting-contents-using-glider-script/" title="Compacting contents using Glider script">Compacting contents using Glider script</a></li><li><a href="http://teddy-o-ted.com/blog/2006/11/09/whats-up-2/" title="What&#8217;s Up?">What&#8217;s Up?</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://teddy-o-ted.com/blog/2009/03/22/easy-display-switch-with-css-and-jquery/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>5 Ways to Instantly Write Better CSS</title>
		<link>http://teddy-o-ted.com/blog/2009/02/25/5-ways-write-better-css/</link>
		<comments>http://teddy-o-ted.com/blog/2009/02/25/5-ways-write-better-css/#comments</comments>
		<pubDate>Wed, 25 Feb 2009 13:41:18 +0000</pubDate>
		<dc:creator>Terry</dc:creator>
				<category><![CDATA[Bookmarked]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[Design]]></category>
		<category><![CDATA[Tutorials]]></category>

		<guid isPermaLink="false">http://www.teddy-o-ted.com/?p=3176</guid>
		<description><![CDATA[Recently I read about an article that teaches web designers five ways to write better, neater and cleaner CSS by Trevor Davis, after following a link in a tweet.

In case you're still wondering what CSS stands for, it actually means Cascading Style Sheets - the stylesheet part is easy to understand. CSS is created with a notion to separate content and styling. The cascading part is a little tricky - it means that you can actually override certain properties in the stylesheet by being more specific in your selectors.

Back to the post itself, here are the five ways Trevis recommended, with my personal opinions/comments.]]></description>
			<content:encoded><![CDATA[<div id="attachment_3177" class="wp-caption alignright" style="width: 260px"><img class="size-full wp-image-3177" title="Five Ways of Writing Better CSS" src="http://www.teddy-o-ted.com/wp-content/uploads/2009/02/fivewaysofwritingbettercss01.png" alt="Five Ways of Writing Better CSS" width="250" height="250" /><p class="wp-caption-text">Five Ways of Writing Better CSS</p></div>
<p>Recently I read about an article that teaches web designers <a title="5 Ways to Instantly Write Better CSS" href="http://net.tutsplus.com/tutorials/html-css-techniques/5-tips-to-writing-better-css/">five ways to write better, neater and cleaner CSS</a> by Trevor Davis, after following a link in a tweet.</p>
<p>In case you&#8217;re still wondering what CSS stands for, it actually means Cascading Style Sheets &#8211; the <em>stylesheet</em> part is easy to understand. CSS is created with a notion to separate content and styling, which explains why the &lt;font&gt;, &lt;center&gt; and etc. tags are deprecated and no longer accpeted in (X)HTML. The <em>cascading</em> part is a little tricky &#8211; it means that you can actually override certain properties in the stylesheet by being more specific in your selectors &#8211; for example, <code>span.highlight</code> can be overridden by <code>div.content span.highlight</code> if the &lt;span class=&#8221;highlight&#8221;&gt; is located within &lt;div class=&#8221;content&#8221;&gt;.</p>
<p>Back to the post itself, here are the five ways Trevis recommended, with my personal opinions/comments. Of course, for more details you will have to follow the link (or else I&#8217;ll be slapped with a plagiarism charge):<strong></strong></p>
<h2>Reset</h2>
<p>I never had a habit to use a reset stylesheet in the past, and the different default styling applied to elements (such as a certain margin and padding for the &lt;body&gt; tag, for example) drove me mad. It was until <a title="More Killer CSS Reset Styles" href="http://perishablepress.com/press/2008/03/23/more-killer-css-reset-styles/">Jeff from Perishable Press wrote about them</a> that I realized how important they are. For the moment being, my blog is using the 960 grid reset since I&#8217;m using the grid system as part of my layout. In the past, I&#8217;ve used <a title="Tripoli reset" href="http://devkick.com/lab/tripoli/">Tripoli reset</a>, and it was quite a good experience!</p>
<h2>Alphabetize</h2>
<p>I don&#8217;t think it serves much purpose, but the perfectionist side of me forced me to alphabetize my entire stylesheet as much as possible, except for the dimensions of the element (width and height), which I will place last.</p>
<h2>Organization</h2>
<p>I do organize my style sheet a little, just in case any curious person would like to took a peep at it. I divide my stylesheet into several sections. Although they don&#8217;t help much with navigation around the style sheet (I will just use the search function instead), they do keep things in order.</p>
<h2>Consistency</h2>
<p>Now the tricky part. I remembered reading a debate on what kind of way people prefer to organize their stylesheet &#8211; single line vs multiple lines. Let say we take one from my current style sheet, the single line way will look like this:</p>
<pre><code>.entry-title a span.title-comments {background: transparent url(images/comment_bubble.png) 0 0 no-repeat; color: #cccccc; font-size: 90%; letter-spacing: -2px; margin-left: 4px; padding: 2px 2px 2px 16px;}</code></pre>
<p>A multiple-line one will look like this instead:</p>
<pre><code>.entry-title a span.title-comments {
   background: transparent url(images/comment_bubble.png) 0 0 no-repeat;
   color: #cccccc;
   font-size: 90%;
   letter-spacing: -2px;
   margin-left: 4px;
   padding: 2px 2px 2px 16px;
}</code></pre>
<p>Of course, the first method saves you the line-breaks and your finger from all the scrolling madness, while the second method makes error-spotting easier &#8211; when you place the code under validation test, and when an error is found on a certain line you will immediately know which one went wrong.</p>
<h2>Start in the right place</h2>
<p>Just like what Trevis puts it, &#8220;<strong>Donâ€™t you dare touch your stylesheet until you have written your markup!</strong>&#8221; It is imperative that you get your markup right first &#8211; which includes ditching the hated table layout, removing deprecated elements, checking your file with a validator before hand &#8211; before moving on to CSS.</p>
<h3  class="related_post_title">Related</h3><p>Related posts that might interest you:</p><ul class="related_post"><li><a href="http://teddy-o-ted.com/blog/2009/03/24/8-javascript-solutions-to-common-css-problems/" title="8 Javascript solutions to common CSS problems">8 Javascript solutions to common CSS problems</a></li><li><a href="http://teddy-o-ted.com/blog/2009/03/22/easy-display-switch-with-css-and-jquery/" title="Easy Display Switch with CSS and jQuery">Easy Display Switch with CSS and jQuery</a></li><li><a href="http://teddy-o-ted.com/blog/2009/02/21/compacting-contents-using-glider-script/" title="Compacting contents using Glider script">Compacting contents using Glider script</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://teddy-o-ted.com/blog/2009/02/25/5-ways-write-better-css/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Compacting contents using Glider script</title>
		<link>http://teddy-o-ted.com/blog/2009/02/21/compacting-contents-using-glider-script/</link>
		<comments>http://teddy-o-ted.com/blog/2009/02/21/compacting-contents-using-glider-script/#comments</comments>
		<pubDate>Fri, 20 Feb 2009 23:25:17 +0000</pubDate>
		<dc:creator>Terry</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[Design]]></category>
		<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[AJAX]]></category>
		<category><![CDATA[Coda]]></category>
		<category><![CDATA[Glider]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[Library]]></category>
		<category><![CDATA[XHTML]]></category>

		<guid isPermaLink="false">http://www.teddy-o-ted.com/?p=3131</guid>
		<description><![CDATA[Thanks to Iva for requesting for this tutorial! Finally I have something to add to my long-dormant list of resources. Iva asked me over Twitter whether could I write a tutorial on how I&#8217;ve incorporated the famous Coda glider effect on my blog header. The basic function of the glider script is to replicate the [...]]]></description>
			<content:encoded><![CDATA[<p><img class="aligncenter size-full wp-image-3154" title="Using Glider.js" src="http://www.teddy-o-ted.com/wp-content/uploads/2009/02/glider02.jpg" alt="Using Glider.js" width="600" height="542" /></p>
<p>Thanks to <a title="Iva @ Iva-is.me" href="http://www.iva-is.me/">Iva</a> for requesting for this tutorial! Finally I have something to add to my long-dormant list of resources. Iva asked me over Twitter whether could I write a tutorial on how I&#8217;ve incorporated the <a title="See Coda glider here!" href="http://www.panic.com/coda/">famous Coda glider effect</a> on my blog header. The basic function of the glider script is to replicate the effects of the Coda glider. Gliders, like accordions, are very useful in compressing/compacting contents in an area of a fixed size, and animate the process when a visitor switches between the different &#8216;panels&#8217; (which involves gliding, hence the name).</p>
<p>My previous themes were plagued with the problem of overcrowding, where I attempt to squeeze too much information into too little screen real estate space &#8211; resulting in a rather nasty, visitor-unfriendly clutter and confusion. When I <a title="Presenting teddY-risatioN Eta" href="http://www.teddy-o-ted.com/design/presenting-teddy-risation-eta/">redesigned</a> my blog, I kept that problem in mind and I was very impressed when I saw <a title="The Wojo Group" href="http://www.thewojogroup.com/">The Wojo Group</a>&#8216;s glider in action. It then led me to discovering the original synthesis of this idea at Coda, and to the Google Code page of <a title="MissingMethod Projects - Glider.js" href="http://code.google.com/p/missingmethod-projects/wiki/Glider">Glider.js</a>.</p>
<h2>What is glider.js?</h2>
<p>Glider.js is a rather lightweight javascript effect that weighs around 4kb <em>uncompressed</em>. So far I&#8217;ve not seen much development of the script after it&#8217;s previous update in May 2007, but for the moment being, it doesn&#8217;t have much issues with most major browsers (including IE6, <em>surprise!</em>). I&#8217;ve tested it in Firefox 2 and 3, Safari, Opera, Safari and Chrome, and it excelled in all these browsers. It is <a title="Download Glider.js" href="http://code.google.com/p/missingmethod-projects/downloads/list">downloadable over here</a>.</p>
<p>So are you ready to continue with the tutorial? Goodies after the jump, I promise!</p>
<p><span id="more-3131"></span></p>
<h2>Using the glider</h2>
<p>So now let&#8217;s move on to the part that lets you implement your own glider. There is a demo link at the end of the tutorial, but it&#8217;s always better to read through the details because that&#8217;s where the majority of the explaning goes to.</p>
<h3>What you will need</h3>
<p>Download the <a title="Glider.js" href="http://code.google.com/p/missingmethod-projects/downloads/list">Glider.js</a> and if you don&#8217;t have, <a title="Prototype.js" href="http://www.prototypejs.org/">Prototype.js</a> and <a title="Scriptaculous.js" href="http://script.aculo.us/">Scriptaculous.js</a>. Of course, if you&#8217;re using WordPress, you don&#8217;t have to worry about the latter because they&#8217;ve been taken care of by your WordPress installation. It&#8217;s safer to check your blog header and see if they&#8217;re loaded. If they&#8217;re not, you don&#8217;t need to actualy download them &#8211; you can simply load <a title="Google AJAX Libraries" href="http://code.google.com/apis/ajaxlibs/documentation/">Google AJAX Libraries</a> to make things easier:</p>
<ol class="code">
<li><code>&lt;script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/prototype/1.6.0.3/prototype.js"&gt;&lt;/script&gt;</code></li>
<li><code>&lt;script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/scriptaculous/1.8.2/scriptaculous.js"&gt;&lt;/script&gt;</code></li>
<li><code>&lt;script type="text/javascript" src="glider.js"&gt;&lt;/script&gt;</code></li>
</ol>
<p><strong>*Note: It&#8217;s absolutely important that you load the glider.js file <em>after</em> loading prototype and scriptaculous.</strong></p>
<p>Alternatively, if you prefer to use the <em>google.load</em> function:</p>
<ol class="code">
<li><code>&lt;script src="http://www.google.com/jsapi"&gt;&lt;/script&gt;</code></li>
<li><code>&lt;script type="text/javascript"&gt;</code></li>
<li class="indent1"><code>google.load("prototype", "1.6.0.3");</code></li>
<li class="indent1"><code>google.load("scriptaculous", "1.8.2");</code></li>
<li><code>&lt;/script&gt;</code></li>
<li><code>&lt;script type="text/javascript" src="glider.js"&gt;&lt;/script&gt;</code></li>
</ol>
<p>For WordPress users who prefer to place their glider.js file in their theme&#8217;s JS directory (recommended, and you can use any other names, just be sure to change the &#8216;/js/&#8217; into something else &#8211; &#8216;/name-of-directory/&#8217;), replace the last line above with:</p>
<ol class="code">
<li><code>&lt;script type="text/javascript" src="&lt;?php bloginfo('stylesheet_directory'); ?&gt;/js/glider.js"&gt;&lt;/script&gt;</code></li>
</ol>
<p>For more information on the Google AJAX Libraries, you can read <a title="Save Bandwidth by Serving jQuery, MooTools, Prototype via Googleâ€™s AJAX Libraries API" href="http://perishablepress.com/press/2008/11/25/save-bandwidth-by-serving-jquery-mootools-prototype-via-googles-ajax-libraries-api/">Jeff&#8217;s writeup</a>.</p>
<h3>Prior to setting up the glider</h3>
<p>Glider.js relies on using classes to identify the individual gliders, so you will have to make sure that the following classes are unused in your layout (except for elements meant for the glider):</p>
<ul>
<li>scroller</li>
<li>section</li>
<li>controls</li>
</ul>
<p><em>*Note to advanced coders: these classes are identified in the javascript file, so if you&#8217;re planning to use other classes, do keep track of the changes and replace the class names in the file with relevant ones.</em></p>
<p>Basically, you will have a <code>&lt;div class="scroller"&gt;</code> to serve as a window around the content, and then <code>&lt;div class="section"&gt;</code> to wrap around each individual panels (which will be glided over when the event is initiated by a user mouseclick on a link &#8211; we&#8217;ll come to that later) and then a <code>&lt;div class="controls"&gt;</code> to house the control tabs. For some designers, you might want a forward and backward button to be present &#8211; if that&#8217;s the case, you can make do without the <code>&lt;div class="controls"&gt;</code> part. Here&#8217;s a summary of what the individual classes serve as:</p>
<ul>
<li>scroller &#8211; serves as a window in which sections will appear, one at a time</li>
<li>section &#8211; wraps around contents in <em>individual panels</em> in the glider</li>
<li>controls &#8211; wraps around the <em>tabs</em> to allow navigation to any panel in the glider</li>
</ul>
<p>A very basic layout, as evient in the blog header in the current design, can be seen below:</p>
<div id="attachment_3133" class="wp-caption aligncenter" style="width: 610px"><img class="size-full wp-image-3133" title="Basic layout of a glider." src="http://www.teddy-o-ted.com/wp-content/uploads/2009/02/glider01.jpg" alt="Basic layout of a glider." width="600" height="153" /><p class="wp-caption-text">Basic layout of a glider.</p></div>
<p>The basic idea is that we will have the scroller to be of the same width of the panels &#8211; it will be the &#8216;window&#8217; in which the each section, or panel, is displayed. For this reason, all sections have to be of the same width. When the animation is not running, you will only see one section/panel in the window, and when you click on the navigation menu, the glider effects kicks in, fetches for the other section located outside of the window (see screenshot above) and repositions the new section in the window. That&#8217;s a mouthful! Now take a deep breath and try to digest it *burp*</p>
<p>And this brings us to the next section. Read on!</p>
<h3>Step 1 &#8211; Adding an overall and a content wrapper</h3>
<p>I have a habit of wrapping huge, chunky sections with a wrapper, so for this case, we will be using <code>&lt;div id="glider"&gt;</code>.</p>
<ol class="code">
<li><code>&lt;div id="glider"&gt;</code></li>
<li class="indent1"><code>...</code></li>
<li><code>&lt;/div&gt;</code></li>
</ol>
<p>Now we add in the scroller, and then the content wrapper that wraps around all the individual panels. We will also need to append the script that specifies the glider, <em>after</em> the entire glider element.</p>
<ol class="code">
<li><code>&lt;div id="glider"&gt;</code></li>
<li class="indent1"><code>&lt;div class="scroller"&gt;</code></li>
<li class="indent2"><code>&lt;div class="content"&gt;</code></li>
<li class="indent3"><code>...</code></li>
<li class="indent2"><code>&lt;/div&gt;</code></li>
<li class="indent1"><code>&lt;/div&gt;</code></li>
<li><code>&lt;/div&gt;</code></li>
<li><code>&lt;script type="text/javascript" charset="utf-8"&gt;var my_glider = new Glider('glider', {duration:0.5});&lt;/script&gt;</code></li>
</ol>
<p>*Note: If you have a different id for your glider container, you will have to make changes to the script &#8211; change the &#8216;glider&#8217; to &#8216;<em>your-own-id</em>&#8216;. The same applies if you want to vary the duration of transition/animation.</p>
<p>For the CSS, we want each section to be 500px wide and 200px tall. So we need to make the window of the same size too. In addition, we will make it such that the <code>&lt;div class="content"&gt;</code> is of a very huge width (to contain all the scrollers):</p>
<ol class="code">
<li><code>.scroller {</code></li>
<li class="indent1"><code>overflow: hidden;</code></li>
<li class="indent1"><code>width: 500px;</code></li>
<li class="indent1"><code>height: 200px;</code></li>
<li><code>}</code></li>
<li><code>.content {</code></li>
<li class="indent1"><code>width: 10000px;</code></li>
<li><code>}</code></li>
</ol>
<p>Everything cool so far? Now we move on to the second step.</p>
<h3>Step 2 &#8211; Adding in the sections</h3>
<p>Now we&#8217;re done with the wrappers (div-itis alert, yes, but that&#8217;s unavoidable). We shall add in the individual sections. Let&#8217;s say we want to have 5 sections, each 500px wide and 200px tall:</p>
<ol class="code">
<li><code>&lt;div id="glider"&gt;</code></li>
<li class="indent1"><code>&lt;div class="scroller"&gt;</code></li>
<li class="indent2"><code>&lt;div class="content"&gt;</code></li>
<li class="indent3"><code>&lt;div id="section1" class="section"&gt;...&lt;/div&gt;</code></li>
<li class="indent3"><code>&lt;div id="section2" class="section"&gt;...&lt;/div&gt;</code></li>
<li class="indent3"><code>&lt;div id="section3" class="section"&gt;...&lt;/div&gt;</code></li>
<li class="indent3"><code>&lt;div id="section4" class="section"&gt;...&lt;/div&gt;</code></li>
<li class="indent3"><code>&lt;div id="section5" class="section"&gt;...&lt;/div&gt;</code></li>
<li class="indent2"><code>&lt;/div&gt;</code></li>
<li class="indent1"><code>&lt;/div&gt;</code></li>
<li><code>&lt;/div&gt;</code></li>
<li><code>&lt;script type="text/javascript" charset="utf-8"&gt;var my_glider = new Glider('glider', {duration:0.5});&lt;/script&gt;</code></li>
</ol>
<p>*Note to those who are unfamiliar with CSS &#8211; &#8216;id&#8217; and &#8216;class&#8217; are two different things. A particular id can only appear in the entire document once &#8211; although modern browsers render multiple elements of the same id correctly, this should not be seen as valid XHTML. A class can appear multiple times in a document. We will apply a general style for all sections, so we target the class instead of the id.</p>
<p>To fix the dimensions of each section, we will have to turn to CSS for help:</p>
<ol class="code">
<li><code>.section {</code></li>
<li class="indent1"><code>float: left;</code></li>
<li class="indent1"><code>overflow: hidden;</code></li>
<li class="indent1"><code>padding: 10px;</code></li>
<li class="indent1"><code>width: 480px;</code></li>
<li class="indent1"><code>height: 180px;</code></li>
<li><code>}</code></li>
</ol>
<p>Some really, really important notes:</p>
<ul>
<li>Float the containers to the left so that they will be arranged horizontally.</li>
<li>Hide potential overflows so that it doesn&#8217;t screw up anything, just in case.</li>
<li><strong>The CSS box model</strong>: the total, intended height of an element is the sum of all the margins, paddings AND dimensions specificed. So if you want to have a 10px padding for contents in all sections, the width has to be reduced by 2*10px = 20px (because we have left and right paddings) and the same applies for height (because we have top and bottom paddings). For more information, read the <a title="CSS box model" href="http://www.w3.org/TR/CSS2/box.html">Box Model article</a>.</li>
</ul>
<h3>Step 3 &#8211; Adding and styling the controls</h3>
<p>For the controls, I have used a tabbed structure to arrange the individual links to each section. We will add it <em>outside</em> the scroller but <em>within</em> the entire glider wrapper:</p>
<ol class="code">
<li><code>&lt;div id="glider"&gt;</code></li>
<li class="indent1"><code>&lt;div class="scroller"&gt;</code></li>
<li class="indent2"><code>&lt;div class="content"&gt;</code></li>
<li class="indent3"><code>&lt;div id="section1" class="section"&gt;...&lt;/div&gt;</code></li>
<li class="indent3"><code>&lt;div id="section2" class="section"&gt;...&lt;/div&gt;</code></li>
<li class="indent3"><code>&lt;div id="section3" class="section"&gt;...&lt;/div&gt;</code></li>
<li class="indent3"><code>&lt;div id="section4" class="section"&gt;...&lt;/div&gt;</code></li>
<li class="indent3"><code>&lt;div id="section5" class="section"&gt;...&lt;/div&gt;</code></li>
<li class="indent2"><code>&lt;/div&gt;</code></li>
<li class="indent1"><code>&lt;/div&gt;</code></li>
<li class="indent1"><code>&lt;div class="controls"&gt;</code></li>
<li class="indent2"><code>&lt;ul&gt;</code></li>
<li class="indent3"><code>&lt;li&gt;&lt;a title="Go to Section 1" href="#section1"&gt;Section 1&lt;/a&gt;&lt;/li&gt;</code></li>
<li class="indent3"><code>&lt;li&gt;&lt;a title="Go to Section 2" href="#section2"&gt;Section 2&lt;/a&gt;&lt;/li&gt;</code></li>
<li class="indent3"><code>&lt;li&gt;&lt;a title="Go to Section 3" href="#section3"&gt;Section 3&lt;/a&gt;&lt;/li&gt;</code></li>
<li class="indent3"><code>&lt;li&gt;&lt;a title="Go to Section 4" href="#section4"&gt;Section 4&lt;/a&gt;&lt;/li&gt;</code></li>
<li class="indent3"><code>&lt;li&gt;&lt;a title="Go to Section 5" href="#section5"&gt;Section 5&lt;/a&gt;&lt;/li&gt;</code></li>
<li class="indent2"><code>&lt;/ul&gt;</code></li>
<li class="indent1"><code>&lt;/div&gt;</code></li>
<li><code>&lt;/div&gt;</code></li>
<li><code>&lt;script type="text/javascript" charset="utf-8"&gt;var my_glider = new Glider('glider', {duration:0.5});&lt;/script&gt;</code></li>
</ol>
<p>That&#8217;s a whole bunch of code! Basically what we are doing is that we&#8217;re adding an unordered list (which is to be styled, later) underneath the &#8216;window&#8217; (as seen in my blog header) to be the navigation menu. There are five sections, so normally you will need to place five tabs, in five <code>&lt;li&gt;</code> tags.</p>
<p>Now the styling!</p>
<ol class="code">
<li><code>.controls {</code></li>
<li class="indent1"><code>overflow: hidden;</code></li>
<li class="indent1"><code>width: 500px;</code></li>
<li class="indent1"><code>height: 30px;</code></li>
<li><code>}</code></li>
<li><code>.controls ul {</code></li>
<li class="indent1"><code>list-style: none;</code></li>
<li class="indent1"><code>margin: 0;</code></li>
<li class="indent1"><code>padding: 0;</code></li>
<li class="indent1"><code>width: 100%;</code></li>
<li><code>}</code></li>
<li><code>.controls ul li {</code></li>
<li class="indent1"><code>float: left;</code></li>
<li class="indent1"><code>width: 20%;</code></li>
<li><code>}</code></li>
<li><code>.controls ul li a {</code></li>
<li class="indent1"><code>display: block;</code></li>
<li class="indent1"><code>height: 20px;</code></li>
<li class="indent1"><code>line-height: 20px;</code></li>
<li class="indent1"><code>padding: 5px 0;</code></li>
<li class="indent1"><code>text-align: center;</code></li>
<li><code>}</code></li>
</ol>
<p>This is what we&#8217;ve done for the CSS part:</p>
<ul>
<li>Disable styles for the unordered list, set margin and padding to zero (just in case you haven&#8217;t done so in with a reset stylesheet, and defined its dimensions.</li>
<li>For the list items, we float them to the left to arrange them horizontally. There are 5 list items in total, so each of them take up 20% of the total width.</li>
<li>For the link in each list items, we set its display to block (by default, it&#8217;s in inline element) and by applying the box model, set height to 20px such that adding up the vertical paddings will be 30px. We also center the text.</li>
</ul>
<p><strong>We&#8217;re done with the basic structure of the glider! If you&#8217;re satisfied, you&#8217;re done for good!</strong></p>
<h3>Step 4 &#8211; Backward and forward buttons</h3>
<p>The buttons can be implemented without the tabs, with the tabs or be thrown out of the window. It all boils down to personal preferences. For me, I&#8217;ve used a combination of both. So far, we&#8217;ve been doing the basic structure without taking the buttons into mind. If we want to, modifications to the structure above have to be made.</p>
<p>In this example, we will be adding buttons to two-sides of the scroller:</p>
<ol class="code">
<li><code>&lt;div id="glider"&gt;</code></li>
<li class="indent1"><code>&lt;div id="nav-previous" class="side-nav"&gt;</code></li>
<li class="indent2"><code>&lt;a title="Previous" href="#" onclick="my_glider.previous();return false;"&gt;Previous&lt;/a&gt;</code></li>
<li class="indent1"><code>&lt;/div&gt;</code></li>
<li class="indent1"><code>&lt;div class="scroller"&gt;</code></li>
<li class="indent2"><code>&lt;div class="content"&gt;</code></li>
<li class="indent3"><code>&lt;div id="section1" class="section"&gt;...&lt;/div&gt;</code></li>
<li class="indent3"><code>&lt;div id="section2" class="section"&gt;...&lt;/div&gt;</code></li>
<li class="indent3"><code>&lt;div id="section3" class="section"&gt;...&lt;/div&gt;</code></li>
<li class="indent3"><code>&lt;div id="section4" class="section"&gt;...&lt;/div&gt;</code></li>
<li class="indent3"><code>&lt;div id="section5" class="section"&gt;...&lt;/div&gt;</code></li>
<li class="indent2"><code>&lt;/div&gt;</code></li>
<li class="indent1"><code>&lt;/div&gt;</code></li>
<li class="indent1"><code>&lt;div id="nav-next" class="side-nav"&gt;</code></li>
<li class="indent2"><code>&lt;a title="Next" href="#" onclick="my_glider.next();return false;"&gt;Next&lt;/a&gt;</code></li>
<li class="indent1"><code>&lt;/div&gt;</code></li>
<li class="indent1"><code>&lt;div class="controls"&gt;</code></li>
<li class="indent2"><code>&lt;ul&gt;</code></li>
<li class="indent3"><code>&lt;li&gt;&lt;a title="Go to Section 1" href="#section1"&gt;Section 1&lt;/a&gt;&lt;/li&gt;</code></li>
<li class="indent3"><code>&lt;li&gt;&lt;a title="Go to Section 2" href="#section2"&gt;Section 2&lt;/a&gt;&lt;/li&gt;</code></li>
<li class="indent3"><code>&lt;li&gt;&lt;a title="Go to Section 3" href="#section3"&gt;Section 3&lt;/a&gt;&lt;/li&gt;</code></li>
<li class="indent3"><code>&lt;li&gt;&lt;a title="Go to Section 4" href="#section4"&gt;Section 4&lt;/a&gt;&lt;/li&gt;</code></li>
<li class="indent3"><code>&lt;li&gt;&lt;a title="Go to Section 5" href="#section5"&gt;Section 5&lt;/a&gt;&lt;/li&gt;</code></li>
<li class="indent2"><code>&lt;/ul&gt;</code></li>
<li class="indent1"><code>&lt;/div&gt;</code></li>
<li><code>&lt;/div&gt;</code></li>
<li><code>&lt;script type="text/javascript" charset="utf-8"&gt;var my_glider = new Glider('glider', {duration:0.5});&lt;/script&gt;</code></li>
</ol>
<p>So, we&#8217;ve added the previous and next links to the side of the scroller, and attached the javascript funciton to them to move the sections. We need to refine their appearance using CSS:</p>
<ol class="code">
<li><code>.side-nav {</code></li>
<li class="indent1"><code>float: left;</code></li>
<li class="indent1"><code>width: 20px;</code></li>
<li class="indent1"><code>height: 200px;</code></li>
<li><code>}</code></li>
<li><code>.side-nav a {</code></li>
<li class="indent1"><code>display: block;</code></li>
<li class="indent1"><code>text-indent: -9999px;</code></li>
<li class="indent1"><code>width: 20px;</code></li>
<li class="indent1"><code>height: 200px;</code></li>
<li><code>}</code></li>
<li><code>#nav-previous a {</code></li>
<li class="indent1"><code>background: url(images/previous-arrow.png) no-repeat center center;</code></li>
<li><code>}</code></li>
<li><code>#nav-next a {</code></li>
<li class="indent1"><code>background: url(images/next-arrow.png) no-repeat center center;</code></li>
<li><code>}</code></li>
</ol>
<p>Basically, what we did to the buttons is:</p>
<ul>
<li>To give them a definite width and height (preferably spanning the height of scroller).</li>
<li>Display links as a block element, indent the text by -9999px so that it&#8217;s off the screen but still readable by search engine bots.</li>
<li>Customize background images for each button.</li>
</ul>
<p>Then replace the styles for certain elements with the new ones below:</p>
<ol class="code">
<li><code>.scroller {</code></li>
<li class="indent1"><code>float: left;</code></li>
<li class="indent1"><code>overflow: hidden;</code></li>
<li class="indent1"><code>width: 500px;</code></li>
<li class="indent1"><code>height: 200px;</code></li>
<li><code>}</code></li>
<li><code>.controls {</code></li>
<li class="indent1"><code>clear: both;</code></li>
<li class="indent1"><code>overflow: hidden;</code></li>
<li class="indent1"><code>width: 540px;</code></li>
<li class="indent1"><code>height: 30px;</code></li>
<li><code>}</code></li>
<li><code>.controls ul {</code></li>
<li class="indent1"><code>list-style: none;</code></li>
<li class="indent1"><code>margin: 0 auto;</code></li>
<li class="indent1"><code>padding: 0;</code></li>
<li class="indent1"><code>width: 500px;</code></li>
<li><code>}</code></li>
</ol>
<p>The modifications are necessary because:</p>
<ul>
<li>We have added two 20px wide buttons on the side, so the overall width has increased to 540px.</li>
<li>The controls are widened to 540px as well, but if you want to keep the menu the same width as the scroller (at 500px), fix width to 500px as well and use automatic left and right margin to center the menu.</li>
<li>Clear the floats above the controls.</li>
</ul>
<p>We also need to use the <a title="Easy Clearing" href="http://www.positioniseverything.net/easyclearing.html">clearfix</a> method to making sure that all the list items are cleared properly. Change <code>&lt;ul&gt;</code> to <code>&lt;ul class="clearfix"&gt;</code>. To the CSS, add the lines:</p>
<ol class="code">
<li><code>.clearfix:after {</code></li>
<li class="indent1"><code>clear: both;</code></li>
<li class="indent1"><code>content: ".";</code></li>
<li class="indent1"><code>display: block;</code></li>
<li class="indent1"><code>height: 0;</code></li>
<li class="indent1"><code>visibility: hidden;</code></li>
<li><code>}</code></li>
</ol>
<h2>Issues</h2>
<p>There are several things that might not work well with this glider script:</p>
<ul>
<li>If you&#8217;re using an older version of Lightbox, you might encounter a javascript error and the glider will not work &#8211; neither will the Lightbox. If that&#8217;s the case, I recommend you to upgrade to <a title="Lightbox 2" href="http://www.huddletogether.com/projects/lightbox2/">Lightbox 2</a>. If you&#8217;re a WordPress user, I highly recommend <a title="Lightbox 2.8.0 plugin for WordPress" href="http://stimuli.ca/lightbox/">Lightbox 2.8.0 plugin for WordPress</a> &#8211; not only does it work perfectly for me, it allows you to customize your lightbox as well.</li>
<li>If you&#8217;re using an <code>&lt;iframe&gt;</code> in the section that has a scrollbar, there might be a minor graphical glitch in Firefox. I am unable to reproduce the glitch in Safari, Chrome, IE (surprise!) and Opera. It seems to be an issue with Firefox?</li>
<li>Flash movie will show even when the section it is contained in is not in the &#8216;window&#8217;. So the conventional YouTube snippets will cause your Flash Movie to appear towards the left/right of the &#8216;window&#8217;. You will have to add the following lines to the code: within the <code>&lt;object&gt;</code> element, add <code>&lt;param name="wmode" value="transparent"&gt;&lt;/param&gt;</code>; and to the <code>&lt;embed&gt;</code>, add <code>wmode="transparent"</code>.</li>
</ul>
<h2>Finally, the demo!</h2>
<p>Yes, there is a demo file that comes with this tutorial &#8211; just follow the link to the demo page. Do not right click and download, as the download manager I&#8217;m currently using masks the original URL, so you&#8217;ll be downloading a blank file instead. If you want to get the code, just follow the link and save the page that is loaded thereafter.</p>
<p class="download download-html" title="Download link for Glider Demo"><a href="http://teddy-o-ted.com/download/8" title="Download link for Glider Demo."><span class="download-title"><strong>Download</strong>: Glider Demo</span><span class="download-stats">Version 1.0  File size: 4 KB  1644 downloads</span></a></p>
<p>I hope the tutorial and demo is of good use to you. Have fun! If you have any queries, feel free to leave a comment. Thanks!</p>
<h3  class="related_post_title">Related</h3><p>Related posts that might interest you:</p><ul class="related_post"><li><a href="http://teddy-o-ted.com/blog/2009/03/24/8-javascript-solutions-to-common-css-problems/" title="8 Javascript solutions to common CSS problems">8 Javascript solutions to common CSS problems</a></li><li><a href="http://teddy-o-ted.com/blog/2009/03/22/easy-display-switch-with-css-and-jquery/" title="Easy Display Switch with CSS and jQuery">Easy Display Switch with CSS and jQuery</a></li><li><a href="http://teddy-o-ted.com/blog/2008/03/18/rollover-effects-made-easy-with-css/" title="Rollover Effects Made Easy &#8211; with CSS!">Rollover Effects Made Easy &#8211; with CSS!</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://teddy-o-ted.com/blog/2009/02/21/compacting-contents-using-glider-script/feed/</wfw:commentRss>
		<slash:comments>42</slash:comments>
		</item>
		<item>
		<title>Presenting teddY-risatioNâ„¢ Eta</title>
		<link>http://teddy-o-ted.com/blog/2008/12/01/presenting-teddy-risation-eta/</link>
		<comments>http://teddy-o-ted.com/blog/2008/12/01/presenting-teddy-risation-eta/#comments</comments>
		<pubDate>Sun, 30 Nov 2008 18:04:51 +0000</pubDate>
		<dc:creator>Terry</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[Design]]></category>
		<category><![CDATA[Photoshop]]></category>
		<category><![CDATA[Inspiration]]></category>
		<category><![CDATA[Layout]]></category>
		<category><![CDATA[Linking]]></category>
		<category><![CDATA[Revamp]]></category>
		<category><![CDATA[Theme]]></category>
		<category><![CDATA[Wordpress]]></category>

		<guid isPermaLink="false">http://www.teddy-o-ted.com/?p=2523</guid>
		<description><![CDATA[First of all, I&#8217;m terribly sorry for being away from my blog for two weeks. It&#8217;s a personal record for being away for so long. The previous hiatus was 10 days &#8211; I beat it by 4 days! Heh. Okay, basically during that period I was trapped in the midst of my exams, ensnared by [...]]]></description>
			<content:encoded><![CDATA[<p>First of all, I&#8217;m terribly sorry for being away from my blog for two weeks. It&#8217;s a personal record for being away for so long. The previous hiatus was 10 days &#8211; I beat it by 4 days! Heh. Okay, basically during that period I was trapped in the midst of my exams, ensnared by the repeated threats our lecturers threw at us about how hard the papers are going to be. But all thanks to them, I rammed up my pace and managed to not freak out when I read the question (yes, the papers were indeed hard).</p>
<p>Today is day 4 after exams. I cooped in my room for 4 solid days working on this theme. According to my theme count, this theme is the seventh theme I&#8217;ve made over a course of two years. So here it is, teddY-risatioNâ„¢ Eta, Î·.</p>
<div id="attachment_2526" class="wp-caption aligncenter" style="width: 510px"><img class="size-full wp-image-2526" title="teddY-risatioNâ„¢ Eta" src="http://www.teddy-o-ted.com/wp-content/uploads/2008/12/teddyrisationeta01.jpg" alt="teddY-risatioNâ„¢ Eta" width="500" height="311" /><p class="wp-caption-text">So here it is, teddY-risatioNâ„¢ Eta, Î·!</p></div>
<p>The theme works well in Firefox 3, Safari 3, Internet Explorer 7 and Google Chrome. There is <em>basic</em> support for Internet Explorer 6 but due to incompatibility issues, the visual quality has been compromised for IE6 visitors.</p>
<p>Just as usual, I always have writeups for my new themes ;) Not only I write for my personal record but also to share with my readers of how this theme came about. I&#8217;ve included some links in the writeup, so if you&#8217;re interested in where I got the ideas from, you can find it out after the jump.</p>
<p><span id="more-2523"></span>So here is a comprehensive list of the changes I&#8217;ve made:</p>
<h2>1. It&#8217;s Sandbox again!</h2>
<p>Oh boy, I just couldn&#8217;t stop loving <a title="Plaintxt's Sandbox Theme" href="http://www.plaintxt.org/themes/sandbox/" target="_blank">Plaintxt&#8217;s Sandbox theme</a>. It&#8217;s almost CSS free (sans the few necessary rules) and doesn&#8217;t require any knowledge of PHP &#8211; best for people like me! I must admit I don&#8217;t quite understand PHP and can utilise my knowledge of XHTML and CSS. So Sandbox is definitely where I will start off.</p>
<h2>2. Typography</h2>
<p>This theme is considered one of the most serious revamped I&#8217;ve ever made &#8211; the typography from the previous theme, teddY-risatioNâ„¢ Zeta, was not inherited at all. I&#8217;ve decided to create a new set of typography from scratch &#8211; in fact, the large-sized <em>Verdana</em> from the previous themes kept ticking me off.</p>
<p>My thirst for a better typography first started when I stumbled upon <a title="Ember @ TehCPeng.net" href="http://tehcpeng.net/" target="_blank">Ember&#8217;s blog</a>. It just blown me away with his beautiful typography. I poked around a little, and I found <a title="Hemingway WP Theme" href="http://warpspire.com/hemingway/" target="_blank">Hemingway</a>. Hemingway has been around on the Internet for downloads for quite some time but I didn&#8217;t know much about the importance of typography. After reading a book on it, I realised how important is it to have a readable and clean set of fonts &#8211; by choosing the correct font family, not overusing different types of fonts across the same page and colour.</p>
<p>For this theme, the major font family is <em>Lucida Sans Unicode</em> while the headers used <em>Tahoma</em>. The logo was changed from <em>Calibri</em> from the previous theme to <em>Myraid Pro</em>. I just love the way it looks like.</p>
<h2>3. Layout</h2>
<p>If you have visited this blog before, one of the greatest changes that you might not like it is actually the sidebar being switched position. Due to how the header elements are arranged, I have no choice but to place the sidebar on the left side.</p>
<p>The header section was slightly expanded to a height of around 300px or so, since I have to contain the gliding container in it alongside with the header menu. Designing the header was the hardest part because I had to decide the column width &#8211; and for the sake of consistency, subsequent sidebar and content container will have to inherited the same width.</p>
<p>The basic layout of the header section was inspired byÂ  The Cosmic Machine&#8217;s <a title="EventBox" href="http://thecosmicmachine.com/" target="_blank">Event Box page</a>. I love how their logo appeared on the header and partially in the content. I didn&#8217;t exactly use the idea of the logo crossing the header and content border because that&#8217;ll require my header logo to be too huge.</p>
<p>I&#8217;ve used the <a title="960 Grid System" href="http://960.gs/" target="_blank">960 Grid System</a> for the header and footer layout. I was forced to not use the grid system for the content area due to semantics reason &#8211; the sidebar should always load after the main content, but this is unachievable using the grid system. I stuck to the good old float and margin stuff.</p>
<h2>4. CSS sprites</h2>
<p>I always loathed the number of images that I have to deal with, especially when I am working on graphic intensive ones. After seeing how Jeff gave his blog, <a title="Jeff @ PerishablePress.com" href="http://perishablepress.com/" target="_blank">Perishable Press</a>, a fantastic makeover, I peeked at his CSS code <em>*weak smile*</em> and realised that his backgrounds were CSS sprites.</p>
<p>This is how CSS Sprite works &#8211; images intended for different purposes are laid out in a grid, and then through CSS you will specify the background-position of the sprite you&#8217;re using. If you do check the background images of this theme (for Firefox users, this is easy!), it all breaks down into two big files &#8211; one is <em>backgrounds.png</em> and the other is <em>small_icons.png</em>. So throughout the entire layout, I am actually using that two image files but with different coordinates for each element.</p>
<h2>5. Glider</h2>
<p>The part I like about this revamp is that I can finally squeeze more content into the header. I was browsing through the CSS galleries when the glider on <a title="The Wojo Group" href="http://www.thewojogroup.com/" target="_blank">The Wojo Group</a> homepage &#8211; very sleek and elegant, and saves space as well. I googled a little about the glider and realised that it was modified from <a title="Panic - Coda" href="http://www.panic.com/coda/" target="_blank">Panic Coda</a>&#8216;s glider code. And then finally I dug out this Google Code site hosting the <a title="Glider.js" href="http://code.google.com/p/missingmethod-projects/wiki/Glider" target="_blank">glider.js</a> code. It&#8217;s very easy to implement actually, and you can <a title="Glider example" href="http://5key.net/ex/glider/" target="_blank">see it in action here</a>. Very handy eh?</p>
<p>The glider has a little problem dealing with iframes (not that I wanted to but because the tagboard uses iframe) but I guess that&#8217;s ok for me. I might be replacing it with something else&#8230; let&#8217;s see.</p>
<h2>6. Archives</h2>
<p>If you do take a look at the sidebar, the archives is pretty unique &#8211; I was reading <a title="Dean Jr. Robinson" href="http://deanjrobinson.com/" target="_blank">Dean Jr. Robinson</a> and <a title="Shaun Inman" href="http://shauninman.com/" target="_blank">Shaun Inman</a> the other day and I really love the way they&#8217;ve organised their archives. Compact, clean and not visually obstructive. Mine is a little cluttered because of the sidebar width, but we&#8217;ll have to live with that for the moment being. Their minimalistic colour scheme immediately caught my eye and that was where I developed the colour scheme for the sidebar and the footer.</p>
<h2>7. Revamped resources page</h2>
<p>Check out the revamped <a title="Resources Page" href="http://www.teddy-o-ted.com/resources/" target="_blank">resources page</a>! I&#8217;ve completely abandoned the previous layout for a cleaner and more concise layout, that is easy to navigate. Besides having pages for my Photoshop and CSS tutorials, I&#8217;ve added an extra page for icon packs &#8211; just in case I&#8217;ll be developing any more in the future.</p>
<p>For the same reason, I&#8217;ve redesigned the pages for Photoshop and CSS tutorials. Now they look a lot cleaner and neater than before.</p>
<h2>8. Footer</h2>
<p>The footer has been greatly reduced to just two sections &#8211; older posts and tagclouds. Although the old footer was well-loved, I decided that it&#8217;s too big for my taste and I squeezed some of the stuff into the header. That&#8217;s why I love glider.js!</p>
<h2>9. Cross broswer compatibility</h2>
<p>Throughout the whole design process I kept cross checking between four browsers &#8211; Firefox 3, Internet Explorer 7, Safari 3 and Google Chrome. So far the design looks okay on the four browsers. Due to the Internet Explorer 6&#8242;s antiquity and it&#8217;s inability to support transparent PNGs, I&#8217;ve decided to <span style="text-decoration: line-through;">forgo IE6 compatibility completely</span> provide basic support for IE6 but at the expense of quality. Visitors coming through on IE6 will be served a message, encouraging them to switch to non-1990s browser :razz: heh.</p>
<p>So that&#8217;s it! I hope you&#8217;ll love the new theme!</p>
<h3  class="related_post_title">Related</h3><p>Related posts that might interest you:</p><ul class="related_post"><li><a href="http://teddy-o-ted.com/blog/2008/03/02/design-stuff/" title="Design Stuff">Design Stuff</a></li><li><a href="http://teddy-o-ted.com/blog/2008/06/10/amalgamation-of-the-geekiest-stuff/" title="Amalgamation of the geekiest stuff">Amalgamation of the geekiest stuff</a></li><li><a href="http://teddy-o-ted.com/blog/2008/05/21/ids-awesome-new-layout/" title="Id&#8217;s Awesome New Layout!">Id&#8217;s Awesome New Layout!</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://teddy-o-ted.com/blog/2008/12/01/presenting-teddy-risation-eta/feed/</wfw:commentRss>
		<slash:comments>60</slash:comments>
		</item>
		<item>
		<title>Fix for buggy Flickr badge JS</title>
		<link>http://teddy-o-ted.com/blog/2008/09/05/fix-for-buggy-flickr-badge-js/</link>
		<comments>http://teddy-o-ted.com/blog/2008/09/05/fix-for-buggy-flickr-badge-js/#comments</comments>
		<pubDate>Fri, 05 Sep 2008 14:34:36 +0000</pubDate>
		<dc:creator>Terry</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[Design]]></category>
		<category><![CDATA[Badge]]></category>
		<category><![CDATA[Bug]]></category>
		<category><![CDATA[Cascading Stylesheet]]></category>
		<category><![CDATA[Fix]]></category>
		<category><![CDATA[Flickr]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[Problem]]></category>
		<category><![CDATA[Workaround]]></category>

		<guid isPermaLink="false">http://www.teddy-o-ted.com/?p=2366</guid>
		<description><![CDATA[Yep, you didn&#8217;t read it wrongly &#8211; the javascript which Flick gave you to insert your personalised Flickr badge is indeed buggy! It just happened over the afternoon &#8211; the Flickr badge JS has some new modifications which will potentially affect the layout of your blog. The crux of the problem If you have the [...]]]></description>
			<content:encoded><![CDATA[<p><img class="size-full wp-image-2378 aligncenter" title="Buggy Flickr Badge JS" src="http://www.teddy-o-ted.com/wp-content/uploads/2008/09/buggyflickrbadgejs01.png" alt="Buggy Flickr Badge JS" width="600" height="56" /></p>
<p>Yep, you didn&#8217;t read it wrongly &#8211; the javascript which Flick gave you to insert your personalised Flickr badge <a title="Badge JS Gone Haywire?" href="http://www.flickr.com/help/forum/en-us/80505/#reply509981" target="_blank">is indeed buggy</a>! It just happened over the afternoon &#8211; the <a title="Flickr Badge" href="http://www.flickr.com/badge.gne" target="_blank">Flickr badge JS</a> has some new modifications which will potentially affect the layout of your blog.</p>
<h2>The crux of the problem</h2>
<p>If you have the script, look into the source of the script. The follow is the badge code for my script, after following <a title="Flickr badge W3C valid" href="http://veerle.duoh.com/blog/comments/fickr_badge_w3c_valid/" target="_blank">Veerle&#8217;s simple steps</a> of converting the code to make it XHTML valid:</p>
<pre><code>&lt;script type="text/javascript" src="http://www.flickr.com/badge_code_v2.gne?count=4&amp;amp;display=random&amp;amp;size=s&amp;amp;layout=x&amp;amp;source=user&amp;amp;user=44742295%40N00"&gt;</code></pre>
<p>Highlight everything between the inverted commas after <code>src=</code>, then copy + paste it to your address bar. You should arrive at a page which displays something like this:</p>
<pre><code>var b_txt = '&lt;img src="http://geo.yahoo.com/p?s=792600102&amp;t=ad64ee1b82b556e2adac6caee93c4ae5&amp;fl_ev=0âŒ©=en&amp;intl=sg" width="0" height="0" alt="" /&gt;';

// write the badge

document.write(b_txt)
//document.write(b_txt.split('&lt; ').join('&lt;'))</code></pre>
<p>You will notice that Flickr Badge JS has sneakily appended the HTML code of including an empty gif at the start of your Flickr badge. And to my horror, the addition of that innocent-looking transparent gif screwed up the design of the main page of my blog.</p>
<h2>Distorted layout</h2>
<div id="attachment_2379" class="wp-caption alignright" style="width: 215px"><img class="size-full wp-image-2379" title="Buggy Flickr Badge JS - Image displacement" src="http://www.teddy-o-ted.com/wp-content/uploads/2008/09/buggyflickrbadgejs02.jpg" alt="Buggy Flickr Badge JS - Image displacement" width="205" height="220" /><p class="wp-caption-text">Image displacement is observed.</p></div>
<p>As you can see from the image to the right, the usual styling I&#8217;ve applied to my Flickr images has caused the transparent gif to affect the position of the rest of the images such that the last one is pushed off the container. I&#8217;ve set a definite height and <code>overflow: hidden</code> to the container such that content overflows will not affect the rest of the content.</p>
<p>The little blue square at the top right hand corner is the cause of the problem &#8211; since I&#8217;ve set the width of the container such that the images fit snugly into it, any additional space will cause the images to be pushed to the subsequent row. Thus in the screenshot, the second image (that photo of a shrimp salad) which should appear on the first line was pushed to the second row. This causes the last image to be positioned way off the fixed dimensions of the container.</p>
<h2>Workaround #1 &#8211; Excluding the transparent gif</h2>
<p>If you&#8217;d scrutinise the irritating image the Flickr badge JS has inserted in, you will realise that while other displayed Flickr photos will be wrapped around the link tag:</p>
<pre><code>&lt;a href="ImagePageURL" title="ImageDesc"&gt;&lt;img src="ImageURL" title="ImageDesc"&gt;&lt;/a&gt;</code></pre>
<p>&#8230; while the miserable little pain-in-the-ass transparent gif is just an <strong>unlinked</strong> image. The unlinked image is where this first workaround is taking advantage of. My old CSS styling for the images were (simplified for presentation purposes):</p>
<ol class="code">
<li><code>div#flickr img {</code></li>
<li class="indent1"><code>border: 4px solid #a4b6d2;</code></li>
<li class="indent1"><code>float: left;</code></li>
<li class="indent1"><code>margin: 0 4px 4px 0;</code></li>
<li class="indent1"><code>padding: 0;</code></li>
<li><code>}</code></li>
<li><code> </code></li>
<li><code>div#flickr img:hover {</code></li>
<li class="indent1"><code>border: 4px solid #ffffff;</code></li>
<li><code>}</code></li>
</ol>
<p>The problem is immediately clear &#8211; I&#8217;m assigning a 4px border to the transparent gif too! This will create an 12px wide unnecessary space (4px for left border, 4px for right border and 4px for the margin), thus pushing the second, fourth, sixth and etc to the next row. To circumvent the problem:</p>
<p><strong>Method 1:</strong> You&#8217;ll just need to change your code such that the border only targets <strong>linked</strong> images (since the transparent 1x1px gif is not linked).</p>
<ol class="code">
<li><code>div#flickr <strong>a</strong> img {</code></li>
<li class="indent1"><code>border: 4px solid #a4b6d2;</code></li>
<li class="indent1"><code>float: left;</code></li>
<li class="indent1"><code>margin: 0 4px 4px 0;</code></li>
<li class="indent1"><code>padding: 0;</code></li>
<li><code>}</code></li>
<li><code> </code></li>
<li><code>div#flickr <strong>a</strong> img:hover {</code></li>
<li class="indent1"><code>border: 4px solid #ffffff;</code></li>
<li><code>}</code></li>
</ol>
<p><strong>Method 2:</strong> Alternatively, if you&#8217;re reluctant to use the &#8216;border&#8217; attribute but wishes to add borders to your images, <a title="Veerle @ Veerle.duoh.com" href="http://veerle.duoh.com/" target="_blank">Veerle</a>&#8216;s has got a neat workaround for it. I&#8217;ve used the concept behind her workaround and modified it a little for personal use:</p>
<ol class="code">
<li><code>div#flickr a img {</code></li>
<li class="indent1"><code>background: #a4b6d2;</code></li>
<li class="indent1"><code>float: left;</code></li>
<li class="indent1"><code>margin: 0 4px 4px 0;</code></li>
<li class="indent1"><code>padding: 4px;</code></li>
<li class="indent1"><code>width: 75px;</code></li>
<li class="indent1"><code>height: 75px;</code></li>
<li><code>}</code></li>
<li><code> </code></li>
<li><code>div#flickr a img:hover {</code></li>
<li class="indent1"><code>background: #ffffff;</code></li>
<li><code>}</code></li>
</ol>
<p>Her method is to pre-define the size of the image, then assign a fixed padding to them and then define the background colour. This creates borders around the images. The <code>img:hover</code> property is a pseudo-class &#8211; whenever you hover your cursor over that image the background changes colour.</p>
<p><strong>*Disadvantage of Method 1 and Method 2 (both are under Workaround #1):</strong> This is merely a stop-gap measure &#8211; this means that if Flickr ever does edit their sneaky Flickr badge javascript, you might need to think of an alternative workaround. For example, if Flickr links the transparent gif, this workaround will not work. This brings us to the second fix.</p>
<h2>Workaround #2 &#8211; Targeting the transparent gif</h2>
<p>Another workaround will be directly targeting transparent gif by stopping the browser from displaying properly. <a title="Tomodea's Workaround on Flickr Forum" href="http://www.flickr.com/help/forum/en-us/80505/509876/" target="_blank">This workaround</a> is kindly provided by <a title="Tomodea @ Pratie.com" href="http://www.pratie.com/" target="_blank">tomodea</a>.</p>
<ol class="code">
<li><code>div#flickr img[src*="http://geo.yahoo.com"] {</code></li>
<li class="indent1"><code>display: none;</code></li>
<li><code>}</code></li>
</ol>
<p>This fix is painless and easy :) what you&#8217;re doing if you place this in your stylesheet is that you&#8217;ll be instructing the browser not to display images from http://geo.yahoo.com, which is where the transparent gif is hosted at.</p>
<p><strong>*Disadvantage of Workaround #2:</strong> If Flickr changes the image URL, you&#8217;ll have to modify the image source. More importantly, if Flickr switches the image source to a php file which randomly picks transparent gif from various place (which is unlikely unless Flickr is ought to be evil), this fix will not work.</p>
<h2>Fixed!</h2>
<div id="attachment_2380" class="wp-caption alignright" style="width: 215px"><img class="size-full wp-image-2380" title="Buggy Flickr Badge JS - Problem corrected with CSS" src="http://www.teddy-o-ted.com/wp-content/uploads/2008/09/buggyflickrbadgejs03.jpg" alt="Buggy Flickr Badge JS - Problem corrected with CSS" width="205" height="220" /><p class="wp-caption-text">Problem corrected with CSS (:</p></div>
<p>After applying any of the methods describe above, your problem will be fixed for the moment being. The screenshot to the right shows the product of the three fixes &#8211; since they basically do the same thing, there&#8217;s no point posting three separate screenshots.</p>
<p>I&#8217;ve tested the three methods on my blog in various browsers &#8211; Firefox 3, Safari 3, Opera 9 Google Chrome 0.2 and IE 7. All fixes seem to work fine, but I cannot guarantee there&#8217;s no problem for people using IE6 and below &#8211; and if you&#8217;re still using IE6, please upgrade to IE7 as it&#8217;s for free (even if you&#8217;re using a pirated copy of Windows). There&#8217;s simply no reason hanging your dear life onto IE6.</p>
<p>For the moment being, the size of the transparent gif is set to height=0px and width=0px, if you do look at the badge script. I hope the Flickr team wouldn&#8217;t mess with the dimensions or life will be hell for us :razz:</p>
<p>If you have any questions or problem with the fixes, or have any cooler CSS workarounds, feel free to post them in your comment! Thanks!</p>
<h3  class="related_post_title">Related</h3><p>Related posts that might interest you:</p><ul class="related_post"><li><a href="http://teddy-o-ted.com/blog/2009/03/24/8-javascript-solutions-to-common-css-problems/" title="8 Javascript solutions to common CSS problems">8 Javascript solutions to common CSS problems</a></li><li><a href="http://teddy-o-ted.com/blog/2006/11/17/piecing-things-together/" title="Piecing Things Together">Piecing Things Together</a></li><li><a href="http://teddy-o-ted.com/blog/2009/03/22/easy-display-switch-with-css-and-jquery/" title="Easy Display Switch with CSS and jQuery">Easy Display Switch with CSS and jQuery</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://teddy-o-ted.com/blog/2008/09/05/fix-for-buggy-flickr-badge-js/feed/</wfw:commentRss>
		<slash:comments>13</slash:comments>
		</item>
		<item>
		<title>Running Around Naked&#8230; Without CSS</title>
		<link>http://teddy-o-ted.com/blog/2008/04/08/running-around-naked-without-css/</link>
		<comments>http://teddy-o-ted.com/blog/2008/04/08/running-around-naked-without-css/#comments</comments>
		<pubDate>Tue, 08 Apr 2008 07:04:17 +0000</pubDate>
		<dc:creator>Terry</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[Site]]></category>
		<category><![CDATA[CSS Naked Day]]></category>
		<category><![CDATA[Naked]]></category>

		<guid isPermaLink="false">http://www.teddy-o-ted.com/?p=1848</guid>
		<description><![CDATA[No it&#8217;s not a late April Fool joke. It&#8217;s for real! Just like how the world observed an hour of darkness without illumination from lightbulb (well, that&#8217;s Earth Hour if you&#8217;ve forgotten what it was), the web is taking on an annual festival &#8211; disabling your website&#8217;s CSS stylesheet for 48hours starting on April 9th. [...]]]></description>
			<content:encoded><![CDATA[<p><img class="aligncenter size-full wp-image-1849" title="CSS Naked Day \'08" src="http://www.teddy-o-ted.com/wp-content/uploads/2008/04/cssnakedday08_01.png" alt="CSS Naked Day \'08" width="268" height="103" /></p>
<p>No it&#8217;s not a late April Fool joke. It&#8217;s for real!</p>
<p>Just like how the world observed an hour of darkness without illumination from lightbulb (well, that&#8217;s Earth Hour if you&#8217;ve forgotten what it was), the web is taking on an annual festival &#8211; disabling your website&#8217;s <abbr title="Cascading Stylesheet">CSS stylesheet</abbr> for 48hours starting on April 9<sup>th</sup>. I just learnt about it from <a title="Brandy's blog - Stripping Naked" href="http://shadesofme.org/2008/04/07/stripping-naked/" target="_blank">Brandy&#8217;s blog</a>, it sounds really fun &#8211; and most importantly, it lets you appreciate how much wonder and magic Cascading Stylesheets has  brought to bloggers, blog readers, website visitors and webdesigners alike.</p>
<p>teddY-risatioNâ„¢ will be naked without CSS for 48 hours. I&#8217;m not going to care how ugly this blog looks &#8211; what really matters to me is that I&#8217;ve shown my appreciation of CSS and its developers!</p>
<p>Of course you can join, no matter whether you&#8217;re a blogger or not.</p>
<h2>Have some naked fun!</h2>
<blockquote><p><strong>When</strong>: 9th of April, 2008<br />
<strong>Where</strong>: Your website, your blog or anything of yours that relies on the all-mighty CSS! It&#8217;s basically an Internet phenomenon across the globe.<br />
<strong>What</strong>: Remove any CSS stylesheets associated with your site. And that&#8217;s all! Short and sweet.</p></blockquote>
<p>If you&#8217;re interested, don&#8217;t forget to check out the main page of CSS Naked Day. There is where you&#8217;ll get a whole load of information behind the meaningful event, and don&#8217;t forget to <a title="CSS Naked Day - Naked.dustindiaz.com" href="http://naked.dustindiaz.com/" target="_blank">sign up</a> (but promise that you&#8217;ll strip your blog bare on that day!).</p>
<p><a title="CSS Naked Day - WordPress Plugin" href="http://www.ajalapus.com/downloads/css-naked-day/" target="_blank">There&#8217;s even a WordPress plugin for it</a>! :razz:</p>
<p>Strip your blog bare, run naked around without CSS, laugh at how others&#8217; (and my) blog look hilariously ugly without it. Drop a comment, give some love. Most importantly, be proud!</p>
<p>So what are you waiting for? Join in the fun! And if possible, help to spread the word!</p>
<h3  class="related_post_title">Related</h3><p>Related posts that might interest you:</p><ul class="related_post"><li><a href="http://teddy-o-ted.com/blog/2009/03/24/8-javascript-solutions-to-common-css-problems/" title="8 Javascript solutions to common CSS problems">8 Javascript solutions to common CSS problems</a></li><li><a href="http://teddy-o-ted.com/blog/2009/03/22/easy-display-switch-with-css-and-jquery/" title="Easy Display Switch with CSS and jQuery">Easy Display Switch with CSS and jQuery</a></li><li><a href="http://teddy-o-ted.com/blog/2009/02/25/5-ways-write-better-css/" title="5 Ways to Instantly Write Better CSS">5 Ways to Instantly Write Better CSS</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://teddy-o-ted.com/blog/2008/04/08/running-around-naked-without-css/feed/</wfw:commentRss>
		<slash:comments>16</slash:comments>
		</item>
	</channel>
</rss>
<!-- WP Super Cache is installed but broken. The path to wp-cache-phase1.php in wp-content/advanced-cache.php must be fixed! -->