<?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>Gilles Vandenoostende &#187; css3</title>
	<atom:link href="http://blog.vandenoostende.com/tag/css3/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.vandenoostende.com</link>
	<description>My blog</description>
	<lastBuildDate>Mon, 06 Feb 2012 10:46:37 +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>Sizing the legible letter ∞</title>
		<link>http://blog.typekit.com/2011/11/09/type-study-sizing-the-legible-letter/</link>
		<comments>http://blog.vandenoostende.com/2011/sizing-the-legible-letter-%e2%88%9e/#comments</comments>
		<pubDate>Tue, 29 Nov 2011 09:11:07 +0000</pubDate>
		<dc:creator>@gillesv</dc:creator>
				<category><![CDATA[Linked List ∞]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[css3]]></category>
		<category><![CDATA[Develop]]></category>

		<guid isPermaLink="false">http://blog.vandenoostende.com/?p=228</guid>
		<description><![CDATA[Excellent article by Ethan Marcotte on the Typekit blog clearly explaining the difference between setting the font-size in pixels, em&#8217;s and the new CSS3 rem. The rem unit is like the em unit, in that it&#8217;s relatively sized, but unlike em&#8217;s which take their sizing context from their parent element, rem&#8217;s only look to the body&#8217;s font-size. Which [...]]]></description>
			<content:encoded><![CDATA[<p>Excellent article by <a href="http://twitter.com/beep">Ethan Marcotte</a> on the <a title="Typekit Blog" href="http://blog.typekit.com/">Typekit blog</a> clearly explaining the difference between setting the font-size in pixels, em&#8217;s and the new CSS3 rem.</p>
<p>The rem unit is like the em unit, in that it&#8217;s relatively sized, but unlike em&#8217;s which take their sizing context from their parent element, rem&#8217;s only look to the body&#8217;s font-size. Which makes it dead-simple to globally scale the font-size depending on the device&#8230; But read the article, it&#8217;s explained far better there.</p>
<p>For the next version of my personal site (which is coming soon) I&#8217;m already using rem&#8217;s. The biggest downside though is that browser support is not fully there yet and that you need to declare fallback font-sizes set in pixels. To facilitate this I&#8217;m using this handy <a title="LESS CSS" href="http://lesscss.org/">LESS</a> CSS snippet:</p>
<pre>/* sets the font size in rems and fallback to pixels */
.font-size(@font-size: 16px){
	@rem: (@font-size / 16); /* 16px is usually the browser default */
	font-size: @font-size * 1px;
	font-size: ~"@{rem}rem";
}</pre>
<p>Using this I can just define my font-size in pixels throughout my site as normal while all the maths and code duplication is taken care of automatically.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.vandenoostende.com/2011/sizing-the-legible-letter-%e2%88%9e/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Sensible mediaqueries</title>
		<link>http://blog.vandenoostende.com/2011/sensible-mediaqueries/</link>
		<comments>http://blog.vandenoostende.com/2011/sensible-mediaqueries/#comments</comments>
		<pubDate>Tue, 31 May 2011 00:59:55 +0000</pubDate>
		<dc:creator>@gillesv</dc:creator>
				<category><![CDATA[Articles]]></category>
		<category><![CDATA[Develop]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[css3]]></category>
		<category><![CDATA[html5]]></category>
		<category><![CDATA[webdev]]></category>

		<guid isPermaLink="false">http://blog.vandenoostende.com/?p=118</guid>
		<description><![CDATA[Or &#8220;A perfect blend of best practices and developer comfort, using LESS CSS&#8221; Mediaqueries are the new black. They really are, I checked. Ever since A List Apart&#8217;s article on Responsive Web Design it seems like every man and his dog are jumping on the CSS3 mediaqueries bandwagon. But as with all bandwagon jumping, enthusiasm [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://articles.vandenoostende.com/lessmediaqueries/"><img src="http://blog.vandenoostende.com/wp-content/uploads/2011/05/mq.jpg" alt="" title="Media Queries Rock!" width="630" height="161" class="alignnone size-full wp-image-140" /></a></p>
<h3>Or &#8220;A perfect blend of best practices and developer comfort, using LESS CSS&#8221;</h3>
<p>Mediaqueries are the new black. They really are, I checked. Ever since <a href="http://www.alistapart.com/">A List Apart&#8217;s</a> article on <a href="http://www.alistapart.com/articles/responsive-web-design/">Responsive Web Design</a> it seems like every man and his dog are jumping on the CSS3 mediaqueries bandwagon. But as with all bandwagon jumping, enthusiasm can quickly get in the way of efficiency and common sense.</p>
<p>Mediaqueries are awesome, but come with a lot of gotcha&#8217;s.</p>
<h3>Using mediaqueries doesn&#8217;t guarantee your site is optimized for mobile.</h3>
<p>Optimization is more than just changing the layout. Mobile users have a high probability of having a slower than broadband connection, and so it isn&#8217;t a good idea to have them download images made to be viewed at resolutions far higher than their current device.</p>
<p>&#8230; but if you look at most sites displaying responsive layouts today, that&#8217;s exactly what they&#8217;re doing. The first layout they finalize is the standard desktop version, optimized for 1024&#215;768, and they then use mediaqueries to twist and distort their desktop version into a mobile frame. Not only does this result in a coding nightmare where you&#8217;re constantly having to reset your own CSS rules, but it also misses the point of having a mobile site by having their users first download all the desktop-resolution art assets, and then download the smaller images on top of that.</p>
<p>So the best practice for making mobile sites is to build for the smallest screen size first, and then using mediaqueries to create ever bigger layouts as the screen-size goes up (Andy Clarke&#8217;s <a href="http://stuffandnonsense.co.uk/projects/320andup/">320andUp</a> boilerplate modification emphasizes and encourages this practice). Working like this means that the mobile browser won&#8217;t download any of the bigger images that you define in the higher-res mediaqueries. So the mobile version of a site won&#8217;t download the 1600&#215;1200 background image you use in the desktop version, for example.</p>
<p>However, this technique, while being the best practice, is impractical for those of us living in the real world where not everyone (who&#8217;s not on a mobile device) uses Google Chrome on a Macbook Air in a trendy coffeeshop. I&#8217;m talking of course about the dreaded Internet Explorer.</p>
<h3>Mediaqueries break in older browsers.</h3>
<p>And by &#8220;older browsers&#8221; I mean of course IE6, IE7 and IE8. No other browser-manufacturer has upgrade schemes that are as broken as IE&#8217;s which means that we have to continue to support browsers that are literally *years* out of date. (Note: when&#8217;s the last time someone asked you to fix a browser issue with Firefox 2? Exactly my point.)</p>
<p>So anyway, IE right up until version 8 has absolutely no support whatsoever for mediaqueries. The above mentioned 320andUp uses the excellent <a href="https://github.com/rupl/Respond">respond.js</a> script to force IE to recognize and respond to mediaqueries as a workaround to this issue, but I have several reservations against using this.</p>
<p>The first is that it doesn&#8217;t really improve IE users&#8217; experience with the site. Instead of getting a responsive website, they&#8217;re constantly treated to a page that first looks broken, than flashes a bit and then looks okay. Not exactly the shining example of responsive webdesign we&#8217;re looking to serve these people.</p>
<p>Then there&#8217;s the fact that if Javascript is disabled, they&#8217;ll still be stuck with only the lowest-level mobile layout of the site. For IE6 I have no qualms whatsoever about this happening, as it&#8217;s really not that different from just serving them a universal IE6 stylesheet. IE7 and IE8 on the other hand are still shafted though, by having their already suboptimal experience becoming even more crippled.</p>
<p>And then the final reason for using respond.js being a bad idea is that, as a front-end developer on a strict deadline, having not just one, but 2, 3 or even 4 different layouts to debug in Internet Explorer isn&#8217;t exactly a fun thing to look forward to.</p>
<p>And it&#8217;d be mostly wasted effort as well, since most people using IE won&#8217;t expect (or need) to view your site in many different resolutions.</p>
<p>So why give yourself the extra stress? Click on to read my solution.</p>
<p><span id="more-118"></span></p>
<h3>LESS is more</h3>
<p>I&#8217;ve been using LESS CSS (<a href="http://lesscss.org/" title="LESS &laquo; The Dynamic Stylesheet Language">lesscss.org</a>) religiously for over a year now and I just keep finding new and better uses for it. For the uninitiated, LESS is a language built on top of CSS and adds a whole suite of extra features, such as nesting selectors, mixins, color operators and variables.</p>
<p>Using a command-line compiler (or client-side javascript, in the guise of <a href="https://github.com/cloudhead/less.js">less.js</a>, which I&#8217;m not a fan of) it is then possible to compile your lean, mean and well structured LESS into regular CSS, combined, minified, stripped of comments and ready for deployment. If used correctly, it can radically transform the way you write CSS, up to the point where writing vanilla CSS now seems old fashioned and backwards to me.</p>
<p>Recently I&#8217;ve come up with a new way of working that allows you to use mediaqueries in a responsible, mobile-first way, without sacrificing Internet Explorer or requiring extra javascripts all the while saving you extra debug work by only having one layout to worry about for Internet Explorer users.</p>
<h3>Tutorial</h3>
<p>I&#8217;ll first show you the structure I&#8217;m using:</p>
<p><a href="http://blog.vandenoostende.com/wp-content/uploads/2011/05/Screen-shot-2011-05-31-at-10.33.18.png"><img src="http://blog.vandenoostende.com/wp-content/uploads/2011/05/Screen-shot-2011-05-31-at-10.33.18.png" alt="Site Structure" title="Site Structure" width="179" height="285" class="alignnone size-full wp-image-144" /></a></p>
<p>This structure works as follows: both style.less and IE.less import all the other .less files in the <em>mediaqueries/</em> and <em>libs/</em> directories, like so:</p>
<p><script src="https://gist.github.com/1000123.js?file=gistfile1.css"></script> </p>
<p>As you can see, inside the <em>mediaqueries/</em> folder I have a single .less file for every layout I&#8217;m going to build and support.  <em>Global.less</em> is the basest layout, which is essentially what we&#8217;ll be serving to mobile browsers as a baseline. All my mediaqueries are built up on top of eachother, so that a user browsing the site with a minimum desktop resolution of 1024&#215;768 will get the rules of all mediaqueries right up until <em>desktop.less</em>, ignoring <em>huge.less</em> until the user resizes the browser window to be bigger than 1280 pixels. I do this by building my queries around solely a min-width requirement, like so:  </p>
<p><script src="https://gist.github.com/1000126.js?file=gistfile1.css"></script></p>
<p>Inside each of the size-specific .less files, I write all my styles wrapped inside a mix-in, with a pre-filled parameter, like so:</p>
<p><script src="https://gist.github.com/1000131.js?file=gistfile1.css"></script> </p>
<p>That funky shit you&#8217;re seeing are LESS&#8217; support for parametrized  classes. It&#8217;s more commonly used to create reusable mixins, to have variably sized rounded corners, for example, but I&#8217;m using it here to prevent LESS from just inserting the generated code in the parent file where the import statement is declared. So even though I&#8217;m importing the file at the top of <em>style.less</em>, the compiled output won&#8217;t include whatever code I&#8217;ve put inside that parametrized class. This is important for later on.  Now, this is the final version of <em>style.less</em>:  </p>
<p><script src="https://gist.github.com/1000134.js?file=gistfile1.css"></script></p>
<p>When you compile this file, it will automatically expand the layout specific mixins inside the correct mediaquery blocks. In a perfect world where everyone uses a decent, modern browser we could call it a day at this point, but now we&#8217;ll make it so that Internet Explorer can only see one layout, namely the desktop resolution one.</p>
<p>In <em>ie.less</em> we put the following:</p>
<p><script src="https://gist.github.com/1000136.js?file=gistfile1.css"></script> </p>
<p>As I&#8217;ve mentioned before, all layouts inherit from each other, so that the desktop resolution layout re-uses rules defined in both the tablet, mobile and global layouts. Expanding all media-queries after one another means that IE will be served a cascaded layout that only works for the basic desktop resolution.  Using conditional comments, we can now link both compiled stylesheets in the HTML, like so:  </p>
<p><script src="https://gist.github.com/1000144.js?file=gistfile1.css"></script></p>
<p>This way, all versions of IE from version 8 downwards will ignore the mediaquery laden <em>style.css</em> and load <em>ie.css</em> while all good browsers ignore <em>ie.css</em> and just use <em>style.css</em>.</p>
<h3>Conclusion</h3>
<p>I find that the end result is striking in both its efficiency and pragmaticism. We support mobile browsers in a responsible way (i.e mobile first, the rest second) and we maintain excellent support for internet explorer without the use of extra javascripts and without stressing ourselves out trying to support 4 different layouts for crap browsers.</p>
<p>I hope others can learn from this technique so that we can all move forward towards a truly responsive and beautiful web, untethered by the restraints imposed by older browsers.</p>
<p>Download the sources and try it yourself: <a href='http://articles.vandenoostende.com/lessmediaqueries/LESSMediaQueries.zip'>LESSMediaQueries.zip</a> or view <a href="http://articles.vandenoostende.com/lessmediaqueries/">a working example</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.vandenoostende.com/2011/sensible-mediaqueries/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Jason Santa Maria: A real webdesign application</title>
		<link>http://blog.vandenoostende.com/2010/jason-santa-maria-a-real-webdesign-application/</link>
		<comments>http://blog.vandenoostende.com/2010/jason-santa-maria-a-real-webdesign-application/#comments</comments>
		<pubDate>Tue, 27 Jul 2010 08:53:56 +0000</pubDate>
		<dc:creator>@gillesv</dc:creator>
				<category><![CDATA[Articles]]></category>
		<category><![CDATA[Develop]]></category>
		<category><![CDATA[blogging]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[css3]]></category>
		<category><![CDATA[html5]]></category>
		<category><![CDATA[markup]]></category>
		<category><![CDATA[webdev]]></category>

		<guid isPermaLink="false">http://blog.vandenoostende.com/?p=77</guid>
		<description><![CDATA[Prominent webdesigner Jason Santa Maria wrote an interesting article the other day about the pro&#8217;s &#38; cons of current webdesign tools (such as Photoshop, Fireworks, etc&#8230;) and what a true webdesign application (if it were created today) would need. It&#8217;s an interesting read, so check it out at: http://jasonsantamaria.com/articles/a-real-web-design-application/ The author raises a lot of [...]]]></description>
			<content:encoded><![CDATA[<div id="attachment_78" class="wp-caption alignnone" style="width: 610px"><a href="http://jasonsantamaria.com/articles/a-real-web-design-application/"><img class="size-full wp-image-78" title="Jason Santa Maria - A Real Web Design Application" src="http://blog.vandenoostende.com/wp-content/uploads/2010/07/JSMArticle.jpg" alt="Screenshot: Jason Santa Maria - A Real Web Design Application" width="600" height="355" /></a><p class="wp-caption-text">Jason Santa Maria - A Real Web Design Application</p></div>
<p>Prominent webdesigner Jason Santa Maria wrote an interesting article the other day about the pro&#8217;s &amp; cons of current webdesign tools (such as Photoshop, Fireworks, etc&#8230;) and what a true webdesign application (if it were created today) would need. It&#8217;s an interesting read, so check it out at:</p>
<p><a title="Jason Santa Maria: A Real Webdesign Application" href="http://jasonsantamaria.com/articles/a-real-web-design-application/">http://jasonsantamaria.com/articles/a-real-web-design-application/</a></p>
<p>The author raises a lot of valid points, notably the huge disconnect between designing static pixels in Photoshop &amp; co. and the crafting of HTML markup, CSS styles and how to resolve cross-browser inconsistencies. <a title="Zeldman.com - An Indesign for HTML/CSS" href="http://www.zeldman.com/2010/07/05/an-indesign-for-html-and-css/">Jeffrey Zeldman</a> wrote a similar article a while back and makes the point that hand-coding HTML/CSS isn&#8217;t going anywhere anytime soon. I&#8217;m of a similar opinion.</p>
<p><span id="more-77"></span>In my current workflow, I use a myriad of different tools when designing for the web.</p>
<div id="attachment_79" class="wp-caption alignnone" style="width: 336px"><img class="size-full wp-image-79" title="My webdesign tools" src="http://blog.vandenoostende.com/wp-content/uploads/2010/07/WebdesignTools.png" alt="Mac OSX dock with icons of popular webdesign applications" width="326" height="71" /><p class="wp-caption-text">Some of my favourite webdesign tools</p></div>
<p>After wireframing I&#8217;d hop into Photoshop, design all the pages (keeping browser capabilities/limitations at the back of my mind at all times) and then use Layer Comps to review the flow of the site through all the different pages. Some web-designers have begun skipping Photoshop altogether and  designing  straight in the browser, but I&#8217;ve found that a hybrid  solution is still  the best option for getting the most out of your  designs.</p>
<p>Once the client is satisfied with the static comps I fire up Coda, write the markup to be as efficient and semantically valid as possible. With the markup done I hop into CSS, boot up all the virtual machines and alternative browsers I&#8217;d like to support and then I&#8217;m off for several hours of writing a few lines of CSS, Cmd/Ctrl-S, and then tabbing between browsers while pressing F5 to make sure my layout works.</p>
<p>This is a hugely time-consuming process and is usually the cause of great frustration among beginning web-designers (or designers used to the consistency of the Flash platform) &#8211; but for all its faults, it&#8217;s still the best option. All the WYSIWYG (What You See Is What You Get) tools out there either sacrifice flexibility, browser compatibility or cleanliness of the markup. Or, in the worst case, all 3.</p>
<p>Writing semantic, search-able markup is one of the most difficult and multifaceted jobs out there. Most hand-coders even find this to be a difficult task, weighing the different semantic options, and choosing between either making alterations to the original design, or sacrificing markup brevity to stay true to the design&#8217;s visual complexity (i.e. adding more divs). For a machine to be able to do this, it would need not only to understand the different design elements, but the content you&#8217;re designing for as well.</p>
<p>If I was designing such a piece of software, I&#8217;d make it work as a block-based design tool: in the design phase, you just drag &amp; drop all the different &#8220;boxes&#8221; onto a canvas. The design remains mostly static until you come to the export phase. Then your task would be to go through each block, assign a type to it (be it a div, section, header, footer, aside, whatever), give it an id or a class-name and then change the nesting order of the tags (within reason) while the rendering engine attempts to refactor the page&#8217;s CSS to work with the changed markup.</p>
<p>Of course, taking browser inconsistencies into account this becomes an almost mind-bogglingly complex task for a computer to handle. With HTML/CSS, to achieve any kind of style or effect there are as many options and techniques available as there are webdesigners and webbrowsers.</p>
<p>To create a simple header some would use 3 divs and an h1, where others could use just a single div, an h2 and a nested span tag. And that&#8217;s just the markup, adding the myriad of possibilities CSS offers the potential amount of ways you can go about to achieve a certain style or look become infinite. Any webdesigner worth his salt will know at least 3 or 5 different ways to accomplish something in CSS. He&#8217;ll try one way first, finds it works in most browsers except in one instance, and then tries the two other coding techniques until he finds something that yields the most predictable cross-browser results.</p>
<p>Because of the cascading nature of CSS, almost every single situation is unique and there is almost no way of knowing beforehand which technique will yield the best results, except maybe years and years of experience. Software could never be a full substitute for something like that.</p>
<p>As long as our markup is critical to our client&#8217;s business needs (S.E.O. is 80% about having good, clean markup), and web-browsers continue to display subtle (or not so subtle) differences we can never in good conscience use WYSIWIG editors. Perhaps one day, when all rendering engines adhere to the same strict webstandards (or a single engine gains such market dominance and quality that all others would strive to emulate its behaviour) such a design tool could become a reality, but until then you&#8217;re still better off learning to code by hand.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.vandenoostende.com/2010/jason-santa-maria-a-real-webdesign-application/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Selling progressive enhancement to conservative clients</title>
		<link>http://blog.vandenoostende.com/2009/selling-progressive-enhancement-to-conservative-clients/</link>
		<comments>http://blog.vandenoostende.com/2009/selling-progressive-enhancement-to-conservative-clients/#comments</comments>
		<pubDate>Thu, 12 Nov 2009 11:43:05 +0000</pubDate>
		<dc:creator>@gillesv</dc:creator>
				<category><![CDATA[Articles]]></category>
		<category><![CDATA[Develop]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[css3]]></category>
		<category><![CDATA[web]]></category>
		<category><![CDATA[webdev]]></category>

		<guid isPermaLink="false">http://blog.vandenoostende.com/?p=49</guid>
		<description><![CDATA[Consider the following scenario: you're asked to design and develop a website for a big client. It's a large company, with probably thousands of employees. A bank, for example, or a large pharmaceutical company. Or maybe it's a government contract, or a big public sector player, like public transport or the electric or gas company.

What all of these clients have in common, is that 9 times out of 10 they'll all be lorded over by a restrictive and overly protective IT department, who only updates their software and hardware every other decade. Which means the client will be looking at your work through the shit-tinted goggles of IE6...]]></description>
			<content:encoded><![CDATA[<p class="intro">Indulge me, if you will, in a little hypothetical. Consider the following scenario: you&#8217;re asked to design and develop a website for a big client. It&#8217;s a large company, with probably thousands of employees. A bank, for example, or a large pharmaceutical company. Or maybe it&#8217;s a government contract, or a big public sector player, like public transport or the electric or gas company.</p>
<p>What all of these clients have in common, is that 9 times out of 10 they&#8217;ll all be lorded over by a restrictive and overly protective IT department, who only updates their software and hardware every other decade. Which means the client will be looking at your work through the shit-tinted goggles of IE6.<span id="more-49"></span></p>
<p>But you&#8217;re used to that by now. You know all the dirty tricks and hacks in the book, so you make the site. You know the client won&#8217;t be able to see modern web stuff, so you deliberately stay away from them. No round corners, no fancy fonts, little or no Ajax-techniques and no obvious transparent PNGs.</p>
<p>That&#8217;s not to say you&#8217;re making a bad site, on the contrary. Some of the best design is done within tight constraints, and a little restraint never hurt anyone. Also, most of these clients have pretty restrictive corporate identities and styleguides anyway. So you design your site, slightly boring, but ultimately functional and usable. Something, maybe like this:</p>
<div id="attachment_50" class="wp-caption alignnone" style="width: 510px"><img class="size-full wp-image-50" title="un-enhanced" src="http://blog.vandenoostende.com/wp-content/uploads/2009/11/un-enhanced.jpg" alt="A plain-jane website" width="500" height="256" /><p class="wp-caption-text">A plain-jane website</p></div>
<p>The client approves the comps, and the finalized website is online soon afterwards. The client tests the site on their internal, locked-down network and sees exactly what he was promised in the comps, being rendered in IE6. The client also notes that the site feels snappy and loads quickly, even on their outdated hardware. A direct result of the site&#8217;s design being restrained and sober.</p>
<p>The client then drives home, and, feeling a little bit proud of the work he&#8217;s helped to achieve, decides to whip out his personal laptop and opens up the site in a more modern browser (Google Chrome, Safari or Firefox, perchance), so he can show his wife what he&#8217;s been doing all these weeks. At first, a shock.</p>
<div id="attachment_51" class="wp-caption alignnone" style="width: 510px"><img class="size-full wp-image-51" title="enhanced" src="http://blog.vandenoostende.com/wp-content/uploads/2009/11/enhanced.jpg" alt="Wait, what's all this then?" width="500" height="256" /><p class="wp-caption-text">Wait, what&#39;s all this then?</p></div>
<p>This site looks a lot better than it did a few hours ago in the office! What happened here? There&#8217;s subtle animations, tasteful rounded corners and the odd drop shadow here and there. The headings are rendered in a slick custom font that he never recalled installing and the entire site just oozes quality.</p>
<p>&#8220;Did I pay for this?&#8221;, the client wonders, &#8220;Who ordered these upgrades?&#8221;</p>
<p>First thing next morning he calls you, and asks where those upgrades came from, and why they&#8217;re suddenly gone again, now that he&#8217;s looking at the site back on his office machine sporting IE6.</p>
<p>&#8220;Well,&#8221; you start, &#8220;have you heard of &#8216;progressive enhancement&#8217;?&#8221;</p>
<p><strong>Progressive Enhancement?</strong></p>
<p>Progressive Enhancement is a web-design methodology that aims to provide the best user experience to as many types of browsers and users as possible. It does this by building the site for the oldest browsers, making sure it works great for them, and then adding enhancements for modern browsers on top of that framework, so people get a more enhanced experience, the more modern, or progressed, their browser is.</p>
<div id="attachment_52" class="wp-caption alignnone" style="width: 510px"><img class="size-full wp-image-52" title="ProgressiveEnhancement-disection" src="http://blog.vandenoostende.com/wp-content/uploads/2009/11/ProgressiveEnhancement-disection.jpg" alt="Some of the techniques you might use to enhance the site." width="500" height="309" /><p class="wp-caption-text">Some of the techniques you might use to enhance the site.</p></div>
<p>It is closely related to another methodology called Graceful Degradation. This works the other way around, where you build a website that has all the bells and whistles you can imagine (AJAX, CSS3, etc&#8230;) and then either hacking those to work with the older browsers, or making sure that those browsers fail &#8220;gracefully&#8221;, in other words, so that the site remains usable when certain features simply don&#8217;t work.</p>
<p>The advantage of PE over GD is that with PE, you&#8217;re always certain that most of your users wile have a great experience, and that their experience will only improve in time as they upgrade their browsers. With GD, you only hope that people stuck with older browsers won&#8217;t be freaked out too much, and that future browsers won&#8217;t choke on your ancient hacks.</p>
<p>For new, let&#8217;s go back to the hypothetical client. You&#8217;ve just given him the gist of what Progressive Enhancement is all about, but as I&#8217;m sure you can imagine, several different outcomes to this conversation are possible.</p>
<p>Best case scenario, the client &#8220;gets&#8221; it, and is thrilled to know that you&#8217;ve covertly built him a future proof website that scales beautifully, from the ancient, turn-of-the-century browsing dinosaurs to the latest CSS3-, HTML5-sporting Web 3.0 browsers.</p>
<p>Worst case scenario is that the client demands those same enhancements be recreated for IE6. But now you&#8217;ve got an arsenal of valid counter-arguments, such as:</p>
<ul>
<li>It&#8217;ll take a lot of extra time and money to get that kind of visual fidelity in older browsers.</li>
<li>Updating or upgrading the site later on will take longer and thus will be more expensive.</li>
<li>The site won&#8217;t run as fast as it does now, both on IE as well as on modern browsers.</li>
<li>Etc&#8230;</li>
</ul>
<p>So, unless your client is Satan himself and/or completely immune to reason or logic, you&#8217;ll have saved yourself a mountain of extra work, and earned yourself a contented, loyal new customer, one with a better understanding of what designing for the web entails.</p>
<p>And all it took, was a little</p>
<p><strong>Managing expectations</strong></p>
<p>We designers have a tendency to pull out all the stops when we&#8217;re mocking up a  website. We know what&#8217;s theoretically possible in all browsers, so we don&#8217;t skimp on the frivolous details. Technically, rounded corners and drop shadows and the like are all possible on IE6. They just require a lot of hacking, extra markup, extra images&#8230; all of them slowing down the rest of the site for everyone. So, what to do?</p>
<p>Well, it just requires adding just one extra step to your existing process.</p>
<p>First you design your site like you always do, pulling out all the graphical &amp; typographical stops as you see fit. Then, when you&#8217;re happy with it &#8211; STOP. Don&#8217;t send it to the client just yet. Instead, duplicate your file and tone it down. Take out everything you know is difficult to do in IE6. Better yet, ask the guy who&#8217;ll be writing the CSS to do that for you. After removing all the frivolous eye-candy, give the comp a final spit &amp; polish to make sure the design still *pops* and only <em>then</em> send it to the client.</p>
<p>After the usual bout of back&amp;forth, and you finally get client approval for the &#8220;restrained&#8221; comp, build that, re-adding some or even all of the eye-candy by way of targeted CSS3 and AJAX, so those with modern browsers get the enhanced &#8220;special edition&#8221;.</p>
<p>It&#8217;s a difficult balancing act, sure, and it requires an intimate working knowledge of CSS and browser capabilities, as well as a keen eye for design, but the rewards for dealing with these &#8220;conservative&#8221; clients in this way are legion, and you&#8217;ll end up with:</p>
<ul>
<li>Smoother &amp; quicker development cycles, as there&#8217;s little or nothing to hack.</li>
<li> A site that just works and has no IE overhead.</li>
<li>A client who might feel as though they got more than they bargained for.</li>
<li>Happy users, regardless of what browser they&#8217;re using.</li>
</ul>
<p>Now wouldn&#8217;t that be nice?</p>
<p><em>Addendum:</em><br />
The example given is a mock-site for a mock-client. It was quickly thrown together as an example of what&#8217;s possible with progressive enhancement.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.vandenoostende.com/2009/selling-progressive-enhancement-to-conservative-clients/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/

Minified using disk
Page Caching using disk (enhanced)
Database Caching 1/17 queries in 0.027 seconds using disk
Object Caching 329/358 objects using disk

Served from: blog.vandenoostende.com @ 2012-02-06 14:00:37 -->
