<?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/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>David Bushell - Web Design &amp; Front-end Development</title>
	
	<link>http://dbushell.com</link>
	<description>David Bushell</description>
	<lastBuildDate>Tue, 15 May 2012 22:26:03 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/dbushell" /><feedburner:info uri="dbushell" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><item>
		<title>Pageshift</title>
		<link>http://feedproxy.google.com/~r/dbushell/~3/-oygCosQijQ/</link>
		<comments>http://dbushell.com/2012/05/15/pageshift-removing-the-refresh/#comments</comments>
		<pubDate>Tue, 15 May 2012 22:10:48 +0000</pubDate>
		<dc:creator>David Bushell</dc:creator>
				<category><![CDATA[Web Design & Development]]></category>

		<guid isPermaLink="false">http://dbushell.com/?p=4854</guid>
		<description><![CDATA[It&#8217;s 2012, why are we still seeing websites assemble like Optimus Prime? In January I wrote Web Design: 2012 and Beyond to highlight points of interest for the coming year. On interactivity I asked, &#8220;Is the page reload a thing of the past?&#8221;. &#8216;Web apps&#8217; are all the rage, and while we shouldn&#8217;t be trying to copy [...]]]></description>
			<content:encoded><![CDATA[<p>It&#8217;s 2012, why are we still seeing websites assemble like Optimus Prime?</p>
<p>In January I wrote <a title="Web Design 2012 and Beyond" href="http://dbushell.com/2011/12/15/web-design-2012-and-beyond/">Web Design: 2012 and Beyond</a> to highlight points of interest for the coming year. On <strong>interactivity</strong> I asked, <em>&#8220;Is the page reload a thing of the past?&#8221;</em>. &#8216;Web apps&#8217; are all the rage, and while we shouldn&#8217;t be trying to copy native (the Web is much more than that), surely it&#8217;s about damn time to rid our browsers of the page refresh?</p>
<p>Inspiration can be drawn from slide decks like <a title="CSSS" href="http://leaverou.github.com/CSSS/#intro" target="_blank">CSSS</a>, <a title="Deck.js" href="http://imakewebthings.com/deck.js/" target="_blank">deck.js</a> and <a title="impress.js" href="http://bartaz.github.com/impress.js/" target="_blank">impress.js</a>, though they all require very specific markup and single page content. Other solutions built on top of JavaScript MVC frameworks like <a title="Backbone.js" href="http://documentcloud.github.com/backbone/" target="_blank">Backbone.js</a> require a massive effort to maintain URL <a title="Ember routing" href="http://tomdale.net/2012/05/ember-routing/" target="_blank">accessible states</a>.</p>
<p>As a Friday coding† experiment I asked myself if I could remove the refresh and add page transitions to a website that was already built&#8230;</p>
<h2>Say hello to Pageshift<strong></strong></h2>
<p><strong><a title="Pageshift on GitHub" href="https://github.com/dbushell/Pageshift" target="_blank">Pageshift</a> </strong>is undoubtedly the worst thing I&#8217;ve ever written for the Web!</p>
<p>The screencast frame rate below is a little choppy; best to try it yourself. See <a title="dbushell/Pageshift - GitHub" href="https://github.com/dbushell/Pageshift" target="_blank">Pageshift on GitHub</a> for the code and a neat little bookmarklet you can try on any website. Some work amazingly, others fail spectacularly.</p>
<p><iframe src="http://player.vimeo.com/video/42234715" frameborder="0" width="500" height="425"></iframe></p>
<h3>This is a prototype!</h3>
<p>It does a pretty tidy job of swapping out <code>&lt;body&gt;</code> elements with CSS transitions and 3D transforms. A lot of <code>&lt;head&gt;</code> meta data is also updated. It even supports the History API. It only works on internal links. All JavaScript gets stripped for the time being until I figure out the best way to handle that.</p>
<p>You could probably use it to turn an existing website into a Powerpoint presentation.</p>
<p>Will I develop this further? Maybe. It was extremely fun to take this far and doing it <em>without</em> jQuery was a big challenge. Ultimately it&#8217;s just not a good solution! I may develop it to work with individual elements rather than whole pages, that might be useful&#8230;</p>
<p>† <em>Friday coding: a micro-hackathon. Normally an hour or two before beer&#8217;o'clock.</em></p>
<img src="http://feeds.feedburner.com/~r/dbushell/~4/-oygCosQijQ" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://dbushell.com/2012/05/15/pageshift-removing-the-refresh/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://dbushell.com/2012/05/15/pageshift-removing-the-refresh/</feedburner:origLink></item>
		<item>
		<title>We’re Hiring!</title>
		<link>http://feedproxy.google.com/~r/dbushell/~3/hFwiZYk1hWk/</link>
		<comments>http://dbushell.com/2012/05/15/were-hiring/#comments</comments>
		<pubDate>Tue, 15 May 2012 07:09:04 +0000</pubDate>
		<dc:creator>David Bushell</dc:creator>
				<category><![CDATA[Web Design & Development]]></category>

		<guid isPermaLink="false">http://dbushell.com/?p=4879</guid>
		<description><![CDATA[We&#8217;re hiring at Browser. If you like making stuff for the Web you&#8217;ll fit right in. The roles that need filling are a Junior Digital Designer/Developer (1 year&#8217;s experience needed) and an Intern Digital Designer (no experience, but lots of skills and ambition). Hit the website for more info and contact details. Recruitment agencies, try: +44 (0) 8705 244622.]]></description>
			<content:encoded><![CDATA[<p><img class="alignnone" title="Browser London" src="http://dbushell.com/images/blog/browser-logo.svg" alt="Browser London" width="300" height="80" /></p>
<p>We&#8217;re hiring at <a title="We're Hiring | Browser" href="http://www.browserlondon.com/hiring/" target="_blank">Browser</a>. If you like making stuff for the Web you&#8217;ll fit right in. The roles that need filling are a <a title="Junior Digital Designer/Developer" href="http://www.browserlondon.com/hiring/#role-junior-digital-designer" target="_blank">Junior Digital Designer/Developer</a> (1 year&#8217;s experience needed) and an <a title="Intern Digital Designer" href="http://www.browserlondon.com/hiring/#role-intern-digital-designer" target="_blank">Intern Digital Designer</a> (no experience, but lots of skills and ambition).</p>
<p>Hit the website for more <a title="We're Hiring | Browser" href="http://www.browserlondon.com/hiring/" target="_blank">info and contact details</a>.</p>
<p>Recruitment agencies, try: <a href="tel:+44 (0) 8705 244622" target="_blank">+44 (0) 8705 244622</a>.</p>
<img src="http://feeds.feedburner.com/~r/dbushell/~4/hFwiZYk1hWk" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://dbushell.com/2012/05/15/were-hiring/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://dbushell.com/2012/05/15/were-hiring/</feedburner:origLink></item>
		<item>
		<title>Paydirt: You’re Doing It Wrong</title>
		<link>http://feedproxy.google.com/~r/dbushell/~3/JMpUbJpq6Ak/</link>
		<comments>http://dbushell.com/2012/05/08/paydirt-youre-doing-it-wrong/#comments</comments>
		<pubDate>Tue, 08 May 2012 21:07:01 +0000</pubDate>
		<dc:creator>David Bushell</dc:creator>
				<category><![CDATA[Web Design & Development]]></category>

		<guid isPermaLink="false">http://dbushell.com/?p=4858</guid>
		<description><![CDATA[We don&#8217;t spend hours debugging obscure IE bugs&#8230; Neither do I, yet my websites work just fine in Internet Explorer. Just over a month after the last &#8220;we&#8217;re dropping IE support&#8221; publicity stunt, another tech start-up has successfully hit pay dirt with the exact same bullshit (read: actively blocking IE). I realise that by sharing this link bait I&#8217;m [...]]]></description>
			<content:encoded><![CDATA[<blockquote><p>We don&#8217;t spend hours debugging obscure IE bugs&#8230;</p></blockquote>
<p>Neither do I, yet my websites work just fine in Internet Explorer.</p>
<p>Just over a month after the last &#8220;we&#8217;re dropping IE support&#8221; <a title="Dropping IE Support" href="http://dbushell.com/2012/04/02/dropping-ie-support/">publicity stunt</a>, another tech start-up has successfully hit <a title="We don't support Internet Explorer, and we're calling that a feature" href="http://news.ycombinator.com/item?id=3941799" target="_blank">pay dirt</a> with the exact same bullshit (read: actively <em>blocking</em> IE).</p>
<p>I realise that by sharing this link bait I&#8217;m feeding the trolls, but I feel it&#8217;s important enough to highlight the issues here considering the number of impressionable web developers who actually <em>applaud</em> this line of thinking.</p>
<p>Wholly blocking any browser is insular thinking. It screams of bad practice. Don&#8217;t talk to me about &#8220;costs&#8221; involved in supporting certain browsers; <em>your doing it wrong</em>. The whole concept of &#8220;browser support&#8221; is a dangerous perspective to take. I&#8217;ve blogged about it before: <a title="Browser Support? Forget it!" href="http://dbushell.com/2012/03/03/forget-about-browser-support/">Browser Support? Forget it!</a> Today&#8217;s Chrome is tomorrow&#8217;s IE6. If you&#8217;re thinking in terms of all-or-nothing you&#8217;re ignorant of how the Web works.</p>
<p>Take a <a title="Understanding Progressive Enhancement" href="http://www.alistapart.com/articles/understandingprogressiveenhancement/" target="_blank">progressive enhancement</a> approach. Use feature detection to offer a granular level of experience; remain agnostic of device and browser.</p>
<p>&#8220;IE support&#8221; — or support for any browser — is a side-effect of these methods, not something that drains extra time or money. Such an approach makes it <em>easer</em> to take full advantage of the latest hotness. You&#8217;re laying accessible foundations to build great things upon. Don&#8217;t shroud your ineptitude as a developer with claims like, <em>&#8220;We don&#8217;t spend hours debugging obscure IE bugs, and we spend that time making real improvements for sensible browsers like Chrome, Firefox, Safari, and Opera&#8221;</em>. IE is not the problem, you are. You&#8217;re approach is backwards to begin with.</p>
<p>The Web is not the &#8216;Webkit Web&#8217; or the &#8216;Firefox Web&#8217;, it&#8217;s not the &#8216;mobile Web&#8217; or the &#8216;iPad Retina Web&#8217; — it&#8217;s <strong>the Web</strong>. The minute your forget that you&#8217;re doing it wrong.</p>
<p>And at the end of the day, if you don&#8217;t give a hoot about potential users, why actively block them? Your site probably <a title="Hey Paydirt: Your Site Works Just Fine in IE" href="http://blog.reybango.com/2012/05/08/hey-paydirt-your-site-works-just-fine-in-ie/" target="_blank">works anyway</a>.</p>
<img src="http://feeds.feedburner.com/~r/dbushell/~4/JMpUbJpq6Ak" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://dbushell.com/2012/05/08/paydirt-youre-doing-it-wrong/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://dbushell.com/2012/05/08/paydirt-youre-doing-it-wrong/</feedburner:origLink></item>
		<item>
		<title>Smashing Book #3</title>
		<link>http://feedproxy.google.com/~r/dbushell/~3/9DbNz9plWjk/</link>
		<comments>http://dbushell.com/2012/05/07/smashing-book-3/#comments</comments>
		<pubDate>Mon, 07 May 2012 13:51:46 +0000</pubDate>
		<dc:creator>David Bushell</dc:creator>
				<category><![CDATA[Web Design & Development]]></category>

		<guid isPermaLink="false">http://dbushell.com/?p=4776</guid>
		<description><![CDATA[As an occasional writer for Smashing Magazine — that&#8217;s a disclaimer (and an honour!) — I&#8217;ve had the pleasure of reading the latest publication, Smashing Book #3 &#8211; Redesign The Web. Here&#8217;s my honest opinion on why this book is worth buying: On Business Book #3 opens with wise words from Paul Boag on the reality of [...]]]></description>
			<content:encoded><![CDATA[<p>As an occasional writer for <a title="Smashing Magazine" href="http://www.smashingmagazine.com/" target="_blank">Smashing Magazine</a> — that&#8217;s a disclaimer (and an honour!) — I&#8217;ve had the pleasure of reading the latest publication, <a title="Smashing Book #3" href="http://www.smashingbook.com/" target="_blank">Smashing Book #3 &#8211; Redesign The Web</a>.</p>
<p>Here&#8217;s my honest opinion on why this book is worth buying:</p>
<h2>On Business</h2>
<p>Book #3 opens with wise words from <strong><a title="Boagworld" href="http://boagworld.com/" target="_blank">Paul Boag</a></strong> on the reality of web design as a business. Designing websites is not just about expressing one&#8217;s inner artist in Photoshop. Things like research, testing, and clients exist and the theme of this chapter, a complete website redesign, is not always the sensible option (for either business). Paul informs us on how to keep project scope in check, design at a sensible level, and mobile strategy realistically planned.</p>
<p>While much is written on web design these days it tends to be ideals and personal opinion, rarely is business ever mentioned. Paul speaks from years of experience and is the sort of guy worth removing your iPod headphones to listen to. And going from my own experience with many practitioners and the latest trendy, &#8216;new iPad&#8217; web strategies; a much needed voice.</p>
<p>The following articles get more technical and cover a wide range of subjects so there&#8217;s something for you no matter your level of expertise. Obviously the of-the-moment themes make an appearance regularly, but if you&#8217;re tired of hearing about &#8216;responsive design&#8217; and &#8216;mobile-first&#8217; — fear not! This book is a refreshing look beyond the much talked about methodologies and is very much grounded in logical, practical ideas. It&#8217;s rock solid <em>this is the Web</em> type stuff. If you live and breath web design &amp; development like I do there is nothing <em>revolutionary</em> in these pages — an unfair expectation — but you&#8217;ll be happy with the book&#8217;s advanced nature nonetheless.</p>
<h2>On Practice</h2>
<p>I particularly enjoyed <strong><a title="Marc Edwards" href="https://twitter.com/#!/marcedwards" target="_blank">Marc Edwards</a></strong> chapter, <em>&#8220;Designing for the Future, Using Photoshop&#8221;.</em> He introduces the never more relevant issues of screen size, pixel density, colour, and scale with superb thoroughness. A pleasing change from the recent outburst in overblown and blinkered &#8216;is your website Retina-ready?&#8217; articles. Marc continues with many great examples of non-destructive Photoshop techniques. I would say the main sentiment to take from this chapter is that Photoshop is still as useful as it ever was. We don&#8217;t have to abruptly drop it and &#8216;design in the browser&#8217;, or any nonsense like that (in my humble opinion). You can probably guess what my two pet hates are at the moment!</p>
<p>Rounding up an excellent read,<strong> <a title="Stuff &amp; Nonsense" href="http://www.stuffandnonsense.co.uk/" target="_blank">Andy Clarke</a></strong> writes on the difficulties of tackling a responsive, modern web design with traditional ideas while offering new techniques that, amongst other things, separates aesthetic design from layout. Something that in inherently non-design on a responsive canvas. He describes modern web design as less about full-screen comps and more about components, moods, atmosphere, and general aesthetic style (I&#8217;ve introduced <a title="Modularity and Style Guides" href="http://dbushell.com/2012/04/23/modularity-and-style-guides/" target="_blank">Style Guides</a> to my design &amp; build practice this year). Rather than talking about design decisions like &#8216;navigation on the left&#8217; we should focus on hierarchical rules and related strategies, like content, to pull design together; layout starts to form itself.</p>
<p>Importantly Andy notes, <em>&#8220;Responsive Web design asks more questions than it offers answers.&#8221;</em> To that I add, never dimiss a technique until you know what problems it solves and what else must accompany it. Responsive design offers us a way forward on the many-device Web, but it requires a big change in thinking and practice to work.</p>
<p style="text-align: center;">* * *</p>
<p style="text-align: left;">I won&#8217;t spoil any more for you!</p>
<p style="text-align: left;">This book is worth buying and reading for yourself. It really covers many aspects of modern website production in eleven in-depth chapters. There will likely be a few you don&#8217;t care for — we all have our own tastes — but I&#8217;d be surprised if any genuinely leave you disappointed given the chance. I was quite prepared to write something less positive, the first Smashing Book didn&#8217;t excite me, but this one very much did.</p>
<img src="http://feeds.feedburner.com/~r/dbushell/~4/9DbNz9plWjk" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://dbushell.com/2012/05/07/smashing-book-3/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://dbushell.com/2012/05/07/smashing-book-3/</feedburner:origLink></item>
		<item>
		<title>Hacking it Right</title>
		<link>http://feedproxy.google.com/~r/dbushell/~3/8uTHNGVs_L4/</link>
		<comments>http://dbushell.com/2012/05/03/hacking-it-right/#comments</comments>
		<pubDate>Thu, 03 May 2012 22:07:58 +0000</pubDate>
		<dc:creator>David Bushell</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://dbushell.com/?p=4825</guid>
		<description><![CDATA[Developing with open web standards that are to be interpreted by literally hundreds of variations in device and browser can be tricky, but the biggest problem is often not the browser interpreting the code, but the developer writing it. Many so called &#8220;bugs&#8221; are the product of bad code and wrong expectations; don&#8217;t blame the machine. [...]]]></description>
			<content:encoded><![CDATA[<p>Developing with open web standards that are to be interpreted by literally hundreds of variations in device and browser can be tricky, but the biggest problem is often not the browser interpreting the code, but the <em>developer</em> writing it. Many so called &#8220;bugs&#8221; are the product of bad code and wrong expectations; don&#8217;t blame the machine.</p>
<p>A long time ago I learnt that in order to improve my ability to build websites I had to understand exactly what was happening. This idea is summed up in an excellent article by Nicole Sullivan, <a title="Cross-Browser Debugging CSS" href="http://www.stubbornella.org/content/2012/05/02/cross-browser-debugging-css/" target="_blank">Cross-Browser Debugging CSS</a>:</p>
<blockquote><p>If there is a discrepancy between these good browsers, chances are you are working against CSS. Do not try to hack around discrepancies between good browsers. Your goal is to figure out *why* it is being interpreted differently. Usually there is a very good reason.</p></blockquote>
<p>Every front-end developer starts out by writing bad code. Acknowledging that is key to improvement. If you write HTML &amp; CSS once and then hack to fit, the reasons why browser discrepancies appeared in the first place are never understood. You never learn; you blame the browser. It&#8217;s an endless cycle of frustration. If you continue to have difficulties you&#8217;re hacking in the wrong direction. Tear it down and build it back up again until you understand what is happening.</p>
<img src="http://feeds.feedburner.com/~r/dbushell/~4/8uTHNGVs_L4" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://dbushell.com/2012/05/03/hacking-it-right/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://dbushell.com/2012/05/03/hacking-it-right/</feedburner:origLink></item>
		<item>
		<title>Notes From User Testing</title>
		<link>http://feedproxy.google.com/~r/dbushell/~3/R6ICx4Cp3bA/</link>
		<comments>http://dbushell.com/2012/04/30/notes-from-user-testing/#comments</comments>
		<pubDate>Mon, 30 Apr 2012 07:20:34 +0000</pubDate>
		<dc:creator>David Bushell</dc:creator>
				<category><![CDATA[Web Design & Development]]></category>

		<guid isPermaLink="false">http://dbushell.com/?p=4785</guid>
		<description><![CDATA[Last week Browser hosted a UAT session for our latest website development (launching soon!) Most website designs — or any design for that matter — do not go through this sort of testing but it&#8217;s well worth the effort when done right. It&#8217;s exciting and a bit scary to be sat there with your clients [...]]]></description>
			<content:encoded><![CDATA[<p>Last week <a title="Browser, London" href="http://www.browserlondon.com" target="_blank">Browser</a> hosted a UAT session for our latest website development (launching soon!)</p>
<p>Most website designs — or any design for that matter — do not go through this sort of testing but it&#8217;s well worth the effort when done right. It&#8217;s exciting and a bit scary to be sat there with your clients while <em>real</em> users are effectively approving your work.</p>
<p>Well suffice it to say, things went well. Very well actually. Not to say we won&#8217;t be making changes, but the outcome was positive, insightful and just plain fascinating. As designers we build up snippets of knowledge that result in a lot of [educated] guesses being made around usability and user behaviour. Testing sessions like this should confirm that, somehow, we actually know what we&#8217;re doing (and <em>that&#8217;s</em> good to know.) They also destroy many stereotypes regarding Web and technology usage in general.</p>
<p>A few confirmations I took away from this session:</p>
<p><strong>Users aren&#8217;t stupid.</strong> If you&#8217;re in the industry you&#8217;ll know how much respect users tend to get. They&#8217;re pretty savvy by comparison (and age has nothing to do with ability). <strong>Users read</strong> when they think it&#8217;s worth ready (note to &#8220;SEO&#8221; gurus). <strong>Users scroll</strong> when they think it&#8217;s worth scrolling, i.e. content further down is obviously relevant. Learned conventions like clicking the logo to return home, or pressing return on single field form with no submit button (like search, or the Facebook status update) are common but not to everyones knowledge or taste.</p>
<p><strong>Good on-site search is important.</strong> For many it becomes the go to navigation method if they know it returns good results. If you&#8217;re making the global search prominent, make sure it works <em>very</em> well. Also look for multiple navigation avenues, <strong>don&#8217;t restrict navigation to a single area</strong> like the header. Take advantage of the Web&#8217;s interlinked nature. Having multiple links to the same place is a very good thing — but you have to start with an uncluttered and <em>planned</em> layout. Having a crap design overrides any positive usability gained here.</p>
<p><strong>Number of clicks means nothing.</strong> This is the bogus default criteria that really translates to &#8220;I have no idea how to judge this interface&#8221;. Well structured, understandable navigation and content is the important factor. A &#8216;click&#8217; has no friction or cost if the user knows what they&#8217;re looking for, and where to find it.</p>
<p>Oh, and responsive web design is a good idea.</p>
<p>&nbsp;</p>
<img src="http://feeds.feedburner.com/~r/dbushell/~4/R6ICx4Cp3bA" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://dbushell.com/2012/04/30/notes-from-user-testing/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://dbushell.com/2012/04/30/notes-from-user-testing/</feedburner:origLink></item>
		<item>
		<title>Modularity and Style Guides</title>
		<link>http://feedproxy.google.com/~r/dbushell/~3/yQXm-pfHYp0/</link>
		<comments>http://dbushell.com/2012/04/23/modularity-and-style-guides/#comments</comments>
		<pubDate>Mon, 23 Apr 2012 09:45:28 +0000</pubDate>
		<dc:creator>David Bushell</dc:creator>
				<category><![CDATA[Web Design & Development]]></category>

		<guid isPermaLink="false">http://dbushell.com/?p=4692</guid>
		<description><![CDATA[Last week I wrote about scoping typographic styles to introduce the concept of modularity in CSS. In that example, I removed the common globally defined text styles — for paragraphs, headings and lists etc — and scoped them with a .text class to be applied to any block of text-based content. This technique gives us more control [...]]]></description>
			<content:encoded><![CDATA[<p>Last week I wrote about <a title="Scoping Typography CSS" href="http://dbushell.com/2012/04/18/scoping-typography-css/" target="_blank">scoping typographic styles</a> to introduce the concept of <strong>modularity</strong> in CSS. In that example, I removed the common globally defined text styles — for paragraphs, headings and lists etc — and scoped them with a <code>.text</code> class to be applied to any block of text-based content. This technique gives us more control and less conflicts.</p>
<p>It&#8217;s one of many techniques I use in front-end website development. Below I&#8217;ll introduce a few more and how I link them together for the ultimate <em>Power Up</em> ★</p>
<p><em><strong>Disclaimer:</strong> there&#8217;s no holy grail to building a website!</em></p>
<h2>Modularity</h2>
<p>If you&#8217;re familiar with <a title="Scalable and ModularArchitecture for CSS" href="http://smacss.com/" target="_blank">SMACSS</a>, <a title="Object Oriented CSS" href="https://github.com/stubbornella/oocss/wiki" target="_blank">OOCSS</a> or <a title="A New Front-End Methodology: BEM" href="http://coding.smashingmagazine.com/2012/04/16/a-new-front-end-methodology-bem/" target="_blank">BEM</a> you&#8217;ll understand the concept of creating reusable &#8220;blocks&#8221; or &#8220;modules&#8221;. These are patterns, both visually and in code, that can be reused and expanded upon when building web pages. Done right, time and complexity are significantly reduced. If you tackle each page one at a time, element by element, you end up repeating the same code over and over again. Methodologies like modularity solve the repetition problem exponentially as a website grows.</p>
<p>Before you get modular you need something to build.</p>
<h2>Style Guides</h2>
<p><strong><a title="Front-end Style Guides" href="http://24ways.org/2011/front-end-style-guides" target="_blank">Style guides</a></strong> (or pattern libraries) are the <em>perfect</em> place to start a website build and a modular base. They bridge the gap between design and development. They&#8217;re somewhat similar to a traditional brand guidelines but contain less fluff &amp; nonsense and 100% practical code examples.</p>
<p>A good style guide starts with the basics like typography (see above) and moves onto more complex arrangements of content and UI elements, like navigation and form constructs.</p>
<p><strong>The benefits of building a style guide first are enormous:</strong></p>
<ul>
<li>It shows the design elements you have at your disposal.</li>
<li>Its shows the design elements you <em>lack</em>.</li>
<li>It defines the modular HTML/CSS building blocks for the whole website.</li>
<li>It provides an accessible baseline on which to build upon.</li>
<li>It allows you to test code early in browsers and on devices.</li>
<li>Oh, and it leaves a design &amp; build blueprint for future development.</li>
</ul>
<p>Building the guide highlights weaknesses in a design (before it&#8217;s too late) and sets  you on the path to build simplicity. Just throw all the elements onto one very long page; don&#8217;t waste too much time formatting it. The benefits are so incredible — I feel embarrassed for not utilising the style guide sooner! I use to consider them as <em>additional</em> work but actually it results in far less. Whether you choose to expose and bill the style guide to the client is a question for another day. If you&#8217;re a developer just do it anyway; it&#8217;ll make your life a whole lot easier.</p>
<p>What&#8217;s next? Continue building the website, you&#8217;ve already started.</p>
<p>At this point you&#8217;ll have written a whole lotta CSS and HTML. In fact, if your style guide is comprehensive enough you&#8217;ll have written the vast majority of it! Save that as your <code>base.css</code> or <code>global.css</code> and you could pretty much mark up the rest of the website with a vertical layout, i.e. the initial &#8220;mobile&#8221;/small-screen breakpoint, or <em>breakpoint zero</em> (since more capable small-screen devices may get advanced interactive layout beyond this).</p>
<p><em><strong>Remember:</strong> the usability of a responsive design is directly proportional to the quality, planning, and arrangement of content. Don&#8217;t dismiss a technique that takes advantage of screen size for a problem it never claims to solve.</em></p>
<p>The next step is to provide layout (at progressively wider sizes using media queries if you&#8217;re going responsive). I use a combination of <a title="Windows mobile media queries" href="http://adactio.com/journal/4494/" target="_blank">global and layout css</a> (also seen in the <a title="The Goldilocks Approach" href="http://goldilocksapproach.com/" target="_blank">Goldilocks Approach</a>)  and <a title="“Mobile first” CSS and getting Sass to help with legacy IE" href="http://nicolasgallagher.com/mobile-first-css-sass-and-ie/" target="_blank">&#8220;Mobile First&#8221; CSS</a> with legacy IE support. The reason I go further with a separate IE stylesheet is so <code>layout.css</code> doesn&#8217;t need to be afraid of advanced styling. It also means I can throw in the occasional <code>max-width</code> media query without issues. Yes, they&#8217;re legal.</p>
<p>And that&#8217;s it for now. I won&#8217;t go too far into how to actually structure your HTML &amp; CSS. There&#8217;s too many factors to set out a single system. If you want to dabble with CSS pre-processors that&#8217;s great; whatever suits you. I have my own theories I may share soon — I&#8217;m not one for conforming to the general consensus! — but that&#8217;s for another day :)</p>
<p>On a similar topic, have a read of  Paul Robert Lloyd&#8217;s <a title="Build a responsive site in a week: designing responsively (part 1)" href="http://www.netmagazine.com/tutorials/build-responsive-site-week-designing-responsively-part-1" target="_blank">Build a responsive site in a week: designing responsively (part 1)</a> over at .net magazine. I&#8217;m liking the cut of his jib.</p>
<p>&nbsp;</p>
<img src="http://feeds.feedburner.com/~r/dbushell/~4/yQXm-pfHYp0" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://dbushell.com/2012/04/23/modularity-and-style-guides/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		<feedburner:origLink>http://dbushell.com/2012/04/23/modularity-and-style-guides/</feedburner:origLink></item>
		<item>
		<title>Scoping Typography CSS</title>
		<link>http://feedproxy.google.com/~r/dbushell/~3/ZN01Aq1c858/</link>
		<comments>http://dbushell.com/2012/04/18/scoping-typography-css/#comments</comments>
		<pubDate>Wed, 18 Apr 2012 11:29:24 +0000</pubDate>
		<dc:creator>David Bushell</dc:creator>
				<category><![CDATA[Web Design & Development]]></category>

		<guid isPermaLink="false">http://dbushell.com/?p=4703</guid>
		<description><![CDATA[I&#8217;m writing a very long article on front-end dev builds, this is a quick prelude to that! It&#8217;s common practice to define global typography style early in a stylesheet. This makes a lot of sense. After all, a good design has consistent typography with a clear hierarchy throughout. When writing this CSS, type selectors like: h1 { font-weight: bold; } [...]]]></description>
			<content:encoded><![CDATA[<p><em>I&#8217;m writing a very long article on front-end dev builds, this is a quick prelude to that!</em></p>
<p>It&#8217;s common practice to define<strong> global typography style</strong> early in a stylesheet. This makes a lot of sense. After all, a good design has consistent typography with a clear hierarchy throughout. When writing this CSS, <a title="CSS Selectors" href="http://www.w3.org/TR/CSS2/selector.html#type-selectors" target="_blank">type selectors</a> like:</p>
<pre data-language="css">h1 { font-weight: bold; }
p { font-size: 1em; line-height: 1.5em; }</pre>
<p>are necessary; adding classes to every text element isn&#8217;t feasible when you consider content managed websites and WYSIWYG editors. You&#8217;d have to be a nutter to do <code>&lt;p class="paragraph"&gt;</code> everywhere. Global styles are great but there are a few catches:</p>
<ul>
<ul>
<li>Unique elements exist that are exceptions to the rule.</li>
<li>Many UI elements maintain semantics but are visually worlds apart from textual content, e.g. navigation with <code>&lt;ul&gt;</code> are rarely designed as simple bullet points.</li>
</ul>
</ul>
<p>The first example can easily be solved with small &#8220;modifier&#8221; classes like <code>&lt;p class="error"&gt;</code>. The second example requires hard overriding of styles.</p>
<p>The more your website resembles an <strong>application</strong> over a document, the more global typography styles become a pain to build upon. Even heavily content-based websites seem more like an app in the modern world of responsive design. The solution? Just scope typographic styles:</p>
<pre data-language="css">.text h1 { font-weight: bold; }
.text p { font-size: 1em; line-height: 1.5em; }</pre>
<p>Simply choose a class that makes sense — I swing between <code>.text</code> and <code>.content</code> — and add it to any element that contains text-based content. This frees the rest of your HTML document from CSS pollution and effectively scopes the typographic style.</p>
<p>That is if you&#8217;re using a CSS reset, obviously&#8230;</p>
<p><em>Update: 7th May 2012 &#8211; I&#8217;m glad to know I&#8217;m not the only one doing this, see <a title="Opt-in Typography" href="http://css-tricks.com/opt-in-typography/" target="_blank">Opt-in Typography</a> at CSS Tricks and <a title="Global typographic styles suck" href="http://anthonyshort.me/2012/05/global-typographic-styles-suck" target="_blank">Global typographic styles suck</a> by Anthony Short.</em></p>
<img src="http://feeds.feedburner.com/~r/dbushell/~4/ZN01Aq1c858" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://dbushell.com/2012/04/18/scoping-typography-css/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://dbushell.com/2012/04/18/scoping-typography-css/</feedburner:origLink></item>
		<item>
		<title>Terms of Service TL;DR</title>
		<link>http://feedproxy.google.com/~r/dbushell/~3/HAtsKtdKlUg/</link>
		<comments>http://dbushell.com/2012/04/15/terms-of-service-tldr/#comments</comments>
		<pubDate>Sun, 15 Apr 2012 11:17:06 +0000</pubDate>
		<dc:creator>David Bushell</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://dbushell.com/?p=4669</guid>
		<description><![CDATA[This week saw an echo of praise around the tech community for photography website 500px&#8217;s approach to its Terms of Service page. The basic idea being that the left column contains the verbose legal terms while the right column holds a brief layman&#8217;s translation. What I find worry is the vast number of web professionals who think this is [...]]]></description>
			<content:encoded><![CDATA[<p>This week saw an echo of praise around the tech community for photography website 500px&#8217;s approach to its <a title="500px / Terms of Service" href="http://500px.com/terms" target="_blank">Terms of Service</a> page.</p>
<p>The basic idea being that the left column contains the verbose legal terms while the right column holds a brief layman&#8217;s translation. What I find worry is the vast number of web professionals who think this is a good idea and a great user-friendly design. It&#8217;s not!</p>
<p>Start by considering 500px&#8217;s introduction to their ToS:</p>
<blockquote><p>You may only create an account after reading and accepting these terms. The column on the right provides a short explanation of the terms of use and is not legally binding.</p></blockquote>
<p>If you want to use this service you <strong>have to read and accept the full version</strong>. This approach makes for an even <em>longer</em> read than normal — brevity here is a trick. Now consider 500px co-founder <a title="Thoughts on Better Terms of Use" href="http://500px.com/blog/114" target="_blank">Evgeny Tchebotarev&#8217;s response</a> to this praise:</p>
<blockquote><p>While it&#8217;s not legally binding and doesn&#8217;t tell everything that is on the left side of the terms, it sums up things that we believe are important to photographers.</p></blockquote>
<p>Tchebotarev emphasises that the brief version does not contain everything and he reiterates that it is not legally binding. As a fellow creative and web professional I have respect for my peers, this is an industry in which moral ethics are strong. I have no reason to doubt 500px&#8217;s good intentions but this approach is disingenuous. If you sign up to a social network — or any website supported by user-generated content — the <em>Terms of Service</em> and <em>Privacy Policy</em> are designed to do several things to the full extent of the law:</p>
<ul>
<li>Minimise liability of the service provider.</li>
<li>Maximise responsibility of the user.</li>
<li>Take full rights to the users data.</li>
</ul>
<p>I don&#8217;t pretend this practice isn&#8217;t messed up, law is fucked up, but it exists and in fairness to 500px it&#8217;s very difficult to operate a website without it. Here&#8217;s one of 500px&#8217;s killer lines:</p>
<blockquote><p>By posting Content to the Site you hereby grant to 500px a non-exclusive, transferable, fully paid, worldwide license (with the right to sublicense) to use, distribute, reproduce, modify, adapt, publicly perform and publicly display such Content in connection with the Services.</p></blockquote>
<p>This and <em>many</em> other points apparently translate to two simple notions:</p>
<blockquote><p>Your photos will preserve whatever copyright they had before uploading to this site. We will protect the copyright and will not sell your photos without your permission.</p></blockquote>
<p>Remember, the brief version is not &#8220;legally binding&#8221; and therefore <strong>irrelevant to the ToS</strong>. Now correct me if I&#8217;m wrong, but in reality a user is in fact giving 500px license to effectively do anything they like. This includes selling their photos (permission is given by accepting the ToS). Naturally a user retains copyright, but they&#8217;ve also agreed to the world&#8217;s most one-sided license agreement ever conceived. Almost every single website you sign up to has a similar catch-all agreement.</p>
<p>Do you see the problem here? Nobody reads these things. Tchebotarev himself admits, <em>&#8220;I rarely read terms of use&#8221;</em>. Providing a brief version that completely glosses over reality is only going to exasperate user concerns later on. If a service provider wants us to trust their ethics why are they so adverse to actually reflecting them in their terms?</p>
<p>Best intentions aside, this practice can only confuse the user more. Now instead of reading nothing users are only going to read the nice-but-useless version. And that, ultimately, is even more bullshit than the original. On the plus side it does shine some light on the founders morals if we choose to trust what we read. Because when you really read a website&#8217;s <em>Terms of Service</em>, trust is all you have.</p>
<img src="http://feeds.feedburner.com/~r/dbushell/~4/HAtsKtdKlUg" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://dbushell.com/2012/04/15/terms-of-service-tldr/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://dbushell.com/2012/04/15/terms-of-service-tldr/</feedburner:origLink></item>
		<item>
		<title>Spotify &amp; Socialite.js</title>
		<link>http://feedproxy.google.com/~r/dbushell/~3/4uINgvx8tjA/</link>
		<comments>http://dbushell.com/2012/04/11/spotify-play-button-and-socialite-js/#comments</comments>
		<pubDate>Wed, 11 Apr 2012 13:23:35 +0000</pubDate>
		<dc:creator>David Bushell</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://dbushell.com/?p=4630</guid>
		<description><![CDATA[Spotify have just released their Spotify Play Button allowing you to embed any song or playlist on your website or blog. It&#8217;s awesome, but it also comes at a cost. The whole include (which uses an iframe) weights in at close to 500kb and uses upwards of 30 http requests alone. Chunky! Chunkier than many web pages. Using this embedded [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Spotify</strong> have just released their <a title="Spotify Play Button" href="https://developer.spotify.com/technologies/spotify-play-button/" target="_blank">Spotify Play Button</a> allowing you to embed any song or playlist on your website or blog. It&#8217;s awesome, but it also comes at a cost.</p>
<p>The whole include (which uses an iframe) weights in at close to <strong>500kb</strong> and uses upwards of <strong>30 http requests</strong> alone. Chunky! Chunkier than many web pages.</p>
<p>Using this embedded play button is going to slow down your whole website if implemented poorly. Combine it with other social network goodies from Facebook et al and you&#8217;re presenting a <em>very</em> long loading experience to your users. That&#8217;s not good. Speed — or the perception thereof — is massively important. Imagine trying to load a website over a 3G network when half a megabyte of Facebook like button is shipped to your device before anything else. Awful! Yet most websites are still developed this way.</p>
<h2>Asynchronous Loading</h2>
<p>This is where asynchronous loading comes into play. Websites should defer the loading on non-critical elements (like sharing buttons and rich media) until the main content has been downloaded and initially rendered. Not a trivial task! Many social networks offer <a title="Thinking Async" href="http://css-tricks.com/thinking-async/" target="_blank">asynchronous methods</a> but they don&#8217;t defer for long. I&#8217;ve been developing <a title="Socialite.js" href="http://socialitejs.com/" target="_blank">Socialite.js</a> for that exact reason.</p>
<h2>Extending Socialite.js</h2>
<p>Today I&#8217;ve added the Spotify Play Button to <a title="Socialite.js" href="http://socialitejs.com/" target="_blank">Socialite.js</a>. And if everything works, the link below should by now have magically transformed into a play button!</p>
<p><a class="socialite spotify-play" title="Sexy And I Know It" href="http://open.spotify.com/track/2EZ2KXLqs9zdRVVMMz1IsH" target="_blank">Listen to Sexy And I Know It by LMFAO on Spotify</a></p>
<p>The crucial thing being that all the hefty loading was done <em>after</em> the main content. Deferring external resources isn&#8217;t the only benefit of Socialite. Instead of ugly iframes and empty placeholder elements, Socialite allows for more accessible and usable defaults, such as the normal link used above:</p>
<pre data-language="html">&lt;a href="http://open.spotify.com/track/2EZ2KXLqs9zdRVVMMz1IsH" class="socialite spotify-play" title="Listen to LMFAO!"&gt;
	Listen to "Sexy And I Know It" on Spotify
&lt;/a&gt;</pre>
<p>Additionally, with Socialite you can load new instances at any time with JavaScript making web app development a whole lot easier.</p>
<p>Don&#8217;t bloat your website load — get asynchronous!</p>
<p>Help me develop <a title="Socialite.js on Github" href="https://github.com/dbushell/Socialite" target="_blank">Socialite.js over at Github</a>.</p>
<img src="http://feeds.feedburner.com/~r/dbushell/~4/4uINgvx8tjA" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://dbushell.com/2012/04/11/spotify-play-button-and-socialite-js/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://dbushell.com/2012/04/11/spotify-play-button-and-socialite-js/</feedburner:origLink></item>
	</channel>
</rss>

