<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss 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/" version="2.0">

<channel>
	<title>CSS-Tricks</title>
	
	<link>http://css-tricks.com</link>
	<description>Tips, Tricks, and Techniques on using Cascading Style Sheets.</description>
	<lastBuildDate>Thu, 09 Feb 2012 23:10:36 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
<xhtml:meta xmlns:xhtml="http://www.w3.org/1999/xhtml" name="robots" content="noindex" />
		<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/CssTricks" /><feedburner:info xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" uri="csstricks" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><feedburner:emailServiceId xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0">CssTricks</feedburner:emailServiceId><feedburner:feedburnerHostname xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0">http://feedburner.google.com</feedburner:feedburnerHostname><item>
		<title>Musings on Preprocessing</title>
		<link>http://css-tricks.com/musings-on-preprocessing/</link>
		<comments>http://css-tricks.com/musings-on-preprocessing/#comments</comments>
		<pubDate>Thu, 09 Feb 2012 05:45:46 +0000</pubDate>
		<dc:creator>Chris Coyier</dc:creator>
				<category><![CDATA[Article]]></category>

		<guid isPermaLink="false">http://css-tricks.com/?p=16238</guid>
		<description><![CDATA[<p><p>I've been using SASS for pretty much everything I do recently. Here's some musings on the journey. From hold-ups, to trip-ups, to turn-offs. From apps and teams to workflows and syntax.</p>
<p></p>
You Gotta Work Locally
<p>The biggest contributor to me getting on the bandwagon was giving up my <em>going-commando</em> live FTP editing ways. Yeah, <a href="http://panic.com/coda/">Coda</a> is awesome, but it's bad habit forming. It makes it way too easy to work live instead of local<sup>1</sup>.</p>
<p>Working local is full &#8230;</p></p><p><a href="http://css-tricks.com/musings-on-preprocessing/">Musings on Preprocessing</a> is a post from <a href="http://css-tricks.com">CSS-Tricks</a></p>]]></description>
			<content:encoded><![CDATA[<p>I've been using SASS for pretty much everything I do recently. Here's some musings on the journey. From hold-ups, to trip-ups, to turn-offs. From apps and teams to workflows and syntax.</p>
<p><span id="more-16238"></span></p>
<h3>You Gotta Work Locally</h3>
<p>The biggest contributor to me getting on the bandwagon was giving up my <em>going-commando</em> live FTP editing ways. Yeah, <a href="http://panic.com/coda/">Coda</a> is awesome, but it's bad habit forming. It makes it way too easy to work live instead of local<sup>1</sup>.</p>
<p>Working local is full of obvious advantages. Namely, <b>1)</b> It's fast <b>2)</b> You can edit stuff to your heart's content without worry you're screwing up a live site and <b>3)</b> It allows you to effectively work on a team through version control (more on that later).</p>
<p>So just do it. If you work only on static sites, you can just start doing it. Work from a folder somewhere on your machine. If you work on PHP sites (e.g. WordPress, Joomla, PHP, Vanilla, CodeIgnitor, CakePHP, and a <em>million</em> more) then using MAMP (<a href="http://css-tricks.com/video-screencasts/86-mamp/">my screencast</a>) is ideal. Of course there are <a href="http://css-tricks.com/forums/discussion/16021/mamp-on-other-platforms">variants of MAMP for all platforms</a>.</p>
<p>If you are using something like Ruby or Python, well, chances are you know how to set up that stuff anyway so you're fine.</p>
<p>Now that I'm working primarily on projects that run on my local machine, using preprocessors is easy. I use a couple fantastic apps that I'll cover later.</p>
<h3>Command line blah blah blah</h3>
<blockquote><p>I'm a designer! I don't know how to use the command line nor should I need to.</p></blockquote>
<p>That's a very common thing to hear regarding SASS. Here's the thing: I'm right there with you. I hate the command line. <strong>You don't need to.</strong> I don't, nearly ever, for anything<sup>2</sup>.</p>
<h3>Other turnoffs</h3>
<p>As childish as this may seem, another reason it took me so long to get on the preprocessor bandwagon was the crowd. And I'm not alone here. </p>
<blockquote class="twitter-tweet"><p>Man, usually you even breathe about preprocessors and CSS and the LESS/SASS folks dogpile you at greyhound speed.</p>
<p>&mdash; Eric A. Meyer (@meyerweb) <a href="https://twitter.com/meyerweb/status/162369142077403136" data-datetime="2012-01-26T02:59:54+00:00">January 26, 2012</a></p></blockquote>
<p>It's hard to say anything at all about preprocessors, let alone something vaguely negative, without getting pounced on. </p>
<p>For a long time I thought: I write CSS everyday. I know CSS pretty well. My workflow is fine. I'm productive. <em>Why does anything need to change?</em></p>
<p>The real answer is that nothing needs to change if you don't want it to. If you're perfectly happy doing what you are doing: godspeed. </p>
<p>I can tell you that after making the jump, I am actually more productive. And I write better CSS. And the projects I work on are in better, more maintainable shape because of it. And in some cases, faster<sup>3</sup>. My advice is: don't let people get on your case. Just do what you gotta do. If you get some time to try it out, do it. And do it on a <strong>real project</strong>. Just tinkering around doesn't count. You gotta really try it to see how it might work with your day to day.</p>
<h3>The Apps</h3>
<p><strong>I only have experience with Mac apps. Sorry. I'm sure there are pretty good ones for other platforms.</strong></p>
<p>The app that got me started on all this preprocessor goodness was <a href="http://livereload.com/">LiveReload</a> (<a href="http://css-tricks.com/video-screencasts/107-livereload/">screencast</a>). I'm still a fan. It now available <a href="http://itunes.apple.com/us/app/livereload/id482898991?mt=12">on the App Store</a> for $9.99. It is a menu bar app where clicking the icon in the menu bar opens a window of options.</p>
<figure>
<img src="http://css-tricks.com/wp-content/uploads/2012/02/livereload.png" alt="" title="livereload" width="877" height="454" class="alignnone size-full wp-image-16247" /></p>
<figcaption>LiveReload: the menu bar icon, the app window, and a browser with the browser extension installed.</figcaption>
</figure>
<p>You tell LiveReload to watch a particular folder. When any file in that folder changes, it triggers preprocessing. It can do a whole bunch of preprocessors. For CSS: <a href="http://lesscss.org/">LESS</a>, <a href="http://sass-lang.com/">SASS</a> (w/ <a href="http://compass-style.org/">Compass</a>), or <a href="http://learnboost.github.com/stylus/">Stylus</a>. For JavaScript: <a href="http://coffeescript.org/">CoffeeScript</a> or <a href="http://maxtaco.github.com/coffee-script/">IcedCoffeeScript</a>. For HTML: <a href="http://haml-lang.com/">HAML</a>, <a href="http://jade-lang.com/">Jade</a>, <a href="http://slim-lang.com/docs.html">Slim</a>, or <a href="https://github.com/sstephenson/eco">Eco</a>.</p>
<p>After it's preprocessed, it reloads the page in whatever browser(s) you have the <a href="http://help.livereload.com/kb/general-use/browser-extensions">browser extensions</a> installed in. If what you changed was just CSS, it injects the styles into the page <em>without</em> a page refresh. This is particularly useful where you are styling something on a page in a particular state. Let's say a click triggers open a dialog box and you're trying to style that dialog box. With LiveReload, you can leave that dialog box open and the newly injected styles will affect it, meaning not a lot of wasted time clicking and re-clicking.</p>
<p>But I've recently switched to <a href="http://incident57.com/codekit/">CodeKit</a>. CodeKit's UI is nicer, has more features (e.g. image optimization, JS concatenation) and less weird limitations (you choose whether or not file are preproccessed and where they go, unlike LiveReload where once you import it you can never get it to compile). The only thing I miss is LiveReload's ability to inject CSS without reloading the page, a handy feature for sites with complex states that require multiple steps to get the page back into that state after a reload.</p>
<p>There are a couple of things I don't like about LiveReload though. One is the screen where you tell it the output paths for the complied source:</p>
<figure>
<img src="http://css-tricks.com/wp-content/uploads/2012/02/paths.png" alt="" title="paths" width="541" height="473" class="alignnone size-full wp-image-16248" /></p>
<figcaption>I hate this screen</figcaption>
</figure>
<p>Notice the grayed out ones? It's trying to be smart and notice that you've included that file elsewhere. Thus it won't compile. But what if you want to compile it for some other reason? Too bad, no way to do it. It's just not a great UI and it can be a bit tricky to get started using.</p>
<p>And thus enters <a href="http://incident57.com/codekit/">CodeKit</a>. CodeKit has a beautiful UI. </p>
<figure><img src="http://css-tricks.com/wp-content/uploads/2012/02/codekit.png" alt="" title="codekit" width="982" height="657" class="alignnone size-full wp-image-16249" /></p>
<figcaption>Mmmmm. UI lovelies.</figcaption>
</figure>
<p>It's very easy to change the file paths to where files compile to. And I've never had to teach it, it seems to pick up on the directory structure and get it right from the get go. It will gray out files that are included too, but you can easily turn that on and off. </p>
<p>CodeKit is limited to LESS, SASS, Stylus, CoffeeScript, and HAML. I've found this to be a little limiting, as I've used Jade to preprocess HTML on a few projects. Jade is capable of HTML includes, which can be tremendously useful. </p>
<p>The error reporting on CodeKit is very nice. It's clear what's going on and it feels good when you resolve it.</p>
<figure><img src="http://css-tricks.com/wp-content/uploads/2012/02/errors.png" alt="" title="errors" width="954" height="656" class="alignnone size-full wp-image-16250" /><br />
</figure>
<p>Contrast that to LiveReload in which a little window slides down from the upper right of your screen with badly clipped text and no close button, and simply slides away once you've resolved it.</p>
<p>CodeKit also is unable to do the style injection that LiveReload can. This is how the creator feels about that:</p>
<blockquote class="twitter-tweet" data-in-reply-to="166599851675627520"><p>@<a href="https://twitter.com/chriscoyier">chriscoyier</a> I'm up in the air about it. There's something comfortable about SEEING a refresh happen.</p>
<p>&mdash; Bryan Jones (@bdkjones) <a href="https://twitter.com/bdkjones/status/166619965221384192" data-datetime="2012-02-06T20:31:10+00:00">February 6, 2012</a></p></blockquote>
<p>Ultimately I think CodeKit is my favorite right now. What sets it above is all the additional features. It can automatically <a href="http://blesscss.com/">bless CSS</a>. It can concatenate and minify JavaScript. It can tell you what files import any other particular file. And perhaps my favorite: it can one-click optimize images. </p>
<h3>Teams</h3>
<p>Another possible hold up to getting on preprocessors: working on a team. Specifically a team where multiple people are in and out of the same CSS files you are. If that's the case, all those people need to be set up with whatever preprocessing app you are using (you could use different ones, that's fine. Best if they are all running same core versions of the preprocessor). You can't have some people editing the .css files and other folks editing the .scss files. Those changes to the .css files are just going to get overwritten the next time someone compiles and commits. Preprocessors are unforgiving that way. They don't say "hey looks like there is some different stuff in this .css file from when I last complied it, want to take a look first?" Nope, they just write over it. </p>
<p>It's doable though. In a short period of time, we moved all of <a href="http://wufoo.com/">Wufoo</a> to SASS. Actually, we moved a bunch of it to LESS, then some of it to Stylus, then all of it to SASS. Oof da. Credit there to <a href="https://twitter.com/#!/ilikevests">Kevin</a>. We also have all new development on <a href="http://surveymonkey.com">SurveyMonkey</a> using a big set of design patterns that are all using SASS.</p>
<p>If anyone has any team strategies for preprocessors, that would be valuable to share!</p>
<h3>Compass</h3>
<p>There are <a href="https://twitter.com/#!/chriseppstein">folks</a> out there I'm sure that are upset at me for not using <a href="http://compass-style.org/">Compass</a>. I know, I know. I should be. But obviously I'm slow on this stuff. I like understanding things as deeply as I can before proceeding and Compass is still a little fancy pants for me. If anyone has no idea what Compass is, it's a big 'ol set of add-ons for SASS. It means, essentially, that you don't have to write stuff that you'd likely have to write the same way project after project. CSS3 mixins, grid helpers, sprite helpers, file path helpers, and tons more. </p>
<p>My problem is that I'm not ready to relinquish all that stuff yet. I want to write my own. I'm sure the day will come when I give that up, but it hasn't come yet.</p>
<h3>Little things that have tripped me up</h3>
<p>This article started out with that title before ballooning into all this. But what the hey, I figure I'll still include these little tidbits that caused me a few moments of grief while learning. </p>
<p>Since I write my own CSS3 mixins, I might have a mixin for box-shadow like this:</p>
<pre rel="SASS"><code>@mixin drop-shadow ($x: 1px, $y: 1px, $blur: 2px, $spread: 0, $alpha: 0.25) {
  -webkit-box-shadow: $x $y $blur $spread rgba(0, 0, 0, $alpha);
  -moz-box-shadow:    $x $y $blur $spread rgba(0, 0, 0, $alpha);
  box-shadow:         $x $y $blur $spread rgba(0, 0, 0, $alpha);
}</code></pre>
<p>It's full of sensible defaults, so the most standard usage can just be:</p>
<pre rel="SASS"><code>.module {
  @include drop-shadow();
} </code></pre>
<p>Or if I want to get more specific, I can specify each part:</p>
<pre rel="SASS"><code>.module {
  @include drop-shadow(5px, 5px, 2px, -2px, 0.5);
} </code></pre>
<p>But what if I want to do multiple box shadows? This mixin isn't ready for that. For those, I also prepare super generic mixins that are the spec name:</p>
<pre rel="SASS"><code>@mixin box-shadow ($string) {
  -webkit-box-shadow: $string;
  -moz-box-shadow:    $string;
  box-shadow:         $string;
}</code></pre>
<p>This one only takes a single param, anything I want to give it. So the usage could be:</p>
<pre rel="SASS"><code>/* Bad! doesn't work! */
.stack {
   @include box-shadow(
        1px 1px   0 rgba(0,   0,   0,   0.100),
        3px 3px   0 rgba(255, 255, 255, 1.0),
        4px 4px   0 rgba(0,   0,   0,   0.125)
   );
}</code></pre>
<p>But that doesn't work. All those commas in there will confuse SASS. It will think you're trying to pass multiple parameters to a mixin that is only set up to accept one. You can't just put quotes around the value you are trying to pass either, that doesn't work. The answer is to use the double-parens technique:</p>
<pre rel="SASS"><code>@include box-shadow(( whatever, you, want, just, one, param ));</code></pre>
<p>Another thing that screwed me up was trying to use variables within values, where the variable was only a part of the value. At it's most basic, variable are super easy:</p>
<pre rel="SASS"><code>$red: #F00;

.red {
   color: $red;
}</code></pre>
<p>But I was trying to do:</p>
<pre rel="SASS"><code>$path: "/images/";

body {             /* Bad! No! */
   background: url($path/texture.jpg);
}</code></pre>
<p>In order to make that work, you gotta use the hash/brackets thing:</p>
<pre rel="SASS"><code>$path: "/images/";

body {
   background: url(#{$path}/texture.jpg);
}</code></pre>
<p>And one last little thing that might be confusing. The &amp; character has special meaning while doing nesting. It equals the selector up until that point. For instance:</p>
<pre rel="SASS"><code>a {
  color: red;
  &amp;:hover {
    color: pink;
  }
}</code></pre>
<p>turns to:</p>
<pre rel="CSS"><code>a {
  color: red;
}
a:hover {
  color: pink;
}</code></pre>
<p>You've probably seen example like this before. It doesn't quite sell it to do simple examples like this, but believe it or not, nesting feels natural very quickly and you'll love it.</p>
<p>But back to that &amp; character.</p>
<p>You <strong>don't</strong> need to do this:</p>
<pre rel="SASS"><code>.module {
   &amp; h3 {
   }
   &amp; p {
   }
}</code></pre>
<p>That's just implied because of the nesting, you don't need to use the &amp; there. You only need it when it's not going to be a descendant selector (space). Things can get <a href="http://roytomeij.com/2011/modernizr-the-sass-parent-reference.html">extra sexy</a> when you use the &amp; later in the selector. Like if you use <a href="http://www.modernizr.com/">Modernizr</a> to detect for multiple backgrounds:</p>
<pre rel="SASS"><code>body {
   .multiplebgs &amp; {
   }
   .no-multiplebgs &amp; {
   }
}</code></pre>
<p>That gives you a really clean fork in how you want to handle the situation of support and non-support, all while keeping the code logically nested within the <code>body { }</code> statement.</p>
<h3>That Dang FTP Workflow</h3>
<p>Even if I've convinced to you work locally, get on version control, and use preprocessors, there is still that lingering issue of deployment. Your workflow might actually take a step backwards in efficiency if you came from live editing to now working locally, and when you want to go live you gotta manually upload changed files to the server. I'm afraid I don't have a great answer for you.</p>
<p>Nettuts covered it with "<a href="http://net.tutsplus.com/tutorials/other/the-perfect-workflow-with-git-github-and-ssh/">The Perfect Workflow</a>," but that relies on a GitHub post-commit hook hitting a PHP file that <code>`git pull`</code>s which doesn't work on any server I have access to and is rare for a shared host to even allow that as I understand it.</p>
<p>This is where app-based cloud hosting really shines. Apps like <a href="http://www.heroku.com/">Heroku</a> for Ruby or <a href="https://phpfog.com/">PHPFog</a> for PHP work into your Git-based version control workflow flawlessly. You can have it so you have one command for pushing to the repository and another for deploying live, or have it so when you push to the repository it automatically goes live.</p>
<p>Those cloud hosts don't work for everyone though. Back when I did agency work, the vast majority on it was just sites on some generic shared hosting. You could always install Git on those servers, then after you push stuff up to your repository, SSH into the server and git pull from there. That's better but still kinda janky and requires command line usage. </p>
<p>Ideally, apps like <a href="http://www.git-tower.com/">Git Tower</a> could manage your Git Repos and <em>also</em> handle FTP, uploading files on command that it knows are out of date.</p>
<p>For those stuck on FTP<sup>4</sup> workflows who aren't afraid of command line stuff, <a href="https://github.com/resmo/git-ftp">this</a> looks promising.</p>
<h3>The Other CSS Preprocessors</h3>
<p>As I've made clear, I've chosen SASS for now as my CSS preprocessor of choice. But what about LESS and Stylus? </p>
<p>LESS was the first one I tried and honestly I still like it. I quite like how all the classes you write are automatically re-useable as mixins. Like:</p>
<pre rel="LESS"><code>.screen-reader-text {
   position: absolute;
   top: -9999px;
   left: -9999px;
}
label {
  .screen-reader-text;
}</code></pre>
<p>That's darn useful and more succinct than SASS would be. But I've been told that mixing classes and the concept of mixins together is fundamentally flawed. I'm not sure how, but there you have it. If someone wants to explain that I'd be anxious to hear. </p>
<p>One major turnoff I had with LESS was when I was getting errors just by using the standard <a href="http://css-tricks.com/snippets/css/webkit-keyframe-animation-syntax/">@keyframe animation syntax</a>. So ultimately I had to break that stuff off into another file, but those files had to be .css so as to not trigger the error, then I also couldn't @import them (literally include contents) because of the file extension. Maybe they've fixed that, not sure.</p>
<p>Stylus is nice too, largely because of it's flexibility. It's not going to bitch at you nearly as much as the others. Things like braces and semicolons are optional, not required one way or the other. While Stylus is nice and powerful and robust, I ultimately think the development behind it isn't strong enough to instill confidence in me. It's largely one dude (TJ Holowaychuk).</p>
<p>SASS ultimately won out because it's the most mature, easiest to find information and help about, seems to have the most active and robust development, and has the least bugs.</p>
<h3>Tutorials Around Here and Final Words</h3>
<p>Just for the record, I'm not going to start putting SASS in basic CSS tutorials around here. CSS will very likely outlive SASS. And besides, I think understanding CSS is far more important than some specific preprocessor way of doing things. In fact, if a CSS newbie asked me if they should learn SASS as they are learning CSS, I'd probably say no. Learn how CSS works and then later see how preprocessors can help you. That's the opposite of how I feel about JavaScript and jQuery, where I feel learning jQuery first is fine. Weird.</p>
<p>Essentially I think you should know what writing really good CSS is like. What that final CSS file looks like. The very file that the browser reads and processes to style websites. Then use a preprocessor to make that final, fabulous CSS file easier to write and maintain.</p>
<blockquote class="twitter-tweet"><p>Point being: Write your sass/less so that the output is exactly how you would have written your CSS without it.</p>
<p>&mdash; Chris Coyier (@chriscoyier) <a href="https://twitter.com/chriscoyier/status/165186501435596800" data-datetime="2012-02-02T21:35:05+00:00">February 2, 2012</a></p></blockquote>
<p><script src="//platform.twitter.com/widgets.js" charset="utf-8"></script></p>
<p></p>
<hr />
</p>
<p><sup>1</sup> <small>Yeah, it has Subversion built in, but it feels a bit tacked on. If you're into Subversion (and that's fine, it's easy) I think you're better off with <a href="http://versionsapp.com/">Versions</a>.</small></p>
<p><sup>2</sup> <small>Except for <a href="http://css-tricks.com/snippets/html/add-spaces-to-dock-in-os-x/">little things like this</a> or at work where I need to start up local servers running Python and stuff like that. But even then, begrudgingly. </small></p>
<p><sup>3</sup> <small>At Wufoo, we moved from combining and minifying scripts on the fly with PHP to combining and minifying through preprocessors, which alleviated server load and made for even more efficiently compressed CSS.</small></p>
<p><sup>4</sup> <small>Obviously by FTP I mean SFTP.</small></p>
<p><a href="http://css-tricks.com/musings-on-preprocessing/">Musings on Preprocessing</a> is a post from <a href="http://css-tricks.com">CSS-Tricks</a></p>]]></content:encoded>
			<wfw:commentRss>http://css-tricks.com/musings-on-preprocessing/feed/</wfw:commentRss>
		<slash:comments>64</slash:comments>
		</item>
		<item>
		<title>Speech Bubble Arrows that Inherit Parent Color</title>
		<link>http://css-tricks.com/speech-bubble-arrows-that-inherit-parent-color/</link>
		<comments>http://css-tricks.com/speech-bubble-arrows-that-inherit-parent-color/#comments</comments>
		<pubDate>Mon, 06 Feb 2012 17:57:42 +0000</pubDate>
		<dc:creator>Chris Coyier</dc:creator>
				<category><![CDATA[Article]]></category>

		<guid isPermaLink="false">http://css-tricks.com/?p=16193</guid>
		<description><![CDATA[<p><p>Interesting question:</p>
<p>css3 speech bubble question: for the "triangle"'s border color, how can I set it to whatever its parent div's bgcolor is automagically?</p>
<p>&#8212; Jin Yang (@jzy) <a href="https://twitter.com/jzy/status/164834827814703104" data-datetime="2012-02-01T22:17:40+00:00">February 1, 2012</a></p>
<p><br />
</p>
<p>By "css3 speech bubble", Jin means using a pseudo element on a container to add a little pointer arrow (<a href="http://css-tricks.com/snippets/css/css-triangle/">triangle</a>). Not really CSS3, but that's pedantic.</p>
<p></p>
<p>Let's say that pink color isn't practical to set in an external CSS file. Perhaps is a user setting, or perhaps &#8230;</p></p><p><a href="http://css-tricks.com/speech-bubble-arrows-that-inherit-parent-color/">Speech Bubble Arrows that Inherit Parent Color</a> is a post from <a href="http://css-tricks.com">CSS-Tricks</a></p>]]></description>
			<content:encoded><![CDATA[<p>Interesting question:</p>
<blockquote class="twitter-tweet"><p>css3 speech bubble question: for the "triangle"'s border color, how can I set it to whatever its parent div's bgcolor is automagically?</p>
<p>&mdash; Jin Yang (@jzy) <a href="https://twitter.com/jzy/status/164834827814703104" data-datetime="2012-02-01T22:17:40+00:00">February 1, 2012</a></p></blockquote>
<p><span id="more-16193"></span><br />
<script src="//platform.twitter.com/widgets.js" charset="utf-8"></script></p>
<p>By "css3 speech bubble", Jin means using a pseudo element on a container to add a little pointer arrow (<a href="http://css-tricks.com/snippets/css/css-triangle/">triangle</a>). Not really CSS3, but that's pedantic.</p>
<p><img src="http://css-tricks.com/wp-content/uploads/2012/02/speechbubble.png" alt="" title="speechbubble" width="305" height="155" class="alignnone size-full wp-image-16232" /></p>
<p>Let's say that pink color isn't practical to set in an external CSS file. Perhaps is a user setting, or perhaps its set dynamically somehow. </p>
<pre rel="HTML"><code>&lt;div class="speech-bubble" style="background: pink;"&gt;
   I like bananas, because they have no bones.
&lt;/div&gt;</code></pre>
<p>Setting the container with an inline style is all well and good, but unfortunately there is no inline style for pseudo elements. So we might end up with something like this:</p>
<p><img src="http://css-tricks.com/wp-content/uploads/2012/02/blacktriangle.png" alt="" title="blacktriangle" width="301" height="157" class="alignnone size-full wp-image-16233" /></p>
<p>Bummer. </p>
<p>There is a solution though! While we are setting the inline style for the container, we can set an inline style for <code>border-color</code> too. Even though the container actually has no border, we can rely on inheritance to pass that color down to the pseudo element, which is treated like a child element. </p>
<pre rel="HTML"><code>&lt;div class="speech-bubble" style="border-color: pink; background: pink;"&gt;
   I like bananas, because they have no bones.
&lt;/div&gt;</code></pre>
<p>Then in our code for the pseudo element, we'll specifically have it inherit the color:</p>
<pre rel="CSS"><code>.speech-bubble:after {
   content: "";
   position: absolute;
   top: 100%;
   left: 20px;
   border-top: 20px solid black;
   border-top-color: inherit;
   border-left: 20px solid transparent;
   border-right: 20px solid transparent;
}</code></pre>
<p>Notice that I've applied <code>inherit</code> to <code>border-top-color</code> rather than the shorthand property <code>border-top</code>. For some reason (feel free to enlighten me) <code>inherit</code> doesn't work in the shorthand. Also note that when you override the the color with <code>inherit</code>, it doesn't "inherit" from the color set just above it (black), it inherits from its parent. So if you need a default, you'll need to set the <code>border-color</code> on the parent.</p>
<p><a href="http://jsfiddle.net/chriscoyier/taaGc/1/" class="button">View Demo</a></p>
<p><a href="http://css-tricks.com/speech-bubble-arrows-that-inherit-parent-color/">Speech Bubble Arrows that Inherit Parent Color</a> is a post from <a href="http://css-tricks.com">CSS-Tricks</a></p>]]></content:encoded>
			<wfw:commentRss>http://css-tricks.com/speech-bubble-arrows-that-inherit-parent-color/feed/</wfw:commentRss>
		<slash:comments>22</slash:comments>
		</item>
		<item>
		<title>A proposal to drop browser vendor prefixes</title>
		<link>http://felipe.wordpress.com/2012/02/02/a-proposal-to-drop-browser-vendor-prefixes/</link>
		<comments>http://css-tricks.com/a-proposal-to-drop-browser-vendor-prefixes/#comments</comments>
		<pubDate>Fri, 03 Feb 2012 21:49:25 +0000</pubDate>
		<dc:creator>Chris Coyier</dc:creator>
				<category><![CDATA[Link]]></category>

		<guid isPermaLink="false">http://css-tricks.com/?p=16220</guid>
		<description><![CDATA[<p><p>Interesting idea by Felipe G on using a new at-rule, <code>@-vendor-unlock</code>, to tell the browser to use it's experimental implementation of any particular property, rather than using a vendor prefix on that property. Unfortunately at this point, even if you could get all the browsers on board, you'd need to use this <em>and</em> vendor prefixes to get deep support, which makes the problem worse. What we really need is for all browsers to implement auto-updating so eventually "supporting older &#8230;</p></p><p><a href="http://css-tricks.com/a-proposal-to-drop-browser-vendor-prefixes/">A proposal to drop browser vendor prefixes</a> is a post from <a href="http://css-tricks.com">CSS-Tricks</a></p>]]></description>
			<content:encoded><![CDATA[<p>Interesting idea by Felipe G on using a new at-rule, <code>@-vendor-unlock</code>, to tell the browser to use it's experimental implementation of any particular property, rather than using a vendor prefix on that property. Unfortunately at this point, even if you could get all the browsers on board, you'd need to use this <em>and</em> vendor prefixes to get deep support, which makes the problem worse. What we really need is for all browsers to implement auto-updating so eventually "supporting older browsers" is something we can look back and laugh at.</p>
<p><a href="http://felipe.wordpress.com/2012/02/02/a-proposal-to-drop-browser-vendor-prefixes/" title="Direct link to featured article">Direct Link to Article</a> &#8212; <a href="http://css-tricks.com/a-proposal-to-drop-browser-vendor-prefixes/">Permalink</a></p><p><a href="http://css-tricks.com/a-proposal-to-drop-browser-vendor-prefixes/">A proposal to drop browser vendor prefixes</a> is a post from <a href="http://css-tricks.com">CSS-Tricks</a></p>]]></content:encoded>
			<wfw:commentRss>http://css-tricks.com/a-proposal-to-drop-browser-vendor-prefixes/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Digging Into WordPress 3.3</title>
		<link>http://digwp.com/2012/02/digging-into-wordpress-v3-3/</link>
		<comments>http://css-tricks.com/digging-into-wordpress-3-3/#comments</comments>
		<pubDate>Fri, 03 Feb 2012 21:30:08 +0000</pubDate>
		<dc:creator>Chris Coyier</dc:creator>
				<category><![CDATA[Link]]></category>

		<guid isPermaLink="false">http://css-tricks.com/?p=16218</guid>
		<description><![CDATA[<p><p>Digging Into WordPress (the book) is now updated to v3.3. Includes new chapters specially on what's new in 3.2 and 3.3, all the rest of the chapters tightened up and refreshed, better internal hyperlinking (in the PDF), and more. It's a free update (PDF) to all previous buyers. New print copies are on order and will be available soon. </p>
<p><a href="http://digwp.com/2012/02/digging-into-wordpress-v3-3/" title="Direct link to featured article">Direct Link to Article</a> &#8212; <a href="http://css-tricks.com/digging-into-wordpress-3-3/">Permalink</a>&#8230;</p></p><p><a href="http://css-tricks.com/digging-into-wordpress-3-3/">Digging Into WordPress 3.3</a> is a post from <a href="http://css-tricks.com">CSS-Tricks</a></p>]]></description>
			<content:encoded><![CDATA[<p>Digging Into WordPress (the book) is now updated to v3.3. Includes new chapters specially on what's new in 3.2 and 3.3, all the rest of the chapters tightened up and refreshed, better internal hyperlinking (in the PDF), and more. It's a free update (PDF) to all previous buyers. New print copies are on order and will be available soon. </p>
<p><a href="http://digwp.com/2012/02/digging-into-wordpress-v3-3/" title="Direct link to featured article">Direct Link to Article</a> &#8212; <a href="http://css-tricks.com/digging-into-wordpress-3-3/">Permalink</a></p><p><a href="http://css-tricks.com/digging-into-wordpress-3-3/">Digging Into WordPress 3.3</a> is a post from <a href="http://css-tricks.com">CSS-Tricks</a></p>]]></content:encoded>
			<wfw:commentRss>http://css-tricks.com/digging-into-wordpress-3-3/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ShopTalk Episode 4</title>
		<link>http://shoptalkshow.com/episodes/004-with-longnecker-and-croft/</link>
		<comments>http://css-tricks.com/shoptalk-episode-4/#comments</comments>
		<pubDate>Fri, 03 Feb 2012 01:50:39 +0000</pubDate>
		<dc:creator>Chris Coyier</dc:creator>
				<category><![CDATA[Link]]></category>
		<category><![CDATA[ShopTalk]]></category>

		<guid isPermaLink="false">http://css-tricks.com/?p=16212</guid>
		<description><![CDATA[<p><p>Dave, Jonathan Longnecker, Nate Croft and I talk shop. Topics include website building apps, where to start designing, when not to design for modern browsers, and more. </p>
<p>Sponsored by <a href="http://lessaccounting.com/">LessAccounting</a>. </p>
<p><a href="http://shoptalkshow.com/episodes/004-with-longnecker-and-croft/" title="Direct link to featured article">Direct Link to Article</a> &#8212; <a href="http://css-tricks.com/shoptalk-episode-4/">Permalink</a>&#8230;</p></p><p><a href="http://css-tricks.com/shoptalk-episode-4/">ShopTalk Episode 4</a> is a post from <a href="http://css-tricks.com">CSS-Tricks</a></p>]]></description>
			<content:encoded><![CDATA[<p>Dave, Jonathan Longnecker, Nate Croft and I talk shop. Topics include website building apps, where to start designing, when not to design for modern browsers, and more. </p>
<p>Sponsored by <a href="http://lessaccounting.com/">LessAccounting</a>. </p>
<p><a href="http://shoptalkshow.com/episodes/004-with-longnecker-and-croft/" title="Direct link to featured article">Direct Link to Article</a> &#8212; <a href="http://css-tricks.com/shoptalk-episode-4/">Permalink</a></p><p><a href="http://css-tricks.com/shoptalk-episode-4/">ShopTalk Episode 4</a> is a post from <a href="http://css-tricks.com">CSS-Tricks</a></p>]]></content:encoded>
			<wfw:commentRss>http://css-tricks.com/shoptalk-episode-4/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>New Poll: In The Next 10 Years, Will We See CSS Competitor?</title>
		<link>http://css-tricks.com/new-poll-in-the-next-10-years-will-we-see-css-competitor/</link>
		<comments>http://css-tricks.com/new-poll-in-the-next-10-years-will-we-see-css-competitor/#comments</comments>
		<pubDate>Thu, 02 Feb 2012 19:23:42 +0000</pubDate>
		<dc:creator>Chris Coyier</dc:creator>
				<category><![CDATA[Article]]></category>
		<category><![CDATA[Poll]]></category>

		<guid isPermaLink="false">http://css-tricks.com/?p=16099</guid>
		<description><![CDATA[<p><p>What do you think folks? Is a new language going to come along in the next ten years that deals with layout / style / design and unseat CSS? Or at least give it a run for its money?</p>
<p>You should vote not based on if there will be any attempt at it, which there certainly will be and already has. But instead if you think one of those attempts will actually make it into native support by a browser &#8230;</p></p><p><a href="http://css-tricks.com/new-poll-in-the-next-10-years-will-we-see-css-competitor/">New Poll: In The Next 10 Years, Will We See CSS Competitor?</a> is a post from <a href="http://css-tricks.com">CSS-Tricks</a></p>]]></description>
			<content:encoded><![CDATA[<p>What do you think folks? Is a new language going to come along in the next ten years that deals with layout / style / design and unseat CSS? Or at least give it a run for its money?</p>
<p>You should vote not based on if there will be any attempt at it, which there certainly will be and already has. But instead if you think one of those attempts will actually make it into native support by a browser with significant market share and see a significant number of web workers building web sites in it.</p>
<p>Poll is in the sidebar (or, down pretty far if on a small screen).</p>
<p><a href="http://css-tricks.com/new-poll-in-the-next-10-years-will-we-see-css-competitor/">New Poll: In The Next 10 Years, Will We See CSS Competitor?</a> is a post from <a href="http://css-tricks.com">CSS-Tricks</a></p>]]></content:encoded>
			<wfw:commentRss>http://css-tricks.com/new-poll-in-the-next-10-years-will-we-see-css-competitor/feed/</wfw:commentRss>
		<slash:comments>75</slash:comments>
		</item>
		<item>
		<title>Star Ratings With Very Little CSS</title>
		<link>http://css-tricks.com/star-ratings/</link>
		<comments>http://css-tricks.com/star-ratings/#comments</comments>
		<pubDate>Thu, 02 Feb 2012 04:19:15 +0000</pubDate>
		<dc:creator>Chris Coyier</dc:creator>
				<category><![CDATA[Article]]></category>

		<guid isPermaLink="false">http://css-tricks.com/?p=16188</guid>
		<description><![CDATA[<p><p>Star ratings are one of those classic UX patterns that everyone has tinkered with at one time or another. I had an idea get the UX part of it done with very little code and no JavaScript.</p>
<p></p>
<p>The markup uses the unicode entity for a star (☆) right in it. If you have a UTF-8 charset that should be no big deal. Alternatively you could use &#38;#9734; (<a href="http://www.evotech.net/blog/2007/08/css-javascript-character-entities/">Calculator</a> for that kind of thing). You could use as many stars &#8230;</p></p><p><a href="http://css-tricks.com/star-ratings/">Star Ratings With Very Little CSS</a> is a post from <a href="http://css-tricks.com">CSS-Tricks</a></p>]]></description>
			<content:encoded><![CDATA[<p>Star ratings are one of those classic UX patterns that everyone has tinkered with at one time or another. I had an idea get the UX part of it done with very little code and no JavaScript.<span id="more-16188"></span></p>
<p><img src="http://css-tricks.com/wp-content/uploads/2012/02/starratings.png" alt="" title="starratings" width="240" height="153" class="alignnone size-full wp-image-16198" /></p>
<p>The markup uses the unicode entity for a star (☆) right in it. If you have a UTF-8 charset that should be no big deal. Alternatively you could use &amp;#9734; (<a href="http://www.evotech.net/blog/2007/08/css-javascript-character-entities/">Calculator</a> for that kind of thing). You could use as many stars as you like:</p>
<pre rel="HTML"><code>&lt;div class="rating"&gt;
&lt;span&gt;☆&lt;/span&gt;&lt;span&gt;☆&lt;/span&gt;&lt;span&gt;☆&lt;/span&gt;&lt;span&gt;☆&lt;/span&gt;&lt;span&gt;☆&lt;/span&gt;
&lt;/div&gt;</code></pre>
<p>Now we need to flop out that "hollow" star with a "solid" star on hover (<a href="http://copypastecharacter.com/">Gallery</a> for finding those sorts of characters). Easy, just drop a pseudo element of a solid star (★) over it on <code>:hover</code></p>
<pre rel="CSS"><code>.rating &gt; span:hover:before {
   content: "\2605";
   position: absolute;
}</code></pre>
<p>Just by virtue of being it being absolutely positioned, the <code>top: 0; left: 0;</code> are implied (in modern browsers, anyway). So the solid star just sits directly on top of the hollow star. You could even change the color or size if you wished.</p>
<p>But what we have so far only works on individual stars. The UX pattern demands that all the stars be filled in. Fo instance, if we hover over the 4th star, the 4th star becomes solid, but also the 1st, 2nd, and 3rd. </p>
<p>Through CSS, there is no way to select a <em>preceding</em> child element. However, there is a way to select <em>succeeding</em> child elements, through the <a href="http://css-tricks.com/child-and-sibling-selectors/">adjacent or general sibling combinators</a>. If we literally <a href="http://css-tricks.com/snippets/css/reversing-text/">reverse the order of the characters</a>, then we can make use of the general sibling combinator to select all the stars that appear <em>before</em> the hovered star visually, but <em>after</em> the hovered star in the HTML. </p>
<pre rel="CSS"><code>.rating {
  unicode-bidi: bidi-override;
  direction: rtl;
}
.rating &gt; span:hover:before,
.rating &gt; span:hover ~ span:before {
   content: "\2605";
   position: absolute;
}</code></pre>
<p>That's it! The whole star ratings UX pattern with very little code. Here's the entire bit of CSS to make it work:</p>
<pre rel="CSS"><code>.rating {
  unicode-bidi: bidi-override;
  direction: rtl;
}
.rating &gt; span {
  display: inline-block;
  position: relative;
  width: 1.1em;
}
.rating &gt; span:hover:before,
.rating &gt; span:hover ~ span:before {
   content: "\2605";
   position: absolute;
}</code></pre>
<p><a href="http://css-tricks.com/examples/StarRating/" class="button">View Demo</a></p>
<p>And <a href="http://dabblet.com/gist/1709019">here's a Dabblet</a> if you wanna mess with it.</p>
<h3>Actual Usage</h3>
<p>Chances are, JavaScript is going to be involved with rating stars anyway. When a user clicks a star, the rating is reported back via Ajax, and the widget itself gains a class to permanently display their selected number of stars. With JavaScript already involved, wouldn't it be OK to lean on it for flip-flopping classes around on the stars to make them work? If your app is absolutely dependent on JavaScript to work, then sure, that's fine. If you are interested in building a website that still works without JavaScript, then these Star Ratings are going to need more work. You should look into <a href="http://lea.verou.me/2011/08/accessible-star-rating-widget-with-pure-css/">Lea Verou's example</a> which uses radio buttons, which could be a part of a form that can be submitted to "rate" whatever it is without JavaScript.</p>
<h3>Others</h3>
<p>After first sharing this on Twitter, a couple of other folks took a crack at it in slightly different ways. <a href="https://twitter.com/dmfilipenko/status/164800384953614336">@dmfilipenko</a>'s <a href="http://dabblet.com/gist/1718992">Dabblet</a>. <a href="https://twitter.com/mprogano/status/164418496313303040">@mprogano's</a> <a href="http://dabblet.com/gist/1712123">Dabblet</a></p>
<p><a href="http://css-tricks.com/star-ratings/">Star Ratings With Very Little CSS</a> is a post from <a href="http://css-tricks.com">CSS-Tricks</a></p>]]></content:encoded>
			<wfw:commentRss>http://css-tricks.com/star-ratings/feed/</wfw:commentRss>
		<slash:comments>38</slash:comments>
		</item>
		<item>
		<title>Real-World CSS</title>
		<link>http://visualidiot.com/articles/css3</link>
		<comments>http://css-tricks.com/real-world-css/#comments</comments>
		<pubDate>Wed, 01 Feb 2012 22:00:52 +0000</pubDate>
		<dc:creator>Chris Coyier</dc:creator>
				<category><![CDATA[Link]]></category>

		<guid isPermaLink="false">http://css-tricks.com/?p=16190</guid>
		<description><![CDATA[<p><p>A very serious not at all tongue-in-cheek gallery of CSS3 techniques that poo-poos the fancy in favor of the practical.</p>
<p><a href="http://visualidiot.com/articles/css3" title="Direct link to featured article">Direct Link to Article</a> &#8212; <a href="http://css-tricks.com/real-world-css/">Permalink</a>&#8230;</p></p><p><a href="http://css-tricks.com/real-world-css/">Real-World CSS</a> is a post from <a href="http://css-tricks.com">CSS-Tricks</a></p>]]></description>
			<content:encoded><![CDATA[<p>A very serious not at all tongue-in-cheek gallery of CSS3 techniques that poo-poos the fancy in favor of the practical.</p>
<p><a href="http://visualidiot.com/articles/css3" title="Direct link to featured article">Direct Link to Article</a> &#8212; <a href="http://css-tricks.com/real-world-css/">Permalink</a></p><p><a href="http://css-tricks.com/real-world-css/">Real-World CSS</a> is a post from <a href="http://css-tricks.com">CSS-Tricks</a></p>]]></content:encoded>
			<wfw:commentRss>http://css-tricks.com/real-world-css/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Better Box Sizing</title>
		<link>http://paulirish.com/2012/box-sizing-border-box-ftw/</link>
		<comments>http://css-tricks.com/better-box-sizing/#comments</comments>
		<pubDate>Wed, 01 Feb 2012 18:33:31 +0000</pubDate>
		<dc:creator>Chris Coyier</dc:creator>
				<category><![CDATA[Link]]></category>

		<guid isPermaLink="false">http://css-tricks.com/?p=16186</guid>
		<description><![CDATA[<p><p>Paul Irish suggests the universal selector (*) to apply <code>border-box</code> <code>box-sizing</code> to every element. I've been wanting to try this forever because this box model is, in my opinion, just better. Imagine: elements with percentage widths and pixel padding without worry.</p>
<p><a href="http://paulirish.com/2012/box-sizing-border-box-ftw/" title="Direct link to featured article">Direct Link to Article</a> &#8212; <a href="http://css-tricks.com/better-box-sizing/">Permalink</a>&#8230;</p></p><p><a href="http://css-tricks.com/better-box-sizing/">Better Box Sizing</a> is a post from <a href="http://css-tricks.com">CSS-Tricks</a></p>]]></description>
			<content:encoded><![CDATA[<p>Paul Irish suggests the universal selector (*) to apply <code>border-box</code> <code>box-sizing</code> to every element. I've been wanting to try this forever because this box model is, in my opinion, just better. Imagine: elements with percentage widths and pixel padding without worry.</p>
<p><a href="http://paulirish.com/2012/box-sizing-border-box-ftw/" title="Direct link to featured article">Direct Link to Article</a> &#8212; <a href="http://css-tricks.com/better-box-sizing/">Permalink</a></p><p><a href="http://css-tricks.com/better-box-sizing/">Better Box Sizing</a> is a post from <a href="http://css-tricks.com">CSS-Tricks</a></p>]]></content:encoded>
			<wfw:commentRss>http://css-tricks.com/better-box-sizing/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Firefox 10</title>
		<link>http://www.mozilla.org/en-US/firefox/10.0/releasenotes/</link>
		<comments>http://css-tricks.com/firefox-10/#comments</comments>
		<pubDate>Wed, 01 Feb 2012 18:25:43 +0000</pubDate>
		<dc:creator>Chris Coyier</dc:creator>
				<category><![CDATA[Link]]></category>

		<guid isPermaLink="false">http://css-tricks.com/?p=16184</guid>
		<description><![CDATA[<p><p>...is now a stable release. It's notable because it's the first release with it's own built in developer tools (<a href="http://www.youtube.com/watch?v=VcuQ2Bn5bTA&#038;feature=youtu.be">video overview</a>). It's all HTML/CSS for now (not a Firebug replacement) but they are nicely designed and a great first step for a product that really should be in-house. Also, CSS 3D transforms! After you've upgraded, <a href="http://monocle.inventivelabs.com.au/static/scripts/src/test/experimental/moz-element-flipper/index.html">check out this demo</a> using <code>-moz-element</code> and the just-now-supported 3D transforms.</p>
<p><a href="http://www.mozilla.org/en-US/firefox/10.0/releasenotes/" title="Direct link to featured article">Direct Link to Article</a> &#8212; <a href="http://css-tricks.com/firefox-10/">Permalink</a>&#8230;</p></p><p><a href="http://css-tricks.com/firefox-10/">Firefox 10</a> is a post from <a href="http://css-tricks.com">CSS-Tricks</a></p>]]></description>
			<content:encoded><![CDATA[<p>...is now a stable release. It's notable because it's the first release with it's own built in developer tools (<a href="http://www.youtube.com/watch?v=VcuQ2Bn5bTA&#038;feature=youtu.be">video overview</a>). It's all HTML/CSS for now (not a Firebug replacement) but they are nicely designed and a great first step for a product that really should be in-house. Also, CSS 3D transforms! After you've upgraded, <a href="http://monocle.inventivelabs.com.au/static/scripts/src/test/experimental/moz-element-flipper/index.html">check out this demo</a> using <code>-moz-element</code> and the just-now-supported 3D transforms.</p>
<p><a href="http://www.mozilla.org/en-US/firefox/10.0/releasenotes/" title="Direct link to featured article">Direct Link to Article</a> &#8212; <a href="http://css-tricks.com/firefox-10/">Permalink</a></p><p><a href="http://css-tricks.com/firefox-10/">Firefox 10</a> is a post from <a href="http://css-tricks.com">CSS-Tricks</a></p>]]></content:encoded>
			<wfw:commentRss>http://css-tricks.com/firefox-10/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss><!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Page Caching using disk: enhanced
Database Caching using apc
Object Caching 1549/1606 objects using disk: basic

Served from: css-tricks.com @ 2012-02-09 16:14:43 -->

