<?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>Flex ID &#187; css</title>
	<atom:link href="http://www.flexid.com/tag/css/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.flexid.com</link>
	<description>A digital product design company and blog about interaction design and user experience</description>
	<lastBuildDate>Wed, 10 Feb 2010 08:27:03 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>My Very Own WordPress Theme</title>
		<link>http://www.flexid.com/2009/01/my-very-own-wordpress-theme/</link>
		<comments>http://www.flexid.com/2009/01/my-very-own-wordpress-theme/#comments</comments>
		<pubDate>Fri, 16 Jan 2009 00:06:37 +0000</pubDate>
		<dc:creator>Adam Korman</dc:creator>
				<category><![CDATA[Design]]></category>
		<category><![CDATA[News]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[critique]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[Hybrid]]></category>
		<category><![CDATA[K2]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://www.flexid.com/?p=76</guid>
		<description><![CDATA[When I recently updated this site and decided to start keeping a blog, I installed WordPress to run it. WordPress is an is an amazing tool in its power and flexibility, but it falls somewhat into the same trap as a lot of software in that it works really well for beginners and experts, but [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.wordpress.com" title="visit the WordPress site"><img src="http://www.flexid.com/wp-content/uploads/2009/01/wordpress.gif" width="210" height="134" class="alignright size-full wp-image-98" style="margin: 10px 15px 10px 15px;" /></a>When I recently updated this site and decided to start keeping a blog, I installed <a title="visit the WordPress site" href="http://www.wordpress.com">WordPress</a> to run it. WordPress is an is an amazing tool in its power and flexibility, but it falls somewhat into the same trap as a lot of software in that it works really well for beginners and experts, but those of us somewhere in the middle are kind of left in the lurch. It&#8217;s not quite as bad about ignoring intermediate users as a lot of software, but there&#8217;s still a gap.</p>
<h4>The Short Story</h4>
<p>Given the choice between taking someone else&#8217;s theme and just applying it to my site or developing one from scratch, I decided to do the later. I got in a little over my head, learned more PHP than I wanted to spend time learning, but in the end I&#8217;m generally happy with the result. So, what you&#8217;re looking at isn&#8217;t just an off-the-shelf WordPress theme with a custom header image, but something I built myself.</p>
<h4>Mind The Gap</h4>
<p>There are a couple of theme frameworks out there that are trying to serve people like me &#8212; they abstract a lot of the options that you might want to customize about WordPress in a way that&#8217;s more friendly for people without coding skills. The two frameworks that I looked at (and worked with for a while) are <a title="visit the K2 site" href="http://getk2.com">K2</a> and <a title="visit the Hybrid site" href="http://themehybrid.com/">Hybrid</a>. They are both powerful and have a lot of things going for them. They are built on the premise of providing a much more robust base theme than the defaults that come with WordPress, while also providing a way for you to customize further by developing a &#8220;child&#8221; theme. The child theme inherits everything the framework does unless you override it.</p>
<p>Unfortunately, they suffer from being so robust and comprehensive that if you want to step outside their expectation of things you should be able to customize easily, it&#8217;s overwhelming. Not only do you have to learn how WordPress works, you have to learn how the framework works. In (briefly) working with them, I was constantly encountering problems where (a) I didn&#8217;t really know the consequences of my actions (was I breaking dependencies that I didn&#8217;t know about?) and (b) when I understood what I needed to do to achieve a certain goal, there seemed like a lot of extra work to make it happen. I kept finding that to do what I wanted I would need to modify the framework just a little bit here and a little bit there to get what I wanted. That kind of defeats the purpose of using a framework with a child theme, so I ventured out on my own. (I don&#8217;t really mean to disparage these in any way, because they are great, definitely worth checking out, and I probably wouldn&#8217;t have been able to develop my own theme so quickly had I not studied these themes).</p>
<h4>What I Was After, What I Got</h4>
<p>Although my goal isn&#8217;t really to release a theme to the public, I created it with the idea in mind that it be easily customized by someone else. I figured that if I did that, it would make my own life easier if I want to change it later. For me that meant:</p>
<ul>
<li>Keeping it lightweight. The more places there are to look to have to change things to your liking, the more daunting it is (and the more likely you&#8217;ll miss something). Instead of the hundreds of files that make up K2 and Hybrid, there are 9 files in my theme (not including images). If I want to change something or if something is broken, there aren&#8217;t a lot of places to check. Their frameworks are about 1.3 MB and 1.7 MB (including images). My theme is about 170 KB.</li>
<li>Keeping it simple. There&#8217;s only one custom function in my theme, and it&#8217;s only a couple of lines long. Instead of creating a bunch of different templates for different page types, I kept just about everything in the index.php file and used a few conditional statements. This may not be the best coding practice, but I don&#8217;t need it to be particularly modular, and this way I can keep track of everything much more easily.</li>
<li>Keeping CSS semantic and separated. I broke my CSS into 3 files: a reset.css file (clears out all the default browser styles) a base.css file (building up things like basic typography, spacing, formatting that was stripped out in the reset file) and the theme&#8217;s style.css file which basically defines all the custom things you see. And everything is named in a meaningful way, rather than in some crazy shorthand. With just reset.css and base.css in place, the site would look like a web site from 1992, but all the content would be there and everything would work.</li>
<li>Putting lots of comments in the code to explain what&#8217;s going on. I figure if I don&#8217;t touch this for 6 months, I&#8217;ll be in trouble if I don&#8217;t include good comments.</li>
</ul>
<p>Unfortunately, there are still some things that I&#8217;d like to change that are going to require some heavy lifting on my part. There are a few things that seem to be buried deep in WordPress&#8217;s functions that shouldn&#8217;t be (text strings and CSS styles). I&#8217;ll probably have to learn some more PHP to write functions to override the behavior I want to change, but I don&#8217;t think there are too many of these things. There are also a couple of minor CSS hacks to get things working across the 4 browsers I tested (Internet Explorer 7, Safari, Firefox 3 on Mac &amp; PC). If I get to updating some of this, I may release the theme to the public.</p>
<h4>A Few Thoughts on How WordPress Could Improve</h4>
<p>I imagine that this has been the trend all along as WordPress has been updated over time, but these are some of the main shifts I&#8217;d like to see with WordPress:</p>
<ul>
<li>Every bit of what can be displayed should be modularly accessible. I should be able to choose to show very granular bits of information or not rather than sometimes getting the kitchen sink.</li>
<li>Text and styles should be completely configurable. Text strings shouldn&#8217;t be written into WordPress functions, you should be able to confure them. Most HTML tags and CSS ids or classes shouldn&#8217;t be hard coded into WordPress functions, you should be able to use the ids and classes you want.</li>
<li>There should be a consistent way to configurable all this stuff. It would be nice to have a web UI to do it all from your WordPress dashboard, but even just having a standard way to call the display of each element, and pass text, HTML or code to display/execute before &amp; after the element would be great. It&#8217;s possible that this last bit exists, but I just haven&#8217;t figured it out yet. My sense is this is that what I want is only partly there.</li>
</ul>
<p>As I use it to blog, I&#8217;m sure I&#8217;ll more to write about WordPress and its UI problems big and small. But for now, long live WordPress!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.flexid.com/2009/01/my-very-own-wordpress-theme/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
