<?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>Stopdesign &#187; css</title>
	<atom:link href="http://stopdesign.com/archive/tag/css/feed" rel="self" type="application/rss+xml" />
	<link>http://stopdesign.com</link>
	<description>Stopdesign is the creative outlet of Douglas Bowman.</description>
	<lastBuildDate>Sun, 11 Dec 2011 14:45:22 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=</generator>
		<item>
		<title>50 Useful Coding Techniques</title>
		<link>http://stopdesign.com/archive/2010/02/21/50-useful-coding-techniques.html</link>
		<comments>http://stopdesign.com/archive/2010/02/21/50-useful-coding-techniques.html#comments</comments>
		<pubDate>Sun, 21 Feb 2010 15:13:41 +0000</pubDate>
		<dc:creator>Douglas Bowman</dc:creator>
				<category><![CDATA[links]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[developer]]></category>
		<category><![CDATA[javascript]]></category>

		<guid isPermaLink="false">http://stopdesign.com/archive/2010/02/21/50-useful-coding-techniques.html</guid>
		<description><![CDATA[Smashing Magazine rounds up a few tricks for &#8220;CSS Layouts, Visual Effects and Forms&#8221;. Not everything in here looks useful to me, but I did notice a few gems while quickly browsing through. Bookmarked for later investigation. link]]></description>
			<content:encoded><![CDATA[<p>Smashing Magazine rounds up a few tricks for &#8220;CSS Layouts, Visual Effects and Forms&#8221;. Not everything in here looks useful to me, but I did notice a few gems while quickly browsing through. Bookmarked for later investigation. <a class="linkurl" href="http://www.smashingmagazine.com/2010/02/18/50-css-and-javascript-techniques-for-layouts-forms-and-visual-effects/">link</a></p>
]]></content:encoded>
			<wfw:commentRss>http://stopdesign.com/archive/2010/02/21/50-useful-coding-techniques.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Universal Internet Explorer 6 CSS</title>
		<link>http://stopdesign.com/archive/2009/05/20/universal-internet-explorer-6-css.html</link>
		<comments>http://stopdesign.com/archive/2009/05/20/universal-internet-explorer-6-css.html#comments</comments>
		<pubDate>Thu, 21 May 2009 02:00:33 +0000</pubDate>
		<dc:creator>Douglas Bowman</dc:creator>
				<category><![CDATA[links]]></category>
		<category><![CDATA[browser]]></category>
		<category><![CDATA[css]]></category>

		<guid isPermaLink="false">http://stopdesign.com/archive/2009/05/20/universal-internet-explorer-6-css.html</guid>
		<description><![CDATA[Mr. Clarke advocates creating one single universal style sheet to handle all styling in IE6, and to stop worrying about making content in IE6 look anything like the high-end experience. I&#8217;m now advocating to my clients (and to you), that where feasible, not to waste hours in time and a client&#8217;s money on lengthy workarounds [...]]]></description>
			<content:encoded><![CDATA[<p>Mr. Clarke advocates creating one single universal style sheet to handle all styling in IE6, and to stop worrying about making content in IE6 look anything like the high-end experience.</p>
<blockquote><p>I&#8217;m now advocating to my clients (and to you), that where feasible, not to waste hours in time and a client&#8217;s money on lengthy workarounds in an unnecessary attempt at cross-browser perfection. Instead, you and I should provide simple but effectively designed HTML elements. This means just great typography for headings, paragraphs, quotations, lists, tables and forms and no styling of layout.</p></blockquote>
<p>This will work well for content-focused web sites. And then maybe it&#8217;s officially time to completely drop support of IE6 for web apps. <a class="linkurl" href="http://forabeautifulweb.com/blog/about/universal_internet_explorer_6_css">link</a></p>
]]></content:encoded>
			<wfw:commentRss>http://stopdesign.com/archive/2009/05/20/universal-internet-explorer-6-css.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Fluid Images</title>
		<link>http://stopdesign.com/archive/2009/04/17/fluid-images.html</link>
		<comments>http://stopdesign.com/archive/2009/04/17/fluid-images.html#comments</comments>
		<pubDate>Sat, 18 Apr 2009 01:00:03 +0000</pubDate>
		<dc:creator>Douglas Bowman</dc:creator>
				<category><![CDATA[links]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[tips]]></category>

		<guid isPermaLink="false">http://stopdesign.com/archive/2009/04/17/fluid-images.html</guid>
		<description><![CDATA[Nice going, Ethan. Definitely one to keep in the ol&#8217; bag o&#8217; tricks. link]]></description>
			<content:encoded><![CDATA[<p>Nice going, Ethan. Definitely one to keep in the ol&#8217; bag o&#8217; tricks. <a class="linkurl" href="http://unstoppablerobotninja.com/entry/fluid-images/">link</a></p>
]]></content:encoded>
			<wfw:commentRss>http://stopdesign.com/archive/2009/04/17/fluid-images.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Fluid Grids</title>
		<link>http://stopdesign.com/archive/2009/03/04/fluid-grids.html</link>
		<comments>http://stopdesign.com/archive/2009/03/04/fluid-grids.html#comments</comments>
		<pubDate>Thu, 05 Mar 2009 04:28:33 +0000</pubDate>
		<dc:creator>Douglas Bowman</dc:creator>
				<category><![CDATA[links]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[grid]]></category>

		<guid isPermaLink="false">http://stopdesign.com/archive/2009/03/04/fluid-grids.html</guid>
		<description><![CDATA[I love this in-depth look at implementing grids for liquid layouts. Ethan goes into detail just how it all fits together, and the magic formula needed to make it all work. Now if we could just have the ability to easily scale images inside a liquid layout (without resorting to clipping background images), we&#8217;d be [...]]]></description>
			<content:encoded><![CDATA[<p>I love this in-depth look at implementing grids for liquid layouts. Ethan goes into detail just how it all fits together, and the magic formula needed to make it all work. Now if we could just have the ability to easily scale images inside a liquid layout (without resorting to clipping background images), we&#8217;d be golden (pun intended). <a class="linkurl" href="http://alistapart.com/articles/fluidgrids">link</a></p>
]]></content:encoded>
			<wfw:commentRss>http://stopdesign.com/archive/2009/03/04/fluid-grids.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Wanted: Layout System</title>
		<link>http://stopdesign.com/archive/2009/02/17/wanted-layout-system.html</link>
		<comments>http://stopdesign.com/archive/2009/02/17/wanted-layout-system.html#comments</comments>
		<pubDate>Tue, 17 Feb 2009 19:00:00 +0000</pubDate>
		<dc:creator>Douglas Bowman</dc:creator>
				<category><![CDATA[links]]></category>
		<category><![CDATA[css]]></category>

		<guid isPermaLink="false">http://stopdesign.com/archive/2009/02/18/wanted-layout-system.html</guid>
		<description><![CDATA[Eric Meyer elaborates on why we need a better layout mechanism for web content (whether it be via CSS or not). We know we shouldn&#8217;t use tables for layout. Floats are a hack, positioning is flawed, and display:table-cell is no better than using a table itself. But Eric explains here why table behavior works moderately [...]]]></description>
			<content:encoded><![CDATA[<p>Eric Meyer elaborates on why we need a better layout mechanism for web content (whether it be via CSS or not). We know we shouldn&#8217;t use tables for layout. Floats are a hack, positioning is flawed, and <code>display:table-cell</code> is no better than using a table itself. But Eric explains here why table <em>behavior</em> works moderately well for layout:</p>
<blockquote><p>&#8230; this is why the old “only use tables for layout” argument keeps coming up over and over: strip away the overheated rhetoric and obvious link-baiting, and you find the core of a real need. Because as powerful as CSS can be, table cells do certain things very easily that CSS makes very, very hard. Cells stretch vertically, keeping equal heights as a matter of their intrinsic nature. They stay out of each others’ way, while still being allowed to sit next to each other and use any sizing dimensions. They tie their layout to their parent elements, and vice versa. </p></blockquote>
<p><a class="linkurl" href="http://meyerweb.com/eric/thoughts/2009/02/17/wanted-layout-system/">link</a></p>
]]></content:encoded>
			<wfw:commentRss>http://stopdesign.com/archive/2009/02/17/wanted-layout-system.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Recreating the button</title>
		<link>http://stopdesign.com/archive/2009/02/04/recreating-the-button.html</link>
		<comments>http://stopdesign.com/archive/2009/02/04/recreating-the-button.html#comments</comments>
		<pubDate>Wed, 04 Feb 2009 23:57:15 +0000</pubDate>
		<dc:creator>Douglas Bowman</dc:creator>
				<category><![CDATA[entries]]></category>
		<category><![CDATA[browsers]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[google]]></category>

		<guid isPermaLink="false">http://stopdesign.com/?p=1827</guid>
		<description><![CDATA[Until some future version of HTML gives us new native controls to use in a browser, at Google, we&#8217;ve been playing and experimenting with controls we call &#8220;custom buttons&#8221; in our apps (among other custom controls). These buttons just launched in Gmail yesterday, and they&#8217;ve been in Google Reader for two months now. The buttons [...]]]></description>
			<content:encoded><![CDATA[<p>Until some future version of HTML gives us new native controls to use in a browser, at Google, we&#8217;ve been playing and experimenting with controls we call &#8220;custom buttons&#8221; in our apps (among other custom controls). These buttons just launched in <a href="http://mail.google.com/"><strong>Gmail</strong></a> yesterday, and they&#8217;ve been in <a href="http://reader.google.com/"><strong>Google Reader</strong></a> for two months now. The buttons are designed to look very similar to basic HTML input buttons. But they can handle multiple interactions with one basic design. The buttons we&#8217;re using are imageless, and they&#8217;re created entirely using HTML and CSS, plus some JavaScript to manage the behavior. They&#8217;re also easily skinnable with a few lines of CSS, which was a key factor now that Gmail has themes.</p>
<p><img class="alignnone size-full wp-image-1841" title="Gmail buttons" src="http://stopdesign.org/img/archive/2009/02/btns-gmail.png" alt="Gmail buttons" width="460" height="34" /></p>
<p>I thought it would be interesting to provide a portion of the background on our buttons here, and discuss some of the iterations we&#8217;ve been through so far to get to the current state.<span id="more-1827"></span></p>
<h4>Background</h4>
<p>Today&#8217;s web apps allow increasingly complex interactions. Users can view, create, manage, and manipulate all kinds of data, from email messages to feeds to photos to blog posts, or even choosing what their DVR records on any given night. We&#8217;re at the point where these apps need something beyond standard HTML form controls and basic hypertext links to represent the actions a user can take.</p>
<p>A basic <code>&lt;input type="submit"&gt;</code> could be used for single actions, a <code>&lt;select&gt;</code> element could be used for a compact menu of actions, and <code>&lt;input type="radio"&gt;</code> could be used for selecting mutually exclusive options. But we&#8217;re left with no way to represent other interactions common in desktop apps. Such as a checkbox that represents more than just on or off. Or the use of auto-complete to refine or narrow the options in a drop-down menu. On top of this, the controls we <em>can</em> render have significantly different appearances across browsers and platforms. Even within a single browser, buttons and select menus have quite different designs.</p>
<p>Enter: the concept of custom buttons.</p>
<h4>The first iteration</h4>
<p>Not long after I started at Google, I remember seeing mockups for a new product that eventually become <a href="http://docs.google.com/"><strong>Google Spreadsheets</strong></a>. The mockups I saw used simple buttons that looked similar to default HTML buttons in certain browsers. But they were subtly different than any default buttons I had ever seen before. The giveaway was seeing three buttons sandwiched together to make a <strong>pill button</strong>:</p>
<p><img class="alignnone size-full wp-image-1848" title="Spreadsheet buttons" src="http://stopdesign.org/img/archive/2009/02/btns-spreadsheet.png" alt="Spreadsheet buttons" width="460" height="28" /></p>
<p>At first, I thought they were just generic browser-agnostic representations &#8212; and wishful thinking for the appearance &#8212; of actual HTML buttons. But once we started using an internal-only version of the product, I realized this button design actually got built into the product. That was fine. But I cringed when I realized how the buttons had been implemented. Each button was set up with a nine-cell table so they could place each corner image, and still allow the button to expand in all four directions according to the width and height of the text inside:</p>
<p><img class="alignnone size-full wp-image-1853" title="nine-cell table" src="http://stopdesign.org/img/archive/2009/02/9-cell.png" alt="nine-cell table" width="460" height="112" /></p>
<h4>Eliminating the table and corner images</h4>
<p><img class="alignleft size-thumbnail wp-image-1862" title="button 2.0" src="http://stopdesign.org/img/archive/2009/02/btn20.png" alt="button 2.0" width="68" height="43" /> I knew there had to be a better way to render these buttons than using tables, and especially nine-cell tables just for the tiny little corners. So I tried creating a few prototypes to improve our button code.  My first button attempt, which I named <em>Custom Buttons 2.0</em>, (version 1.0 would be the nine-cell tabled version done by one of our engineers) used a similar trick that I used for event chips in <a href="http://calendar.google.com/">Google Calendar</a>: the top border was one element with 1px left and right margins, the middle of the button was another element with left and right borders, and the bottom border recycled the styles of the top border with 1px left and right margins. This created a one-pixel notch in each of the four corners, giving the subtle illusion of a small rounded corner.</p>
<p>That 2.0 attempt was fine, and worked pretty well (as I expected) in almost all browsers. But it required that each button as a whole either be floated or positioned absolutely with a width. I wanted a set of buttons that could be treated as inline elements, and that would take up as much horizontal space as the text inside each button needed.</p>
<h4>Going inline</h4>
<p>My 3.0 attempt relied on treating the buttons and everything inside them as inline elements. The top/bottom borders still needed to be rendered separately from the left/right borders to get 1px-notched corners. The left/right borders were rendered on the outer element. The top/bottom borders were rendered on the inner element. Because borders don&#8217;t compound and add to the width or height of an inline element, we get the 1px notches in each corner. I ran into a lot of frustration with this inline approach until I remembered <code>display: inline-block</code>. That seemed to solve everything at once.</p>
<p><a href="http://stopdesign.com/eg/buttons/3.0/code.html"><img class="alignright size-medium wp-image-1878" title="Custom Buttons 3.0 (demo)" src="http://stopdesign.com/img/archive/2009/02/30-demo-200x176.png" alt="Demo page for Custom Buttons 3.0" width="200" height="176" /></a> A demo page for <a href="http://stopdesign.com/eg/buttons/3.0/code.html"><strong>Custom Buttons 3.0</strong></a> shows my progress to this point. As you can see there, I built in affordances for changing the border color on hover, and for reversing the gradient direction for the active/click state to make it feel like the button is actually pressable. I also attempted to show how we could sandwich multiple buttons together to form a pill button. The pill button wasn&#8217;t perfect &#8212; I didn&#8217;t want gaps in the top/bottom borders between each button. But it was a start.</p>
<p>The magical <code>inline-block</code> solved everything, <strong>except in IE</strong>. That&#8217;s where the genius of Google engineers came in. They knew how to get tricks working in all browsers, and this technique interested a couple of them enough that they dedicated the time to make it work.</p>
<p>So 3.0 buttons were fine. After some modifications by our engineers, they made it into live production code. I believe 3.0 buttons are currently still in use for edit buttons in <a href="http://sites.google.com/">Google Sites</a>, and in editor modes for <a href="https://docs.google.com/">Google Docs</a>. (As of this writing. Expect those to change in the near future to buttons described below.) But I was still bothered by the requirement of a background gradient image. Not only was this an extra request to the server, but if anyone wanted to change the colors of a button, they&#8217;d be required to create a new gradient image. This wasn&#8217;t flexible enough, in my opinion, and I thought we could push further.</p>
<h4>Eliminating the gradient image</h4>
<p>Instead of rendering the gradient with an image, I thought we might be able to simulate a gradient with a few bands of color. With a few light grays laid beside each other that were close enough in value, we&#8217;d get something that looked like a gradient. With only two bands of color, I got a glossy-looking button with a sharp division between the two bands of color. Not what I wanted. Adding a third band of color between the first two colors blended each color together better. So three color bands it had to be.</p>
<p><img class="alignnone size-full wp-image-1886" src="http://stopdesign.org/img/archive/2009/02/bands.png" alt="" width="180" height="23" /></p>
<p>To get that band of color and fake the gradient, I had to insert one more element in the button code. I chose <code>&lt;b&gt;</code> because it was short, and semantically, it didn&#8217;t mean anything. That element was absolutely positioned, so it could live inside the button and behind the text without affecting anything else. For the button itself, I used the almost-white <code>#f9f9f9</code>. For the <code>&lt;b&gt;</code> element I used <code>#e3e3e3</code>. The <code>&lt;b&gt;</code> element was absolutely positioned to the bottom of the button, and given a height of 40%. To get the middle band of color, I added a top border of <code>#eee</code> to the <code>&lt;b&gt;</code> element.</p>
<p><img class="alignnone size-full wp-image-1891" src="http://stopdesign.org/img/archive/2009/02/bands-spec.png" alt="" width="460" height="69" /></p>
<p>Another demo page for <a href="http://stopdesign.com/eg/buttons/3.1/code.html"><strong>Custom Buttons 3.1</strong></a> shows my attempt at getting this pseudo-gradient to work. It works in Firefox and Safari, and probably a few other modern browsers. But not everywhere. It was never perfect, and I don&#8217;t recommend using it in production code. Again, I couldn&#8217;t get this working right in IE. Google eng to the rescue again. To see the final code we ended up using in Gmail and Reader, you&#8217;ll have to reverse engineer the button code in one of those products.</p>
<h4>Sweating the details</h4>
<p>If we were going to undertake the task of recreating basic HTML form controls, we knew there were a lot of details that need to be accounted for and thought through. Like all the possible states of a button: resting, hover, focus, active, toggled-on, and disabled. There are also the accessibility ramifications of creating non-standard controls. I&#8217;m sure we haven&#8217;t factored in or solved every access issue yet. But engineers are working on that. Here&#8217;s a glimpse of the many states and types of buttons, along with the visual specs we had to think about and create if we were really going to replace default buttons and menus:</p>
<p><img class="alignnone size-full wp-image-1941" title="Visual spec for Custom Buttons 3.1" src="http://stopdesign.org/img/archive/2009/02/31-spec-sized.png" alt="Visual spec for Custom Buttons 3.1" width="460" height="495" /></p>
<h4>Major credit</h4>
<p>I certainly didn&#8217;t create the concept of custom buttons at Google. Nor did I write the final code that made it into production. I merely initiated a couple steps to improve the methods we use to render custom buttons. My portion of the iteration is what&#8217;s documented here. There were many other steps in making these buttons a reality.</p>
<p>These buttons never would have made it into production code without the help of several Google engineers. One of the primary aids, <a href="http://me.eae.net/"><strong>Emil Eklund</strong></a>, helped fix a lot of my code for these custom buttons, and got it working in the browsers Gmail supports. He just posted an <a href="http://gmailblog.blogspot.com/2009/02/new-ways-to-label-with-move-to-and-auto.html">entry on the Official Gmail Blog</a> yesterday about the label and folder-like functionality behind the new buttons in Gmail. Two developers (no longer at Google) also contributed heavily to the original button code: <a href="http://www.fivesevensix.com/"><strong>Ryan Carver</strong></a> and <a href="http://www.veen.com/greg/"><strong>Greg Veen</strong></a>. They deserve huge props too.</p>
<p>Even more credit for the launch of these buttons in Gmail goes to one of the Gmail designers, <a href="http://leggett.org/"><strong>Michael Leggett</strong></a>, who dreamed up all the fancy new functionality and interactions behind applying labels. Michael gave me lots of feedback and suggestions as we were building the original specs for 3.0 and 3.1 buttons. He also created countless iterations of the button interactions for Gmail, and endured numerous reviews and feedback cycles to finally get them launched in the product. If you like the new labeling menus in Gmail, Michael is the one to thank. The menus are especially slick if you use the new <kbd>v</kbd> and <kbd>l</kbd> keyboard shortcuts, along with auto-complete to apply labels (and even archive at the same time) without ever touching your mouse.</p>
<p>There are numerous other designers, developers, and engineers at Google who touched these buttons at one point or another. They all deserve credit too. I&#8217;ve only given props to four of the most prolific people who made these buttons a reality.</p>
<p>These buttons don&#8217;t permeate the entire Gmail or Reader interfaces yet <ins>for all browsers</ins>. (e.g. Compose view is still using default buttons <ins>for older WebKit browsers</ins>.) But now that these buttons are reusable components, expect to see us using them in more places throughout Google as we find good uses for them.</p>
]]></content:encoded>
			<wfw:commentRss>http://stopdesign.com/archive/2009/02/04/recreating-the-button.html/feed</wfw:commentRss>
		<slash:comments>79</slash:comments>
		</item>
		<item>
		<title>Making Modular Layout Systems</title>
		<link>http://stopdesign.com/archive/2009/01/05/making-modular-layout-systems.html</link>
		<comments>http://stopdesign.com/archive/2009/01/05/making-modular-layout-systems.html#comments</comments>
		<pubDate>Mon, 05 Jan 2009 09:05:30 +0000</pubDate>
		<dc:creator>Douglas Bowman</dc:creator>
				<category><![CDATA[links]]></category>
		<category><![CDATA[css]]></category>

		<guid isPermaLink="false">http://70.32.90.75/archive/2009/01/making-modular-layout-systems.html</guid>
		<description><![CDATA[Bookmarking this late. But an interesting perspective into Jason Santa Maria&#039;s simple system for creating the dynamic layouts of his recent entries. link]]></description>
			<content:encoded><![CDATA[<p>Bookmarking this late. But an interesting perspective into Jason Santa Maria&#039;s simple system for creating the dynamic layouts of his recent entries. <a class="linkurl" href="http://24ways.org/2008/making-modular-layout-systems">link</a></p>
]]></content:encoded>
			<wfw:commentRss>http://stopdesign.com/archive/2009/01/05/making-modular-layout-systems.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Roulette</title>
		<link>http://stopdesign.com/archive/2006/09/07/roulette.html</link>
		<comments>http://stopdesign.com/archive/2006/09/07/roulette.html#comments</comments>
		<pubDate>Thu, 07 Sep 2006 15:00:58 +0000</pubDate>
		<dc:creator>Douglas Bowman</dc:creator>
				<category><![CDATA[entries]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[design]]></category>

		<guid isPermaLink="false">http://70.32.90.75/?p=281</guid>
		<description><![CDATA[0-f]]></description>
			<content:encoded><![CDATA[<p>0-f</p>
<p><a href="/pages/2006/09/roulette-working.php">Permanent link to the working version of this design.</a></p>
]]></content:encoded>
			<wfw:commentRss>http://stopdesign.com/archive/2006/09/07/roulette.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Still throwing tables</title>
		<link>http://stopdesign.com/archive/2005/07/27/still-throwing-tables.html</link>
		<comments>http://stopdesign.com/archive/2005/07/27/still-throwing-tables.html#comments</comments>
		<pubDate>Thu, 28 Jul 2005 00:00:34 +0000</pubDate>
		<dc:creator>Douglas Bowman</dc:creator>
				<category><![CDATA[entries]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[microsoft]]></category>

		<guid isPermaLink="false">http://70.32.90.75/?p=265</guid>
		<description><![CDATA[<img src="http://stopdesign.com/examples/ms/ms_sm2.jpg" width="100" height="122" alt="" class="left" /> On the one year anniversary of the article: <a href="http://stopdesign.com/articles/throwing_tables/"><em>Throwing Tables Out the Window</em></a>, I thought it appropriate to reveal some behind-the-scenes info regarding the Microsoft example discussed in the article.]]></description>
			<content:encoded><![CDATA[<p><img class="left" src="http://stopdesign.com/examples/ms/ms_sm.jpg" alt="" width="145" height="177" /> On the one year anniversary of the article: <a href="http://stopdesign.com/articles/throwing_tables/"><em>Throwing Tables Out the Window</em></a>, I thought it appropriate to reveal some behind-the-scenes info regarding the Microsoft example discussed in the article.</p>
<p>When I published that article last year, the words and advice contained within were welcomed warmly by large numbers of people. The article was translated into at least eight different languages, and continues to be referenced in other writings and in academic curricula. On the flip side, the same article was also the cause of flaming, accusations of ignorance, and general vitriol thrown my way, claiming I was over-hyping CSS and deceiving the multitudes of its capabilities. Those claims were voiced more loudly when readers couldn&#8217;t find any proving example code whatsoever. Those who refused to let go of their old ways assumed that I fabricated the entire case study.<span id="more-265"></span></p>
<p>I still stand behind that article. And I promise the example code is real, and still resides in the same location where it has been for the past year. <em>You just had to know where to look for it.</em></p>
<p>I intentionally omitted any links or references to my working code examples in that article because the point was not to get hung up on details or to demonstrate the methods used. I wanted to step back and look at the overall picture. After experience with recoding <a href="http://stopdesign.com/examples/yahoosearch/">Yahoo Search</a>, I no longer believe in reworking (in CSS) some other organization&#8217;s site, then publicly rubbing anyone&#8217;s nose in it by posting the code for all to see. I wasn&#8217;t trying to target Microsoft for bad CSS support in IE, nor make a fool of its home page code. Rather, last year&#8217;s home page of Microsoft.com was chosen as an example because it was a high-profile representation of a <strong>very common design model</strong> used on thousands of sites: header across the top, three columns of content, and footer across the bottom. If a site doesn&#8217;t use a three-column content model, it may simplify the same model down to two columns:</p>
<p><img src="http://stopdesign.com/articles/throwing_tables/img/ms_layout_structure.gif" alt="Microsoft's home page, with three different overlay sets highlighting basic page structure, one showing header, 3 columns, footer, two others showing header, 2 columns, footer" width="465" height="177" /></p>
<p>I gave this presentation for the first time in Seattle, right around the corner from Redmond. So I thought the selection of reworking Microsoft would turn a few more heads. Those who attended my talk at Digital Design World had full access to the Microsoft example code during and after my presentation. It was never hidden from them, because it was used as a tool to aid in learning the methods and benefits of tableless design.</p>
<p>In an odd bundle of circumstances, Microsoft ended up redesigning its home page just one month after my Seattle presentation, significantly reducing the file size of its code. The design was simplified and the amount of text on the page was significantly reduced as well, so this wasn&#8217;t solely a reduction due to leaner code. However, all spacer gifs seem to be gone from the markup, and only eight tables remain in the current version, so that points to progress from last year&#8217;s 40-table version.</p>
<h4>Fast-forward to today</h4>
<p>Now that a full year has passed since the article was published, and because Microsoft no longer uses the design I made an example, I also moved on and now use another design for my tableless presentations. Because of these factors, it now seems appropriate to share more broadly the <strong>final example code</strong> I used, and the full set of slides I used during my Seattle presentation to cover the reworking of Microsoft.com.</p>
<ul>
<li><strong>Example code:</strong> <a href="http://stopdesign.com/examples/ms/">2004 Microsoft home page using CSS</a></li>
<li><strong>Seattle presentation:</strong> <a href="http://stopdesign.com/present/2004/ddw-seattle/tables/">No More Tables</a></li>
</ul>
<p>The portion covering the recoding of Microsoft.com doesn&#8217;t start until somewhere around <a href="http://stopdesign.com/present/2004/ddw-seattle/tables/?no=32">page 32</a> of the presentation. Once the presentation gets to Step #3, small links at the bottom of the page point to in-progress files representing the work done up to that step.</p>
<p>By sharing even more information surrounding this case study, I hope having everything in context to this case study helps enlighten others to the means and the power in using CSS to implement and control layout and all other details of design.</p>
]]></content:encoded>
			<wfw:commentRss>http://stopdesign.com/archive/2005/07/27/still-throwing-tables.html/feed</wfw:commentRss>
		<slash:comments>53</slash:comments>
		</item>
		<item>
		<title>Zoom layout</title>
		<link>http://stopdesign.com/archive/2005/06/24/zoom-layout.html</link>
		<comments>http://stopdesign.com/archive/2005/06/24/zoom-layout.html#comments</comments>
		<pubDate>Sat, 25 Jun 2005 01:00:55 +0000</pubDate>
		<dc:creator>Douglas Bowman</dc:creator>
				<category><![CDATA[entries]]></category>
		<category><![CDATA[access]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[zoom]]></category>

		<guid isPermaLink="false">http://70.32.90.75/?p=263</guid>
		<description><![CDATA[In a presentation for <a href="http://www.atmedia2005.co.uk/">@media</a> entitled, <a href="http://www.atmedia2005.co.uk/programme.php#zoom"><em>Zoom the Web</em></a>, <a href="http://www.joeclark.org/">Joe Clark</a> revealed and explained several possible options (a new trend, hopefully) for making sites more accessible and readable for <strong>low-vision users</strong>. In the continuing effort to make our sites accessible as possible, many have assumed accessibility best practices deal primarily with blind people who often use screen readers.]]></description>
			<content:encoded><![CDATA[<p>In a presentation for <a href="http://www.atmedia2005.co.uk/">@media</a> entitled, <a href="http://www.atmedia2005.co.uk/programme.php#zoom"><em>Zoom the Web</em></a>, <a href="http://www.joeclark.org/">Joe Clark</a> revealed and explained several possible options (a new trend, hopefully) for making sites more accessible and readable for <strong>low-vision users</strong>. In the continuing effort to make our sites accessible as possible, many have assumed accessibility best practices deal primarily with blind people who often use screen readers.<span id="more-263"></span></p>
<p>In reality, there are many more people who aren&#8217;t blind but experience some form of vision loss or impairment. These people would never have need for a screen reader, and wouldn&#8217;t necessarily benefit from the typical measures we&#8217;ve taken to ensure our pages are accessible to blind people.</p>
<p>To some extent, we&#8217;ve been ignoring this large group of low-vision users, assuming their browser controls for resizing text are enough to enable reading of our pages. Or that their own screen magnification software does the job well enough, so we don&#8217;t need to bother.</p>
<p>Some designs I&#8217;ve seen easily handle quite a few bumps up in text size. Others start to fall apart more quickly than they should because of narrow, fixed-width columns. Many of you probably know how difficult it is to read text when you&#8217;re forced to scroll both vertically <em>and</em> horizontally. This can parallel the experience of using a screen magnifier to read most multi-column pages.</p>
<h4>Enter the <em>Zoom layout</em></h4>
<p>Another means of giving your visitors control over the content on your website. If a site already takes advantage of CSS for layout, offering a Zoom layout option is trivial.</p>
<p><strong>Case in point:</strong> While Joe was giving his presentation in London, I thought, &#8220;<em>Implementing a single-column layout with larger sans-serif type isn&#8217;t rocket science. Why don&#8217;t I already have one? I&#8217;ll just create one right now.</em>&#8221;</p>
<p>So I opened up my laptop and cranked out a quick style sheet for a Zoom layout. I had it mostly complete by the end of his presentation. I&#8217;ll admit that I was already familiar with Joe&#8217;s concept, having seen his article, <a href="http://www.alistapart.com/articles/lowvision/"><cite>Big, Stark &amp; Chunky</cite></a>, on A List Apart. And I had seen his referenced examples from <a href="http://www.themaninblue.com/writing/?styles=contrast">Cameron Adams</a> and <a href="http://overcaffeinated.net/indexhc.html">Sergio Villareal</a>. Stopdesign already had a Preferences page for switching styles and font sizes. So I was at a slight advantage when Joe gave us his homework assignment of creating and tweaking our own Zoom layouts.</p>
<p>I&#8217;ll save you from any further description of a Zoom layout, and instead, encourage you to read through <strong><a href="http://joeclark.org/atmedia/atmedia-NOTES-2.html">Joe&#8217;s detailed notes from his presentation</a></strong>.</p>
<h4>Making it real</h4>
<p>Once I got back to the States, I spent time polishing the style sheet I had pulled together in London, and split my work into two versions for Stopdesign&#8217;s Zoom layout: a positive version with dark text on a light beige background, and a contrast version using an inverted color scheme of light-color text on a dark blue background.</p>
<p class="left"><a class="thumb" href="#"><img src="http://stopdesign.com/img/archive/2005/06/stop_zoom1.png" alt="Screenshot of Stopdesign using the 'Zoom' style." width="200" height="150" /></a><br />
<em>Zoom (positive)</em></p>
<p class="left"><a class="thumb" href="#"><img src="http://stopdesign.com/img/archive/2005/06/stop_zoom2.png" alt="Screenshot of Stopdesign using the 'Zoom2' style." width="200" height="150" /></a><br />
<em>Zoom2 (contrast/inverted)</em>
</p>
<p class="reset">Both are available as permanent settings on the <a href="http://stopdesign.com/about/prefs/">Preferences</a> page, which appears as the fourth link at the top of this site for any non-Zoom style. (Those first four links actually exist toward the end of the markup, just before the footer.) Base text size can also be changed to one of four values on the same page.</p>
<p>The heavy lifting for both Zoom layouts is done only once (<code><a href="http://stopdesign.com/css/050203/zoom.css">zoom.css</a></code>). For the high-contrast/inverted color scheme, the background, text, and border colors are changed via a secondary style sheet (<code><a href="http://stopdesign.com/css/050203/zoom2.css">zoom2.css</a></code>) linked in addition to <code>zoom.css</code>.</p>
<p>Users of browsers other than IE will notice a nice scaling effect on the width of the layout as the text size gets bumped up. The single-column is given a max-width in <code>em</code> values, with no physical <code>width</code> defined. This allows the layout to remain confined to readable line-lengths at smaller text sizes. Yet it also allows the layout to expand as text size is increased. The layout will expand to the width of the browser, then stop expanding, preventing the appearance of any horizontal scrollbars &#8212; unlike the new <a href="http://www.yahoo.com/">Yahoo!</a>, though nice because its layout expands with the text size, it quickly expands beyond the browser window width as text size increases, necessitating all kinds of scrolling.</p>
<h4>A few more tips</h4>
<p>If you&#8217;re considering offering such a layout to your visitors, first, make sure you read through <a href="http://www.alistapart.com/articles/lowvision/">Big, Stark &amp; Chunky</a> and <a href="http://joeclark.org/atmedia/atmedia-NOTES-2.html">Joe&#8217;s presentation notes</a> to understand the purpose and suggestions for creating a Zoom layout. Follow most of his advice, and you&#8217;ll be well on your way.</p>
<p>From my own experience, I&#8217;ll add a few tips to consider in the process:</p>
<ul class="marked">
<li><strong>Re-examine your markup:</strong> Going to a single-column forces you to take a look at the order of your content within the markup. Try to keep your most important content &#8212; and the content which changes from page to page &#8212; toward the beginning of the document. Use common sense in determining order.</li>
<li><strong>Simplify navigation:</strong> Too many choices at the top of the page will be confusing, and may push the content completely off-screen when the text is bumped to a larger size. Keep the list as short as possible, and consider making the list <code>inline</code>, or <code>float</code> each navigation element. Do this in a way that it doesn&#8217;t look broken if the navigation wraps to more than one line. If long lists of navigation must be present, consider moving them toward the end of the document, then reposition them for your default style in your original style sheet.</li>
<li><strong>Avoid pixels:</strong> I&#8217;m not talking about type here &#8212; Joe covers that in his notes. Don&#8217;t use pixel values for width or height measurements of content containers (columns, etc.) And as much as possible, avoid the temptation to use pixel values for any margin/padding and line-height values. Use percentages, or even better, ems, which scale gracefully with the text size, retaining chosen proportions. If appropriate, use pixel values sparingly around fixed objects that won&#8217;t be changing in size anyway, such as the logo. You may also want to use a fixed-pixel value for the outer (<code>body</code>) margin or padding, to avoid those values getting too large as the text size increases.</li>
<li><strong>Remember form elements:</strong> Just as you bump up text size in general, don&#8217;t forget to do the same for form elements. Not all browsers allow every form element to resize with the text (shame on them), but do your best to make form elements as easy to use as possible for your low-vision users by bumping up their default size as well.</li>
<li><strong>Good and bad insets:</strong> Even though you&#8217;re striving to keep all content in a single column, it&#8217;s still OK to float the occasional image, as long as said image is not overly wide or tall. As long as text can flow freely around the image, the low-vision user still gets the benefit of seeing the image in context. The image won&#8217;t be scaling up preventing the flow of text around itself. That said, insets of text-based (non-image) content can be a bad thing, because that inset text needs to scale too. This can be distracting as different lines of large text compete for attention.</li>
<li><strong>Start from scratch:</strong> If at all possible, wipe out any existing site styles before applying new Zoom styles. In my opinion, it&#8217;s much easier to build a single-column design from scratch, rather than needing to go back and make sure you&#8217;re overriding all original style sheet values. This requires some server-side scripting to change the default style sheets that are linked or imported in the <code>&lt;head&gt;</code> of each document, and may not be possible for everyone.</li>
</ul>
<h4>Zoom style sheet availability</h4>
<p>You may need to apply a few tweaks for use on your own site, but feel free to grab Stopdesign&#8217;s <code><a href="http://stopdesign.com/css/050203/zoom.css">zoom.css</a></code> file, or both that file <em>and</em> the <code><a href="http://stopdesign.com/css/050203/zoom2.css">zoom2.css</a></code> file to use as a base/starter for your own Zoom layout. Both style sheets are licensed under a <a href="http://creativecommons.org/licenses/by-sa/2.5/">Creative Commons Attribution-ShareAlike 2.5 License</a>. Creating a single-column style sheet isn&#8217;t difficult, but if these two files give you a jump on the action, be my guest. Cheers.</p>
<p class="sub"><em>(It should go without saying, but this <strong>does not</strong> grant permission to freely copy and use any other Stopdesign style sheets verbatim for any purpose other than studying and learning how they function. Thanks.)</em></p>
<p class="update"><strong>Update:</strong> Joe is now building a <a href="http://joeclark.org/access/webaccess/zoom/">repository of information about zoom layouts</a>, including links, references, and examples.</p>
]]></content:encoded>
			<wfw:commentRss>http://stopdesign.com/archive/2005/06/24/zoom-layout.html/feed</wfw:commentRss>
		<slash:comments>34</slash:comments>
		</item>
		<item>
		<title>CSS organization tip 1: Flags</title>
		<link>http://stopdesign.com/archive/2005/05/03/css-tip-flags.html</link>
		<comments>http://stopdesign.com/archive/2005/05/03/css-tip-flags.html#comments</comments>
		<pubDate>Tue, 03 May 2005 19:00:46 +0000</pubDate>
		<dc:creator>Douglas Bowman</dc:creator>
				<category><![CDATA[entries]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[tips]]></category>

		<guid isPermaLink="false">http://70.32.90.75/?p=255</guid>
		<description><![CDATA[Do you write and manage large CSS files? Ever get tired of scrolling up and down in search of a specific rule or set of rules? The CSS files I work with for client projects are often quite long, requiring constant scrolling up and down several screen's worth of text to alter rules or add new ones. While working on a current project, I just made a tiny little addition that makes finding what I want almost immediate.]]></description>
			<content:encoded><![CDATA[<p>Do you write and manage large CSS files? Ever get tired of scrolling up and down in search of a specific rule or set of rules? The CSS files I work with for client projects are often quite long, requiring constant scrolling up and down several screen&#8217;s worth of text to alter rules or add new ones. While working on a current project, I just made a tiny little addition that makes finding what I want almost immediate.<span id="more-255"></span></p>
<h4 id="section-grouping">Grouping your CSS rules</h4>
<p>I briefly touched on <a href="/archive/2005/03/04/staying-organized.html#section-css">CSS organization</a> a couple months ago. As a bit of background, if you&#8217;ve ever taken a look at <a href="http://www.stopdesign.com/css/050203/base.css">any</a> <a href="http://www.blogger.com/css/blogger_main.css">of</a> <a href="http://www.adaptivepath.com/css/basic.css">my</a> style sheets, you&#8217;ve probably noticed that I always divide them into key sections. In every project I create, I typically have sections in the CSS broken out for the following:</p>
<ul>
<li>Header</li>
<li>Structure</li>
<li>Nav</li>
<li>Search</li>
<li>Headings</li>
<li>Lists</li>
<li>Forms</li>
<li>Links</li>
<li>Misc</li>
</ul>
<p>When I was <a href="/archive/2002/08/20/craving-more-style.html">learning CSS in 2002</a> before the Wired News redesign, I devised my own means of using commented text and a series of dashes as headings to make these sections easily distinguishable:</p>
<pre class="codeblock"><code>/* Navigation
----------------------------------------------- */</code></pre>
<p>This makes it fairly easy for me &#8212; or a client who takes over the files &#8212; to find certain rules, or to know which rules affect a relevant portion of the design. Even more importantly, this method of organization saves a lot of time when troubleshooting any style sheets I&#8217;ve written, especially for older projects where memory of how a project was built might be fading.</p>
<h4 id="section-finding">Finding those sections quickly</h4>
<p>So how to find rules quickly when you&#8217;re working? Some apps allow you to set markers in documents, allowing quick key-command access to that section. Great if you&#8217;re into that kind of thing, but it can get tedious to do with every new CSS file.</p>
<p>You could also do what I&#8217;ve been doing for the last few years: use your text editor&#8217;s <code>FIND</code> command to do a quick search for a certain block of text. But if your style sheets are anything like mine, a generic search like &#8220;nav&#8221; or &#8220;h2&#8243; might point to several places in the document, requiring several <code>FIND NEXT</code>s (or many) to actually find what you&#8217;re looking for.</p>
<p>A fictitious, but even better example of <code>FIND</code> not finding what you want immediately: Say you have a section of your site you&#8217;ve abbreviated with the acronym &#8220;RDE&#8221;. So you label a portion of your CSS with:</p>
<pre class="codeblock"><code>/* RDE
----------------------------------------------- */</code></pre>
<p>Great. So you can easily see the rules that apply to the RDE section. Except that if you want to use <code>FIND</code> to zoom to that section, you quickly notice that your text editor finds every instance of the following property:</p>
<pre class="codeblock"><code>#nav {
  float:left;
  width:182px;
  bo<strong>rde</strong>r-top:1px solid #911;
  }</code></pre>
<h4 id="section-fix">A simple fix: Flags</h4>
<p>As I discovered yesterday, if I add a simple flag immediately before the commented header text &#8212; like the &#8220;=&#8221; character, one that&#8217;s not used in CSS or class/id syntax &#8212; I have a simple <em>text-based</em> hook for finding (and zooming to) that section header immediately. So a quick <code>FIND</code> for &#8220;=rde&#8221; yields the following:</p>
<pre class="codeblock"><code>/* <strong>=RDE</strong>
----------------------------------------------- */</code></pre>
<p>And I&#8217;m right where I want to be with a few keystrokes. No more finding redundant instances of that string. The &#8220;=&#8221; flag doesn&#8217;t even need to be placed before the first word. On a current project, I have several sections whose label begins with &#8220;MISC:&#8221;. So I place the flag next to a more unique word in the label:</p>
<pre class="codeblock"><code>/* MISC: =Lists
----------------------------------------------- */</code></pre>
<p>&#8230;which allows me to quickly zoom to that section for generic/default list styles by doing a <code>FIND</code> for &#8220;=list&#8221;.</p>
<p>Of course, this tip is only helpful if you&#8217;re diligent about keeping rules organized into discrete sections when working with large style sheets.</p>
<p><strong>Next tip</strong> will center around how I choose to break out my sections, the order of those sections in the entire document, and how to decide which rules get placed in which sections when there&#8217;s more than one choice.</p>
]]></content:encoded>
			<wfw:commentRss>http://stopdesign.com/archive/2005/05/03/css-tip-flags.html/feed</wfw:commentRss>
		<slash:comments>106</slash:comments>
		</item>
		<item>
		<title>Capturing SXSW</title>
		<link>http://stopdesign.com/archive/2005/03/18/capturing-sxsw.html</link>
		<comments>http://stopdesign.com/archive/2005/03/18/capturing-sxsw.html#comments</comments>
		<pubDate>Fri, 18 Mar 2005 17:00:45 +0000</pubDate>
		<dc:creator>Douglas Bowman</dc:creator>
				<category><![CDATA[entries]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[events]]></category>
		<category><![CDATA[people]]></category>

		<guid isPermaLink="false">http://70.32.90.75/?p=249</guid>
		<description><![CDATA[<img src="http://www.stopdesign.com/log/img/200503/slide-sxsw75.gif" width="75" height="75" alt="" style="float:left; margin:4px 15px 4px 0;" /> When I finally met Hugh Forrest for the first time in Austin this past week, I told him I keep thinking each year that <a href="http://2005.sxsw.com/interactive/">SXSW</a> is the biggest it can possibly get. That there's no way the following year can top the previous year in terms of the talent he pulls in for speakers, and the amount of interesting people attending who are so open and receptive to new ideas. Each time I've been wrong.]]></description>
			<content:encoded><![CDATA[<p>When I finally met Hugh Forrest for the first time in Austin this past week, I told him I keep thinking each year that <a href="http://2005.sxsw.com/interactive/">SXSW</a> is the biggest it can possibly get. That there&#8217;s no way the following year can top the previous year in terms of the talent he pulls in for speakers, and the amount of interesting people attending who are so open and receptive to new ideas. Each time I&#8217;ve been wrong.</p>
<p class="focus"><img src="/img/archive/2005/03/title_sxsw465.jpg" alt="" width="465" height="131" /><span id="more-249"></span></p>
<p>Last year&#8217;s thinking and this year&#8217;s festival was no exception. As the plans started to come together for this year&#8217;s event, it was obvious there were going to be lots of people converging in Austin from all over the globe. Friends from previous years returning again. And people I&#8217;ve gotten to know virtually over the past year whom I was looking forward to finally meeting in person.</p>
<p><img class="left" src="/img/archive/2005/03/slide-hifi.gif" alt="" width="123" height="123" /> This year&#8217;s audience saw a redux of our &#8220;<a href="http://2005.sxsw.com/interactive/conference/panels/?action=show&amp;id=IAP0074">HiFi Design with CSS</a>&#8221; panel moderated by <a href="http://www.christopherschmitt.com/">Christopher Schmitt</a>. Despite the fact that we each prepared separately, the topics we each covered and the order in which we each presented (<a href="http://www.molly.com/">Molly</a>, <a href="http://www.simplebits.com/">Dan</a>, <a href="http://www.mezzoblue.com/">Dave</a>, ending with me) appeared to be a highly-coordinated logical progression through the story of design and CSS.</p>
<p>In last year&#8217;s panel on &#8220;<a href="http://2004.sxsw.com/interactive/panels/index.php?action=detail&amp;con=ia&amp;id=55">CSS, the good, the bad, and the ugly</a>,&#8221; I went over my alloted time, and had to stop my presentation before getting to the concept of <em>Double Rollovers</em> used for the <a href="http://www.adaptivepath.com/">Adaptive Path</a> partner photos. I&#8217;ve used that same technique in several other places since then. Because it can be used for changing more than just two objects on mouseover at a time, I renamed the technique <em>Remote Rollovers</em>. For the first few minutes, I walked through how it works, and reviewed a few examples of its use. A companion article is already in the works which reviews the same examples and provides more detail on implementing the technique.</p>
<p><img class="right" src="/img/archive/2005/03/slide-2010.gif" alt="" width="123" height="123" /> The second panel I sat on, &#8220;<a href="http://2005.sxsw.com/interactive/conference/panels/?action=show&amp;id=IAP0017">Web Design 2010</a>,&#8221; produced lots of conversation and thought on where we might be in five years or more. Each of us on the panel (<a href="http://westciv.typepad.com/dog_or_higher/">John</a>, <a href="http://www.mezzoblue.com/">Dave</a>, <a href="http://www.hicksdesign.co.uk/">Jon</a>, <a href="http://www.erisfree.com/">Eris</a>, and me) had lots of opinions on what the web might look like five years from now, and what technologies we might be using. Some of the most interesting discussion to me (both before and during our panel) centered around the sociological implications of change on the web, how change will come about, how we&#8217;ll interact with the web and other people because of the web, and how and what we&#8217;ll be designing in the future. Many of our pre-panel and mid-panel notes are available in a <a href="http://sxsw2005.mezzoblue.com/">Future of Web Design blog</a> we started a few weeks before heading to Austin. Comments and discussion on that blog are now open to anyone.</p>
<p><a title="South by Southwest 2005 Gallery" href="http://www.dbowman.com/photos/sxsw05/"><img class="left" src="/img/archive/2005/03/slide-sxsw.gif" alt="" width="123" height="123" /></a> Finally, my wrap-up wouldn&#8217;t be complete without pointing to a <a title="South by Southwest 2005 Gallery" href="http://www.dbowman.com/photos/sxsw05/">few of the photos I captured for SXSW Interactive 2005</a>. I didn&#8217;t shoot as many as I would have liked, simply because I was caught up in so many good conversations and having too much fun to remember to pull the camera out of my pocket.</p>
<p>As the photos show, from my perspective, SXSW is definitely about people. The people who speak and present their ideas, the people who attend, the people who ask provocative questions and challenge the panelists, the people with whom you get to spend an hour or two eating around a large table, discussing everything relevant to our worlds. It was a pleasure to spend time with so many friends this year, and to make acquaintances with quite a few new faces as well. I&#8217;m already looking forward to next year. Except that this time, I don&#8217;t think I&#8217;ll underestimate how big SXSW 2006 might be.</p>
]]></content:encoded>
			<wfw:commentRss>http://stopdesign.com/archive/2005/03/18/capturing-sxsw.html/feed</wfw:commentRss>
		<slash:comments>28</slash:comments>
		</item>
		<item>
		<title>MSN goes CSS</title>
		<link>http://stopdesign.com/archive/2005/01/31/msn-goes-css.html</link>
		<comments>http://stopdesign.com/archive/2005/01/31/msn-goes-css.html#comments</comments>
		<pubDate>Tue, 01 Feb 2005 07:00:01 +0000</pubDate>
		<dc:creator>Douglas Bowman</dc:creator>
				<category><![CDATA[entries]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[microsoft]]></category>

		<guid isPermaLink="false">http://70.32.90.75/?p=245</guid>
		<description><![CDATA[<img src="http://www.stopdesign.com/log/img/200501/msn_logo.gif" alt="" width="101" height="47" class="left" /> In conjunction with the launch of Microsoft's <a href="http://search.msn.com/">new search</a> effort, <a href="http://www.msn.com/">MSN</a> gets a pretty significant makeover. Significant, not because of the new look, nor because of the <a href="http://news.com.com/2100-1032_3-5557994.html">multi-million-dollar ad campaign</a> which will attempt to oust Google out of the #1 search spot. But because the underpinnings of the home page represent a considerable move toward web standards.]]></description>
			<content:encoded><![CDATA[<p><img class="left" src="http://www.stopdesign.com/img/archive/2005/01/msn_logo.gif" alt="" width="101" height="47" /> In conjunction with the launch of Microsoft&#8217;s <a href="http://search.msn.com/">new search</a> effort, <a href="http://www.msn.com/">MSN</a> gets a pretty significant makeover. Significant, not because of the new look, nor because of the <a href="http://news.com.com/2100-1032_3-5557994.html">multi-million-dollar ad campaign</a> which will attempt to oust Google out of the #1 search spot. But because the underpinnings of the home page represent a considerable move toward web standards.<span id="more-245"></span></p>
<p>Now, bear in mind, (in my opinion) the new visual design of MSN is quite uninspired. It&#8217;s drab and boxy. (No offense to the designer, if there even was one.) Looks like it may have gone directly from a Product Manager&#8217;s sketch to the developer who coded it. The design certainly offers nothing new or innovative, and looks like it&#8217;s following Google and Yahoo, obviously trying to play catch-up. (Perhaps some would say the MSN design, particularly the very top portion of the page, is a little <em>too inspired</em>. Looking like a confused mix of Yahoo&#8217;s pointy tabs combined with a poor Google-simplicity imitation.) The <a href="http://search.msn.com/">search page&#8217;s simplicity</a> is so simple, it looks unfinished.</p>
<p>Despite a lack of interest in the visual design, I see several interesting things going on here worthy of mention, and to which we should pay attention:</p>
<h4>XHTML 1.0 Strict</h4>
<p>Not only do the new MSN pages unashamedly boast the XHTML 1.0 Strict doctype, the home page comes through with &#8212; at the time of this writing &#8212; only <a href="http://validator.w3.org/check?uri=http://www.msn.com/">28 validation errors</a>, and the search page comes through with only <a href="http://validator.w3.org/check?uri=http://search.msn.com/">1 error</a>. Not perfect, but so much closer than many other high-profile sites that have launched in the past couple years. Most of the validation errors are simple, easily fixable problems. The <code>iframe</code> for the ads will be a problem though: it&#8217;s not allowed in XHTML 1.0 Strict.</p>
<h4>CSS for layout; improved semantics</h4>
<p>The new site is also significant for its use of CSS for page layout and improved semantics. Lots of headings and unordered lists. A table used appropriately for the stock market summary; another probably part of a legacy ad system.</p>
<h4>Upgrade message</h4>
<p>A somewhat fair-minded (read: not entirely IE-centric) interestingly-worded upgrade message is displayed at the top of the home page when CSS is toggled off:</p>
<blockquote><p><em>Why does MSN look like this?</em><br />
Your browser cannot find our style and presentation information. You&#8217;re welcome to use the page as is, or upgrade your browser to its latest version. If you&#8217;re using Microsoft Internet Explorer, go to the Microsoft Internet Explorer website to install the latest version. If you are using another browser, see your browser&#8217;s website for more information.</p></blockquote>
<h4>Style switcher</h4>
<p>A fairly prominent use of a simple client-side style switcher on the home page, allowing the user to toggle between blue and white body backgrounds.</p>
<h4>Handheld media type</h4>
<p>Look through the <a href="http://hp.msn.com/css/home/hp.css?v=17">imported style sheet</a> on the home page, and you&#8217;ll see several uses of <code>@media handheld {}</code> to target certain rules for handheld devices. Rules like this:</p>
<pre class="codeblock"><code>@media handheld {
  #sitenav,#content1,#content2,... {float:none;}
}</code></pre>
<p>which turn off many of the floats. It&#8217;s encouraging to see a large site like this finally thinking about the handheld media type. Makes sense, with platforms like the PocketPC gaining popularity. Hope this is a sign that the PocketPC team is solidly behind the handheld media type.</p>
<p>However, I note lots of individual uses of <code>@media handheld {}</code>, containing only one rule each, rather than one use which groups and contains all handheld rules. Odd. See next point.<br />
<h4>Dynamic style sheets</h4>
<p> The use of query strings to point to their style sheets obviously indicates dynamic scripting is in play here. One of the byproducts of dynamically-assembled CSS is the ability to eliminate almost all whitespace in the style sheet. This makes it difficult for us to read, but easy for them to update (and possibly alter based on variable factors like browser). This potentially explains why the <code>@media</code> container wraps around single rules. Rules are probably flagged as being for a particular media type, and there&#8217;s currently no logic in the style sheet that groups rules together based on shared media types.</p>
<h4>Input button outlines</h4>
<p> Don&#8217;t assume all browsers allow full manipulation of input buttons. If you do, and I&#8217;ve been bitten by this one before, your buttons could end up looking like this (taken from Safari):</p>
<p><img src="/img/archive/2005/01/msn_button.gif" alt="Screenshot of the MSN search form in the Safari web browser, showing an out-of-place rectangular green outline around a rounded button." width="465" height="71" /></p>
<h4>IE5/Mac left in the dust</h4>
<p>I&#8217;m not sure what MSN.com looks like in the updated and much improved <a href="http://www.microsoft.com/mac/products/msnformacosx/msnformacosx.aspx?pid=msnformacosx">MSN for Mac</a> browser (only available to MSN subscribers) that <a href="http://www.tantek.com/log/">Tantek</a> helped complete while he was still at Microsoft. But take one look at the new MSN home page in IE5/Mac, and one thing is clear: Microsoft seemingly paid no attention at all to what the new MSN site looked like in IE5/Mac. Ouch.</p>
<p>Microsoft links to an <a href="http://specials.msn.com/homepagetour/default.html">explanation of benefits of the new MSN</a> where they list the top (first) feature as being &#8220;<em>Faster load time</em>&#8220;. Not sure what the old HTML file size was, but it would be interesting to have as a comparison.</p>
<p class="update"><strong>Update:</strong> Some of you may be interested to know that folks from the MSN team have definitely seen this page, and are aware of the feedback, compliments, and criticism. See <a href="#comment55">Venkat&#8217;s comment</a> below for more info, and a link to a new MSDN blog where Venkat provides a few thoughts and asks for feedback.</p>
]]></content:encoded>
			<wfw:commentRss>http://stopdesign.com/archive/2005/01/31/msn-goes-css.html/feed</wfw:commentRss>
		<slash:comments>127</slash:comments>
		</item>
		<item>
		<title>Targeting small screens</title>
		<link>http://stopdesign.com/archive/2004/12/16/small-screens.html</link>
		<comments>http://stopdesign.com/archive/2004/12/16/small-screens.html#comments</comments>
		<pubDate>Fri, 17 Dec 2004 01:00:35 +0000</pubDate>
		<dc:creator>Douglas Bowman</dc:creator>
				<category><![CDATA[entries]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[events]]></category>
		<category><![CDATA[mobile]]></category>

		<guid isPermaLink="false">http://70.32.90.75/?p=243</guid>
		<description><![CDATA[Early last week, I spoke to packed crowds at <a href="http://www.ftponline.com/conferences/webdesignworld/2004/boston/">Web Design World</a> in Boston. Clearly the conference scene is heating back up, as budgets for events and off-site training seem to be reappearing. The two sessions I presented ("<a href="http://www.ftponline.com/conferences/webdesignworld/sessions.aspx#DeliveringBeautiful">Beautiful Interfaces with CSS</a>" and "<a href="http://www.ftponline.com/conferences/webdesignworld/sessions.aspx#NoMore">Throwing Tables out the Window</a>") were lots of fun. I had to bolt to the airport to catch a flight after my last talk. So I didn't get to stick around to see the rest of the conference or talk to more of the attendees over the next two days.]]></description>
			<content:encoded><![CDATA[<p>Early last week, I spoke to packed crowds at <a href="http://www.ftponline.com/conferences/webdesignworld/2004/boston/">Web Design World</a> in Boston. Clearly the conference scene is heating back up, as budgets for events and off-site training seem to be reappearing. The two sessions I presented (&#8220;<a href="http://www.ftponline.com/conferences/webdesignworld/sessions.aspx#DeliveringBeautiful">Beautiful Interfaces with CSS</a>&#8221; and &#8220;<a href="http://www.ftponline.com/conferences/webdesignworld/sessions.aspx#NoMore">Throwing Tables out the Window</a>&#8220;) were lots of fun. I had to bolt to the airport to catch a flight after my last talk. So I didn&#8217;t get to stick around to see the rest of the conference or talk to more of the attendees over the next two days.<span id="more-243"></span></p>
<p>However, I got to field a few questions from those who came up after each session. All questions were good, and quite relevant to what many of us do every day. Considering this, I thought I&#8217;d start sharing some of the questions people are asking after these conferences, along with my extemporaneous responses &#8212; sometimes informed, sometimes not so well-informed.</p>
<p>I don&#8217;t always have the answers on the spot, but I like to help find the answers when I can. And I think it&#8217;s helpful to know what our peers are asking about. If anything, these questions form the base for interesting discussion, and they pull in other people who can help provide answers or steer you and me in the right direction.</p>
<p><img class="left" src="/img/archive/2004/12/pocketpc.jpg" alt="(Microsoft's Pocket PC operating system)" width="83" height="109" /> One question in Boston dealt with how to address portable devices (like phones and PDAs). Specifically, [my own paraphrased version] this gentleman was frustrated over certain devices, like the <a href="http://www.microsoft.com/windowsmobile/pocketpc/default.mspx">Pocket PC</a>, which ignores style sheets linked with a <code>handheld</code> media type, but tries to apply any <code>screen</code> media type style sheets. It badly bungles portions of CSS, breaking the display of a style sheet intended for larger desktop browser windows. He would be fine if there was a way to hide <code>screen</code> media type style sheets from mobile browsers like we typically do with Netscape 4. But Pocket PC&#8217;s weakened support of CSS, along with trying to fit a larger desktop browser design into a small window, left him wondering what choices he had.</p>
<p>I&#8217;ve heard similar complaints in the past about the browser on Danger&#8217;s <a href="http://www.danger.com/consumers_hiptop2.php">Hiptop</a>.</p>
<p>First, my thoughts on why most mobile browsers don&#8217;t currently support the handheld media type. Then a potential solution for the short-term until they do. (<em>I should state that these are completely my own observations and theories, and I&#8217;m an outsider to the entire mobile industry.</em>)</p>
<h4>Show of hands for handheld support?</h4>
<p>So why isn&#8217;t the handheld media type supported more widely by now? Why aren&#8217;t mobile browser software companies doing the right thing from the start?</p>
<p><img class="left" src="/img/archive/2004/12/treo.gif" alt="(PalmOne's Treo 650)" width="70" height="127" /> We&#8217;ve seen an explosion in the last year of mobile phones and PDAs that support web browsing (to some capacity). They&#8217;re doing a better and better job of it. Companies who make the browsing software for these devices want everyone using them to have the &#8220;richest&#8221; possible experience when they attempt to browse the web. <img class="right" src="/img/archive/2004/12/nokia.gif" alt="(Nokia's 6620)" width="50" height="85" /> If mobile browsers rendered a web page like it was 1996 without any styles applied &#8212; as would be the case with most sites that don&#8217;t offer a handheld style sheet &#8212; there would be a harsh disconnect between what people knew a certain site looked like viewed with their desktop or laptop computer, versus what it looked like on their phone or PDA. Some of the branding and familiar design elements of the site might be lost if mobile browsers didn&#8217;t attempt to render everything they could. These browsers render as much of the style for each site as they can. This often leads to problems for developers who try to do the right thing by supplying a handheld media type style sheet.</p>
<p>It&#8217;s a chicken and egg thing. Mobile browser software companies aren&#8217;t building in support for the handheld media type because virtually no sites are authored with a handheld media type style sheet &#8212; yet. However, designers and developers won&#8217;t start using the handheld media type until they know there are at least a few mobile browsers that reliably support handheld style sheets, and can immediately see the benefits of providing these additional style sheets.</p>
<p>Clearly, this mobile browsing thing isn&#8217;t another flash in the pan. It&#8217;s here to stay and it&#8217;s only getting more popular. We need to account for the millions of mobile devices attempting to hit our sites. And we need to be designing and building our sites to work everywhere. This includes devices for people with disabilities as well as mobile and all other forms of utility browsers we haven&#8217;t even seen come to market yet.</p>
<p>We don&#8217;t want to go back to 1997, where we had to build different versions of our sites for each new browser that entered the market. True, in some cases, sites may need to be customized for the best mobile experience, and this may mean a completely different architecture, let alone HTML structure. But when we have the chance, we <em>want</em> to optimize the design or presentation of content based on what type of device is used to view that content.</p>
<p>Things needs to change. It requires action from both browser makers and the designers and developers creating the leading-edge sites. Those sites set examples for everyone else. Neither side needs to think whether or not to go first, they just need to go.</p>
<p><img class="left" src="/img/archive/2004/12/opera.gif" alt="" width="51" height="43" /> Before I continue, I should note at least one company whose browser correctly supports the handheld media type. <a href="http://www.opera.com/">Opera</a> has taken considerable steps toward dealing with the challenges of rendering web pages on mobile devices with its <a href="http://www.opera.com/products/mobile/smallscreen/">Small-Screen Rendering</a> technology. For the majority of web pages that aren&#8217;t yet using handheld style sheets, Opera will optimize the page using its SSR technology. However, when Opera detects a page with an existing handheld media type style sheet, Opera assumes the author optimized the page for small screens, correctly applies the handheld style sheet, and disables SSR so as not to interfere with the author&#8217;s intentions. So in Opera, pages styled with handheld style sheets render as the author intends. But pages without a handheld style sheet get the SSR treatment. A brilliant fallback solution.</p>
<h4>Until that day&#8230;</h4>
<p>Even as Opera sets a good example, what about other browsers that aren&#8217;t yet supporting the handheld media type? How do we design and author our sites with robust style sheets applied to the same basic HTML, forming an attractive, usable site no matter what type of browser or device is used to access the site?</p>
<p>My response to this gentleman involved using JavaScript to force support for handheld style sheets and detect a screen size smaller than X. Some of you may not prefer to use JavaScript for browser type or window-width detection. But until more mobile browsers support the handheld media type, we need some type of proactive fallback solution so we can effectively target small screens and optimize designs for them.</p>
<p>I first suggested he go ahead and add a secondary handheld media style sheet. Then use JavaScript to detect smaller screen sizes. If detected, change the secondary style sheet to both screen and handheld, adding to (and overriding) the default screen media type style sheet. The secondary style sheet (intended for mobile browsers) might contain rules that eliminate floats and absolute positioning used for page layout, and remove any fixed widths for columns and containers. Ideally, a handheld style sheet allows the design to shift to a one-column flexible-width layout that shrinks or expands to fit available screen width.</p>
<p>The problem with my first suggested approach? Many of these new mobile browsers don&#8217;t completely support JavaScript yet &#8212; if at all. Others disable JavaScript by default for security or &#8220;user convenience&#8221; purposes. Bah humbug!</p>
<h4>Take two</h4>
<p>So how about the inverse of that approach?</p>
<p>What if we started by applying a very basic style sheet as both <code>screen</code> and <code>handheld</code> media types. The basic style sheet would only apply simple rules for color, typography, link treatment, and simple list styling. No complex floated columns or absolute positioning. This style sheet would take care of all CSS-supporting devices, whether or not they support the handheld media type.</p>
<p>Then, we use JavaScript to detect <em>wider</em> browser widths &#8212; those that might typically imply a desktop browser. If JavaScript is supported, and a wide width is detected (say 620px or greater &#8212; or maybe even 750 if your design only works at 750 or greater), then we assume not only a desktop browser, but that enough window real estate exists to render a multi-column design as intended. In this case, we add the main style sheet that divides the page into our standard multi-column layout. Browsers that either don&#8217;t support JavaScript (or where it&#8217;s been disabled) or browsers that don&#8217;t report wide enough screen size only get the basic style sheet.</p>
<p>Seems like that would work. Of course I only know enough JavaScript to hack my way through existing code, not enough to write my own from scratch. So I&#8217;m not even going to attempt to write something or create a test example. Others should feel free to suggest or create code, or test this approach however possible.</p>
<p>I&#8217;ll note that this is a very similar idea to the solution Cameron Adams recently devised for the opposite problem: how to provide more content or more design when the browser window is extra-wide. (See his <a href="http://www.themaninblue.com/writing/perspective/2004/09/21/">Resolution dependent layout</a>, 21 Sep 2004.) In this case, I&#8217;m simply recommending going back one step before what Cameron is doing. A simple, basic style sheet is applied as both screen and handheld media types, and takes care of the lowest common denominator that still supports CSS. Then detection of wider window widths results in the application of a more advanced style sheet that breaks the page into multiple columns. Then Cameron&#8217;s idea enters in for applying yet more styles for ultra-wide window widths.</p>
<h4>Killing the FOUC</h4>
<p>One important note if all the above is possible. I might also suggest setting a cookie with JavaScript if a wider window width is detected. Once a cookie is set, server-side code could check for the cookie on subsequent page views, and determine whether or not to add the main style sheet (or not) before resulting HTML is streamed to the client. This way, we avoid the <a href="http://www.bluerobot.com/web/css/fouc.asp"><abbr title="Flash of Unstyled Content">FOUC</abbr></a> for any page beyond the first page view.</p>
<p>Feedback, expansions, modifications, pitfalls? Code samples, examples, or other ideas?</p>
]]></content:encoded>
			<wfw:commentRss>http://stopdesign.com/archive/2004/12/16/small-screens.html/feed</wfw:commentRss>
		<slash:comments>48</slash:comments>
		</item>
		<item>
		<title>Flavor saver</title>
		<link>http://stopdesign.com/archive/2004/09/13/flavor.html</link>
		<comments>http://stopdesign.com/archive/2004/09/13/flavor.html#comments</comments>
		<pubDate>Mon, 13 Sep 2004 17:00:27 +0000</pubDate>
		<dc:creator>Douglas Bowman</dc:creator>
				<category><![CDATA[entries]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[site]]></category>

		<guid isPermaLink="false">http://70.32.90.75/?p=222</guid>
		<description><![CDATA[With the return of the full-color, fixed-width design to this site over the weekend, Stopdesign received numerous messages and even a few comments regarding the switch back. Some of the messages and comments are in favor, <a href="/log/2004/09/03/liquid-bleach.html#comment63">heralding the welcome return</a>. Others <a href="/log/2004/09/03/liquid-bleach.html#comment67">cry foul</a> as their <em>Bleach</em> is stolen away.]]></description>
			<content:encoded><![CDATA[<p>With the return of the full-color, fixed-width design to this site over the weekend, Stopdesign received numerous messages and even a few comments regarding the switch back. Some of the messages and comments are in favor, <a href="/archive/2004/09/liquid-bleach.html#comment63">heralding the welcome return</a>. Others <a href="/archive/2004/09/liquid-bleach.html#comment67">cry foul</a> as their <em>Bleach</em> is stolen away.</p>
<blockquote><p><em>&#8220;More power to the people!&#8221;</em></p></blockquote>
<p>&#8230; the crowds shout from all around. And just like that, their wish was granted.<span id="more-222"></span></p>
<p>Here&#8217;s your chance to play <em>Backseat Design Director</em> for Stopdesign, and <strong>enforce</strong> your decisions. Prefer the stark whiteness and simplicity of Bleached? Want to demand that Liquid Bleach remain on the shelves? I want color! The type is too small! The type is too big! And on and on&#8230;</p>
<p>You can now play with configurations until your heart is content. And <a href="/about/prefs/">this little preferences page</a> is your interface for orchestrating any changes you desire&#8230; within reason, of course. (<em>Note:</em> The preferences page is also accessible from that little <em>prefs</em> link at the top of the page next to <em>contact</em>, and from any of the <a href="/about/">About</a> pages.) Choose between three site-wide styles, and/or set text to a base size of small (the default), medium, large, or extra large. Your preferences will hold throughout the entire site, until you change them again.</p>
<p>The preferences page uses a server-side style switcher utilizing a cookie, written in PHP, with very few lines of code. They key (and most of the work done before the release of Liquid Bleach) was separating out the style sheets so that additional <em>color</em> or <em>liquid</em> style sheets could be laid over top of (read: added after) the basic stripped-down version, overriding the stark-white fixed-width design of <em>Bleached</em>.</p>
<p>The text size change is a simple matter of altering the base font-size keyword of the <code>body</code> element with an extra style sheet, since that&#8217;s the only place I set font size with an absolute value. All other size changes happen throughout the rest of the style sheet via percentages of that base keyword size. A few adjustments in the background position of certain icons, and the large and extra large text size style sheets were good to go.</p>
<p>As noted at the bottom of the page, Comment Preview and Error pages will not pick up any preferences you change. Those pages are rendered by static Movable Type template code, thus they&#8217;ll remain Bleached for simplicity&#8217;s sake.</p>
<p>Select the version that makes you happiest. Change your mind tomorrow? Set it back. I&#8217;m still partial to Technicolor at the small text size. But on larger screens, Liquid Bleach with the text size bumped up to medium or large doesn&#8217;t look too bad either. You make the final call &#8212; it&#8217;s your experience.</p>
<p>Choose wisely.</p>
]]></content:encoded>
			<wfw:commentRss>http://stopdesign.com/archive/2004/09/13/flavor.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Liquid Bleach</title>
		<link>http://stopdesign.com/archive/2004/09/03/liquid-bleach.html</link>
		<comments>http://stopdesign.com/archive/2004/09/03/liquid-bleach.html#comments</comments>
		<pubDate>Fri, 03 Sep 2004 15:00:26 +0000</pubDate>
		<dc:creator>Douglas Bowman</dc:creator>
				<category><![CDATA[entries]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[site]]></category>

		<guid isPermaLink="false">http://70.32.90.75/?p=221</guid>
		<description><![CDATA[Promised one week ago today, this is the next phase in a temporary exploration of page design and CSS layout for Stopdesign. <elink id="686"><em>Bleached</em></elink> turns liquid, making this <em>Liquid Bleach</em>. Liquid layouts are easy to create in theory, but can be difficult to implement effectively. Doubling margins, subtractive padding, nested percentages, and differing box models, oh my!]]></description>
			<content:encoded><![CDATA[<p>Promised one week ago today, this is the next phase in a temporary exploration of page design and CSS layout for Stopdesign. <a href="/archive/2004/08/27/bleached.html"><em>Bleached</em></a> turns liquid, making this <em>Liquid Bleach</em>.<span id="more-221"></span></p>
<p>The parent container for <em>Liquid Bleach</em> is set to 95% of the browser window width. 2-column proportions are basically set at 65%/35%, while 3-column proportions adjust those numbers to keep the middle column slightly wider by a small percentage. A <code>min-width</code> for the parent container is set at <code>750px</code> for 3-column layouts, and at <code>600px</code> for 2-column layouts, in attempt to prevent any weirdness caused by fixed-width images that live in the liquid-width columns. (IE users beware: <code>min-width</code> is &#8212; yet &#8212; unsupported in your browser, so it <em>is</em> possible for you to drag your window so small that the layout might break.)</p>
<p>Liquid layouts are easy to create in theory, but can be difficult to implement effectively. I&#8217;ve seen many liquid layouts that fall apart with hardly any browser resizing. I don&#8217;t even think this version comes close to achieving perfection. With liquid layout, columns constantly change widths, text reflows freely, objects reposition on the page without warning. More challenges ensue when relying on CSS for layout, rather than the easy-to-fall-back-on table-based layout.</p>
<p>Doubling margins, subtractive padding, nested percentages, and differing box models, oh my! Enough to make anyone shake their fist at the monitor a time or two. It&#8217;s hard to keep everything straight in liquid design. Which is my guess why we&#8217;re seeing so many fixed-width CSS layouts emerge. With fixed-width, everything Just Works™ a lot more often. Liquid? Well, creating a flexible-width design might take just a little more care and experimentation. Pulled off well, they can be a pleasant wonder the user never needs to think about or notice, because the design adapts to whatever size their browser window happens to be.</p>
<p>At this point, I&#8217;m not arguing for either. I&#8217;ve written before about <a href="/archive/2003/12/15/on-fixed-vs-liquid-design.html ">fixed vs. liquid</a> before, but I always dodge the debate. Apply whichever one makes sense given needs, goals, and the environment you intend to create. Given the success of the liquid-based <a href="http://v2.stopdesign.com/">version 2</a> of Stopdesign, I thought it important to eventually go back and create a liquid version of this new design, even if it were devoid of most color.</p>
<p>When creating liquid layouts using CSS, here are a few considerations I keep in mind:</p>
<ul>
<li><strong>Double-div columns</strong>: As much as I hate to use extra markup, there&#8217;s no easier way to ensure maximum compatibility across multiple browsers than to use two divs for each column. The outer divs are used for setting widths. Inner divs are used to set padding to create gutters of white space between each column.</li>
<li><strong>Use fixed-width gutters</strong> (or gutter widths based on type size): When column width gets applied independently of column padding, as above, percentages can be used for widths, and pixels or ems can be used for padding. This, without worrying about one column getting bumped to the bottom of another, or without purposely under-sizing columns so they always fit on the page. Even though column widths change as the browser gets wider or narrower, the text on the page generally stays the same size. The amount of white space required to make the text feel comfortable is dependent more on the size of the type, rather than the size of the column containing that text.</li>
<li><strong>Avoid fixed-width columns</strong>: As much as possible, make all columns a percentage width. It&#8217;s tempting to think of sidebars and navigation columns as being one static width, and let the main or middle column do all the expanding. This quickly destroys any proportions that may have been carefully chosen, as the fixed width columns can look puny and weak at large resolutions. Or wide fixed-width sidebars can become daunting, over-powering the main column at narrower browser widths.</li>
</ul>
<p>These aren&#8217;t, by any means, rules of the road. They&#8217;re simply my own formulas for making liquid layouts as pleasing to the eye as possible. Given the first point, some of the markup had to change here to enable greater flexibility for different types of layouts and future style-switching of the design. As more flexibility is built into a design, the markup slowly gets more complex to account for different scenarios.</p>
<p>One small point of interest I&#8217;ll quickly point out: I&#8217;m using a new technique for liquid layouts that I&#8217;ve been wondering about for a while. <a href="http://www.meyerweb.com/">Eric Meyer</a> helped hammer it out last week as we batted ideas back and forth. It combines my <a href="http://www.alistapart.com/articles/slidingdoors/">Sliding Doors</a> method with Dan Cederholm&#8217;s <a href="http://www.alistapart.com/articles/fauxcolumns/">Faux Columns</a> to create some sort of <em>Sliding Faux Columns</em> effect. Each of the floated columns vary in width and height, depending on browser width, and the column separators move with them, sliding together or apart as necessary. The separators also span all the way from header to footer, regardless of which column is longest.</p>
<p>This bleached version of Stopdesign only requires column dividers, since it eliminates the original tinted columns. But this same technique could also be used for columns filled with background colors or patterns, as might be shown in a future version of Stopdesign.</p>
<p>The trick is to create an ultra-wide background image (or two images for 3-column layouts, thus the Sliding-Doors-nature of the technique). The image is partially opaque, and partially transparent. It gets tiled vertically inside the parent container, just like Dan&#8217;s Faux Columns technique. The opaque portion of the image should match percentages of the column it helps create, so that it can be positioned with an identical <code>background-position</code> value. This allows the transition from opaque to transparent to become the axis point for the background&#8217;s position. The opaque portion&#8217;s position within the image could be altered based on order of content within the HTML to produce almost any effect desired.</p>
<p>Since this bleached version only uses dividers, and not fully filled columns, I&#8217;m only using one image for all column dividers, cut down to <code>1px</code> by <code>20px</code>. It&#8217;s still positioned the same way as above, it just doesn&#8217;t need to be as wide since it&#8217;s not creating a fill color or pattern.</p>
<p>I&#8217;ll restate again: this noodling with the layout is only temporary. Those of you harassing me to change it back, please stop. I&#8217;ll eventually default back to the full technicolor fixed-width version of Stopdesign. But it <strong>is</strong> my intent to make the changes I&#8217;ve been testing here available via a server-side style switcher. That&#8217;s next on the agenda, after other more pressing work is completed.</p>
]]></content:encoded>
			<wfw:commentRss>http://stopdesign.com/archive/2004/09/03/liquid-bleach.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Introducing Bleached</title>
		<link>http://stopdesign.com/archive/2004/08/27/bleached.html</link>
		<comments>http://stopdesign.com/archive/2004/08/27/bleached.html#comments</comments>
		<pubDate>Fri, 27 Aug 2004 17:00:00 +0000</pubDate>
		<dc:creator>Douglas Bowman</dc:creator>
				<category><![CDATA[entries]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[site]]></category>

		<guid isPermaLink="false">http://70.32.90.75/?p=218</guid>
		<description><![CDATA[<em>Ever wondered what your site would look like devoid of most of its color and imagery?</em> Bleach the entire design, remove the saturation and leave behind the basic visual structure on a stark white background? Sure, some sites already use a white background for their design. But Stopdesign has been filled with deep colors and prominent header images since I launched this design a few months ago.]]></description>
			<content:encoded><![CDATA[<p><em>Ever wanted to ditch what you&#8217;ve got and start over?</em> No, wait a minute. This sounds like a <a href="/archive/2004/05/25/starting-over.html">broken record</a>.</p>
<p>Ahem. Let&#8217;s try that again.</p>
<p><em>Ever wondered what your site would look like devoid of most of its color and imagery?</em> Bleach the entire design, remove the saturation and leave behind the basic visual structure on a stark white background? Sure, some sites already use a white background for their design. But Stopdesign has been filled with deep colors and prominent header images since I launched this design a few months ago.<span id="more-218"></span></p>
<p>How &#8217;bout we strip away all that <em>decoration and atmosphere</em>? <strong>Temporarily</strong>. There&#8217;s something about looking at a design without all the extra layering of color and fancy graphic work. It allows one to see how much the basic form, structure, and proportions speak for themselves.</p>
<p>Or not, in some cases. Often, color and imagery is overtly used to disguise bad design. Take away color and images, and some designs fall apart. I wanted to prove to myself that this wasn&#8217;t the case with Stopdesign.</p>
<p>Nothing about the design changed position &#8212; aside from the slight adjustment I snuck in on the <a href="/">home page</a> yesterday, giving more emphasis to the latest entry. Those who remember and liked <a href="http://v25.stopdesign.com/">v2.5 of Stopdesign</a>, where I really did &#8220;start over&#8221; will note some similarities with this version.</p>
<blockquote><p>(Ooh, hey, what was that little 2.5 link he just slipped in there? What? An archived version of a prior design? I didn&#8217;t know that existed. Hey, wonder what happens if I change the URL to see if <a href="http://v2.stopdesign.com/">v2 works</a>? Whoah, he kept that one too! So, did he actually have a <a href="http://v1.stopdesign.com/">v1</a> design? Ouch, nice table-based layout!)</p></blockquote>
<p><em>Bleached</em> was a small challenge for me, and an excuse to further separate the function of different style sheets. One to control the basic layout, visual structure, and common design elements. Another to pump in color and imagery. With the advance prep work in place, the only change needed to switch to <em>Bleached</em> was to yank the <code>@import</code> for the color style sheet. When I want to return to the full-color design, I&#8217;ll simply add it back in.</p>
<p>I&#8217;ve been using a separate <code>color.css</code> file to control section-based colors for a while now (something I started playing with on <a href="http://www.wired.com/">Wired News</a>).</p>
<p>But unlike Wired, until today, if you pulled out Stopdesign&#8217;s color style sheet, you would have been left with a color scheme that looked like the home page color scheme, since that&#8217;s the page I used to start authoring the CSS for this design. For Wired, I actually created a grayscale version of the design as a base. Then alternative color style sheets are added to create each day&#8217;s color scheme. They&#8217;ve never used the grayscale version. But it&#8217;s there, just in case.</p>
<p>And now, a bleached version of Stopdesign exists as a base. So poke around a little. Explore the untainted space. And if you miss the color and pretty pictures of the unbleached design, don&#8217;t worry. This isn&#8217;t a permanent change. If you do like it, don&#8217;t worry about it&#8217;s lack of permanence. A style-switcher will make it&#8217;s way onto Stopdesign soon, allowing you to choose whether you want the full <strong>technicolor experience</strong> or not.</p>
<p>The real fun will be my next challenge with this site: <em>Liquid Bleach</em>.</p>
]]></content:encoded>
			<wfw:commentRss>http://stopdesign.com/archive/2004/08/27/bleached.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Projected savings</title>
		<link>http://stopdesign.com/archive/2004/07/28/projected-savings.html</link>
		<comments>http://stopdesign.com/archive/2004/07/28/projected-savings.html#comments</comments>
		<pubDate>Wed, 28 Jul 2004 19:00:25 +0000</pubDate>
		<dc:creator>Douglas Bowman</dc:creator>
				<category><![CDATA[entries]]></category>
		<category><![CDATA[business]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[microsoft]]></category>
		<category><![CDATA[tables]]></category>

		<guid isPermaLink="false">http://70.32.90.75/?p=211</guid>
		<description><![CDATA[In the article published here yesterday, "<a href="http://www.stopdesign.com/articles/throwing_tables/">Throwing Tables out the Window</a>", I provided a few <em>what if</em> projections of bandwidth savings based on a shot-in-the-dark conservative estimate that Microsoft.com might average about 1 million page views per day. Turns out I underestimated. By just a little.]]></description>
			<content:encoded><![CDATA[<p>In the article published here yesterday, &#8220;<a href="http://www.stopdesign.com/articles/throwing_tables/">Throwing Tables out the Window</a>&#8220;, I provided a few <em>what if</em> projections of bandwidth savings based on a shot-in-the-dark conservative estimate that Microsoft.com might average about 1 million page views per day.</p>
<p>Turns out I underestimated. By just a little.<span id="more-211"></span></p>
<p>Olivier Vanbiervliet pointed me to a public Microsoft page titled &#8220;<a href="http://www.microsoft.com/backstage/inside.mspx">Inside Microsoft</a>&#8220;. The page provides a bit of &#8220;backstage&#8221; information about microsoft.com, including some detailed stats for the month of May 2004.</p>
<p>Their published traffic numbers actually state that microsoft.com got <strong>1.2 billion page views</strong> in May 2004. Divide that by 31, and we&#8217;re not just looking at 1 million page views per day, but more like 38.7 million page views per day.</p>
<p>Which, if you do the math, with a potential average savings of 25 KB per page, works out to numbers a little higher that what I originally projected. More accurate savings could actually be closer to:</p>
<p><strong>924 GB per day.</strong></p>
<p><strong>329 terabytes per year.</strong></p>
<p>I updated the article to reflect these more accurate projections.</p>
]]></content:encoded>
			<wfw:commentRss>http://stopdesign.com/archive/2004/07/28/projected-savings.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Throwing tables out the window</title>
		<link>http://stopdesign.com/archive/2004/07/27/throwing-tables.html</link>
		<comments>http://stopdesign.com/archive/2004/07/27/throwing-tables.html#comments</comments>
		<pubDate>Tue, 27 Jul 2004 16:00:36 +0000</pubDate>
		<dc:creator>Douglas Bowman</dc:creator>
				<category><![CDATA[articles]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[microsoft]]></category>
		<category><![CDATA[tables]]></category>

		<guid isPermaLink="false">http://70.32.90.75/archive/2004/07/27/throwing-tables-out-the-window.html</guid>
		<description><![CDATA[With the CSS waters thoroughly tested by many sites that have taken the plunge, it's time for us to start cheering from the water below, coaxing and encouraging those who haven't yet jumped in, to make that jump. There's no longer any reason to use tables for layout, nor is there reason to maintain multiple versions of a site solely for different desktop browsers. Throw the tables out first. Trust us, they're not needed anymore.]]></description>
			<content:encoded><![CDATA[<p>Those who were at <a href="http://www.ftponline.com/conferences/digitaldesignworld/Seattle/">Digital Design World</a> in Seattle this year saw me present a session titled, &#8220;<strong>No More Tables, <em>CSS Layout Techniques</em></strong>&#8220;. In that session, we reviewed proper use of tables, and a few pointers for styling them with CSS. Then we turned to <dfn>tableless layout</dfn>, reviewing examples and an overview of the two basic approaches (positioning and floats).<span id="more-863"></span></p>
<p>Half way through the presentation, I switched gears and announced we&#8217;d be converting a real-world example from tables and spacer gifs to a pure CSS layout. I could have created a fictitious example to work with in the presentation. But that idea would have seemed too contrived. If I created my own example, it would have been nice and tidy. Everything would have rendered exactly as I wanted it to, staying free and clear of any &#8220;trouble spots&#8221; I already knew to avoid.</p>
<p>Fictitious wasn&#8217;t good enough. I wanted a real challenge. So I chose the site of a small, local-to-the-Seattle-area company I thought a few of the attendees in the audience might be familiar with: <strong>Microsoft</strong></p>
<p>Ok, maybe more than just a <em>few</em> attendees were familiar with this not-so-small company. Many users arrive at Microsoft&#8217;s <a href="http://www.microsoft.com/">home page</a> every day. Microsoft&#8217;s literal home page may or may not be as well-known and oft-used as search giants Google and Yahoo! But <em>microsoft.com</em> in general gets tons of traffic, and the people which pass through its domain every day quite likely number in the millions.</p>
<p>The shame is that Microsoft&#8217;s site isn&#8217;t as optimized as it could be. They haven&#8217;t taken the plunge yet. Users download unnecessarily larger pages, and servers waste extra bandwidth to keep up. At 40 KB, the HTML for Microsoft&#8217;s home page is not exactly a bloated beast. But it <em>is</em> burdened with inaccessible, kludgy, table-based markup filled with proprietary attributes and some awkward JavaScript. Notice I didn&#8217;t mention whether it was valid markup or not. Despite using the flavor of XHTML, Microsoft omits the doctype on their home page.</p>
<h4>Why Microsoft?</h4>
<p><em>Is this just another &#8220;pick on Microsoft&#8221; thing?</em></p>
<p>Bluntly and honestly&#8230; no.</p>
<p>I didn&#8217;t choose Microsoft to jump on the bashing bandwagon, or to toss a few more pot shots at a company some people in our industry love to hate. (I didn&#8217;t pass up any opportunities to question certain decisions they&#8217;ve made, but I avoided passing judgment.)</p>
<p>I admit that I purposely chose and targeted a high-profile company. It&#8217;s my nature to go after the top guns. But it&#8217;s also an example with which almost everyone is already familiar. <strong>Microsoft.com was (<em>and is</em>) a perfect candidate for a standards-compliant CSS makeover.</strong></p>
<p>Here&#8217;s why&#8230;</p>
<h5>Reason #1</h5>
<p>Because of the inefficient use of an abundance of tables and spacer gifs used to layout the page. Pages are more locked down when their content is laid out using tables, and can often be less accessible as a result. <em>Microsoft is <strong>not</strong> alone here.</em> An overwhelming majority of sites on the Web today still use lots of tables for page layout and other purely visual purposes. I chose Microsoft because it could serve as a well-known example (and eventually a model) that relates to the same issues many sites still need to address.</p>
<h5>Reason #2</h5>
<p>Because the basic structure of Microsoft&#8217;s current design is a model that <strong>thousands of websites</strong> use for their own site design: <strong>Header + 3 columns + Footer</strong>. Specifically: a <em>Header</em> that spans all the way across the top of the page, a <em>Left column</em> containing mostly navigation, a <em>Main column</em> for content, a <em>Right column</em> for extra &#8220;stuff&#8221;, and a <em>Footer</em> that sits below all three columns and also spans the entire width of the page. If it&#8217;s not a 3-column layout, many sites might use a 2-column variation of this same basic structure with a Sidebar to the left or right of the Main column:</p>
<p><img src="/img/articles/throwing-tables/ms_layout_structure.gif" alt="Microsoft's home page, with three different overlay sets highlighting basic page structure, one showing header, 3 columns, footer, two others showing header, 2 columns, footer" width="465" height="177" /></p>
<h5>Reason #3</h5>
<p>Because Microsoft&#8217;s home page uses CSS for little more than FAC (fonts and color). I&#8217;d love to see the company that basically invented the concept of style sheets in an application environment, lean more heavily on CSS, and less on old-school methods.</p>
<h5>Reason #4</h5>
<p>Because Microsoft is currently serving a different version of their home page depending on which browser is used to view it. One version for <strong>Internet Explorer for Windows</strong> (v5.5 and above). Another somewhat &#8220;dumbed-down&#8221; version for <em>all other browsers</em> (including IE/Mac) that omits some of the imagery and all product logos. The non-IE/Win version leaves out some of the functionality (e.g. fly-out menus) and renders page elements with different techniques. If you have IE/Win 5.5 or higher, plus another browser available, you can check for yourself. If not, here&#8217;s a screenshot of the two versions, with differences circled in red:</p>
<p><img src="/img/articles/throwing-tables/screen_ms_compare_sm.jpg" alt="Screen captures of the two different home pages Microsoft serves. The left screen shot (from IE 5.5 or higher) shows more images and generally richer styling than the version shown at right, served to all other browsers." width="465" height="276" /></p>
<p>The non-IE/Win version is noticeably more anemic than the full version served to IE/Win. We all know it doesn&#8217;t need to be this way. If you&#8217;re wondering, it&#8217;s not just sloppy coding that works in some browsers and not in others. Microsoft intentionally does a JavaScript browser detect, and redirects the browser to a different file if the browser is IE5.5 or higher. Instead, Microsoft could just maintain one version that works in <em>all</em> browsers.</p>
<p>At least Microsoft serves a version of its page to non-IE/Win browsers. Some developers may not even go that far. The frequent reason we hear cited for dropping support for other browsers is that MSIE/Win is THE browser used by a MAJORITY of people, and that it takes TOO LONG to develop for (and render properly in) any other browsers. Others complain that development for browsers other than IE/Win is TOO EXPENSIVE. Both the <em>too long</em> and <em>too expensive</em> claims are false.</p>
<p>Many developers believe these claims because they <em>start</em> by developing for &#8212; and checking in &#8212; IE. Then they view it in another browser and become frustrated when they see all kinds of supposed &#8220;bugs&#8221; they think they&#8217;ll have to fix.</p>
<p>IE interprets CSS more loosely than other browsers that have been iterating versions over the last couple years (Mozilla, Firefox, Safari, Opera&#8230;). Starting with IE means fewer problems with development work will be detected early on. Developing for IE initially, then trying to retrofit for other browsers <strong>will</strong> <em>increase time and cost</em> in the long run. But there&#8217;s a better way to approach development that&#8217;s faster <strong>and</strong> less costly.</p>
<p>Start with the stricter, more <em>compliant browsers</em> that (usually) render things how they&#8217;re supposed to render. Get everything working there. Then, double back and create a few &#8220;patches&#8221; for IE. Development is much faster this way. It may be counter-intuitive to initially avoid the browser that represents the majority of your traffic. But the process is much more fluid and efficient if you don&#8217;t become accustomed to &#8212; or depend on &#8212; IE&#8217;s relaxed rendering behavior. Start with IE, and you may start with bad code that takes much longer to fix for other stricter browsers.</p>
<p>Going this route, we still have the <a href="/log/2004/01/26/ie-factor.html"><dfn>IE Factor</dfn></a> to contend with. However, as we gain more experience with IE&#8217;s CSS <em>misbehavior</em>, the IE Factor eventually starts to minimize. There <strong>is</strong> hope.</p>
<h4>Just the Facts, Please</h4>
<p>For the second half of the presentation, we stepped through the entire process of converting Microsoft&#8217;s table-based spacer-gif-laden page to a more accessible, purely CSS-driven version that works in <strong>all</strong> browsers. <strong>This is not new.</strong> Others have re-coded microsoft.com before. Many regular readers of this site have been creating tableless designs for a year or more by now. But we don&#8217;t see everyone else jumping into the water yet, despite the water being fairly thoroughly tested by now. Thus, the presentation at Digital Design World, and this follow-up article.</p>
<p>Continuing the presentation, we broke down each stage of the process into manageable chunks. I highlighted each of the major steps of the process, including the dumping of tables, conversion to more semantic markup, and the CSS techniques used to faithfully reproduce each portion of Microsoft&#8217;s home page design.</p>
<p>Throughout the presentation, we examined lots of visuals (diagrams, screenshots, and pictograms) that aided in understanding the techniques used to render each section. I also had the code saved out as separate &#8220;pre-baked&#8221; files I could refer to for each stage of the process.</p>
<p>One of the reasons for writing this follow-up article is to publish the final results of the Microsoft.com makeover, which are kind of hard to ignore:</p>
<table class="data" border="0" cellspacing="0" cellpadding="5" width="100%">
<tbody>
<tr class="row-header">
<th> </th>
<th>Current Design<br />
<em>(IE/Win)</em></th>
<th class="minor">Current Design<br />
<em>(other)</em></th>
<th class="focus">Makeover</th>
</tr>
<tr class="alt">
<th>Tables used</th>
<td>40</td>
<td class="minor">36</td>
<td class="focus">0</td>
</tr>
<tr>
<th>Spacer gifs</th>
<td>35</td>
<td class="minor">76</td>
<td class="focus">0</td>
</tr>
<tr class="alt">
<th>Total &lt;img&gt; tags</th>
<td>43</td>
<td class="minor">122</td>
<td class="focus">6</td>
</tr>
<tr>
<th>CSS bg-images</th>
<td>1</td>
<td class="minor">1</td>
<td class="focus">11</td>
</tr>
<tr class="alt">
<th>Browsers supported</th>
<td>2</td>
<td class="minor">Most modern</td>
<td class="focus">Most modern</td>
</tr>
<tr>
<th>HTML file size</th>
<td>40 KB</td>
<td class="minor">39 KB</td>
<td class="focus">15 KB</td>
</tr>
<tr class="alt">
<th><strong>File size reduction</strong></th>
<td>-</td>
<td class="minor">3%</td>
<td class="focus"><strong>62%</strong></td>
</tr>
</tbody>
</table>
<h4>Going Further</h4>
<p>The numbers get even more interesting when we start doing <a href="http://devedge.netscape.com/viewsource/2003/espn-interview/01/">Meyer/Davidson ESPN-style</a> estimates and projections. According to a public Microsoft page titled &#8220;<a href="http://www.microsoft.com/backstage/inside.mspx">Inside Microsoft</a>&#8220;, Microsoft&#8217;s published traffic numbers state that microsoft.com got 1.2 billion page views during the month of May 2004. In this presentation, I showed how to decrease the markup from one page by 62%, or 25 KB. I also predicted that about 25 KB is a fair savings estimate per page if Microsoft was to get more aggressive about using CSS site-wide. If multiplied out by an average of 38.7 million page views per day, that 25 KB savings per page could add up to about <strong>924 GB</strong> in bandwidth savings per day, or <strong>329 terabytes</strong> per year.</p>
<p>These numbers alone <em>should</em> be enough to turn a few heads.</p>
<p>Now, toss in the fact that the makeover is just <em>one version</em>, and supports Microsoft&#8217;s more &#8220;advanced&#8221; design, (as currently seen in IE/Win) and does so in many more modern browsers.</p>
<p>Companies like Microsoft may or may not want to maintain just one version of their home page that works in more browsers, loads faster, and is more accessible to all kinds of users and devices. Regardless, I thought it was worth pointing out that it&#8217;s now very possible to demonstrate and walk through how they &#8212; <em>or any company</em> &#8212; <strong>could</strong> create one super-powered version that uses leaner markup, works in more browsers, and increases accessibility. All demonstrated within the time span of an hour or two&#8230;</p>
<h4>Additional Points and Caveats</h4>
<ul class="marked">
<li>If you&#8217;re curious, and like to be thorough, the CSS only increased from 3 KB and 5 KB (IE/Win and non-IE/Win versions, respectively) to <strong>8 KB</strong> for the makeover version.</li>
<li>The <strong>fly-out menus</strong> seen in IE/Win&#8217;s version for two options in the left-side navigation are possible to reproduce as well. All done  with pure CSS and simple, semantic, accessible markup. The makeover uses the <code>:hover</code> pseudo-class to toggle on/off a nested unordered list when mousing over the parent list item. One consideration: IE doesn&#8217;t support <code>:hover</code> on list items, so the JavaScript method Microsoft is already using would still be necessary to support fly-out menus in that browser. Or something like <a href="http://www.alistapart.com/articles/dropdowns/">Suckerfish Dropdowns</a> could be used to keep the same semantic nested-list markup the makeover version uses.</li>
<li>The <strong>hefty jump in number of image tags</strong> for Microsoft&#8217;s current non-IE/Win version is due to heavier spacer-gif usage. The non-IE/Win version also calls every bullet image individually, rather than via one CSS declaration, as the IE/Win and makeover versions do.</li>
<li><strong>All of the JavaScript</strong> found in Microsoft&#8217;s markup was removed. As were hundreds of proprietary attributes in anchor elements that were/are apparently used for click-tracking purposes. Microsoft would likely want to add some of this layer back in &#8212; though hopefully through a valid means of doing so.</li>
<li>As mentioned above, the point of this article is <strong>to publish the potential results and benefits</strong> of using CSS and simpler, more semantic markup to build pages. It merely uses Microsoft as a well-known example. <em>This article intentionally omits linking to the final makeover code.</em> I understand that many people could learn from the work done for this presentation, without seeing the presentation, by studying the changes made to the HTML and CSS. However, I do not want to downplay anyone&#8217;s role at Microsoft by publicly releasing modifications to their source code before having a chance to present them directly to Microsoft, and discuss the changes and techniques with appropriate team members, if they ever wish to do so.</li>
</ul>
<h4>Translations</h4>
<p>This article is translated into the following languages:</p>
<ul class="marked">
<li><strong>Brazilian Portuguese:</strong> <a href="http://www.holiveira.com/arquivo/jogando_as_tabelas_pela_janela.aspx">Jogando as Tabelas Pela Janela</a> <em>by Humberto Oliveira</em></li>
<li><strong>Simplified Chinese:</strong> <a href="http://blog.windia.net/2005/10/throwing-tables-out-window.html">Throwing Tables Out the Window</a> <em>by Gregory Song</em></li>
<li><strong>Dutch:</strong> <a href="http://www.nickverstappen.com/artikelen/tabellengooien/">Tabellen uit het raam gooien</a> <em>by Nick Verstappen</em></li>
<li><strong>French:</strong> <a href="http://www.nyxen.net/articles/css/passer_les_tableaux_par_la_fenetre/">Passer les tableaux par la fenêtre</a> <em>by Benjamin David</em></li>
<li><strong>German:</strong> <a href="http://www.yatil.de/artikel/100056/tabellen-aus-dem-fenster-werfen">Tabellen aus dem Fenster werfen</a> <em>by Eric Eggert</em></li>
<li><strong>Italian:</strong> <a href="http://www.gdesign.it/pages/howto/articoli/notable/notable.php">Gettare le tabelle fuori dalla finestra</a> <em>by Giuseppe Di Carlo</em></li>
<li><strong>Japanese:</strong> <a href="http://www.minutedesign.com/translations/stopdesign/throwing_tables/">Throwing Tables Out the Window</a> <em>by Kohei Yoshino</em></li>
<li><strong>Polish:</strong> <a href="http://www.pavio.net/articles/throwing_tables.html">Wyrzucanie tabel przez okno</a> <em>by Pawel Grzesiak</em></li>
<li><strong>Spanish:</strong> <a href="http://www.theragingche.com/blog/traducciones/throwing_tables/">Tirando las tablas por la ventana</a> <em>by Hermann Kaser</em></li>
<li><strong>Turkish:</strong> <a href="http://www.unbf.ca/altiustu/arsiv/2005/01/tablolari_pence.php">Tablolari Pencereden Disari Atmak</a> <em>by Mehmet Dogan</em></li>
</ul>
<p class="update"><strong>Update:</strong> As of 27 July 2005, the example code and corresponding presentation slides were released and made available to everyone. See <a href="/archive/2005/07/27/still-throwing-tables.html">Still throwing tables</a> for background information and links to the code and presentation referenced in this article.</p>
]]></content:encoded>
			<wfw:commentRss>http://stopdesign.com/archive/2004/07/27/throwing-tables.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>A CSS mosaic</title>
		<link>http://stopdesign.com/archive/2004/07/22/cssmosaic.html</link>
		<comments>http://stopdesign.com/archive/2004/07/22/cssmosaic.html#comments</comments>
		<pubDate>Fri, 23 Jul 2004 05:00:47 +0000</pubDate>
		<dc:creator>Douglas Bowman</dc:creator>
				<category><![CDATA[entries]]></category>
		<category><![CDATA[css]]></category>

		<guid isPermaLink="false">http://70.32.90.75/?p=207</guid>
		<description><![CDATA[<img src="http://www.stopdesign.com/examples/css/vault/mosaic_tn.gif" width="75" height="56" alt="" class="left" /> I just returned from Seattle, where I gave two well-received presentations covering design and CSS. One of my screens from the first presentation used a mosaic I assembled (which I share here) of 144 sites that have been added to the CSS Vault within the last four months. My, how quickly the use of CSS is expanding. <strong>Update:</strong> Steve Smith heard the call and answered: the larger image now uses a complete image map to make every portion of the mosaic clickable to the appropriate site.]]></description>
			<content:encoded><![CDATA[<p>Seattle was great. Period. I wish I could have stayed longer. The weather was incredible while I was there. Not a sign of rain or an overcast sky in sight. Throughout summer months in San Francisco, fog blows in late in the afternoon, often cooling down the temperatures into the 50-60 degree range by dusk. There&#8217;s nothing like being out and about on a warm summer night like those I experienced while in Seattle this week. I wish we had more of those in San Francisco.<span id="more-207"></span></p>
<p>Tuesday evening, after arriving late that afternoon on the same flight as <a href="http://www.veen.com/jeff/">Jeff</a>, we met up for dinner with some former colleagues from our Wired/Lycos days, <a href="http://www.dhendry.org/">Dave Hendry</a> (who now teaches at U-Dub) and <a href="http://www.muldermedia.com/">Steve Mulder</a> (in Seattle also to speak at the conference). We also conned a local friend, <a href="http://www.bigempty.com/">Tim</a>, into joining us to help pick a place for dinner. We ended up at the <a href="http://www.tomdouglas.com/palace/">Palace Kitchen</a> on Fifth Ave. (Which I heartily recommend, by the way. The food was excellent, and the five of us walked right in without a reservation.) Wednesday evening, <a href="http://www.nickfinck.com/journal.html">Nick</a> and Crystal kindly took me to dinner just a block from my hotel (to save me from needing to walk too far). Later that night, I joined <a href="http://www.37signals.com/">Jason</a> and some local cohorts of his for drinks out on the back patio of <a href="http://seattle.citysearch.com/profile/10797929">Elysian</a>, where we enjoyed the previously-mentioned warm summer night, exchanged stories of working with large companies, then drove nearby to see the oddly non-signed mostly-unidentified building of Amazon.com. Earlier today, after an ever-so-brief visit to Seattle&#8217;s new <a href="http://www.spl.org/default.asp?pageID=branch_central&amp;branchID=1">Central Library</a>, just before heading off to the airport for my flight, I met up with <a href="http://www.mikeindustries.com/">Mike Davidson</a> for lunch at <a href="http://www.ejackrabbit.com/">Jackrabbit</a>.</p>
<p>The two presentations I gave on Wednesday went over well, generating lots of interest from the audience. The first presentation I gave on <em>Beautiful Interfaces with CSS</em> had lots of new visuals in it. Many of my text-heavy screens from the last time I did this presentation are now replaced with screenshots, diagrams, pictograms, and photos that demonstrated my talking points. I was a little nervous about the second presentation (on tableless design), since I didn&#8217;t know how well I could pull off a complete redo of a well-known table-heavy site in under an hour. The second was just as successful as the first. I&#8217;ll write a little more about the second presentation in a follow-up entry.</p>
<p>Thought I&#8217;d share one of the images I created for the first presentation. <a href="http://9rules.com/whitespace/">Paul Scrivens</a> maintains (and constantly expands) an excellent showcase of recently-launched or redesigned sites that use CSS extensively in the <a href="http://cssvault.com/">CSS Vault</a>. Obviously the Vault can&#8217;t (and doesn&#8217;t) document every single CSS layout that launches. But the collection is impressive, nonetheless. After obtaining permission from Scrivs, I grabbed screenshots of the last 144 sites (at the time) that had been added to the Vault over the last four months, and assembled a random mosaic that shows the rapid expansion in the popularity and use of CSS in a broad spectrum of site design.</p>
<p>The images were added to the mosaic in reverse-chronological order, following the order they were added to the Vault. The top-left corner starts just a few days ago with <a href="http://www.456bereastreet.com/">456 Berea Street</a>, and works backwards in time, ending somewhere in March (2004) with <a href="http://www.eview360.net/360ware/modules/index.php">Eview 360</a> at the bottom-right. Perhaps you can spot a familiar design or two&#8230;</p>
<p><a class="noline" href="/examples/css/vault/"><img src="/eg/css/vault/mosaic_small.jpg" alt="Mosaic composed from screenshots of 144 sites added to the CSS Vault within the last four months" width="465" height="349" /></a></p>
<p>(<em>Note:</em> Image above links to a page displaying a much larger 376 KB JPEG image, 1200&#215;900 in dimension, which is still only 50% of the size of my original.)</p>
<p><strong>Update:</strong> <a href="http://www.orderedlist.com/">Steve Smith</a> heard the call and answered: the <a href="/examples/css/vault/">larger image</a> now uses a complete image map to make every portion of the mosaic clickable to the appropriate site. Thanks Steve!</p>
]]></content:encoded>
			<wfw:commentRss>http://stopdesign.com/archive/2004/07/22/cssmosaic.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
<!-- WP Super Cache is installed but broken. The path to wp-cache-phase1.php in wp-content/advanced-cache.php must be fixed! -->
