<?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; articles</title>
	<atom:link href="http://stopdesign.com/archive/category/articles/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>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>Sliding Doors of CSS, part II</title>
		<link>http://stopdesign.com/archive/2003/10/30/sliding-doors-of-css-part-ii.html</link>
		<comments>http://stopdesign.com/archive/2003/10/30/sliding-doors-of-css-part-ii.html#comments</comments>
		<pubDate>Thu, 30 Oct 2003 16:39:27 +0000</pubDate>
		<dc:creator>Douglas Bowman</dc:creator>
				<category><![CDATA[articles]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[design]]></category>

		<guid isPermaLink="false">http://70.32.90.75/archive/2003/10/30/sliding-doors-of-css-part-ii.html</guid>
		<description><![CDATA[A follow-up to the popular "Sliding Doors of CSS" (Part I, published at A List Apart) which fills in a few gaps of missing information, and covers additions and variations on the technique introduced in the original article. (<em>Translated into: <a href="http://pompage.net/pompe/portescoulissantes2/">French I</a>, <a href="http://www.ultra-fluide.com/ressources/css/menu-onglets-rollover.htm">French II</a>, <a href="http://www.gdesign.it/pages/howto/articoli/slidcss2/slidcss2.php">Italian</a>, <a href="http://www.id-as.com/arts/ala/slidingdoors2/">Russian</a></em>)]]></description>
			<content:encoded><![CDATA[<p>A little over a week ago, in an article for <acronym title="A List Apart"><cite>ALA</cite></acronym> titled <strong>Sliding Doors of CSS</strong>, I introduced a new technique for layering background images with CSS. We walked through an example of how it could be used to create visually appealing tabs while keeping simple, text-based, semantic markup. We intentionally limited the scope of what the article covered so that it could remain focused on explaining and demonstrating the technique.</p>
<p>With an understanding of the technique firmly in grasp, now we can push it further. ALA just published <a href="http://www.alistapart.com/articles/slidingdoors2/"><strong>Sliding Doors of CSS, Part II</strong></a>, which expands on what we covered the first article (Part I). Specifically, Part II addresses:</p>
<ul>
<li>Scenarios where no tab is highlighted</li>
<li>Combination with Pixy&#8217;s single-image no-preload rollover</li>
<li>A fix for IE/Win&#8217;s limited clickable region</li>
<li>An alternate method for targeting the current tab</li>
<li>Additional notes and uses for the technique</li>
</ul>
<p>Part II fills in some gaps and expands on the utility and behavior of the original technique. If you haven&#8217;t yet read <a title="Sliding Doors of CSS" href="http://www.alistapart.com/articles/slidingdoors/">Part I</a>, I highly recommend you do so before reading Part II. Again, instead of opening up comments here, I&#8217;ll direct any feedback you might have to the <a title="Discuss Sliding Doors of CSS, Part II at ALA" href="http://www.alistapart.com/discuss/slidingdoors2/">discussion on Part II</a> already open at ALA.</p>
<p>(<em>Translated into: <a href="http://pompage.net/pompe/portescoulissantes2/">French I</a>, <a href="http://www.ultra-fluide.com/ressources/css/menu-onglets-rollover.htm">French II</a>, <a href="http://www.gdesign.it/pages/howto/articoli/slidcss2/slidcss2.php">Italian</a>, <a href="http://www.id-as.com/arts/ala/slidingdoors2/">Russian</a></em>)</p>
]]></content:encoded>
			<wfw:commentRss>http://stopdesign.com/archive/2003/10/30/sliding-doors-of-css-part-ii.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Sliding Doors of CSS</title>
		<link>http://stopdesign.com/archive/2003/10/20/sliding-doors.html</link>
		<comments>http://stopdesign.com/archive/2003/10/20/sliding-doors.html#comments</comments>
		<pubDate>Mon, 20 Oct 2003 15:01:59 +0000</pubDate>
		<dc:creator>Douglas Bowman</dc:creator>
				<category><![CDATA[articles]]></category>

		<guid isPermaLink="false">http://70.32.90.75/archive/2003/10/20/sliding-doors-of-css.html</guid>
		<description><![CDATA[It's time to push the limits of CSS and raise another bar for standards-based web design. This tutorial walks through a new Sliding Doors technique for creating visually stunning interface elements with simple, text-based, semantic markup. (<em>Translated into: <a href="http://weblog.mohsentaleb.com/index.php?p=178">Farsi</a>, <a href="http://pompage.net/pompe/portescoulissantes/">French I</a>, <a href="http://www.ultra-fluide.com/ressources/css/menu-onglets.htm">French II</a>, <a href="http://www.gdesign.it/pages/howto/articoli/slidcss/slidcss.php">Italian</a>, <a href="http://www.id-as.com/arts/ala/slidingdoors/">Russian</a></em>)]]></description>
			<content:encoded><![CDATA[<p>It&#8217;s time to push the limits of CSS and raise another bar for standards-based web design. This tutorial walks through a new Sliding Doors technique for creating visually stunning interface elements with simple, text-based, semantic markup. (<em>Translated into: <a href="http://weblog.mohsentaleb.com/index.php?p=178">Farsi</a>, <a href="http://pompage.net/pompe/portescoulissantes/">French I</a>, <a href="http://www.ultra-fluide.com/ressources/css/menu-onglets.htm">French II</a>, <a href="http://www.gdesign.it/pages/howto/articoli/slidcss/slidcss.php">Italian</a>, <a href="http://www.id-as.com/arts/ala/slidingdoors/">Russian</a></em>)</p>
<p>Read the <a href="http://www.alistapart.com/articles/slidingdoors/">full article</a> at A List Apart.</p>
]]></content:encoded>
			<wfw:commentRss>http://stopdesign.com/archive/2003/10/20/sliding-doors.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Design Process, en fran&#231;ais</title>
		<link>http://stopdesign.com/archive/2003/10/02/en-francais.html</link>
		<comments>http://stopdesign.com/archive/2003/10/02/en-francais.html#comments</comments>
		<pubDate>Thu, 02 Oct 2003 23:45:23 +0000</pubDate>
		<dc:creator>Douglas Bowman</dc:creator>
				<category><![CDATA[articles]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[translations]]></category>

		<guid isPermaLink="false">http://70.32.90.75/?p=142</guid>
		<description><![CDATA[If you happen to speak or understand French better than English, I'll point you to a new translation of my design process article at Pompage.net: Les coulisses d'un design.]]></description>
			<content:encoded><![CDATA[<p>Just a few months ago, I wrote an article which walked through my design process for a <a href="http://www.csszengarden.com/?cssfile=017/017.css">CSS Zen Garden entry</a>, titled &#8220;<a href="/also/articles/design_process/">A Design Process Revealed</a>&#8220;.</p>
<p>If you happen to speak or understand French better than English, I&#8217;ll point you to a new translation of this article at Pompage.net: <a href="http://pompage.net/pompe/coulisses/">Les coulisses d&#8217;un design</a>. Thanks to Stéphane Deschamps who did the translation after asking permission. Unfortunately, I speak very little French (pero hablo español mucho más). But since I wrote the original version, I can at least follow along every ten words or so.</p>
]]></content:encoded>
			<wfw:commentRss>http://stopdesign.com/archive/2003/10/02/en-francais.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Making the absolute, relative</title>
		<link>http://stopdesign.com/archive/2003/09/03/absolute.html</link>
		<comments>http://stopdesign.com/archive/2003/09/03/absolute.html#comments</comments>
		<pubDate>Wed, 03 Sep 2003 20:49:33 +0000</pubDate>
		<dc:creator>Douglas Bowman</dc:creator>
				<category><![CDATA[articles]]></category>
		<category><![CDATA[css]]></category>

		<guid isPermaLink="false">http://70.32.90.75/?p=132</guid>
		<description><![CDATA[A reader wrote to question the use of positioning for the Adaptive Path navigation. Certain positioning requirements can be met by wrapping one positioned element with another.]]></description>
			<content:encoded><![CDATA[<p>A curious reader recently asked about the <a href="http://www.adaptivepath.com/">Adaptive Path</a> redesign:</p>
<blockquote><p>&#8220;I&#8217;m puzzling over why with the main nav bar you nested an absolute div into a relative div?&#8221;</p>
</blockquote>
<p>A simple answer to his question is: Because I wanted optimum flexibility for the header and navigation, and to keep the navigation the <strong>same distance</strong> from the logo, no matter how the text is resized.</p>
<p>That&#8217;s the <em>strategic</em> answer providing rationale for the method. But I gather he might also be seeking a <em>tactical</em> answer. To answer his question thoroughly, I&#8217;ll backpedal a bit, and explain the workings of CSS absolute positioning in my own words, provide an example which demonstrates a different effect than the one achieved in the Adaptive Path design, then come back to the AP navigation.</p>
<p><span id="more-132"></span></p>
<h4>Containing Blocks (<em>Positioning Context</em>)</h4>
<p>Nesting an absolute-positioned element within a relative-positioned element is a fairly oft-used technique. More commonly, one may hear the inverse stated: a relative-positioned element is wrapped <em>around</em> an absolute-positioned element.</p>
<p>According to the CSS2 spec, an <a href="http://www.w3.org/TR/CSS2/visuren.html#positioning-scheme">absolute-positioned element</a> is positioned according to its <a href="http://www.w3.org/TR/CSS2/visuren.html#containing-block">containing block</a>. Any element is considered &#8220;<em>positioned</em>&#8221; if it has a position value of <code>relative</code>, <code>absolute</code>, or <code>fixed</code> (anything other than <code>static</code>). &#8220;Static&#8221; is one of the possible values for the position property. It&#8217;s also the default value for any element if no other position is specified. Static basically means an element&#8217;s position is not modified, and the element will appear in the expected <a href="http://www.w3.org/TR/CSS2/visuren.html#normal-flow">normal flow</a> of the document in context with other sibling elements and containing blocks.</p>
<p>If an absolute-positioned element resides within no other containing block, (when no ancestor elements are <em>positioned</em>) it is placed relative to the page boundaries (called the <em>initial containing block</em>). Thus, an element styled with the following rule:</p>
<pre class="codeblock"><code>
#topleft {
&nbsp;&nbsp;position:absolute;
&nbsp;&nbsp;top:0;
&nbsp;&nbsp;left:0;
&nbsp;&nbsp;}
</code></pre>
<p>will get placed in the top-left corner of the page. However, any positioned ancestor establishes a new containing block for all its descendant elements. If an ancestor element gets <em>positioned</em>, the positioning context of any descendant element is reset to the boundaries of that ancestor element (the new containing block). Thus, the <a href="http://www.w3.org/TR/CSS2/visuren.html#position-props">box offsets</a> in the rule above would position the <code>#topleft</code> element at the top-left corner of the positioned ancestor, rather than the top-left corner of the page.</p>
<p>Lost yet? It still sounds like gibberish to me too. I&#8217;ll pull up a common example to help drive it home.</p>
<h4>Dynamic Positioning</h4>
<p>For stopdesign.com, (at the time of this writing) I use absolute positioning for the <em>right column</em> (<code>#subcol</code>). When I designed the templates, I wanted the right column to appear <strong>immediately below</strong> the <em>header</em> (<code>#header</code>) with no overlap and no gaps between each block. The header contains the logo and main navigation. Because the navigation is text, it can be resized via browser controls. This directly affects the height of the entire header. I could have positioned the right column in context to page boundaries, choosing a starting <em>top</em> position based on a measured header height. But since the header varies in height from browser to browser based on default text sizes, this means the right column would sometimes overlap the header if the header grows in height. Or a gap may appear between the header and right column if the header gets smaller than my initial measurement.</p>
<p class="left"><img src="/img/articles/absolute/content_div.gif" width="267" height="116" alt="Because the positioned containing #content element always starts below the header, the absolute-positioned right column adjusts position based on the height of the header." /><br />
<em>Diagram 1</em></p>
<p>To adapt to this variable header height, I use a positioned container element (<code>#content</code>). This container appears in the markup immediately after the header, and is assigned <code>position:relative;</code>. This allows the container element to appear in (and affect) the normal flow of the document; the top of the container will always appear immediately below the bottom of the header, no matter how large or small the header becomes. Because <code>#content</code> is <em>positioned</em>, this also resets the positioning context for any elements it contains. The right column (<code>#subcol</code>) is contained within <code>#content</code>, so the right column gets positioned in the top-right corner of <code>#content</code>, rather than the top-right corner of the page. This allows the right column to adapt in vertical position according to the height of the header, as modeled in <em>Diagram 1</em>.</p>
<h4>Bottom-hugging Navigation</h4>
<p class="left"><img src="/img/articles/absolute/ap_nav1.gif" width="250" height="59" alt="Diagram 2-A shows the default navigation text size." /><br />
<em>Diagram 2-A</em><br />
<img src="/img/articles/absolute/ap_nav2.gif" width="250" height="59" alt="Diagram 2-B shows a larger navigation text size and the same header height." /><br />
<em>Diagram 2-B</em></p>
<p>Finally, I circle back to the Adaptive Path navigation, which represents a different use of this <em>making-absolute-relative</em> technique. I could have easily assigned a fixed <code>margin-top</code> to the navigation and been done with it. But in this case, I want the header to always remain the same height, no matter how large or small the navigation text becomes. In other words, I don&#8217;t want the dark green border below the navigation to change in vertical position, relative to the logo, as shown in <em>Diagrams 2-A</em> and <em>2-B</em>.</p>
<p>Rather, the navigation text is free to be sized up or down, but its baseline position remains constant. It always touches the dark green border, and never overlaps this border. By positioning the <code>#nav</code> element using <code>position:relative;</code> and assigning a specific height to this container (<code>72px</code>), the container establishes a new positioning context for the &#8220;inner&#8221; div. The inner div can now be absolute-positioned to the <strong>bottom</strong> of the <code>#nav</code> container using <code>bottom:0;</code>.</p>
<p>Other uses for this technique certainly exist. It&#8217;s not an uncommon desire to want to reset positioning context for an absolute-positioned element to something other than the page&#8217;s boundaries. The reasoning behind why I do what I do is often obvious to me. But it took a reminder that reasoning isn&#8217;t always so obvious to everyone else. Perhaps this technique is now a little more understood by others (maybe even obvious to them) as well.</p>
<h4>Translations</h4>
<p>This article is translated into the following languages:</p>
<ul>
<li><strong>Brazilian Portuguese:</strong><br />
<a href="http://www.maujor.com/tutorial/absrel.php">Posicionando relativamente o absoluto</a><br />
<em>by Mauricio Samy Silva</em></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://stopdesign.com/archive/2003/09/03/absolute.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>A design process revealed</title>
		<link>http://stopdesign.com/archive/2003/06/02/design-process.html</link>
		<comments>http://stopdesign.com/archive/2003/06/02/design-process.html#comments</comments>
		<pubDate>Mon, 02 Jun 2003 21:27:27 +0000</pubDate>
		<dc:creator>Douglas Bowman</dc:creator>
				<category><![CDATA[articles]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[design]]></category>

		<guid isPermaLink="false">http://70.32.90.75/archive/2003/06/02/a-design-process-revealed-2.html</guid>
		<description><![CDATA[A detailed look at the process and decisions which were part of a design for the <strong>CSS Zen Garden</strong> submission titled, Golden Mean. (<em>Translated into: <a href="http://pompage.net/pompe/coulisses/">French</a></em>)]]></description>
			<content:encoded><![CDATA[<p>For individuals who are <strong>neither</strong> designers <strong>nor</strong> artists, it may seem like those who are, use a lot of smoke and mirrors, magically whipping up each stunning creation. Artistic talent and creativity can certainly aid and enhance the final result, but design, in particular, generally follows a process. Each designer — or design group — develops a method for solving problems, then evolves that method over time. While no one person or group may view a problem from the same perspective, general similarities often appear in their approach.<span id="more-858"></span></p>
<p><a href="http://www.csszengarden.com/?cssfile=017/017.css"><img class="imgleft" title="Final design for the CSS Zen Garden" src="/img/articles/design-process/tn_final.jpg" alt="" width="200" height="148" /></a> As I mentioned in a <a title="In the Garden, from 27 May 2003" href="/log/2003/05/27/in_the_garden.html">related log entry</a> about my <strong>CSS Zen Garden</strong> submission, I thought it might be interesting to share the process I went through to create the design I titled <a href="http://www.csszengarden.com/?cssfile=017/017.css">Golden Mean</a>. Designing one page for the <em>Garden</em> wasn&#8217;t a full-scale project, and definitely not done for a <em>discerning</em> client under contract or any type of compensation agreement. But about halfway through the creation of the piece, I noticed I was following a traditional (albeit somewhat condensed) process often used for larger projects. My process, specific to the <em>Garden</em> project, can be grouped into the following phases:</p>
<h4>Research &amp; Discovery</h4>
<p>Jumping into any design project before examining the problem or task at hand might spin the wheels, but won&#8217;t get you very far. Any project, no matter how big or small, can benefit from research and planning before the work begins. <strong>Design is no exception.</strong> If discovery begins before the exploration commences, the probability of finding a successful direction for the project only increases. The amount of time spent on this phase is usually proportional to the overall scope and planned duration of the project.</p>
<p>For the <em>Garden</em> design, I began by studying the content (text) of the existing page, making a model in my head of the document flow and hierarchy. I aggregated the sections of the page into logical groupings and assigned each a priority. I also spent time thinking about the purpose of the project, along with the ideas and concepts Dave Shea was trying to communicate when he created the <em>Garden</em> space and opened it up for other designers to contribute. Showing off advanced CSS trickery is not the goal of this project. Instead, it attempts to demonstrate the beauty and flexibility achievable when designers grasp all the potential of CSS, using it as a tool to create a well-designed aesthetically-pleasing page which remains accessible, well-structured, and efficiently coded.</p>
<h4>Competitive Analysis</h4>
<p>Another helpful task in the process involves looking at pre-existing ideas and executions created by peers, mentors, heros, and/or competitors. <em>Competitive analysis</em> identifies the strengths and weaknesses of those existing designs. It can reveal gaps which still need to be filled and shortcomings which should be met. The ability to study what others have designed for the same (or similar) problem lends a sizeable advantage, since a great deal can be learned from their successes and failures.</p>
<p>When I finally came across free time to start thinking about one of my own submissions, I had the advantage of being able to study many submissions which already resided in the <em>Garden</em>. I studied the concept and execution of each piece. I admired the cleverness and creativity of some of the existing designs. I noted similarities and differences between all of them. I sought out the characteristics which weren&#8217;t yet present.</p>
<h4>Exploration</h4>
<p>When tackling a design project with limitless creative boundaries, I like to begin by creating lists of relevant words, topics, and phrases. Sort of a free-form brainstorming of thoughts related to the project at hand. Some are abstract and loose, some are concrete and tightly related. By creating these lists, I try to gain a <strong>broadened perspective</strong> of the problem I&#8217;m attempting to solve, and often uncover additional ideas and concepts which weren&#8217;t so obvious at the outset. My <em>Garden</em> lists contained groupings of words and thoughts related to gardening, plants and flowers found in a garden, zen-like qualities, beauty and beautiful things, and characteristics of page design. I also created lists of all the elements, IDs, and classes used in Dave&#8217;s HTML, some of which made subtle appearances in the final design.</p>
<h4>Thumbnail Sketching</h4>
<p><a href="/img/articles/design-process/sketches.gif"><img class="imgleft" title="Early thumbnail sketches for page design, .gif, 46 KB" src="/img/articles/design-process/tn_sketches.gif" alt="" width="150" height="115" /></a> Once I exhausted the idea branching, I started drawing <a href="/img/articles/design-process/sketches.gif">thumbnail sketches</a> <span class="sub">[.gif, 46 KB]</span> on a pad of paper. <em>Thumbnails</em> are small sketches which can literally be as small as your thumbnail, or as big as a couple inches in width and/or height. Think of the kind of drawing that might be seen on a cocktail napkin. Thumbnails are intended to capture the basic ideas for page composition, like header placement, column structure, and text alignment without allowing the temptation to focus on small details too early in the process. They can be quickly sketched allowing rapid idea iteration. Don&#8217;t like the one that just took <strong>30 seconds</strong> to draw? Start another one right beside it. To keep them general, it&#8217;s best to start with rather small sketches. Then slowly size them up as more details need to be worked out.</p>
<h4>Typography</h4>
<p><a href="/img/articles/design-process/typechoice.gif"><img class="imgleft" title="Screenshot of multiple typefaces, .gif, 28 KB" src="/img/articles/design-process/tn_typechoice.gif" alt="" width="150" height="142" /></a> Once I had a few rough compositions I liked, I began studying typefaces and letterforms. To me, typography is a crucial element in setting the formalness or informality of a design. Evocations of different typefaces are subliminal to most people, but a designer will go to great lengths to ensure the selection and construction of type complements the mood of the piece. The easiest way to examine the effect of different typefaces for this project was to create an Illustrator file, and begin setting &#8220;CSS Zen Garden&#8221; and &#8220;The Beauty of CSS Design&#8221; in <a href="/img/articles/design-process/typechoice.gif">multiple fonts</a> <span class="sub">[.gif, 28 KB]</span>. I had an idea of what I wanted. I also have a rather high familiarity with lots of typefaces. But I wanted to explore all the possibilities. I was looking for something I thought characterized clever design. Something fun or unique which played to the ideas beginning to form in my head.</p>
<p><a href="/img/articles/design-process/typeeffects.gif"><img class="imgleft" title="Screenshot of Morpheus typeface, .gif, 18 KB" src="/img/articles/design-process/tn_typeeffects.gif" alt="" width="150" height="120" /></a> I selected the final typeface — <em>Morpheus</em> — because of its <a href="/img/articles/design-process/typeeffects.gif">beautiful letterforms</a> <span class="sub">[.gif, 18 KB]</span>. The uniqueness of the <strong>M</strong> and <strong>N</strong>, the gothic arches of the <strong>A</strong> and <strong>U</strong>, the extensions of the <strong>K</strong> and <strong>R</strong>, the way specific letters intimately replicate numerical forms like the <strong>S</strong> and lower-case <strong>d</strong>, the decorative diamond which dots the lower-case <strong>i</strong> and graces the bowls of rounded letters such as the <strong>D</strong>, <strong>O</strong>, and <strong>Q</strong>. In addition to my affinity for the letterforms, the pronounced medieval style of the headline type created a perfect contrast with the sans-serif modernity of supporting keywords and titles which I set in <em>Helvetica</em>.</p>
<h4>Imagery</h4>
<p>Imagery is not always necessary in design. In fact, some of the most beautiful designs use type alone. However, selectively chosen photography or illustration can create enormous visual impact for a design, adding dimension, implication, and a deeper level of understanding far beyond a well-written headline or paragraph of text.</p>
<p><a href="/img/articles/design-process/imagery.jpg"><img class="imgleft" title="[Final image used as base art, © Copyright 2003 by Lee Pettet, .jpg, 87 KB]" src="/img/articles/design-process/tn_imagery.jpg" alt="" width="150" height="116" /></a> My next step in the process was to research imagery which could be used as the foundation for <strong>background texture</strong>, and act as <strong>supporting visual content</strong>. The lists I created earlier in the <em>Exploration</em> phase helped provide direction and spawned additional ideas. After searching though my own stockpiles of digital photos and artwork, and a few <a href="http://www.sxc.hu/">external</a> <a href="http://www.istockphoto.com/">resources</a> of royalty-free images, I selected several potential pieces which already possessed some of the layering I wanted to include in the artwork for the page. I chose to use a manipulated <a title="[.jpg, 87 KB]" href="/img/articles/design-process/imagery.jpg">image of a daisy</a> <span class="sub">[© Copyright 2003 by Lee Pettet]</span> as the base art for this <em>Garden</em> design.</p>
<p>I&#8217;ve long been a fan of layering type for the purposes of creating texture and added relevance. I also like combining text and imagery to achieve subtle variations in color and value. (For historical examples, see relevant portfolio pieces: <a href="/portfolio/advertising/hotwired_40.html">01</a>, <a href="/portfolio/advertising/webmonkey_jungle.html">02</a>, <a href="/portfolio/illustrations/infinity_vision.html">03</a>). Just as with other pieces I&#8217;ve created, I built up the <em>Garden</em> type over time, taking it through a deliberate process of addition, subtraction, and manipulation.</p>
<h4>Composition</h4>
<p>I tend to keep imagery confined to a particular region of the layout, or reserve it for a specific purpose. In my opinion, the overuse of photography or illustration can quickly create a crowded, chaotic design which just obscures the intention or message of the piece. Contrast is an element of design which I love to work with when creating anything visual. This comes just as much into play with use of imagery in a composition as it does within the image itself. Effectively integrating imagery into a design requires an awareness of balance and tension. Compact areas of motion and activity, countered with spaces for the eye to rest and relax.</p>
<p><a href="/img/articles/design-process/layout.gif"><img class="imgleft" src="/img/articles/design-process/tn_layout.gif" alt="" width="150" height="120" /></a> With a few rough comp ideas sketched out, and initial choices for typeface and imagery made, I began combining them in more developed digital sketches. Flipping back and forth between Illustrator and Photoshop, importing art from one into the other, the design was pushed closer and closer to it&#8217;s final mocked-up state. When designing outside HTML and CSS, I focus on constructing the language and guidelines of the page, determining proportions, widths and heights, gutters and white space, specifying complementing typefaces, choosing relative type size and leading, and the application of color as a means of both obvious and subtle accent.</p>
<h4>Execution &amp; Implementation</h4>
<p>I&#8217;ve already covered some of the issues I encountered when constructing the CSS for this <em>Garden</em> submission. (See the <a title="In the Garden, from 27 May 2003" href="/log/2003/05/27/in_the_garden.html">related log entry</a> for details.) I started writing the CSS for the design at a high-level, focusing on the layout structure, major backgrounds, and large regions of the page. Groups of elements were positioned in correct locations. Then I applied the necessary detail to each element, from the top of the page, down.</p>
<p>As I composed the style sheet and tested the page in various browsers, the design changed in small ways. Some changes were sacrifices. Some were evolved improvements. The addition of a background pattern to the left and right of the primary image was an added benefit of discovering I couldn&#8217;t position the header as I originally intended. The vertical alignment wasn&#8217;t refined until after each column was already positioned on the page. (The left and right columns were originally staggered in vertical starting position.)</p>
<p>These changes were possible because I, as the designer <strong>and</strong> style sheet author, could make decisions on the fly about what was important to recreate exactly, what could bend a little, and where the flexibility existed for the design to evolve as it was coded. This unity of thought at the final stage of the process is a strong reason the designer and person responsible for generating the HTML and/or CSS need should be working together as closely as possible, if the two are not already the same person.</p>
<h4>And More</h4>
<p>Although this is where I stopped for the CSS Zen Garden submission, the ever-changing design process does not end here. This summary is not an exhaustive one. Additional review and approval cycles, more design iterations, and frequent user testing all may be inserted anywhere into this process. It&#8217;s not always predictable, and may not always function like clockwork. But unless a designer is working for an illusionist, design is certainly not a magical combination of smoke and mirrors either. Maybe just a <em>sleight-of-hand</em> now and then.</p>
<p class="sub"><strong>Note:</strong> This article also exists in French at Pompage.net, translated (with permission) by Stéphane Deschamps: <a href="http://pompage.net/pompe/coulisses/">Les coulisses d&#8217;un design</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://stopdesign.com/archive/2003/06/02/design-process.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Using background-image to replace text</title>
		<link>http://stopdesign.com/archive/2003/03/07/replace-text.html</link>
		<comments>http://stopdesign.com/archive/2003/03/07/replace-text.html#comments</comments>
		<pubDate>Fri, 07 Mar 2003 21:31:54 +0000</pubDate>
		<dc:creator>Douglas Bowman</dc:creator>
				<category><![CDATA[articles]]></category>
		<category><![CDATA[css]]></category>

		<guid isPermaLink="false">http://70.32.90.75/archive/2003/03/07/using-background-image-to-replace-text.html</guid>
		<description><![CDATA[Enhance the presentation of type on the Web via a simple CSS trick, while preserving accessibility for image-exclusive browsing and indexing applications. (<em>Translated into: <a href="http://www.webmascon.com/topics/coding/35a.asp">Russian</a></em>)]]></description>
			<content:encoded><![CDATA[<p class="note"><strong>Please note:</strong> The original technique (FIR) described in the body of this article is no longer recommended for use, as it makes the hidden text completely inaccessible for certain screen readers. Instead, see one of the alternative techniques mentioned at the end of the article under &#8220;<a href="#notes">Important Notes</a>&#8220;.</p>
<p class="sub"><em>This tutorial assumes a base-level knowledge of CSS, but not much more. Beyond that, it also assumes care will be taken to use these methods fairly and responsibly with well-structured markup.</em></p>
<h4>Introduction</h4>
<p>Do you still crave the typographic control of creating headlines and decorative type with <strong>images</strong> instead of <strong>pure HTML text</strong>? Even with all the options we have for styling text with CSS, sometimes there&#8217;s just nothing that beats the indulgence of opening up Adobe Photoshop, then setting type in your favorite font at just the right size, kerning, and tracking. You know if you save it as an image and place it on a webpage, anyone with an image-enabled browser will see your typographic mastery just as you intended. Right?<span id="more-857"></span></p>
<p>But we&#8217;ve been beaten over the head so many times with preaching that claims using images for Web type will send us sliding straight to hell. So much so, we&#8217;ve dropped our visual standards and given up on the idea that type on the Web can ever be beautiful again. That is, until CSS font downloading is perfected and reliable many years from now.</p>
<p>We&#8217;ve been taught images aren&#8217;t as accessible as pure marked-up HTML text. This is especially true for assistive browsing software and small-screen devices. So we feel guilty using images for type. Images don&#8217;t show up in text-only browsers like Lynx, nor in browsers where users disable image rendering. Even if we&#8217;re responsible, always including equivalent <code>alt</code> attributes for each image tag, search robots often index meta data (like <code>alt</code> and <code>title</code>) differently than pure HTML text. This is understandable if we consider the logical importance of heading text when it&#8217;s appropriately marked up inside <code>&lt;h<em>n</em>&gt;&lt;/h<em>n</em>&gt;</code> tags. We won&#8217;t even touch on file size problems and download times caused by excessive image use.</p>
<p>Let&#8217;s put all that knowledge on hold for a moment. Images aren&#8217;t that bad, are they? With a few simple style tricks and a little cautious planning and testing, type on the Web can be guiltlessly beautiful <strong>and</strong> equally accessible (<a title="see Important Notes below" href="#notes">see notes below</a>) <strong>and</strong> perfectly indexable, all at the same time. It&#8217;s time to spread those wings again.</p>
<h4>The Concept</h4>
<p>In principle, the concept is very simple. We write a short string of text (eg. &#8220;Hello world!&#8221;) and surround it with two sets of basic HTML tags. Then we use CSS to hide the HTML text and display a background image containing the exact same words instead of the original text. That&#8217;s it. Replacing text with an image is no more complicated than this.</p>
<p>Before we write any CSS, let&#8217;s start with some basic markup. Imagine we have a simple HTML snippet like the following:</p>
<pre class="codeblock"><code>
&lt;div&gt;
  &lt;span&gt;Hello world!&lt;/span&gt;
&lt;/div&gt;
</code></pre>
<p>Of course we could apply style directly to that text. But we want more drama and finesse than any <code>font-family</code> or <code>text-transform</code> property can ever bring us. We want flourish. After all, if we&#8217;re saying &#8220;Hello!&#8221; to the world, we might as well do it with panache, right?</p>
<p>We pick out the perfect typeface for our worldly salutation: <strong>Shelley Allegro</strong>. A well-known script face in the design world, we discover Shelley has just the right flair to win the hearts of millions as we say Hello. We guess this font may only be available on 1.65% of the computer systems out there. So we take the time to create an image representing the same Hello message. The image will display our message in Shelley Allegro in every image-enabled browser, regardless of whether the font is installed on that system:</p>
<p><img title="image showing 'Hello world!' set in Shelley Allegro Script" src="/img/articles/replace-text/hello_world.gif" alt="Hello world!" width="217" height="35" /></p>
<p>We take note of the image height, (<em>35 pixels</em>) since it will be useful a bit later.</p>
<p>So we have some HTML, a glorious text message, and one extraneous image. What do we do with them? Let&#8217;s roll up our sleeves and use a little style to replace the text with our new image.</p>
<h4>Fahrner Image Replacement (FIR)</h4>
<p>This method for replacing text with an image is named for Todd Fahrner, one of the persons originally credited with the idea. You may wonder why there are two sets of tags surrounding our Hello message in the HTML above. A <code>div</code> and a <code>span</code>. Technically the two tags could be anything. In fact, your custom solution may require something a bit more semantic. But we&#8217;ll choose these two generic wrappers for this example.</p>
<p>The CSS which executes the swap consists of two simple rules. The first uses <code>background</code> properties to pull our image into the background of the <code>div</code>:</p>
<pre class="codeblock"><code>
div {
  background-image:url("hello_world.gif");
  background-repeat:no-repeat;
  height:35px;
  }
</code></pre>
<p>Note the <code>height</code> property in that rule. It matches the actual height of our image, ensuring the div is tall enough to display all of our image, yet takes up no more height than necessary. The <code>background-repeat</code> property ensures the image only appears once, instead of tiling across the width of our browser window.</p>
<p>The only remaining task is hiding the raw text which we left in our HTML. This is where <code>span</code> comes in. We need a second element so we can address it separately. Hiding the text is easy:</p>
<pre class="codeblock"><code>
span {display:none;}
</code></pre>
<p>Combine those two rules with the HTML we wrote earlier, and we end up with a <a href="/img/articles/replace-text/ex_hello.html"><strong>simple example</strong></a>. So simple, we wonder why it&#8217;s taken all this text so far to explain it?</p>
<p>Of course, we&#8217;d never leave our markup that simple. Nor would we likely be able to continue using such elementary style rules. Otherwise, every <code>div</code> we use would contain our &#8220;Hello world!&#8221; background image, and anything we place inside <code>&lt;span&gt;&lt;/span&gt;</code> tags would magically disappear.</p>
<p>Let&#8217;s move on to a few real-world examples.</p>
<h4>Example 1: Page Titles</h4>
<p>One example of text-replacement is readily available on many of the main pages of <strong>stopdesign.com</strong>. Notice the primary titles for each section or page (ie.: the words &#8220;Recent Log Entries&#8221; on the <a href="http://www.stopdesign.com/">front page</a>) They aren&#8217;t created by clever font-styling rules in the CSS. Those are images. Lovingly crafted to match the typeface of the logo. Matted to appropriate colors matching the background on which each is placed. It&#8217;s a subtle effect, but one that&#8217;s part of this site&#8217;s identity.</p>
<p>If we view the source, or toggle the CSS off, we see the title image is not part of the markup for that page. In fact, where most of us probably see an image, the markup uses simple <code>&lt;h1&gt;</code>&#8216;s and pure HTML text to label that page and proclaim the title&#8217;s prominence and hierarchy in the document structure.</p>
<p>Screen readers, small-screen devices, and indexing robots <del datetime="20030313">will</del> <a title="see Important Notes below" href="#notes"><ins datetime="20030313">should</ins>*</a> ignore any <strong>screen</strong> stylesheets, getting the pure text marked up as a simple <code>&lt;h1&gt;</code>.</p>
<p>One method of matching images to specific pages is to base the title image on the section in which it lives. Each <code>body</code> could be given an <strong>id</strong> or <strong>class</strong> unique to that section. Through the use of <em>descendant selectors</em>, each <code>&lt;h1&gt;</code> could be tied to an appropriate image based on the class of the body that contains it. But each section may contain more than one type of page, and we may want a more appropriate title for subpages of each section.</p>
<p>Instead, it may be wiser to assign each title a unique id matching or abbreviating the words it represents. For example, the <em>Recent Log Entries</em> title on <a href="http://www.stopdesign.com/">stopdesign&#8217;s front page</a> is assigned an id of &#8220;<code>t-reclog</code>&#8220;. The &#8220;t-&#8221; prefix is added to help create values which won&#8217;t be accidentally repeated in other element id values. &#8220;t-&#8221; always stands for <em>title</em> in this case. This id makes the markup a little redundant, but allows for the greatest flexibility in assigning any title image to any page.</p>
<p>Each replaced title needs a couple simple style properties assigned to it which are common to <strong>all replaced titles</strong>. In addition to the id, each title which needs to be &#8220;swapped&#8221; with an image is given a class of &#8220;<code>swap</code>&#8220;. The swap class exists so the same properties can be applied to all replaced titles without having to repeat those common properties in every unique title id rule. Alternatively, it avoids the need to specify every unique id appearing throughout the site just to create one rule of common properties. The application of the swap class ensures only those <code>&lt;h1&gt;</code>&#8216;s possessing <code>class="swap"</code> get setup for replacement. Other non-replaced <code>&lt;h1&gt;</code>&#8216;s can exist elsewhere on the site without needing to create rules which override the swap rules. The class addition is a small sacrifice in markup purity for huge simplification gains in the CSS.</p>
<p>For replaced titles on stopdesign.com, the common CSS looks like:</p>
<pre class="codeblock"><code>
h1.swap {
  height:22px;
  background-repeat:no-repeat;
  }
h1.swap span {display:none;}
</code></pre>
<p>And unique id rules look like:</p>
<pre class="codeblock"><code>
h1#t-recentlog {background-image:url("/img/title_reclog.gif");}
h1#t-articles {background-image:url("/img/title_articles.gif");}
h1#t-portfolio {background-image:url("/img/title_port.gif");}
</code></pre>
<p>For ease of editing and maintenance, all page title rules <del>are</del> <ins>were</ins> separated into a separate <code>titles.css</code> file, which is imported by a linked master <code>screen.css</code> file.</p>
<h4>Example 2: Controlled Drop Caps</h4>
<p>Ever wanted a special <em>drop cap</em> to decorate the first letter of a paragraph? Yet didn&#8217;t like the clunky form created by bumping that HTML letter up to 500% of normal <code>font-size</code>? What about using an image instead? Of course we wouldn&#8217;t want to change the way that paragraph were read or presented should the image not be displayed. If we employ a slight variation of the replace method demonstrated above, we can use almost any type of drop cap desired. For example, let&#8217;s once again call on our familiar typeface, <em>Shelley Allegro</em>, to create an &#8220;E&#8221; which starts this same paragraph:</p>
<p><img title="image showing a capital 'E' set in Shelley Allegro Script" src="/img/articles/replace-text/dropcap_e.gif" alt="E" width="46" height="63" /></p>
<p>We won&#8217;t want the first letter of the paragraph to be separated on its own line (as a <code>div</code> would do). In fact, let&#8217;s say we want absolutely no special emphasis to be added when stylesheets are not used to view or read this paragraph. In this case, we&#8217;ll use two sets of generic <code>span</code>&#8216;s to markup the first letter of our paragraph:</p>
<pre class="codeblock"><code>
&lt;p&gt;&lt;span class="dropcap"&gt;&lt;span&gt;E&lt;/span&gt;&lt;/span&gt;ver wanted a ...
</code></pre>
<p>Remember the outer element is what we use to apply the background image. The inner element is what we use to hide the raw HTML text. In this example, we&#8217;ll also be <em>floating</em> the outer element so the rest of the paragraph wraps around our drop cap. We&#8217;ll also set the <code>display</code> property to &#8220;<code>block</code>&#8221; to ensure compatibility with the widest range of browsers (even though use of <code>float</code> should do this automatically). We create the following CSS:</p>
<pre class="codeblock"><code>
span.dropcap {
  display:block;
  float:left;
  width:46px;
  height:63px;
  margin-right:5px;
  background-image:url("dropcap_e.gif");
  background-repeat:no-repeat;
  }
span.dropcap span {display:none;}
</code></pre>
<p>The width and height in the first rule above are taken from the image dimensions. We&#8217;ve also applied a small right-side <code>margin</code> to pad our drop cap image. Combine the HTML and CSS, apply a small amount of style to the paragraph itself, and we have a simple <a href="/img/articles/replace-text/ex_dropcap.html"><strong>drop cap example</strong></a>.</p>
<h4>More Examples</h4>
<p>Creative uses for text replacement are only limited by our imagination. Other possibilities might include:</p>
<ul>
<li>Type-based logos and names</li>
<li>Site headers</li>
<li>Pull-quotes</li>
<li>Single-word substitution for cosmetic effect (like &#8220;and&#8221; or &#8220;vs.&#8221;)</li>
</ul>
<p>The method may also be useful for changing themes with alternate stylesheets. Just as you could change colors and styling, an entirely different image could be used for each theme.</p>
<h4>Responsible Replacement</h4>
<p>This replacement method needs to be exercised with a certain amount of responsibility. Care should be taken in matching the text of each replacing image with the same raw text in the HTML. Otherwise, it wouldn&#8217;t be fair to give visitors seeing full-blown stylesheets different textual content than visitors seeing, hearing, or feeling content without the same stylesheet applied. The replacing image can alter type characteristics such as size, color, capitalization, or tightened word-spacing. But those stylistic decisions are made as part of the design process, and should not be applied to the HTML text itself. For example, sandwiching words together (removal of word-spacing, as in the stopdesign.com title images) in the HTML would create unreadable gibberish for screen readers and braille clients. Thus, the HTML text should be spaced, capitalized, and spelled appropriately as if it were completely unstyled in the first place.</p>
<p>Several <strong>very important</strong> caveats and disadvantages of this method need to be mentioned:</p>
<p>First, although the method is better [than only including raw images] for search indexing robots, it hinders the ability to find the replaced text on the page when the user executes a &#8220;Find on this page&#8221; search, or when the user attempts to copy and paste the text.</p>
<p>Second, although it may be rare that images are disabled in a browser, but CSS remains enabled, in these cases, CSS will still hide the text, yet may be unable to display the images, resulting in an unintended blank space with no text showing at all. As stated, these cases should be rare: when one is disabled or not available, the other is often the same.</p>
<p>Third, image text is not overridable by the user: they will not be able to resize the text, nor alter its color or contrast to make it more legible (as is possible with raw text).</p>
<p><strong>These disadvantages need to be carefully considered in determining if this method is acceptable in specific instances.</strong> If this method is employed, the caveats should also be taken into consideration as the images used are being designed. Small or low-contrast text within the image would be irresponsible. Color-blindness may be a huge issue to consider when choosing colors and values for the text and/or background.</p>
<p>And remember, too much (or incorrect use) of a good thing can always come back to bite and betray. When we experiment with this method, we use it sparingly and with much caution.</p>
<h4>Browser Compatibility</h4>
<p class="sub"><strong>Mac:</strong> Camino .7+, IE 5+, Mozilla, Netscape 6+, OmniWeb 4+, Opera 5+, Safari</p>
<p class="sub"><strong>Win:</strong> Firebird .6+, IE 5+, Mozilla, Netscape 6+, Opera 5+, Phoenix .5+</p>
<h4 id="notes">Important Notes</h4>
<p>This method has been tested and proven to <strong>fail</strong> in several popular screen readers. See Joe Clark&#8217;s well-researched, thoughtfully-written piece at <cite>A List Apart</cite>: <a href="http://www.alistapart.com/articles/fir/"><strong>Facts and Opinion About Fahrner Image Replacement</strong></a>.</p>
<p>The findings Joe presents in his article obviously defeat the original intentions of the method itself: creation of a more flexible <strong>and</strong> accessible solution than a simple <code>&lt;img&gt;</code> with <code>alt</code> text. The flaw with this method is that it assumes text hidden using <code>display:none</code> gets hidden in visual browsers, but will still get read aloud by a screen reader. This is not the case in several screen readers, even if we specify the &#8220;<em>screen</em>&#8221; media type for our style sheet. Screen readers also pay attention to the <em>screen</em> media type, since they literally <em>read</em> from what&#8217;s displayed on screen. Most screen readers don&#8217;t support the &#8220;<em>aural</em>&#8221; media type, so there&#8217;s no benefit to specifying <code>speak</code> properties in an aural style sheet.</p>
<p>Some have suggested the use of <code>visibility:hidden;</code> instead of <code>display:none;</code>, but this also prevents the text from being read in most of the same screen readers. Current versions of JAWS &#8212; arguably the most widely used screen reader &#8212; <em>will</em> read text hidden with FIR. But judging from behavior of other screen readers, we should not rely on this being the case with future versions of JAWS.</p>
<p>As is true with any content-altering technique, the advantages and disadvantages should be carefully considered for each unique case before being implemented. Since this article was written, several alternative methods have surfaced, each with their own advantages. However, no methods have emerged as the &#8220;Holy Grail&#8221; of text/image replacement. Existing alternatives to FIR are listed below:</p>
<dl>
<dt><strong>Leahy/Langridge Image Replacement (LIR)</strong></dt>
<dd>This method eliminates the span by setting <code>height</code> of the parent element to <code>0</code> and overflow to <code>hidden</code>, which hides the text. Then it uses top padding to force the element to the height of the image in the background. Conceived at similar times by <a title="Image Replacement--No Span" href="http://www.moronicbajebus.com/playground/cssplay/image-replacement/">Seamus Leahy</a> and <a title="A new image replacement technique" href="http://www.kryogenix.org/code/browser/lir/">Stuart Langridge</a>.</dd>
<dt><strong>Rundle&#8217;s Text-Indent Method</strong></dt>
<dd><a title="Accessible Image Replacement" href="http://phark.typepad.com/phark/2003/08/accessible_imag.html">Mike Rundle</a> devised a simple method of using the CSS <code>text-indent</code> property to shift contained text outside the visible element window.</dd>
<dt><strong>Cover-up Method</strong></dt>
<dd>Another method devised by both <a href="http://www.pixy.cz/blogg/clanky/css-obrazkove-odkazy-02.html">Petr Stanicek (a.k.a. &#8220;Pixy&#8221;)</a> and <a title="Self-dubbed, Gilder Image Transform technique" href="http://blog.tom.me.uk/2003/08/07/">Tom Gilder</a> uses an empty span element to position a background image <em>on top of</em> the text, allowing the text to show up when images are turned off (or don&#8217;t load) in the browser.</dd>
</dl>
<p>For further reading on the subject of FIR, refer to the previously mentioned article, <a title="@ A List Apart, written by Joe Clark, 20 October 2003" href="http://www.alistapart.com/articles/fir/"><strong>Facts and Opinion About Fahrner Image Replacement</strong></a>, and Dave Shea&#8217;s <a title="@ Digital Web, written by Dave Shea, 5 August 2003" href="http://www.digital-web.com/features/feature_2003-08.shtml"><strong>In Defense of Fahrner Image Replacement</strong></a> at <cite>Digital Web</cite>.</p>
]]></content:encoded>
			<wfw:commentRss>http://stopdesign.com/archive/2003/03/07/replace-text.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Confessions of a designer</title>
		<link>http://stopdesign.com/archive/2002/11/22/confessions.html</link>
		<comments>http://stopdesign.com/archive/2002/11/22/confessions.html#comments</comments>
		<pubDate>Fri, 22 Nov 2002 21:24:28 +0000</pubDate>
		<dc:creator>Douglas Bowman</dc:creator>
				<category><![CDATA[articles]]></category>
		<category><![CDATA[apple]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[microsoft]]></category>

		<guid isPermaLink="false">http://70.32.90.75/archive/2002/11/22/confessions-of-a-designer-2.html</guid>
		<description><![CDATA[Recounting the downward spiral and early recovery phase of a designer's switch to the Windows operating system.]]></description>
			<content:encoded><![CDATA[<p><em>My name is Doug, and I&#8217;m a recovering Windows user.</em> A couple of years ago, I made the made the switch in the opposite direction of Apple&#8217;s latest <a href="http://www.apple.com/switch/">campaign</a>. I can even recount how the downward spiral started.<span id="more-856"></span></p>
<p><img class="imgleft" src="/img/articles/confessions/apple.gif" alt="[image: Apple's apple]" width="50" height="55" /> I was a die-hard Mac fanatic. One of those arrogant designers who shrugged off Microsoft&#8217;s market share and expected <strong>76% of the computing world</strong> to revolve around my operating system of choice. If you weren&#8217;t on Mac, you didn&#8217;t matter.</p>
<p><img class="imgright" src="/img/articles/confessions/classic.gif" alt="[thumbnail image: Macintosh Classic]" width="85" height="73" /> The legacy goes back to a 1 Mhz <strong>Apple II+</strong> that my Dad bought while I was still in junior high. Apple introduced me to the digital world of green monochrome screens, <acronym title="Beginner's All-purpose Symbolic Instruction Code">BASIC</acronym>, and the creation of horrible continuous-paper banners created with PrintShop and a dot matrix printer. I began working with an 8Mhz/1MB RAM <strong>Mac Classic</strong> made publicly available in a student government office my freshman year of college. I plunked down my own chunk of change on a <strong>Mac Centris 610</strong> two years later, which quickly paid for itself with freelance design work.</p>
<p><img class="imgleft" src="/img/articles/confessions/powerbook_g3.gif" alt="[thumbnail image: Macintosh PowerBook G3]" width="85" height="88" /> Wired bought a small group of <strong>PowerBook G3s</strong> for us at the end of 1997, and I fell in love with the Mac design aesthetic. A sleek black notebook with subtle curves, and one of the first working portable DVD drives. It was a beautiful machine worthy of showing off everywhere I went. Six months later, I upgraded my outdated Centris for a beige <strong>PowerMac G3</strong> desktop, two months before the bondi-blue G3&#8242;s came out.</p>
<h4>Downfall</h4>
<p>My Mac idolatry began to wane the following year. My days were filled with system crashes, extension conflicts, frozen applications just before saving, and font manager nightmares. Wired MIS began to drop support for Macs, so designers were left to fix their own problems. Lycos had swallowed up Wired by that time, and <strong>everyone</strong> back in Boston was using Windows. It was too painful to share files or communicate cross-country with a company who knew nothing but 95 and NT.</p>
<p>In August of 1999, I stepped out into the streets and bought my first dose of the dark side. Well, sort of. The cool part of the dark side. If any designer ever owns a Windows machine, it&#8217;s at least partially understandable when the dealer is Sony and the vice is Vaio. Such was my case, but this purchase was a bad hit &#8212; this super-slim <strong>Vaio Z505</strong> ran Windows 98. A horrible introduction to a recreational use of Windows. I could suddenly share files and what not with my Boston colleagues, but I was greeted on a daily basis with the <acronym title="Blue Screen of Death">BSoD</acronym>, and could never successfully enter <em>standby</em> or <em>hibernation</em> modes. I&#8217;m sure both Sony <em>and</em> Microsoft share the blame for that one.</p>
<p><img class="imgright" src="/img/articles/confessions/r505.gif" alt="[thumbnail image: Sony Vaio R505]" width="85" height="67" /> The following year, I eBayed my original Vaio in exchange for higher grade stuff. A newly redesigned dockable <strong>Vaio R505</strong> in the same series, this time running Win2000. And this is where my addiction grew. I finally learned what Windows was all about. Why it was used. Why Microsoft had such high market share. Win2k was stable.</p>
<p><em>I never crashed when using it.</em></p>
<p>My fonts loaded correctly every time. I could reliably collaborate with teams in Boston via NetMeeting. I studied the OS inside and out, and learned how to make it mine. I could push pixels around in Photoshop and have the power of IIS under the hood on the same machine.</p>
<h4>Slippery Slope</h4>
<p><strong><acronym title="Active Server Pages">ASP</acronym></strong> was a welcome addition to the tired HTML and <acronym title="Server Side Includes">SSI</acronym> tricks of this designer. I could suddenly create dynamic pages and serve them directly from my laptop. Entire design prototypes could be built using one or two templates. I learned Windows server administration, and took over the job of managing a machine for our User Experience group back in Boston through terminal services. I built a custom <acronym title="Content Management System">CMS</acronym> to manage the Lycos Style Guide, and learned how to make connections with databases to power portions of the site.</p>
<p><em>I was hooked on a drug from Redmond.</em></p>
<p>My Wired G3 <em>PowerBrick</em> sat in a file cabinet drawer while I fell further down the rabbit hole. The G3 was a cinder block by today&#8217;s laptop standards. I didn&#8217;t want to lug around an 8-pound back-breaker. It couldn&#8217;t even handle the newfound tasks that my made life so much easier. My shiny bluish-silver Vaio was barely over 4 lbs., and it tagged along with me everywhere I went. When it came time to upgrade software, the Windows versions got the attention, while my collection of Mac-based software continued to grow sorely outdated, further taking away any remaining rationale to break my current habit.</p>
<h4>Loss of Hope</h4>
<p><img class="imgleft" src="/img/articles/confessions/powerbook_g4.gif" alt="[thumbnail image: Macintosh PowerBook G4]" width="85" height="63" /> Toward the end of 2001, I desperately wanted to replace my G3 desktop. The big box generated an unbearably loud hum, and it took up way too much real estate beneath my desk. I debated giving up Mac entirely in exchange for my new addiction. But I couldn&#8217;t bear the thought of completely abandoning my previous life. I purchased a gorgeous new <strong>PowerBook G4</strong> at wholesale cost from a counselor at CompUSA. I suppose it was an attempt at salvaging my sense of loyalty which was gasping for air. The G4 booted OS 9 by default. But it also had this new thing called <strong>OS X</strong> that I wasn&#8217;t so sure about.</p>
<p><img class="imgright" src="/img/articles/confessions/osx.gif" alt="[thumbnail image: original X logo for the OS X]" width="52" height="64" /> I had long fallen out of Mac circles, and knew nothing about OS X, other than what I had seen at MacWorld. The major OS rebuild seemed rather disappointing to me. All I could think was that it looked a little too sugar-coated for a professional designer. And the screen type was so big. Was Apple compensating for poor anti-aliasing? I didn&#8217;t understand all the changes in OS X, and hadn&#8217;t yet taken much time to learn my way around a Unix file system.</p>
<p><em>The darkness was closing in.</em></p>
<p>Sadly, the G4 saw very little light of day once it was purchased. It sat conveniently out of the way inside a hall closet. I pulled it out now and then to cross-check my stylesheet hacks on Wired News prototypes over the summer. Hardly the full potential of a 667 Mhz G4 processor. But what else did I need it for?</p>
<h4>Denial</h4>
<p><img class="imgleft" src="/img/articles/confessions/windows.gif" alt="[thumbnail image: flying Windows logo]" width="50" height="45" /> Around March of 2002, I upgraded to <strong>Windows XP Pro</strong>. The deal with the dark side was sealed. Finally a stable operating system from Microsoft that possessed plenty of eye appeal. Many of the new features of XP made so much logical sense. Grouping of taskbar buttons, hiding inactive system tray icons, built in support for wireless networking, and common tasks based on folder type. It proved to me that Microsoft had been conducting a lot of user testing and was paying attention to the resulting feedback.</p>
<p><em>The pusher got smarter.</em></p>
<p>XP was fast and slick. It made me feel good. It stole some of the <acronym title="User Interface">UI</acronym> philosophy from Apple, but didn&#8217;t go overboard with decoration. Put XP beside OS X, and purely based on the visuals, I&#8217;d pick the former any day, especially considering smaller screens. XP didn&#8217;t abuse the screen real estate that OS X carelessly occupied. I could customize the interface in XP by turning off any of the visual effects I found overly gratuitous. I missed that level of control in OS X.</p>
<p>Whenever I pulled the G4 out of the closet, it felt like the OS just got in my way. It didn&#8217;t allow me to accomplish a task without concentrating on the awkwardness of the OS itself. By this time, I knew Windows inside and out &#8212; how to manipulate it and make it work for me. In OS X, it seemed I was always scrolling to find something. Nothing ever fit on the screen, even though the PowerBook screen was 3 inches larger (and 128 pixels wider) than my Vaio. I had no reason to go back. I was completely comfortable with Windows.</p>
<h4>Admission</h4>
<p>At what point did I realize the problem? This required admitting a problem might actually exist. Was there one? After enough friends and colleagues expressed their surprise and dismay in the depth of my dependency on the Windows environment, I started to wonder.</p>
<p><em>The first step toward recovery is admitting the problem.</em></p>
<p>Could such a reliance be harmful? Had I gotten sucked too deep down the hole? It was time to step back and start evaluating. Time to consciously reconsider my dependency and take another look from the outside. I&#8217;ve always had intrigue with the new Mac OS, and a fascination that Apple chose to base its underpinnings on open source software. But I hadn&#8217;t taken the time to give up what I used to know so well about OS 9.</p>
<p><img class="imgleft" src="/img/articles/confessions/book_osx.gif" alt="[cover image: Mac OS X, The Missing Manual, by David Pogue]" width="60" height="75" /> Last weekend, I took my first two steps and reopened my mind to other possibilities. I bit the bullet and upgraded the G4&#8242;s OS to version 10.2. I also picked up a copy of David Pogue&#8217;s <a href="http://www.oreilly.com/catalog/macosxmm2/"><cite>Mac OS X, The Missing Manual</cite></a>. It&#8217;s taking me time to relearn something so entirely foreign. But I&#8217;m quickly discovering the reasons behind the changes, and the advantages and power of this new OS.</p>
<p>As I acknowledge the problem with one drug, I&#8217;m only attempting to replace it with another. I&#8217;m learning how Apple can help temper my dependency on Windows. But I won&#8217;t ever be able to escape Windows entirely. It&#8217;s ubiquitous. No matter when, or how much I turn back to Mac, I&#8217;ll always be a recovering Windows user.</p>
]]></content:encoded>
			<wfw:commentRss>http://stopdesign.com/archive/2002/11/22/confessions.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>An interview with Douglas Bowman of Wired News</title>
		<link>http://stopdesign.com/archive/2002/11/11/an-interview-with-douglas-bowman-of-wired-news.html</link>
		<comments>http://stopdesign.com/archive/2002/11/11/an-interview-with-douglas-bowman-of-wired-news.html#comments</comments>
		<pubDate>Mon, 11 Nov 2002 21:36:06 +0000</pubDate>
		<dc:creator>Douglas Bowman</dc:creator>
				<category><![CDATA[articles]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[wired]]></category>

		<guid isPermaLink="false">http://70.32.90.75/archive/2002/11/11/an-interview-with-douglas-bowman-of-wired-news.html</guid>
		<description><![CDATA[An interview conducted by CSS guru and standards evangelist, Eric Meyer, covering the ins and outs of the conversion to a standards-based design for Wired News. (<em>Translated into: <a href="http://www.minutedesign.com/translations/devedge/wired-interview/">Japanese</a></em>)]]></description>
			<content:encoded><![CDATA[<p>An interview conducted by CSS guru and standards evangelist, Eric Meyer, covering the ins and outs of the conversion to a standards-based design for Wired News. <a href="https://developer.mozilla.org/En/An_Interview_With_Douglas_Bowman_of_Wired_News">Read the original article here</a>.</p>
<p>(Translated into: <a href="http://www.minutedesign.com/translations/devedge/wired-interview/">Japanese</a>)</p>
]]></content:encoded>
			<wfw:commentRss>http://stopdesign.com/archive/2002/11/11/an-interview-with-douglas-bowman-of-wired-news.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! -->
