This review of WooThemes Canvas is my first theme review after writing my 4 Basic Criteria to Evaluate a Theme Framework post a while ago. I chose to start with Canvas because it’s a theme I’ve used often in the last 2 years and it’s been receiving a few major updates recently. As one of my 4 criteria is stability through upgrades, I can speak to that with more experience with the theme now.
A Short Introduction to WooThemes Canvas
Canvas is WooThemes‘ flagship theme. It is not a theme framework in the traditional sense of the term. It’s more of a base parent theme you can build from and modify, usually using a child theme (the preferred way to modify and extend a parent theme). It’s also what is called an “options based” theme, meaning that it offers an extensive admin area in the WordPress backend where you can adjust colors, fonts, some layout parameters, etc. That’s in comparison with more traditional theme frameworks like Genesis and iThemes Builder where you would generally need to edit or create CSS code or template files in a child theme directly to modify the default parent theme output.
Another difference is that, WooThemes does not sell pre-designed child themes for Canvas like Genesis and iThemes Builder do or even skins like Thesis or Headway. Canvas comes as it is and it’s your job to tweak it to achieve the results you want. That’s not a good or bad thing in itself. It’s how I usually prefer to work with any theme framework myself. But it’s something to keep in mind if you are not a designer or do not work with one and would like to select a more finished design to start from instead of starting from the very basic and minimalist baseline that Canvas and other frameworks provide out of the box. To be fair though, I think that Canvas is a well designed basic theme out of the box but it’s not as minimalistic or polished as some of StudioPress’ latest offerings for example. But that’s normal, it’s meant as a blank canvas.[Update - 2014-10-04: The above is no longer true. As of a couple months ago, WooThemes have stared creating pre-designed child themes for Canvas and released two of them: Uno and Duo.]
With that said, Canvas is indeed WooThemes most powerful and flexible theme by far. But more on that after we cover my 4 basic criteria.
Canvas and My 4 Basic Selection Criteria
The reason I will start all my reviews wit these criteria is that, no matter how powerful and flexible a theme is, if it fails any of these criteria, it may become a pain to deal with in the future. If updates are disruptive or the theme vendor doesn’t support its product well, you can be left hanging with a broken theme or a site you cannot update and no obvious way out or upgrade path other than a complete theme change. So how does Canvas hold up here?
1- Does Canvas Respect WordPress Standards and Best Practices?
In general, yes it does. It fully supports the standard WordPress templates hierarchy and does it with more granularity than most. It means that, like the latest default WordPress themes like TwentyTwelve, “it makes it easy to reuse sections of code and an easy way for child themes to replace sections of their parent theme” (from the WordPress Codex) using functions like get_template_part().
Also, Canvas makes most of its functions “pluggable”, meaning you can override them in a child theme. So you can tweak the theme output very precisely and with great specificity in a child theme’s functions.php file without even using template files. That is a great thing.
On the other hand, one of the real issues I had with Canvas (which is extended upon in criteria #3 below) is its reliance on built in “features” that should have been handled by plugins from the get go like shortcodes or Custom Post Types like its Portfolio, and Feedback features. Fortunately, WooThemes have been addressing this for a few months now and they already moved the built-in Feedback and Features custom post types to plugins. But this bundling of functionality is still an unfortunate trend in theme development, a trend where theme developers try to put too much functionality into themes. There’s much worse offenders here than WooThemes but this is a bad idea no matter what because it can cause major issues down the line when (not if, but when) you change themes. Nothing related to content should be handled by your theme as that content will be gone when you change themes. That is calling for trouble. You’ll probably change your theme more often than you’ll change your plugins.
Another small thing I sometimes struggled with is that WooThemes often use their own native functions for things like images display instead of native WordPress functions directly. These are often wrappers for the native functions simplifying the actual code in templates but it’s an additional layer of abstraction to learn and I usually find that unnecessary. But it’s a minor thing in the grand scheme of things and a matter of opinion.
2- Does the Theme Framework Support Industry Standards and Best Practices?
Canvas’s HTML output is semantic HTML5 so it meets this criteria easily. It doesn’t go as far as Genesis 2.0 which also added Schema.org markup but Canvas’ HTML output is clean, lightweight, easy to read and logical. Canvas is also responsive out of the box and does a good job of it… except for menus for me. It’s a matter of opinion but I’m not a fan of how Canvas has implemented mobile menus. You can try the Canvas demo in your smart phone to see it. Again, this is a matter of opinion and a small thing. In this respect, I much prefer the flexibility offered by the Dynamik Web Site Builder child theme for Genesis which offers several options for mobile menu styles and a way to “delay” the mobile display menu to the second responsive break point. This is great for visitors using tablets, especially now that there’s a design trend for layout widths around 1140 pixels which is wider than a tablet screen in landscape orientation (usually around 1024px width).
The one real issue I have with Canvas here is with CSS. It’s often way too hard to override default styles in a child theme. In general you should rarely have to use !important to override a parent theme style rule but I find I often have to with Canvas. More so than with other theme frameworks and this can get annoying. In this regard, Genesis is a charm to work with in comparison.
3- Is The Theme Stable Through Minor Updates and Major Upgrades
I’m glad I waited this long to write my Canvas review because, this is where the theme has come short for me recently. I started using Canvas right after the release of version 5.0 and the first updates were fine. Second decimal updates like 5.0.3 to 5.0.4 for example rarely if ever cause problems because they’re usually bug fix updates. But the 5.2 and 5.3 updates had some changes that forced me to edit some client CSS. This was relatively minor stuff but still, quite annoying. Then version 5.5 came and it had major design and functional changes that made it a very disruptive update for me.
Now there could be a philosophical debate to be had here that I won’t go into. Generally in software development, first decimal updates can and often bring new features and significant changes. But the changes in Canvas 5.5 should probably have been done in a major 5.x to 6.x upgrade when you expect these kinds of game changing moves. By comparison, I have gone through 3 major updates of iThemes Builder (3.x to 4.x to 5.x) and none of them has ever affected a site layout. Canvas is different as it’s not a true framework like Builder or Genesis but I still think that changes as important as these that can break layout or style in any significant way should never be done in a point update.
The changes in the Canvas 5.5 update mean I will either have to do major styling rework to a WooCommerce site that runs it and a few other sites have experienced even more serious issues. Tabs in WooCommerce single product pages for example have changed appearance radically in 5.5 so I had to revert back to 5.4.1 on one of my WooCommerce site that runs Canvas. These also include a slider that stopped working in another site (I was unable to fix that) and the removal of the Feedback feature to replace it with the Testimonials plugin. The way they did this switch had consequences I’m not sure WooThemes had properly evaluated. The Testimonials plugin is not a drop-in replacement for the Canvas Feedback feature as it does not at all display like the original FeedBack CPT did in a widget (a simple slider that took little space in sidebars). WooThemes offered code snippets to try and alleviate this weeks later but, again, that update caused rework I can hardly bill to clients as the site is not actually changing design. The update is forcing me to fix it instead of them building it into the plugin as they should have done and still haven’t months later.
So I’m now stuck with some Canvas sites that will need to stay at version 5.4.1 for now and one at 5.3 (the one where the upgrade breaks the home page slider) until I can change the theme or try and fix those issues… on my own dime. You can probably start to see why this criteria is so important to me now and why it should easily trump any “sexy” features you think you’d like or need in a theme. Again, iThemes Builder has never broken a site like this for me and I’ve been using it much longer than Canvas. This means that all my Builder driven client sites (and I have more Builder than Canvas sites) use the very latest version. This also means that all my Builder sites are running the very latest and most secure code. That is huge…
Now, all WordPress themes and plugins evolve. Sometimes this evolution has an effect on backwards compatibility. At some point that can be inevitable. So my reservations here should be taken with an appropriate grain of salt. My clients don’t change designs often and I do have maintenance contracts with most of them. So this issue is more important to me than it will be to you if you do mostly one offs and move on without creating long term relationships with clients or if you’ll be using Canvas for your own personal site(s). Other criteria might then be more important to you.
4- How Solid and Reliable is the Theme Framework’s Vendor
I should have phrased this criteria differently because, following the previous point, it might sound as if WooThemes would fail here too. But no, this criteria is more about the quality of support provided by the vendor as well as the viability of the company behind the products.
All my support experiences with WoooThemes support have been positive. So far, WooThemes, iThemes and plugin vendor MemberPress stand alone in the quality of support they have provided me through time. WooThemes never closed one of my tickets without either giving me a solution (often in the form of an immediately usable snippet of code) or a good lead to one. Most of my support requests have been WooComemrce related and a few about themes. Every time, WooThemes have come through for me. Not always as quickly as I’d liked, but they never left me hanging and left to my own devices. That is huge too.
The Canvas Review
So, with that stuff out of the way, let’s talk about Canvas functionality, features and workflow. Without repeating WooThemes sales copy, here are a few of Canvas’ features:
- A lot of no-coding customization options
- Google Fonts built-in
- FontAwesome support built-in
- Responsive out of the box
- Supports WooCommerce fully
- Very child theme friendly
- Portfolio functionality *
- Several custom widgets *
- Magazine, Business and other templates
- Support for WooSlider
- It’s not in their sales pitch but Canvas also has good localization support as do all of WooThemes products. To me that’s very important.
And there’s more. Believe me when I say that Canvas is a full featured theme. It was able to handle several types of web sites for me from blogs, commerce, events-based and other sites. It’s also a very flexible and powerful theme. I didn’t have to do any truly crazy layouts with it but it handled everything I threw at it. See the WooThemes Canvas page on their site.
Also, as it’s a WooThemes product, it also works great with all of their plugins and, WooThemes have some awesome plugins, some well known like WooCommerce or WooSlider and others less so like the WooDojo suite and little gems like WooSidebars (which will work with any theme). If you get into the WooThemes ecosystem, you will have access to an integrated treasure trove of tools that can be rivaled only by iThemes and StudioPress in its richness. Pretty much the only thing WooThemes and iThemes have not touched is events management. So, if you prefer dealing with as few vendors as possible, working with Canvas and WooThemes is an attractive proposition.
The future roadmap for Canvas 5.6 and beyond hints at even more flexibility and the continuation of moving content-related functionality out of the theme and into plugins. That is a GOOD thing… a very good thing. Hopefully, it will be handled better for the remaining targeted components that it has been handled for Feedback/Testimonials.
The Canvas Theme and Layout Options
As Canvas is touted as a flexible starter/parent theme to achieve your own design vision, the heart of the matter here is really how easy it truly is to achieve the look you want with it and how flexible it really is. I’d say it depends. If you know how to code CSS and HTML and a little PHP, you’ll be able to achieve pretty much any layout you want. It’s certainly not as easy as with Builder or Genesis but it can be done. If you are not a coder, you’ll quickly run into Canvas’ admin design options limitations. You want to change the padding or margin on some elements? You’ll need to write custom CSS to do that. You want control over all typographic elements, again, there’s a lot of options but not everything is covered so you’ll have to rely on custom CSS too. I always had to add quite a bit of custom CSS to Canvas in every project I used it on. That wasn’t an issue for me but. If this is not one of your skills, you’ll probably want to look elsewhere for a theme.
In comparison, the Dynamik Website Builder child theme for Genesis has a lot more detailed and complete design options as does Builder when coupled with the Style Manager plugin. So if you are not a coder, Canvas is certainly not the most flexible choice out there.
Now that I’ve been spoiled with Genesis and Dynamik’s much more granular and complete control over typography, layout and responsiveness, I now find Canvas’ controls and options crude, limiting and confusing in comparison. Especially when it comes to creating a widgetized home page layouts. Most pre-designed Genesis child themes have built-in widgetized home page options and, with Dynamik or the Genesis Extender plugin and the EZ Home options, even non-coders can create very varied home page layouts. Especially with the help of the built-in Genesis Featured Posts and Featured Pages widgets. These widgets are hidden gems in Genesis’ toolbox and Canvas has nothing similar that offers this level of precision over every detail of how these posts and pages are displayed as widgets.
Canvas has a series of Widgets that come with it too, including the Woo Components Widget. But to me, its options are very limited:
- Blog component (a regular list of posts with no controls in the widget over the number of posts or how they are displayed… other than writing CSS or PHP filters and hooks)
- Business and Magazine slider components (one is only the width of the content column and the other is full width) which display the built-in sliders (sliders to me are really plugin territory)
- The Business Grid. This one is the most flexible with some controls over the display in the Canvas options (so not where you set the actual widget so there’s a disconnect). For example, you can determine the number of full-width “featured posts” above the actual grid as well as the alignment and size of their featured images but no control over the post meta, more link of anything like that. As for the grid itself, you have no options over the number of columns or the total number of posts displayed unless you edit CSS.
- The last component of that widget is “Current Page Content” which does exactly as it says
The Genesis way offers a lot more flexibility as you can have any mixture of widgets you like in a “row”.
If you can code PHP, you can create any widget areas you want for the home page in your Canvas child theme too. So it’s not that Canvas’ can’t do it. It has a full set of hooks and filters too. But again, you need coding knowledge which may or may not be an important factor for you.
Again, nowhere is the granular layout control offered by the built-in Featured Posts/Pages in Genesis mixed with either the pre-determined widgetized areas in Genesis child-themes or the EZ HomePage options in Dynamik. Once you have setup your widgetized areas, it’s a matter of minutes to populate them. Not so in Canvas. Not for me anyway.
So, all in all, Canvas’ results regarding my 4 criteria are a mixed bag. Whether they’d be serious issues for you in your work is for you to decide. Furthermore, if total flexibility in layout with minimal or no coding is important, you’ll probably need to look elsewhere unless you mix Canvas with one of the many drag and drop page layout plugins that have been coming out recently.
For my own purposes, I doubt I will use Canvas again for future client work because the stability factor is much too important for me now. But I will definitely keep an eye on its evolution as WooThemes will continue supporting it for a long time to come since Canvas is their flagship and most popular theme.