<?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>Kilian Valkhof &#187; Design</title>
	<atom:link href="http://kilianvalkhof.com/category/design/feed/" rel="self" type="application/rss+xml" />
	<link>http://kilianvalkhof.com</link>
	<description></description>
	<lastBuildDate>Thu, 10 Nov 2011 12:42:03 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Fuck yeah Keming!</title>
		<link>http://kilianvalkhof.com/2011/design/fuck-yeah-keming/</link>
		<comments>http://kilianvalkhof.com/2011/design/fuck-yeah-keming/#comments</comments>
		<pubDate>Mon, 30 May 2011 09:00:11 +0000</pubDate>
		<dc:creator>Kilian Valkhof</dc:creator>
				<category><![CDATA[Design]]></category>

		<guid isPermaLink="false">http://kilianvalkhof.com/?p=931</guid>
		<description><![CDATA[<blockquote><p>After seeing a horrible kerned image of type for the umpteenth time, I decided to do something about it!</p></blockquote><p>This article is written by Kilian Valkhof, Front-end developer & User experience designer. Please visit <a href="http://kilianvalkhof.com">KilianValkhof.com</a> for more articles!<br/><br/><a href="http://kilianvalkhof.com/2011/design/fuck-yeah-keming/">Fuck yeah Keming!</a></p>
]]></description>
			<content:encoded><![CDATA[<p>Keeping profanity in the title like last week, <a href="http://fuckyeahkeming.com">Fuck yeah Keming</a> is the title of a new blog that I started, <strong>a celebration of horrendous kerning all over the internet.</strong><span id="more-931"></span></p>
<p>I decided to start a Fuck Yeah blog because I, perhaps immaturely, think that putting &#8220;Fuck yeah&#8221; in front of stuff makes it at least twice as cool. A day later someone on twitter said I should&#8217;ve named it &#8220;FLIck Yeah Keming&#8221; and have a double keming, which would&#8217;ve been even better if it wasn&#8217;t slightly confusing. Still, a missed opportunity.</p>
<p>Anyway, as I hadn&#8217;t announced it on my own blog yet, here is a copy of the introduction post I made on the blog:</p>
<h2>Welcorne!</h2>
<p>Hey all! After seeing a horrible kerned image of type for the umpteenth time, I decided to do something about it! And in true internet style, I of course make a <a href="http://fuckyeahtumblrblogs.tumblr.com/">Fuck yeah Blog</a>. You&#8217;re watching it right now!</p>
<p><img src="http://www.ironicsans.com/images/keming.gif"></p>
<p>Keming is a term coined by <a href="http://www.ironicsans.com/2008/02/idea_a_new_typography_term.html">Ironic Sans</a>. I am not associated with them, but they have an <a href="http://www.zazzle.com/ironicsans/gifts?cg=196275230271327298">awesome shirt</a> available.</p>
<p>The writer of this blog is <a href="http://kilianvalkhof.com">Kilian Valkhof</a>, A web developer/designer from the Netherlands. Suggestions welcome via the suggest button up top, or by sending a message to me via twitter: <a href="http://twitter.com/kilianvalkhof">@kilianvalkhof</a>.</p>
<p>Kem on!</p>
<p>This article is written by Kilian Valkhof, Front-end developer & User experience designer. Please visit <a href="http://kilianvalkhof.com">KilianValkhof.com</a> for more articles!<br/><br/><a href="http://kilianvalkhof.com/2011/design/fuck-yeah-keming/">Fuck yeah Keming!</a></p>
 <p><a href="http://kilianvalkhof.com/?flattrss_redirect&amp;id=931&amp;md5=a37e3acf605cc7a47680e41e381ddf26" title="Flattr" target="_blank"><img src="http://kilianvalkhof.com/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://kilianvalkhof.com/2011/design/fuck-yeah-keming/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Grafico: Javascript charting library</title>
		<link>http://kilianvalkhof.com/2010/design/grafico-javascript-charting-library/</link>
		<comments>http://kilianvalkhof.com/2010/design/grafico-javascript-charting-library/#comments</comments>
		<pubDate>Mon, 08 Feb 2010 04:00:30 +0000</pubDate>
		<dc:creator>Kilian Valkhof</dc:creator>
				<category><![CDATA[Design]]></category>
		<category><![CDATA[Javascript]]></category>

		<guid isPermaLink="false">http://kilianvalkhof.com/?p=541</guid>
		<description><![CDATA[<blockquote><p>There are a lot of bad charts out there, and Grafico will do it's best to prevent you from adding charts onto that pile. ;)</p></blockquote><p>This article is written by Kilian Valkhof, Front-end developer & User experience designer. Please visit <a href="http://kilianvalkhof.com">KilianValkhof.com</a> for more articles!<br/><br/><a href="http://kilianvalkhof.com/2010/design/grafico-javascript-charting-library/">Grafico: Javascript charting library</a></p>
]]></description>
			<content:encoded><![CDATA[<p>Grafico is a javascript charting library built with Raphaël and Prototype.js. The library provides a wide array of graphs and stays with the guidelines laid out by Stephen Few and Edward Tufte. <strong>Grafico provides pretty charts that effectively communicate their information.</strong><span id="more-541"></span></p>
<h2>Graphs</h2>
<p>This means you get awesome graphs such as <em>stacked area charts</em> and <em>sparklines</em>, but no pie charts or bar charts with every bar a different color. There are a lot of bad charts out there, and Grafico will do it&#8217;s best to prevent you from adding charts onto that pile. ;)</p>
<p><img src="http://grafico.kilianvalkhof.com/grafico-example.png" alt="" /><br />
<strong><a href="http://grafico.kilianvalkhof.com">Website</a></strong>, <strong><a href="http://grafico.kilianvalkhof.com/documentation/">Documentation</a></strong> (might be slow on some browsers due to all the examples)</p>
<div style="float:right;margin-left:2em;">
Available graphs:</p>
<ul>
<li><a href="http://grafico.kilianvalkhof.com/documentation/index.html#line">Line graphs</a></li>
<li><a href="http://grafico.kilianvalkhof.com/documentation/index.html#area">Area graphs</a></li>
<li><a href="http://grafico.kilianvalkhof.com/documentation/index.html#stack">Stacked area graphs</a></li>
<li><a href="http://grafico.kilianvalkhof.com/documentation/index.html#stream">Stream graphs</a></li>
<li><a href="http://grafico.kilianvalkhof.com/documentation/index.html#bar">Bar graphs</a></li>
<li><a href="http://grafico.kilianvalkhof.com/documentation/index.html#horizontalbar">Horizontal bar graphs</a></li>
<li><a href="http://grafico.kilianvalkhof.com/documentation/index.html#sparkline">Sparklines</a></li>
<li><a href="http://grafico.kilianvalkhof.com/documentation/index.html#sparkbar">Sparkbars</a></li>
<li><a href="http://grafico.kilianvalkhof.com/documentation/index.html#sparkarea">Sparkareas</a></li>
</ul>
</div>
<p>Grafico requires <a href="http://raphaeljs.com">Raphaël</a> 1.0+ and <a href="http://prototypejs.org">Prototype.js</a> 1.6+</p>
<p>Each graph type has numerous API options to customize it&#8217;s look and behavior. Many examples of this can be found in the <a href="http://grafico.kilianvalkhof.com/documentation/">documentation</a>. Some highlights: pop-up hovers, meanlines and watermarks. Minified, Grafico is about 30kb and available under the MIT license.</p>
<p>Grafico is also available on <a href="http://github.com/kilian/grafico">Github</a> and includes a minification script made by <a href="http://wakoopa.com/menno">Menno</a> using the Google Closure Compiler.</p>
<h3 style="clear:both">History</h3>
<p>In april 2009 I started working on new visualizations for <a href="http://wakoopa.com">Wakoopa</a>. I had set it my target to provide unique and interesting graphs. One thing that particularly inspired me was the <a href="http://www.neoformix.com/2008/StreamGraph.html">stream graph</a>, but the <a href="http://www.neoformix.com/2008/StreamGraph.html">math behind</a> it scared the crap out of me. I decided to focus on stacked area graphs instead.</p>
<p>After doing extensive research on the available JavaScript charting libraries, and being slightly disappointed by most, <a href="http://alexyoung.org/2009/01/21/ico-svg-graphs-with-prototype-and-raphael/">Ico by Alex Young</a> was the most promising. In the (almost ) year I worked on it, the graphs, code and API changed considerably. To avoid confusion I decided to rename my version to Grafico. </p>
<h3>Todo</h3>
<p>As always, there are points of improvement. The major one is speed. Grafico is very speedy on modern browsers, but of course IE lags behind. When building graphs, drawing pop-up hovers for all data points takes too much time and I have yet to find a way to improve this. The project lives on <a href="http://github.com/kilian/grafico">Github</a>, so if you have improvements, fork away and I&#8217;ll gladly pull them!</p>
<h2>Update! (16 Feb 2010)</h2>
<p><a href="http://janpaulposma.nl">Jan Paul Posma</a> wrote the code to implement the aforementioned stream graphs into Grafico. Which is <em>awesome</em>. I have updated the links in this article accordingly.</p>
<p>This article is written by Kilian Valkhof, Front-end developer & User experience designer. Please visit <a href="http://kilianvalkhof.com">KilianValkhof.com</a> for more articles!<br/><br/><a href="http://kilianvalkhof.com/2010/design/grafico-javascript-charting-library/">Grafico: Javascript charting library</a></p>
]]></content:encoded>
			<wfw:commentRss>http://kilianvalkhof.com/2010/design/grafico-javascript-charting-library/feed/</wfw:commentRss>
		<slash:comments>30</slash:comments>
		</item>
		<item>
		<title>The problem with SVG and Canvas</title>
		<link>http://kilianvalkhof.com/2010/design/the-problem-with-svg-and-canvas/</link>
		<comments>http://kilianvalkhof.com/2010/design/the-problem-with-svg-and-canvas/#comments</comments>
		<pubDate>Mon, 25 Jan 2010 04:00:52 +0000</pubDate>
		<dc:creator>Kilian Valkhof</dc:creator>
				<category><![CDATA[Design]]></category>

		<guid isPermaLink="false">http://kilianvalkhof.com/?p=486</guid>
		<description><![CDATA[<blockquote><p>SVG and Canvas should not care about pixels, because they work in vectors. The lines are blurry <em>by design</em>.</p></blockquote><p>This article is written by Kilian Valkhof, Front-end developer & User experience designer. Please visit <a href="http://kilianvalkhof.com">KilianValkhof.com</a> for more articles!<br/><br/><a href="http://kilianvalkhof.com/2010/design/the-problem-with-svg-and-canvas/">The problem with SVG and Canvas</a></p>
]]></description>
			<content:encoded><![CDATA[<p>SVG and canvas are awesome technologies, and are changing the way we use graphics on the web. I love working with both, and support for both keeps improving (IE9 might even <a href="http://blogs.msdn.com/ie/archive/2010/01/05/microsoft-joins-w3c-svg-working-group.aspx">support SVG</a>!) However, they have one problem that is really getting to me, and it&#8217;s not even their fault.<span id="more-486"></span></p>
<h3>Vectors</h3>
<p>You see, SVG and Canvas are based on vectors. This means that they don&#8217;t really care about the pixels they get drawn on, their graphic implementation takes care of that. And thats a problem. This is the code to draw a 1px line in canvas:</p>
<pre><code>var canvas1, context1;
    canvas1 = document.getElementById("canvas1");
    canvas1.height = 20;
    canvas1.width = 560;
    context1 = canvas1.getContext("2d");
    context1.strokeStyle = '#000000';

    // draw
    context1.moveTo(1,10);
    context1.lineTo(200,10);
    context1.stroke();</code></pre>
<div><canvas id="canvas1"></canvas></div>
<div><script type="text/javascript">
  var canvas1, context1;
    canvas1 = document.getElementById("canvas1");
    canvas1.height = 20;
    canvas1.width = 560;
    context1 = canvas1.getContext("2d");
    context1.strokeStyle = '#000000';
    // draw
    context1.moveTo(1,10);
    context1.lineTo(560,10);
    context1.stroke();
</script></div>
<p>As you can see, that line is <em>blurry</em>. I don&#8217;t want my lines to be blurry. Luckily there is an easy fix:</p>
<pre></code>context1.moveTo(1,10<strong>.5</strong>);
context1.lineTo(200,10<strong>.5</strong>);
context1.stroke();</code></pre>
<div><canvas id="canvas2"></canvas></div>
<div><script type="text/javascript">
  var canvas2, context2;
    canvas2 = document.getElementById("canvas2");
    canvas2.height = 20;
    canvas2.width = 560;
    context2 = canvas2.getContext("2d");
    context2.strokeStyle = '#000000';
    // draw
    context2.moveTo(1,10.5);
    context2.lineTo(560,10.5);
    context2.stroke();
</script></div>
<p>Just <a href="http://www.diveintohtml5.org/canvas.html#pixel-madness">offset with half a pixel</a>, and it&#8217;ll render nice and sharp. This works, because in SVG and in Canvas, pixels aren&#8217;t seen as an indivisible unit. You can draw on a <em>part</em> of a pixel. </p>
<p>When you code a line to start at a certain pixel, you are actually starting the line in the <strong>top-left corner</strong> of that pixel. When that line is 1px wide, half a the line gets drawn on one pixel, and the other half on the one next to it, resulting in a blurry line.</p>
<p>As I said, this is&#8217;t really SVG or Canvas&#8217; fault. SVG and Canvas should not care about pixels, because they work in vectors. The lines are blurry <em>by design</em>. However, the last thing a canvas or SVG developer should want is code littered with <code>+0.5</code> and currently, this is exactly what happens.</p>
<h3>What I want</h3>
<p>I don&#8217;t want to have to write <code>+0.5</code> all throughout my canvas or SVG generating code. I want the canvas or SVG implementation to be smart enough to know when that line is going to be unintentionally blurry, and make sure it&#8217;s not. Now, an implementation might not be able to determine this, I don&#8217;t know. </p>
<p>At the very least, give developers a global option to switch between the two &#8220;modes&#8221; (one being theoretically correct, the other giving sharp lines). <strong>Call it <code>alignToRaster</code> (a boolean, as a property of the canvas, defaults to false) and if set to true, silently add the 0.5px for me.</strong></p>
<p>This article is written by Kilian Valkhof, Front-end developer & User experience designer. Please visit <a href="http://kilianvalkhof.com">KilianValkhof.com</a> for more articles!<br/><br/><a href="http://kilianvalkhof.com/2010/design/the-problem-with-svg-and-canvas/">The problem with SVG and Canvas</a></p>
]]></content:encoded>
			<wfw:commentRss>http://kilianvalkhof.com/2010/design/the-problem-with-svg-and-canvas/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>gridBuilder.js, background grid generator in canvas</title>
		<link>http://kilianvalkhof.com/2009/design/gridbuilder-js-background-grid-generator-in-canvas/</link>
		<comments>http://kilianvalkhof.com/2009/design/gridbuilder-js-background-grid-generator-in-canvas/#comments</comments>
		<pubDate>Mon, 28 Sep 2009 04:00:15 +0000</pubDate>
		<dc:creator>Kilian Valkhof</dc:creator>
				<category><![CDATA[Design]]></category>
		<category><![CDATA[Javascript]]></category>

		<guid isPermaLink="false">http://kilianvalkhof.com/?p=451</guid>
		<description><![CDATA[<blockquote><p>In order to correctly draw a 1px wide line, <em>on</em> a single pixel, you actually need to position it 0.5 pixel further.</p></blockquote><p>This article is written by Kilian Valkhof, Front-end developer & User experience designer. Please visit <a href="http://kilianvalkhof.com">KilianValkhof.com</a> for more articles!<br/><br/><a href="http://kilianvalkhof.com/2009/design/gridbuilder-js-background-grid-generator-in-canvas/">gridBuilder.js, background grid generator in canvas</a></p>
]]></description>
			<content:encoded><![CDATA[<p>GridBuilder.js is a jQuery plugin that uses canvas to generate a grid background for arbitrary elements. Because it generates the grid via javascript and canvas, it&#8217;s much more flexible than using an image background.<span id="more-451"></span></p>
<h3>Canvas</h3>
<p>&hellip;is pretty easy. There are good guides available, not the least the one from Dive into HTML5, <a href="http://diveintohtml5.org/canvas.html">Let’s Call It A Draw(ing Surface)</a>. You need them, because there are a couple of gotcha&#8217;s. For example, to get different colored lines, you need to explicitly start new paths (but you don&#8217;t have to explicitly end them, just draw them on the canvas before starting another line). Once you get the way this works, it&#8217;s pretty much straightforward from there.</p>
<p>Another example is that in canvas, pixels are seen as small squares (yes, really.) When you draw a line from a pixel, it actually draws the line centered in the top-left corner of the pixel. When it renders, that means that the line gets blurred because it&#8217;s actually drawn on two pixels. This means that in order to correctly draw a 1px wide line, <em>on</em> a single pixel, you actually need to position it 0.5 pixel further. (so it&#8217;s in the &#8216;middle&#8217; of the pixel). It turns out, that sort of fails in Firefox (but not in Safari) because of a rounding error. If I used +0.5, Some lines just wouldn&#8217;t appear! However, if you just <strong>subtract 0.5</strong>, then everything works as expected.</p>
<h2><a href="http://gridbuilder.kilianvalkhof.com/">Download and demo</a></h2>
<p>The whole project is hosted at github as well: <a href="http://github.com/Kilian/gridBuilder.js">gridBuilder.js on Github</a>. gridBuilder.js is 4kb unpacked, uses jQuery and works in <strong>real browsers</strong>*. It&#8217;s dual licensed under the GPL and MIT licenses.</p>
<p>*A real browser here is defined as one that supports both <em>canvas</em> and <em>data-url&#8217;s</em>. The latter is being used to set the canvas as a background image for your element.</p>
<h3>Code</h3>
<p>Since it&#8217;s a <a href="http://jquery.com">jQuery</a> plugin, gridBuilder.js works for any jquery element. gridBuilder.js offers 5 customizable settings, a primary and secondary color for gridlines and secondary gridlines (positioned in the middle between two gridlines), a height for the vertical rhythm, a width for the horizontal strokes and a gutter (spacing) for between the strokes. </p>
<p>Entering <code>false</code> for any of the options will disable that particular option, so you can for example just have a vertical rhythm and no horizontal strokes, or disable the secondary gridlines. The default settings are shown below.</p>
<pre><code>$(document).ready(function(){
  $("body").gridBuilder({
    color:          '#eee',    // color of the primary gridlines
    secondaryColor: '#f9f9f9', // color of the secondary gridlines
    vertical:       18,        // height of the vertical rhythm
    horizontal:     140,       // width of horizontal strokes
    gutter:         40,        // width of the gutter between strokes
  });
});</code></pre>
<p>While this is a plugin you&#8217;d primarily use while building a website, should you want to remove it via javascript, you can call this function:</p>
<pre><code>$("body").destroyGrid();</code></pre>
<h3>Future improvements</h3>
<p>I would like to add a floating panel where you can enter all options and have the grid regenerate on the fly, as well as giving you the javascript code to invoke that particular grid. This would make it easier to tweak your grid, since you wouldn&#8217;t have to edit your file, save it and then refresh. </p>
<p>It&#8217;s hosted on <a href="http://github.com/Kilian/gridBuilder.js">Github</a>, so feel free to fork it and do with it whatever you like :)</p>
<p>This article is written by Kilian Valkhof, Front-end developer & User experience designer. Please visit <a href="http://kilianvalkhof.com">KilianValkhof.com</a> for more articles!<br/><br/><a href="http://kilianvalkhof.com/2009/design/gridbuilder-js-background-grid-generator-in-canvas/">gridBuilder.js, background grid generator in canvas</a></p>
]]></content:encoded>
			<wfw:commentRss>http://kilianvalkhof.com/2009/design/gridbuilder-js-background-grid-generator-in-canvas/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>When will pixels become obsolete?</title>
		<link>http://kilianvalkhof.com/2008/design/when-will-pixels-become-obsolete/</link>
		<comments>http://kilianvalkhof.com/2008/design/when-will-pixels-become-obsolete/#comments</comments>
		<pubDate>Mon, 08 Sep 2008 01:00:09 +0000</pubDate>
		<dc:creator>Kilian Valkhof</dc:creator>
				<category><![CDATA[Design]]></category>

		<guid isPermaLink="false">http://kilianvalkhof.com/?p=167</guid>
		<description><![CDATA[<blockquote><p>The pixel will become less and less the "solid" measure most Front end developers regard it as.</p></blockquote><p>This article is written by Kilian Valkhof, Front-end developer & User experience designer. Please visit <a href="http://kilianvalkhof.com">KilianValkhof.com</a> for more articles!<br/><br/><a href="http://kilianvalkhof.com/2008/design/when-will-pixels-become-obsolete/">When will pixels become obsolete?</a></p>
]]></description>
			<content:encoded><![CDATA[<p>No matter how many EM&#8217;s or percentages we use in our design, we are still locked down with pixels for images and screen sizes. For how much longer?<span id="more-167"></span></p>
<p>It used to be so easy. Every screen was 72DPI, so you were quite certain in how large or small something would display on a monitor. Nowadays, websites are viewed on all sorts of devices with all sorts of DPI. Most screens have 72 or 92DPI, some have 120DPI. An iPhone has 160DPI and regular cellphones have around 100 to 200DPI</p>
<p>That means that your 400px wide image will look very different on a range of monitors, and that the pixel will become less and less the &#8220;solid&#8221; measure most Front end developers regard them as. This isn&#8217;t new, Roger Johansson blogged about it <a href="http://www.456bereastreet.com/archive/200606/safari_brings_high_resolution_to_the_web/">two years ago</a>.</p>
<p>One thing the article mentions is that a CSS pixel is not always equal to a device pixel (otherwise zooming would be impossible, for instance). Unfortunately, as you can read in the same article, this doesn&#8217;t mean you can go merrily about your ways, because it will <em>still</em> look different on a screen with higher or lower DPI.</p>
<h3>what now?</h3>
<p>I think that in the future, pixel based designs will not be a viable option for web design any more. Technologies such as SVG and CANVAS, coupled with relative sizing (relative to the base size of browsers), or even the CSS gradients, repetition and stretching background options CSS3 and the Webkit team bring us, will be used in favour of jpg&#8217;s, gif&#8217;s and png&#8217;s. For most website designs, SVG etc. would be easier to use and maintain than pixel based formats. But alas, not all browsers support it yet.</p>
<p>However, this doesn&#8217;t completely solve the problem, because there are plenty of photographs used in web design. What about those? The current idea is to give higher resolution images to screens with a higher DPI and lower resolution images to screens with lower DPI. I am uncertain if this will work, as it essentially doubles the work of a web designer.</p>
<h3>Well, will they become obsolete?</h3>
<p>I certainly hope so! It might not be in the next couple of years, but in a decade or so, I think web developers won&#8217;t be thinking in pixels any more.</p>
<p>This article is written by Kilian Valkhof, Front-end developer & User experience designer. Please visit <a href="http://kilianvalkhof.com">KilianValkhof.com</a> for more articles!<br/><br/><a href="http://kilianvalkhof.com/2008/design/when-will-pixels-become-obsolete/">When will pixels become obsolete?</a></p>
]]></content:encoded>
			<wfw:commentRss>http://kilianvalkhof.com/2008/design/when-will-pixels-become-obsolete/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>My first design is finally done</title>
		<link>http://kilianvalkhof.com/2008/design/my-first-design-is-finally-done/</link>
		<comments>http://kilianvalkhof.com/2008/design/my-first-design-is-finally-done/#comments</comments>
		<pubDate>Wed, 13 Aug 2008 14:23:05 +0000</pubDate>
		<dc:creator>Kilian Valkhof</dc:creator>
				<category><![CDATA[Design]]></category>

		<guid isPermaLink="false">http://kilianvalkhof.com/?p=99</guid>
		<description><![CDATA[<blockquote><p>This site is made with a <strong>screw IE</strong> attitude</p></blockquote><p>This article is written by Kilian Valkhof, Front-end developer & User experience designer. Please visit <a href="http://kilianvalkhof.com">KilianValkhof.com</a> for more articles!<br/><br/><a href="http://kilianvalkhof.com/2008/design/my-first-design-is-finally-done/">My first design is finally done</a></p>
]]></description>
			<content:encoded><![CDATA[<p>After over a year and a half, I finally have a design of my own. It&#8217;s been announced way too many times, but now it&#8217;s really here. Find out what happened to the tagline, after the break!<span id="more-99"></span></p>
<h3>Design wise</h3>
<p>This is actually the first design I made on a Linux machine (<em>nerd</em>), and the first design that went directly from sketch to html. My sketches were more detailed because of this, and I might add them to the article later, when I have a good camera at hand. In any case it means I didn&#8217;t buy fancy pencils for nothing :) Most of the typography was actually sketched out, instead of added as an afterthought. The header is set in <a href="http://www.insignedesign.com/Typeface.aspx?FamilyName=Asturias">Asturias</a>.</p>
<p>Besides that, the whole website adheres to a vertical rhythm of 18px (even my form elements!), largely the cause of the <em>awesome</em> <a href="http://sencss.kilianvalkhof.com">SenCSs</a>. There is a pretty strict grid as well. It might seem quite small if you have a fancy 24&#8243; monitor, but since I have an Asus EEE, I wanted it to work on there as well. I can create 1, 2, 3 or 4 columns within my style, with space to the right of the design where I can put extra stuff. I might experiment with that in time.</p>
<p>I&#8217;m using my <a href="http://kilianvalkhof.com/2008/css-xhtml/context-hover-adding-context-feedback-to-your-links/">Context Hover</a> javascript trick as well,  I think it works very nice on this site.</p>
<p>I liked the idea of having as little administrative cruft available as possible, and initially didn&#8217;t have a search form at all. This is functionality I wanted to offer though, so I settled for what you currently see. It&#8217;s in the top right corner with <code>position:fixed</code>, more part of the browser window (right below your google search bar) than my website. Huzzah! I also removed the sharing options, and made the meta information as small and invisible as possible.</p>
<p>Oh, and about the tagline, it&#8217;s still there for those who look :)</p>
<h3>Code Wise</h3>
<p>Yep, I used SenCSs for this design, and that took away about 50% of the styling needs. I&#8217;m so happy with developing it :) There are probably some things here and there that I&#8217;m going to change in SenCSs 0.4.7, or, if I can finish the form part, they&#8217;ll go straight into 0.5 :) (0.5 being the first version to include form styling). </p>
<p>HTML-wise it&#8217;s quite boring. xhtml strict, nothing spectacular. I went down a scale in headings in articles. (So what was <code>h2</code> with the old design will be <code>h3</code> in the new design.) Will be interesting to see what Google thinks of that&hellip;</p>
<p>I&#8217;m also happy to tell you that this site is made with a <strong>screw IE</strong> attitude. I can do this, because IE users are only about 15% of my visitors. Most of the site will work for them, the fancy stuff won&#8217;t. What fancy stuff, you ask? Well, That would be fancy CSS selectors such as these:</p>
<pre><code>h2 + p:first-line
.first-post > p:first-line
.comment-form .left ~ button
<a href="http://kilianvalkhof.com/2008/css-xhtml/your-best-css-selector/">li:not([class=pingback]) .comment-content p:first-child:first-letter</a></code></pre>
<p>I&#8217;m using the <a href="http://rmarsh.com/plugins/similar-posts/">similar posts plugin</a> to display related posts at the bottom of my articles, which works pretty well and I find myself browsing through my backlog, so I hope you will, too. :)</p>
<p>On the homepage I have the three most popular posts. Anyone that has searched for a plugin to take care of that and works with WordPress 2.6 probably found out there isn&#8217;t one. So I had to make my own little snippet* that uses the post options plugin. I&#8217;ll post an article with the code in the next couple of days. *<em>my WordPress-fu isn&#8217;t good enough to develop plugins yet</em></p>
<h3>More than a weblog</h3>
<p>I like the idea of this just being a weblog, but I am also a freelancer, and wouldn&#8217;t mind showcasing that on my site a bit more. So the <a href="#">projects</a> page will include both open source and client work. I got some cool things lined up for release. On the homepage I&#8217;m displaying a list of projects I developed or am involved with. Currently that&#8217;s just SenCSs, but expect that to fill up in the near future. </p>
<h3>Your Thoughts?</h3>
<p>I&#8217;m quite interested in your thoughts on the design and the website in general, let me know in the comments and if you&#8217;re browser is hot enough, I&#8217;ll give you a sweet <code>:first-letter</code> and <code>first-line</code> effect! ;)</p>
<p>This article is written by Kilian Valkhof, Front-end developer & User experience designer. Please visit <a href="http://kilianvalkhof.com">KilianValkhof.com</a> for more articles!<br/><br/><a href="http://kilianvalkhof.com/2008/design/my-first-design-is-finally-done/">My first design is finally done</a></p>
]]></content:encoded>
			<wfw:commentRss>http://kilianvalkhof.com/2008/design/my-first-design-is-finally-done/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Fluxility&#8217;s logo font evolution</title>
		<link>http://kilianvalkhof.com/2008/design/fluxilitys-logo-font-evolution/</link>
		<comments>http://kilianvalkhof.com/2008/design/fluxilitys-logo-font-evolution/#comments</comments>
		<pubDate>Mon, 24 Mar 2008 12:10:49 +0000</pubDate>
		<dc:creator>Kilian Valkhof</dc:creator>
				<category><![CDATA[Design]]></category>

		<guid isPermaLink="false">http://kilianvalkhof.com/2008/design/fluxilitys-logo-font-evolution/</guid>
		<description><![CDATA[One of the things I believe in strongly is self reinvention. Both on a personal and on a more business related level. At least in part because of that, the Fluxility logo font has changed three times since the company&#8217;s inception in 2005. This post is about the rationale behind these changes and the reasons [...]<p>This article is written by Kilian Valkhof, Front-end developer & User experience designer. Please visit <a href="http://kilianvalkhof.com">KilianValkhof.com</a> for more articles!<br/><br/><a href="http://kilianvalkhof.com/2008/design/fluxilitys-logo-font-evolution/">Fluxility&#8217;s logo font evolution</a></p>
]]></description>
			<content:encoded><![CDATA[<p>One of the things I believe in strongly is self reinvention. Both on a personal and on a more business related level. At least in part because of that, the <a href="http://fluxility.com" xml:lang="nl" lang="nl">Fluxility</a> logo font has changed three times since the company&#8217;s inception in 2005. This post is about the rationale behind these changes and the reasons for choosing each font.<span id="more-56"></span></p>
<p><em>Fluxility design is currently taking a break (well… we really try to, anyway) to work on more personal projects. This free time gives for some introspection about our brand, our image and the past three years of <abbr title="Fluxility's silliness">fluxilliness</abbr>.</em></p>
<h2><strong>Re</strong>invention</h2>
<p>Just like how you need a new hairdo once every few years*, It&#8217;s my believe that young companies need to constantly re-evaluate their image and brand and change whenever it&#8217;s needed.</p>
<p>While I can keep my haircut for a fair while longer, for each day that your clients interact with your &#8220;old&#8221; brand, the harder it will be to successfully change it later on. Release early, release often is a mantra that, I think, also fits well with the evolution of a company brand within it&#8217;s first couple of years.</p>
<p><em>*currently overdue for one</em></p>
<h2><strong>Fluxility</strong> in 2005</h2>
<p>As a 16 year old kid in 2005 I didn&#8217;t have any experience with typography design. I&#8217;m ashamed to admit, but the choice of our first logo font went like this:</p>
<ol>
<li>look for &#8220;fluxility&#8221; on dafont.com (no results)</li>
<li>look for &#8220;flu&#8221; on dafont.com (1 result)</li>
</ol>
<p>That one hit was a font called <a href="http://www.dafont.com/fluoxetine.font">Fluoxetine</a>, a grungy, font-melting-out-of-it&#8217;s-borders type of font. I loved it. The difference between the rigid shapes and the molten, fluid, flexible inner of the font represented both how we were still adapting to our roles and how we were also &#8220;breaking the mould&#8221;.<br />
<img src="/uploads/logo1.jpg" alt="'Fluxility design' set in Fluoxetine" /></p>
<p>However, this font also had some downsides. For one it was a bit childish. It also looked really muddy in small font sizes. While it fit us well in the first year when we were trying to find our own way, it eventually had to change.</p>
<h2>2006: <strong>Greyscale Basic</strong></h2>
<p>At the end of 2006 we set out to change our website (and general image) and decided that Fluoxetine no longer fit what we were trying to tell people about us. We were a lean, modern and approachable company. We weren&#8217;t trying to fit into anybody&#8217;s mould any more. <em>(That sounds way more dramatic than intended)</em></p>
<p>So in December 2006 we chose <a href="http://www.greyscale.net/basic/">Greyscale Basic</a> as our new, updated logo font. It&#8217;s a modern, almost futuristic font with very clean shapes.</p>
<p>Besides having very clean shapes, it&#8217;s also quite thin. This thinness to me expressed a form of sophistication that we wanted to show with Fluxility. In those years our prospects had quite some skepticism because of our age and relative inexperience with the business side of things. The sophisticated feel of this font had to counter some of that.</p>
<p><img src="/uploads/logo2.jpg" alt="'Fluxility design' set in Greyscale Basic" /></p>
<p>Does this font have downsides? Well, a small one. It feels quite technical in part because of the rigid corners. This, in my eyes, actually created some distance as it lacks a bit of humanity and softness. In a comic book, this font would be used for robots, not for humans.</p>
<h2>2007: <strong>Montag</strong></h2>
<p>When, in September 2007, I stumbled upon <a href="http://www.insignedesign.com/Typeface.aspx?FamilyName=Montag">Montag</a>, I immediately fell in love. It had everything Greyscale had in terms of sophistication, it felt modern and had clean shapes. But unlike Greyscale Basic, it&#8217;s rounded ends and gentle curves made it feel more likeable, more approachable and more human.<br />
<img src="/uploads/logo3.jpg" alt="'Fluxility design' set in Montag" /></p>
<p>Right now we use Montag light for our logo, and I&#8217;m really, really happy with it. It&#8217;s the only pay-for font of the three, So the chance of bumping into it somewhere else is much lower. (A small benefit.)</p>
<p>I can see us keeping this font for a long time to come.</p>
<h2>How about <strong>you?</strong></h2>
<p>Now that I&#8217;ve shared the rationale behind Fluxility&#8217;s logo fonts I&#8217;m interested to hear about yours. It&#8217;s worth noting that, when we set out in 2005, We didn&#8217;t plan on iterating our brand like this. It&#8217;s worked out very well though, and I&#8217;m glad we were comfortable enough about our brand to change parts of it.</p>
<p>This article is written by Kilian Valkhof, Front-end developer & User experience designer. Please visit <a href="http://kilianvalkhof.com">KilianValkhof.com</a> for more articles!<br/><br/><a href="http://kilianvalkhof.com/2008/design/fluxilitys-logo-font-evolution/">Fluxility&#8217;s logo font evolution</a></p>
]]></content:encoded>
			<wfw:commentRss>http://kilianvalkhof.com/2008/design/fluxilitys-logo-font-evolution/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>(Almost) Cross browser text-shadow</title>
		<link>http://kilianvalkhof.com/2008/design/almost-cross-browser-text-shadow/</link>
		<comments>http://kilianvalkhof.com/2008/design/almost-cross-browser-text-shadow/#comments</comments>
		<pubDate>Mon, 21 Jan 2008 08:46:54 +0000</pubDate>
		<dc:creator>Kilian Valkhof</dc:creator>
				<category><![CDATA[CSS & (X)HTML]]></category>
		<category><![CDATA[Design]]></category>

		<guid isPermaLink="false">http://kilianvalkhof.com/2008/design/almost-cross-browser-text-shadow/</guid>
		<description><![CDATA[Update: I have written a jQuery plugin that takes care of text-shadow in Internet Explorer, you can read the article here: Text-shadow in IE with jQuery Text-shadow is a neat little CSS3 (actually, CSS2) property that allows you to display a shadow behind your text. The only downfall is that it doesn&#8217;t work in Firefox [...]<p>This article is written by Kilian Valkhof, Front-end developer & User experience designer. Please visit <a href="http://kilianvalkhof.com">KilianValkhof.com</a> for more articles!<br/><br/><a href="http://kilianvalkhof.com/2008/design/almost-cross-browser-text-shadow/">(Almost) Cross browser text-shadow</a></p>
]]></description>
			<content:encoded><![CDATA[<p><strong>Update: I have written a jQuery plugin that takes care of text-shadow in Internet Explorer, you can read the article here: <a href="http://kilianvalkhof.com/2008/javascript/text-shadow-in-ie-with-jquery/">Text-shadow in IE with jQuery</a></strong></p>
<p>Text-shadow is a neat little CSS3 (actually, CSS2) property that allows you to display a shadow behind your text. The only downfall is that it doesn&#8217;t work in Firefox and Internet Explorer. I decided to fix that problem. Well, half of it. I made it work in…<span id="more-52"></span></p>
<h2>Internet explorer!</h2>
<p>Bet you didn&#8217;t see that one coming, did you? Internet Explorer has a neat thing called &#8220;filters&#8221; which are basically filthy javascript implementations in CSS. <a href="http://msdn2.microsoft.com/en-us/library/ms673539(VS.85).aspx">They have a whole slew of them</a>, including shadow. But we&#8217;re not using that because it&#8217;s very ugly:</p>
<p><img src="/uploads/ieshadow.gif" alt="image of shadow filter in Internet Explorer" /></p>
<pre><code>
h1 {filter:progid:DXImageTransform.Microsoft.Shadow(color=#666666,direction=45);}

</code></pre>
<p>See, you don&#8217;t want <em>that</em> in your page, you want something looking good like this text-shadow in safari 3:</p>
<p><img src="/uploads/safarishadow.gif" alt="image of text-shadow in safari 3" /></p>
<pre><code>
h1 {text-shadow:#000 0px 0px 3px;}

</code></pre>
<p>This, of course, looks much much better.</p>
<h2>Exit shadow, enter glow and blur</h2>
<p>When you look at the text-shadow effect in Safari or Opera 9.5, you can see that the shadow is basically a blurry version of the text that fades away at the edges. So we have to find a way to emulate that in Internet explorer. Thanks to two filters we can emulate it: Glow takes care of expanding beyond the text but is a bit crude on its own, so we add a slight blur to it to soften it up a bit.</p>
<pre><code>
filter:
	progid:DXImageTransform.Microsoft.Glow(Color=#bbbbbb,Strength=2)
	progid:DXImageTransform.Microsoft.blur(pixelradius=5, enabled='true')
;

</code></pre>
<p>When we add these filters to some text it looks nice and shadow-y, but we lose the the text itself.</p>
<h2>It gets ugly here</h2>
<p>In order for it to work, we need to find some way to place the same text over the blurred text. For that to happen I added an additional span inside the element.</p>
<p>When we keep the filters on the element, the span inside the element gets blurred as well, with no way of turning that off. So we have to switch it around: we place the filters on the span.</p>
<p>From here on some creativity is needed: We need to place the span directly under the original text. We do this by absolute positioning, a negative z-index and a bit of guesswork regarding the placement.</p>
<h2>The Result</h2>
<p>From there on I just cleaned it all up, hid the extra span for all other browsers using conditional comments, added a knock-out version and the end result looks like this:</p>
<p><img src="/uploads/comparison.png" alt="text shadow in both browsers side by side" /></p>
<p><a href="/uploads/ieshadow.html">Check out the example</a> (in Internet Explorer), the CSS is fully commented for your dissection and understanding.</p>
<h2>Discussion</h2>
<p>There are some points of discussion of course.</p>
<h3>The Firefox problem</h3>
<p>If you&#8217;ve gotten till here, you might wonder why Firefox is missing from this article. That&#8217;s because it currently doesn&#8217;t support text-shadow. There is an <a href="https://addons.mozilla.org/en-US/firefox/addon/5410">extention</a> available, though.</p>
<h3>Semantics and all that</h3>
<p>The span&#8217;s, while nicely hidden using conditional comments, would probably be better off added with javascript, just for cleanliness. The same goes for all the proprietary CSS, add it in a special CSS stylesheet and include it using conditional comments to keep your main stylesheet valid and not bother smarter browsers with invalid CSS.</p>
<p>That&#8217;s it, have fun with this bit of code! (My way of saying: code in public domain)</p>
<p>This article is written by Kilian Valkhof, Front-end developer & User experience designer. Please visit <a href="http://kilianvalkhof.com">KilianValkhof.com</a> for more articles!<br/><br/><a href="http://kilianvalkhof.com/2008/design/almost-cross-browser-text-shadow/">(Almost) Cross browser text-shadow</a></p>
 <p><a href="http://kilianvalkhof.com/?flattrss_redirect&amp;id=52&amp;md5=49b97250fe70d6c02cdb41628af41b35" title="Flattr" target="_blank"><img src="http://kilianvalkhof.com/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://kilianvalkhof.com/2008/design/almost-cross-browser-text-shadow/feed/</wfw:commentRss>
		<slash:comments>30</slash:comments>
		</item>
		<item>
		<title>Moo stickers!</title>
		<link>http://kilianvalkhof.com/2007/design/moo-stickers/</link>
		<comments>http://kilianvalkhof.com/2007/design/moo-stickers/#comments</comments>
		<pubDate>Wed, 29 Aug 2007 13:44:04 +0000</pubDate>
		<dc:creator>Kilian Valkhof</dc:creator>
				<category><![CDATA[Design]]></category>

		<guid isPermaLink="false">http://kilianvalkhof.com/2007/design/moo-stickers/</guid>
		<description><![CDATA[Moo.com is an awesome company. Their minicards are a great way to share contact information in a less formal, less boring way, and we&#8217;ve used them to great success as business cards for Fluxility. Seriously, everyone loves them. So when Moo also announced stickers and free shipping, it took me all of 5 minutes to [...]<p>This article is written by Kilian Valkhof, Front-end developer & User experience designer. Please visit <a href="http://kilianvalkhof.com">KilianValkhof.com</a> for more articles!<br/><br/><a href="http://kilianvalkhof.com/2007/design/moo-stickers/">Moo stickers!</a></p>
]]></description>
			<content:encoded><![CDATA[<p><a href="http://moo.com">Moo.com</a> is an awesome company. Their minicards are a great way to share contact information in a less formal, less boring way, and we&#8217;ve used them to great success as business cards for <a href="http://fluxility.com/wie-zijn-we">Fluxility</a>. Seriously, everyone loves them. So when Moo also announced stickers <em>and</em> free shipping, it took me all of 5 minutes to persuade my colleague Wouter that we <em>absolutely</em> needed them.<span id="more-41"></span></p>
<h2>The great discussion</h2>
<p>What was going to be on the stickers was easily decided on: 45 of our logo on a green and 45 of our logo on a blue background with a stickerbook for us both. But then: there are 6 colours to choose from. <strong>Six!</strong> This led to discussion as to who would pick which colour, and why. I was especially partial to purple, and my colleague to orange <strong>but</strong> neither colour was especially <em>Fluxy</em>. (Well the purple was, once, but we&#8217;ve been reducing our purple-ness for some time now. ) When Wouter decided he wanted the green one, I opted for the blue one.</p>
<h2>Done&#8217;s done</h2>
<p>I ordered the same set for both colour stickerbooks, and waited till they came in the mail. A very confused girl delivered them to my house, Royal mail doesn&#8217;t use the official Dutch postage company for post I guess. Mine came 2 days earlier than my colleague (ha!) and I&#8217;ve had them for about three weeks now. The stickerbook is absolutely awesome, Moo always puts a lot of effort into the packaging. The stickers themselves are really thick and durable, with a nice coating. Our logo looks awesome on them:</p>
<p><img src="/uploads/stickerbook.jpg" alt="Booklet" style="float: left" /><img src="/uploads/stickers.jpg" alt="our stickers" style="float: right" /></p>
<p style="clear:both;padding-top:1em;">There is one problem though:</p>
<p><strong>I haven&#8217;t dared to put a sticker anywhere yet.</strong> I&#8217;m always a bit scared of placing stickers anywhere, afraid to &#8220;lose&#8221; the sticker and afraid that I&#8217;ll get bored with some thing with a sticker on it, making the placement of a sticker a waste. Though I have 90, and the vinyl will come off easily, I still haven&#8217;t dared to place them anywhere. I&#8217;m going to stick one on my new duct tape wallet though, promise. (the old one is falling apart, so I need a new one.)</p>
<p><strong>Anyone have another nice place to stick them on?</strong> (Electronics and furniture are out of question.)</p>
<p>This article is written by Kilian Valkhof, Front-end developer & User experience designer. Please visit <a href="http://kilianvalkhof.com">KilianValkhof.com</a> for more articles!<br/><br/><a href="http://kilianvalkhof.com/2007/design/moo-stickers/">Moo stickers!</a></p>
]]></content:encoded>
			<wfw:commentRss>http://kilianvalkhof.com/2007/design/moo-stickers/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Random CSS Thought: Advanced background repeat options</title>
		<link>http://kilianvalkhof.com/2007/design/random-css-thought-advanced-background-repeat-options/</link>
		<comments>http://kilianvalkhof.com/2007/design/random-css-thought-advanced-background-repeat-options/#comments</comments>
		<pubDate>Thu, 22 Feb 2007 10:41:23 +0000</pubDate>
		<dc:creator>Kilian Valkhof</dc:creator>
				<category><![CDATA[Design]]></category>

		<guid isPermaLink="false">http://kilianvalkhof.com/2007/design/random-css-thought-advanced-background-repeat-options/</guid>
		<description><![CDATA[Background-repeat is an often used method of making smaller images possible while creating a filling background. But in my eyes it is far too limited. You could do much more with it: Checkerboard patterns To make these you have to make an image with at least 4 blocks, and then repeat that. What if you [...]<p>This article is written by Kilian Valkhof, Front-end developer & User experience designer. Please visit <a href="http://kilianvalkhof.com">KilianValkhof.com</a> for more articles!<br/><br/><a href="http://kilianvalkhof.com/2007/design/random-css-thought-advanced-background-repeat-options/">Random CSS Thought: Advanced background repeat options</a></p>
]]></description>
			<content:encoded><![CDATA[<p>Background-repeat is an often used method of making smaller images possible while creating a filling background. But in my eyes it is far too limited. You could do much more with it:</p>
<h2>Checkerboard patterns</h2>
<p>To make these you have to make an image with at least 4 blocks, and then repeat that. <em>What if you could control the space between each repeating image, in the x and y direction?</em><span id="more-26"></span> Lets assume we use a 20px by 20px black image:</p>
<pre><code>
.foo {
	background-color: #ffffff;
	background-image: url("one-block.gif");
	background-position: 0 0;

	<strong>background-repeat: 20px/20px repeat</strong>
}

</code></pre>
<p>background repeat would take this form: <code>background-repeat: <em>direction</em> <em>x-spacing</em>/<em>y-spacing</em></code>. So the above would position the image in the top left corner, skip 20px in both directions, and repeat it again. Effectively creating a nice checkerboard pattern. (Black and white, in this case.)</p>
<h2>What happens with a repetition in one direction?</h2>
<p>When you have a repetition in one direction (<code>repeat-x</code> or <code>repeat-y</code>) then you would also need only one spacing value. Lets assume we&#8217;re going for a stripy blue/light blue background here:</p>
<pre><code>
.bar {
	background-color: #ddddff;
	background-image: url("slightly-darker-blue.gif");
	background-position: 0 0;

	<strong>background-repeat: 20px repeat-y</strong>
}

</code></pre>
<p>This would create horizontal stripes, each 20px apart vertically. This code would work with a fixed-width container and an image with the same width. But by using both spacing options, we can make it width independent:</p>
<pre><code>
.bar {
	background-color: #ddddff;
	background-image: url("slightly-darker-blue-but-smaller.gif");
	background-position: 0 0;

	<strong>background-repeat: 0/20px repeat</strong>
}

</code></pre>
<p>This time, the image repeats in all directions. Horizontally without spacing, and vertically with 20px apart. </p>
<h2>Shorthand</h2>
<p>most people use the <code>background:</code> shorthand property, so it would have to work nicely with the shorthand too. And it does:</p>
<pre><code>
background:#ddf url("slighlty-darker-blue-but-smaller.gif") 0/20px repeat 0 0;

</code></pre>
<p>Doesn&#8217;t take away anything from the readability, does it? Of course, the default repeat spacing would be <code>0/0</code>.</p>
<h2>Even more interesting</h2>
<p>With the multiple background possibility in CSS3, this would get even more interesting:</p>
<pre><code>
.foo {
	background:#ddf url("red.gif") 20px/20px repeat 0 0,
		url("green.gif") 20px/20px repeat 10px 10px,
		url("blue.gif") 20px/20px repeat  20px 20px;
}

</code></pre>
<p>I&#8217;m sorry that you have to imagine a background like that (I truly am), but it serves the general idea perfectly. The code above creates a red/green/blue checkerboard pattern, and allows you to be even more flexible with your backgrounds. <strong>Just think of combining this with alpha-transparent png&#8217;s</strong>. Diagonal stripes just got easier :)</p>
<h2>Discussion</h2>
<p>Would this make your life as a CSS developer easier? Please share your thoughts in the comments.</p>
<p><strong>Other CSS thoughts</strong><br />
If you enjoyed this article, please consider reading any of my previous CSS thought articles:</p>
<ul>
<li><a href="http://kilianvalkhof.com/2007/css-xhtml/random-css-thought-solving-equal-height-columns/">Solving equal height columns</a></li>
<li><a href="http://kilianvalkhof.com/2007/css-xhtml/random-css-thought-background-z-index/">Background-z-index</a></li>
<li><a href="http://kilianvalkhof.com/2006/css-xhtml/random-css-thought-math-in-css/">Math in CSS</a></li>
</ul>
<p>This article is written by Kilian Valkhof, Front-end developer & User experience designer. Please visit <a href="http://kilianvalkhof.com">KilianValkhof.com</a> for more articles!<br/><br/><a href="http://kilianvalkhof.com/2007/design/random-css-thought-advanced-background-repeat-options/">Random CSS Thought: Advanced background repeat options</a></p>
]]></content:encoded>
			<wfw:commentRss>http://kilianvalkhof.com/2007/design/random-css-thought-advanced-background-repeat-options/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
	</channel>
</rss>

