Designing the box

A few years ago, I wrote an article on parent/child theme development on my personal blog. At the time, there were plenty of people both agreeing and disagreeing with me. Of course, few people had been doing parent/child theme development as long as I had either.

The article had focused on the difference between frameworks, parent themes, and child themes. However, it never explained my vision for how all of these things come together, particularly how parent and child themes should work (we’ll leave frameworks out of this discussion).

A few days ago, I sent out emails to people who were interested in creating a child theme for my newest parent theme. The response was overwhelmingly positive. However, I was then in a position in which I had to explain the vision in technical terms to many people who were unfamiliar with my process. I’m not sure how well I explained it; thus, I’m behind the keyboard tapping out the words of this article.

The box

When I refer to designing the box, I’m referring to having a limited set of design options available to the designer. The design options might include things like colors, fonts, and images.

Imagine I handed you the most beautifully-crafted wooden box that you’ve ever seen in your life. Then, I told you that you are allowed to paint this box. You can’t build new drawers on the box. You can’t add wheels to roll it on the ground. You can’t alter the size or shape of the box. You’re simply allowed to paint the box with any design you want. The purpose of this is not to limit you as a box painter. The purpose is to give you the freedom to make the box as beautiful as it can possibly be.

The thing to keep in mind is that you’re not the box carpenter. You’re the box painter.

If you can differentiate between the two, you’re well on your way to understanding my vision for parent/child themes because that’s it in a nutshell.

Why have limits on child themes?

The major reasons for limits are the reasons listed in the post I linked to above. I’m not going to regurgitate that entire post. I recommend reading it if you’re unfamiliar with my philosophy on the subject.

I consider child themes useful for two reasons:

  • Upgradibility: They allow you to make upgrades to the parent theme without losing customizations.
  • Skinnability: You can add custom “skins” to an already-existing theme. This particularly applies to publicly-released child themes.

So, if I created a really nice box, you can do things like make a Christmas design for the box. A St. Patrick’s Day design. Or, even have spring, summer, autumn, and winter designs. The box will always look and work like the same box. It might just have a different paint job.

The parent themes of the future

The newest theme I’m working on has taken me nearly three months to complete. I’ve learned a lot about theme development in that time. It has also been a culmination of much of the work I’ve done over the past five or so years.

This theme is just the first theme.

I feel like I’m starting Theme Hybrid anew. This is going to be a drastic change in direction for this site. So, I’m going to let you all on a little bit of the plan.

Keeping with the box analogy, my new theme is the first box in a new line of boxes. This box has an extremely specific purpose. It’s probably not going to be useful outside of that purpose. That’s fine. However, the good news is that I plan on building other kinds of boxes. If this first box doesn’t suit your needs, there’s no need to worry. There’s also no need to try your hand at carpentry. Let me handle that. I’ll craft a box that’s better suited to you. Then, I’ll let you paint it.

Why is all of this important?

Theme development has gotten much more complex over the years. Adding custom functionality to a child theme makes it harder for parent theme developers like myself to upgrade the parent theme without worrying about breaking something you’ve built.

This is why I’ve given child theme authors a very specific and limited set of guidelines. These guidelines allow the use of forward-compatible, future-proof code that shouldn’t be an issue for a very long time (although, you can never be 100% sure of that).

Exactly 50 people signed up to make child themes for this newest theme. My hope is that those who make a child theme are a shining example of this vision (assuming they follow all of my guidelines).

With limited options for child theme designers, it allows me to continue improving the theme. It also allows me to continue perfecting things like handling various screen sizes, non-English languages, right-to-left text, and many other things.

As I build my own child themes for this theme in the coming months, I hope the vision will become clearer. I’m sure I’ll write more on the subject as well.

In the meantime, who’s looking forward to the new theme? Expect a public release within a week.

13 Responses

  1. wiselywoven wiselywoven November 20, 2013 at 6:59 am |

    I’m excited about your renewed vision Justin. Looking forward to what unfolds.

  2. Emyr Thomas Emyr Thomas November 20, 2013 at 7:19 am |

    I like your vision, and your careful definition of what a child theme should be. I’m excited to see the new ‘boxes” (a.k.a. parent themes) you have in store. Will we possibly see themes that are built to support third party plugins, for example an eCommerce theme, or an Event Calendar theme in the future?

  3. hayley hayley November 20, 2013 at 8:11 am |

    Makes perfect sense, I’m looking forward to seeing the box range grow. Might I ask what Box number is for?

    1. hayley hayley November 20, 2013 at 8:14 am |

      1, Box number 1 *facepalm*

  4. […] child themes would in my opinion be to restrict developers to just “paint the box” as Justin Tadlock explains about his latest parent theme […]

  5. iVideoWeb iVideoWeb November 21, 2013 at 1:20 am |

    Hi Justin,
    Its a good thinking, but I don’t agree with your parent child theme ideology (to its full extent), I am thinking the reason for this approach (from yo) is so you can quickly grow your Core Framework without worrying about backwards compatibility, or worrying about breaking any child themes, but I believe providing more boxes means you are more bound, you will have to be extra careful for you parent themes (boxes), as you will know now the responsibility is 100% on you, and its not gonna restrict people still from adding functionality to child themes etc (instead of just working with css / colors etc).

    Instead your Hybrid Framework is a unique framework which allows us (dev’s) to just plug and play functionality using extensions system, which you should focus on by providing more useful extensions such as (restaurant related, ecommerce related, membership related and so on), so in child themes we can just enable disable those extensions based on our project needs, and you can’t provide themes for every scenario or every website need, its better known or understood by the developer building the website, and responsibility lies on them not you.

    One of the main reasons I am using your Hybrid Core framework is its extension system, as it not only allow me to use existing extensions instead I can build my own and use the same logic for my own extensions and in child theme just enable / disable them according to project needs.

    Its just my own ideology, and I am sure everybody have their own point of view about parent / child themes etc.

    But as I know (most of you will agree with me), every theme has about 80% same features, functionality, requirements on every new project / website, so its kind of redundent effort from my point of view, that’s the reason we opt for parent / child themes approach.

    Just my two cents suggestion,


  6. Jason DAvis Jason DAvis December 12, 2013 at 3:02 pm |

    Justin, I can’t wait to get my hands on / play with / your box. Just couldn’t help myself.

    Cheers to you though – totally clear vision and I’ve got nothing but respect for it.


  7. iVideoWeb iVideoWeb December 13, 2013 at 5:52 am |

    Thanks for clearing my confusion. I think you were just thinking out loud this time otherwise its been your standpoint since last few years, that’s more comforting as I have found your contributions and plans to meet my needs and liking.

    Thanks for the wonderful work you have been doing and will keep doing what you do best. ;)

  8. […] child themes would in my opinion be to restrict developers to just “paint the box” as Justin Tadlock explains about his latest parent theme […]

  9. Dr. John Lee Dr. John Lee January 24, 2014 at 9:52 pm |

    Thank you so much!

  10. Natali Natali February 13, 2014 at 11:41 am |

    Good evening!

    I has installed theme Unicum and I have some questions, including child theme, but I can not ask them. On you can not answer the questions. Do you have support free or it only for money?

    If only for the money, then maybe we can help each other mutually? I can be translated into Russian, and you help me to configure it.

    PS. I’m sorry, I do not speak English, use Google translator online, so there may be problems with understanding.

Comments are closed.