In 2010 WordPress will get a new Default Theme, replacing the beloved/hated Kubrick Theme with a new Theme called 2010. I’ve got opinions on the matter. Oh, do I have opinions. I’ve even gone so far as to create a working idea for a new Default WordPress Theme. Read on to find out more.
Principles for a WordPress Default Theme
I’ve set myself some principles for designing a Default Theme.
- It should look like a really nice blog theme with a “WordPress” feel
- It should be easy to modify and tweak by directly editing template files
- It should be easy to Child Theme without directly editing template files
These 3 principles sound pretty simple, right? Well, not really. If you’re just talking about them, yeah maybe. But talking about a WordPress Theme doesn’t make one. Are they so simple when you actually try and make a WordPress Theme that follows these principles?
No. Not really.
First of all, it’s relatively easy to design a WordPress Theme knowing it will only be used by people who have a specific purpose for it. You only download a WordPress Theme if you want to use it, right? Well, how do you design a WordPress Theme that will be forced on people? Most especially, forced on people who are new to WordPress? People who may take one look at the Default Theme and slap their monitors in horror lest they look on something so hideous, so, so limiting ever again?
Plus, who says a Default Theme should look like a “blog” Theme?
And, while knowing that most people start their WordPress-theming with the Default Theme and, increasingly, their web designing with the Default Theme—knowing and suffering under that awful pressure and responsibility—how do you make it easy to tweak simply and make it easy to Child Theme—without turning it into a Framework Theme.
Trust me here. While people may be asking for a Framework as the Default Theme they’re not all asking for the same thing. Something as robust as Thematic will have people running screaming away from it. People that want Framework Themes can download Framework Themes. I’m not so sure every new user should have one forced on them.
Introducing The Kirby Theme
So I made the Kirby Theme. Actions speak louder than words, right? In the same way, code speaks louder than ideas. What better way to show off your ideas for a new Default Theme than to actually code one up? I get a fun project and you get a new Theme.
Will all my ideas for a new Theme be good? Nope. That’s awesome though. Let’s get some of the bad ideas out in the open before we’re stuck with them.
Will some of my ideas be good? I hope so! Download the Theme; read this long rambling post; leave some comments; argue with me. I’ll probably listen to your ideas and might just figure out how to make Kirby better. And your ideas just might help whatever Theme becomes the new Default Theme get better too.
Important note: I’ve never been a fan of my own design work (I’m my worst critic) so I won’t try and sell you too much on what I’ve done here except to say that I’ve kept things intentionally simple. But I will ask that if the design is holding you back please, please look at the structure of this thing. It’s super flexible and easy to modify and I’d hate to see it ignored because of any failings I’ve made visually.
The Layout of The Kirby Theme
Anyone want to argue about fixed-width designs versus fluid layouts? Sigh. I don’t. I’ve had the argument long enough with myself. Once I decided on including a changeable header image I decided I was creating a fixed-width layout.
But while the design is fixed width the markup isn’t. Kirby could look like anything you want it to be if you’re tweaking it. Or modifying it with a Child Theme. Which, frankly, is a great idea (once it gets a little more stable, design-wise, that is). Regardless, however you want to modify it, I’ve included some sample layouts—in
kirby/layouts/—that you can use to get you started.
If you’re just tweaking Kirby directly you can choose a new layout simply by editing one line in style.css—
@import url('layouts/2c-r.css');—and selecting a new file to import. Why not make a setting where you can choose your layout from a drop down menu? I don’t know. That’s always been a Theme setting that rubbed me the wrong way and I think it adds another level of weirdness when you’re Child Theming. You’ll have to convince me this is a good idea.
And If you didn’t notice, I’m ripping off Kubrick. That default header image is essentially Kubrick’s (only Kirby’s is squared off) and the color scheme is almost identical (Kirby is more contrast-ey). In my opinion there’s no sense in throwing out everything. Like it or not, the big blue header, gray background, and 2-column layout look like WordPress.
The point: A Default Theme can have a fixed width. But don’t worry. With the right markup it can look like anything—even a fluid width site. If the Default Theme was somewhat reminiscent of what’s come before that might not be so bad.
Like I said, I’ve included a changeable header that you can update via the WordPress backend. Something people new to blogging with WordPress always want. But we also want to have Kirby work great for Child Themes, right? Even ones that aren’t as wide as Kirby. How about we filter those header constants?
define('HEADER_IMAGE_WIDTH', apply_filters('kirby_header_image_width', '940')); define('HEADER_IMAGE_HEIGHT', apply_filters('kirby_header_image_height', '198'));
The idea here is that anything simple in a Default Theme that can’t be altered with CSS needs to be filtered. That goes for avatars too. It’s such a simple thing and goes a long way towards making a Default Theme usable by people looking to use Child Themes. And if it’s used in a Default Theme it’ll spread out into other Themes and make them more usable too.
Also the Title and Description have been largely left alone. A Default Theme needs to accommodate ridiculously long titles and descriptions. Something I hope Kirby does.
The point: A changeable header is a good idea. Filtering image sizes is probably a good idea too. And you can’t get too fancy with the design.
The Content Area
Whether I failed at it or not I wanted the content to be easy to read. Inspired by the 100% Easy-2-Read Standard and Wilson Miner’s latest redesign I’ve gone big. Potentially horsey 16-pixel big. But nothing ventured, nothing gained.
Most websites are crammed with small text that’s a pain to read. Why? There is no reason for squeezing so much information onto the screen. It’s just a stupid collective mistake that dates back to a time when screens were really, really small.
Blogs should be about the content, content that’s easy to read. And a WordPress Default Theme should be a blog theme (yes, even though WordPress is a CMS—which it is, if you didn’t know). That’s all I have to say about that.
Further to the general blogginess of the Kirby Theme, if you fill out your Bio in your user profile you get a nice little About The Author section at the bottom of your posts. Bonus!
The point: WordPress is first and foremost a blogging tool and the Default Theme should still look like a Blog Theme. Readability is important.
Kirby has 2 sidebars. Even though it looks like there’s only one. Which could be … annoying—if it weren’t awesome. Let me explain.
This is something I learned from the now famous Sandbox Theme and like to think I improved on slightly with the Thematic Theme and now Kirby. Even if your basic Theme look is a 2-column one, having 2 sidebars with a particular HTML structure will allow you to duplicate almost any blog or site layout. 1-column, 2-column, 3-column, or something different. Have you seen all the different Thematic Child Themes? There’s a reason they can all look so different and in most cases it’s not “hooks and filters”—it’s the HTML structure.
If you markup any Theme just so, there are very few layouts you can’t accomplish with a few simple CSS tweaks.
The point: Structure, structure, structure. 2 sidebars are still needed if we want a Default Theme to be flexible—even if it looks like there’s only one sidebar.
The footer has four little widget areas for those that long for the fattest of fat footers. Which is kinda cool. Using is_active_sidebar() the markup only appears if you’re actually using them. Again, kinda cool but not the coolest.
Cooler still is the editable footer message imported from Thematic. It’s all shortcoded up for you too so you can do things like easily add a copyright date or a link back to the Theme landing page—or not. It’s editable. You can take all that stuff out of there without worrying about editing theme files.
Why no widget area here? Because I don’t want to encourage anyone to put The Calendar Widget where the design really needs a bit of text. Sometimes limitations are good.
Ooh! I also added a fancier link to WordPress itself, using the lovely description “Semantic Personal Publishing Platform” as the title text. I love that description. Also the simple CSS image replacement is a working example for people looking to replace their site titles with a logo.
The point: People like to edit the stuff in their footers without touching code. Let them. Simple CSS is its own tutorial.
Other Cool Stuff
This Theme should have other cool stuff, shouldn’t it? I’m working on it (I’ve got a Kirby to-do list).
Right now it has a Feature Template that makes the content full-width and moves the sidebars into 2 columns underneath. You could do a lot of stuff with this template. Using The Section Widget Plugin and Query Posts Widget Plugin you could even make your home page look sorta like a magazine. But I’m not sure if this is the best way to go about this sorta thing.
Which brings me to the big problem with designing something intended to be a Default Theme. Where do you start and where do you end with the cool stuff? Originally I intended on adding Thumbnail support (and may yet change my mind on this again) but, well, that’s not really a default thing is it? But, then, what is the default mode of a WordPress blog?
What does a Default Theme have to do? A big question. And, besides being one that needs to be answered, is sure to generate an answer that will annoy as many people as it does please.
In other words, a fun project! WordPress Themers, have a go at it yourself. You might contribute some cool ideas to the next WordPress Default Theme and at the very least you’ll have a new Theme to contribute back to the WordPress ecosystem. No small thing at all.
The point: You can’t just go putting everything in a Default Theme. But it’s worth thinking about and more Themers should give it a shot.
And Remember …
The Kirby Theme: What sucks? What’s awesome? Where have I gone off the rails in my pursuit of a Default Theme? Let me know in the comments. Don’t be shy.
- The Trac Proposal for a new Default Theme
- 2010: A Theme Odyssey—a blog post on the official WordPress blog about the new Default Theme
- New Default WordPress Theme?—Weigh in here with your ideas for a new Default Theme
- Thoughts on a new WordPress Default Theme—Kristin K. Wangen’s thoughts on the matter
- A Theme Called 2010—As always at WordPress Tavern, there is some good discussion here
- The Kirby Theme
- The Kirby Theme To-Do List
- Introducing Kirby Junior—Theme Developer Justin Tadlock on Kirby and Default Themes
- First Look at Kirby, WordPress 2010 Default Theme Concept by Ian Stewart—Blogging Pro reviews Kirby and talks about Default Theme ideas