planing to plan

To make a theme.. any theme I start with a starting point. Not from complete scratch. I used to start with the current default theme that came with WordPress and create a child-theme. More recently I’m much happier to use a starter theme. This is a codebase for a theme designer to start with. Not something you can use as an actual theme. It has very little CSS or structure. If you activate it, you don’t get errors. You get all the text and links from WordPress you would expect, just all dribbling down the left side of your page, one text after another. No layout at all.. and very basic text formatting.

My current starter theme of choice is Underscores. Or ‘_s’. It’s made by the fine folks behind WordPress, Automattic. That way you know it’s up to the best practices coding standards recommending for theme design.

Next up is the layout framework. This is a shortcut that helps you lay out the page features with gutters, column widths all calculated for you. There is usually a CSS reset involved. That creates a redundancy conflict with the CSS reset that comes with the theme.. I’ll have to manage that. A recent favorite of mine is Twitter Bootstrap. It makes use of jQuery and has lot’s of cool javascript plugins available that can help you quickly add a slider or accordion group.  There are all kinds of css selectors you can use to help with buttons and alerts and so-on. I try to use Bootstrap for just it’s layout functionality. I keep my theme CSS enqueued *after* Bootstrap to ensure I can over-ride any styling I don’t like. I want the site to be very functional.. but not ‘look’ like just another Bootstrap site. I can recognize Bootstrap elements in other websites and I’m sure others do as well.

Next on the list is Javascript libraries. Like many web designers, I’m self-taught. I actually started web design back in 1997. It’s been like skipping a stone overs a pond. I kept being repelled by web design because of how difficult is was to make anything look and behave the way I wanted without resorting to flash. I think I was using Flash when it was 2.0.  Even back then I didn’t think it was a great solution.. it was just the only one I could find. Now Flash is one it’s way out and we can do just about anything fancy with HTML5, CSS3 and Javascript. We still have to pay attention to older browsers though. At the time of this writing it looks like we can now discard IE7 as a concern. At least I can for my website.  A few years ago the water seemed better for swimming so I jumped in, mixing metaphors in my wake. HTML5 and CSS3 were the first things I learned along with PHP. After that, Javascript. I don’t know javascript, but we’ve had lunch on occasion. I primarily use jQuery and jQuery plugins. I can build stuff in javascript, I have rarely had to create anything from scratch, and getting conflicting jQuery plugins to work together is a great way to start learning javascript.

For javascript libraries.. I’m looking at starting with the following:

  • jQuery(1.10.x, not ready to drop IE 8 users just yet)
  • Bootstrap(just the plugins I find myself using)
  • Foundation 4.2 with jQuery 1.10.x (not Zepto or jQuery 2.0)
  • modernizer.js

Now there are lots of other web technologies out there I know how to use that I’m not including. There are also some that I know about, but I’m just not making things that would make use of that yet. Node.js is a good example of that. I’m doing interesting things on the front-end with javascript, but my themes are only starting to take on application capabilities. Server-side javascript isn’t something I need yet.