What shall we do about Themes?

Update - 22 Feb 2010: One of the issues lightly touched on below is the market need for some themes besides those on drupal.org. Acquia has started to collect both themes, as well as links to theme providers, at a new site devoted to the design-aspects of Drupal. See design.acquia.com for more information. (Original post follows.) For almost as long as I've been involved with Drupal, there's been a running complaint – either a (false) perception or (true) reality – that Drupal is "theme-challenged" compared to alternatives like Joomla and WordPress. I had this complaint myself when I first started using Drupal. Our investors heard it during their due-diligence on Drupal. And I continue to hear it from people I meet who are building their first Drupal site. I've got some cycles now to pay some concentrated attention to this, and see if there's something we can do about it (where "we" means both Acquia and the Drupal community at large.) I encourage you to add your comments / thoughts to this blog post. In fact, my primary purpose in this post is to listen to people. So read on, and give me your thoughts. What's the problem - really? The first thing to do is to characterize the complaints. I think there are (at least) two high-level areas of interest:
  1. Issues surrounding off-the-shelf (available) themes;
  2. The size (or lack of...) of the "designer" community within the Drupal community at large.
Let's tackle these one at a time. Note: In examining this entire subject, We now have some actual data on this, arising from a recent survey of Drupal & Joomla users. In the survey, each (self-identified) community expresses its opinions both Drupal & Joomla. While I haven't dug too deep to know the precise statistical validity of the survey, it looks like there's "enough" to hear a message. So I'll use the data here to discuss the subject. Off the shelf theme issues In my thinking, I've started to sub-categorize the problems faced by those looking for OTS themes into quantity, quality, and discoverability issues. Quantity Typical complaint: Drupal doesn't have a wide-enough selection of off-the-shelf themes to choose from compared to (Joomla/WordPress/...). The survey data (summarized below) validates this complaint.
  • Both communities score Drupal theme quantity poorly. Only 58% say the quantity is Satisfactory or better. In fact, Drupalistas themselves don't give Drupal very high marks in the off-the-shelf themes area. But Joombies (credit to Amy Stephan for the nickname) are pretty blunt: 0% of respondents said Drupal has very good quantity, and 60% say the Drupal world just plain lacks themes.
  • In contrast, both communities view the Joomla themes ("templates") quantity situation more favorably. It's pretty stark: > 80% of the total (no matter how you measure it) say the quantity is Satisfactory or better. (Note also that Drupalistas give the Joomla project higher credit for Very Good than Joombies do themselves. Clearly we Drupalers are carrying a chip on our shoulder about our situation.)
One thing changing this is companies like Top Notch Themes (an Acquia partner) who are building businesses around selling Premium (non-GPL, pay-to-use) Drupal Themes. (How can a theme be a Premium Theme if Drupal is GPL?) This can gradually help; but is one company enough? The behemoth (if there is such a thing) in the Premium Themes business is TemplateMonster.com. To their credit, they offer the majority of their designs as Drupal themes (vs. just Joomla Templates, where they started). There are hundreds of choices here. But TemplateMonster suffers from occasional complaints about the quality of their templates. Which leads to the next issue...: Quality Typical complaint: I can find theme designs I like, but the ones I find have functional problems, e.g. inflexible layouts, menu issues, hard-to-swap-out stock photos, etc. Yup - survey data validates this, too. Both communities of respondents judged Joomla Template quality higher. (Remember - we're talking about off-the-shelf stuff here.) Side note: It would be useful to have more specifics in this quality area. Are the issues more around "This design is better than that," or "This implementation is better than that," or...? Discoverability; Premium vs. non-... As I've considered the question about Quantity, I've started to wonder whether the problem is as much a discoverability issue as a quantity issue. Drupal.org only lists GPL themes - and doesn't list Premium Themes. Finding these Premium Drupal Themes turns out to be not so easy. Look at the first page of Google results when you search for Joomla Templates vs. Drupal Themes, and compare the number of commercial (Premium) theme providers. Joomla templates: Compare the above image with the same for...: Drupal themes: It's possible that the Joomla community achieved Template-critical-mass because their community actively supported those in their ranks that sell Premium Templates. Want proof? There's no tab on Joomla's downloads area pointing to a collection of free templates on joomla.org; people must go Googling to find them, thus "pushing business" to Joomla shops. If Joomla were a company (vs. a project), this would be called "enabling a growing partner community." Note that most of the Drupal listings are for sites that are re-publishing the themes from drupal.org, while the Joomla results point primarily to Premium themes. Does this suggest that the "problem" is that the Drupal community doesn't embrace a Premium Themes community as Joomla does? Maybe. Maybe not. WordPress Themes. WordPress is a third data point. The WordPress community has had a running debate since Fall 2008 about whether Premium Themes are "a good thing" or not. Matt Mullenweg initially didn't discourage them; in fact there was for a while talk about building a Theme marketplace. But last fall he basically said he thinks Premium Themes are not in keeping with the spirit of open source, and is discouraging them. I think WordPress' situation may be different than Drupal's (and Joomla's). There were already > 750 WP themes (778 now) on wordpress.org, all nicely tagged with # columns, colors, sidebar placement, etc. before Matt started discouraging Premium Themes. So in some ways, discouraging Premium is an easier position to take once WordPress had a critical mass.... ;-) And blog themes are less work to create than "full website" themes - making it easier to grow a critical mass. Conclusion? I'm frankly not sure what to conclude – is the Drupal themes problem partly a problem in being able to simply find themes outside of drupal.org? Or is it that we need a community that embraces Premium themes listed en masse on Google? Because of the need to include rights-managed stock photography in a wide collection of Themes, I'd tend to lean towards the latter; except that it's influenced by the next major point...: The designer (un)friendliness of the Drupal community As much as I've heard that "Drupal lacks Themes," I've also heard "The Drupal community is primarily made up of programmers, not designers. So the (... fill in the blank, e.g. code, templating system, ...) isn't designer friendly, and it's too hard to (... fill in the blank ....)" Likewise, I've heard (or even claimed) that Joomla had stronger roots in the designer community (I think..), so it's natural they'd be more designer-friendly. I've been thinking about this for a while. I've concluded there are a number elements that contribute to why designers aren't as big a part of the Drupal open source project:
  • Code entanglement. To get Drupal to "look like you want it to," frequently you have to resort to coding PHP; you can't just tweak HTML/CSS. This forces designers to have to learn Drupal to get that done. Drupal is trying to be more scaleable, flexible, etc., than competing systems, so it's learning curve is higher. Designers just want to make stuff "look like this." Learning how to code to get it done is more work than they have time for. So they pick an easier path.
  • Lack of in-CMS editing. In Joomla (and WP?) the site builder can edit the CSS & template HTML from within the CMS itself. You can't do that in Drupal. There are technical justifications for the Drupal approach. But it makes it hard for designers coming from the Joomla ranks. I'm one of them; I learned Joomla templating by making changes in the CSS / HTML from within Joomla. Once I felt more confident, I started changing it outside of Joomla (and using version control). But I learned within the CMS. Drupal doesn't let you start easy like this.
  • Reputation history. Drupal 6 made templating more sane in many ways, and IMHO many designers could easily learn to make Drupal templates. But while the Drupal community fixed the technical problem, they either didn't try, or didn't succeed in overcoming the reputation that "Drupal Themes are hard to build."
  • Lack of outreach. Related to reputation history, there's been desire, but no organized effort to go attract the designer community.
Most of these problems can be solved. We at Acquia are going to spend some marketing time and money this year to do outreach to the designer community, and try to erase the "hard" reputation. We can also do some things like telling designers how big the Drupal community is, and how much impact creating a theme can have. Showing them how – in an open-source-friendly way – get themselves the branding / reputation they want for design within the community. Creating guides that show the relatively simple steps to adapt, say, a WP Theme or Joomla Template to Drupal. And if we really want to make life easier for designers, the Drupal community may just have to do some more work on changing how the theming layer works. (More here.) We at Acquia have lots of ideas about how to make the Drupal world a place where designers feel warm, and welcome. We'll be putting effort into this in the next months. But we'll need to partner with the Drupal community - both for ideas, and for execution. So, what should we do? All this is just analysis; I've pointed out the problems: We need more, better, easier to find themes from a LOT more designers. The question is, how? Please help our community by sharing your thoughts here. In a week or so, I'll follow-up with another blog post that summarizes the results, and shares (some or all) of what (at least) we at Acquia think we can do. Thanks in advance! (Back-info...) Data from the survey Quantity of themes Respondent's opinions about the quantity of Drupal themes: Very GoodSatisfactoryUsatisfactoryVery Bad Drupal Users12.77%51.06%34.04%2.13% Joomla Users0% (!)38.46%53.85% (!)7.69% Total8.82%50%36.76%4.41% Respondent's opinions about the quantity of Joomla Templates: Very GoodSatisfactoryUsatisfactoryVery Bad Drupal Users59.09%31.82%4.55%4.55% Joomla Users44.12%47.06%5.88%2.95%% Total44.62%41.54%9.23%4.62% Quality of themes Respondents opinions about Drupal theme quality: Very GoodSatisfactoryUsatisfactoryVery Bad Drupal Users18.37%65.31%14.29%2.04% Joomla Users0% (!)50%35.71%14.29% Total12.5%63.89%18.06%5.56% Respondents' views about Joomla Template quality?: Very GoodSatisfactoryUsatisfactoryVery Bad Drupal Users26.09%69.57%0%4.35% Joomla Users58.82%32.35%8.82%0% Total41.18%50%5.88%2.94% Premium themes How can a theme be a non-GPL, "premium" theme if Drupal is a GPL project? The GPL "taints" (causes the GPL to apply to) code by examining whether an addition to the program in question creates a "derivative work." In the context of web applications, the software running on the server is an application, and the stuff that server sends to the browser is "data." The browser, and the data it is using, is a "separate work." So the Javascript sent to your browser by the Drupal server isn't part of the Drupal application running on the web server. Therefore, the Javascript isn't "tainted" by the license of Drupal. Of course, the Javascript itself could be licensed under GPL, but it isn't determined by the license of Drupal. Premium Theme providers can therefore include things like rights-managed stock photography, Javascript (that isn't GPL'd in the browser) - even the CSS - that isn't licensed under GPL, and for which you must purchase a license to use. Theming layer When I had our team review this post prior to posting (asking for feedback), Jacob posited the following thoughts I thought were worth putting here. The rest of this page are his words. ... I've used various PHP templating frameworks (mostly flexy and smarty). I don't think big difference is PHP code (although I know for some designers it is scary to use <? in their code.) The thing which makes Drupal themes hard to use IMO is the nesting, the abstractness of it all, and the magic function names. In most "normal" templating systems, there is a $masterTemplate variable (to define the whole page layout and generally left and right columns and a $template variable (to define which template file makes up the center body). Then inside each template file there are includes which point to other template files. This control flow makes sense to someone who doesn't need to know the intricate details of how drupal works or even PHP, it also plays better with WYSWYG tools like DW. A designer can grok, left-column, right-column, etc, but in Drupal, often the "right" way to theme involves writing a lot of code in template.php, and creating files for each block, node type, etc. It is very hard to learn all these magical names. I think D6 devel module with the themer tool is great for this, but still assumes a certain general understanding. I'd do 2 things:
  1. Add a comment or even better some type of non-presntation XHTML before and after each theme'd element which shows it's javadoc, location of the function, etc.
  2. Make a quick way to click and "override" an element w/ JS. This will basically give a modal dialog displaying the existing function, renamed to fit into your theme, and a little shpeil about where to put it.
This helps people find what they need to override and tells them how to override it. It also helps newbs get into theming from the browser while not allowing browser based editing of templates. (BTW, there is a module sorta for this called contemplate.)

Comments

Posted on by cosmicblend (not verified).

Please don't include "in-CMS template editing". It is the one feature I most dislike in Wordpress, Textpattern etc. I also find that the client has very little if any need of that feature.

I agree with Jacob's thoughts, also I would like to see a solid separate admin layout that doesn't cross into the front facing layout (not as default but by choice). It's easy enough to set an Admin template but often administrative tasks will still cross into the front facing layout.

And for my last thought. Search, it would make my life (and perhaps others) so much easier if I had the ability to restrict search indexing on certain content types (including titles).

Overall the learning curve is steep with Drupal (I'm a design dude), but proper project analysis and learning to understand Drupal has brought the overall (front and backend) experience that my clients experience to a new level.

There's my two cents,
Chet

Posted on by Jacob Singh.

Hi Chet, thanks for your comments.

If you're looking to restrict search by content type, check out Acquia Search:

http://acquia .com/products-services/acquia-search

We provide a hosted search product which integrates tightly with Drupal, providng faceted search, content biasing, content recommendations (as a block on related nodes) and many other features.

One feature is the ability to make certain content types "float" to the top in search results more often, or omit certain types all together.

Hope that helps!
Jacob

Posted on by cosmicblend (not verified).

Thanks for the tips, I'll be looking that faceted search over.

Posted on by chris9 (not verified).

There is a module - http://drupal.org/projec t/theme_editor that give you the in-CMS template editing features like wordpress has if you really what to do theming that way.

Posted on by deviantintegral (not verified).

I did a cursory code review of this module and of the companion module_editor; it looks like it needs quite a bit of love before being usable on real sites.

Posted on by Jay Batson.

Thanks both Chris and Andrew. I (a) wasn't aware of the module, and (b) am happy somebody took a look at it.

Chet, I hear what you say about not wanting in-CMS editing. But the point here was to ask whether this would make it easier for people to work on themes. Fortunately, Drupal gives us ways to turn capabilities on/off by role. So if such a thing did end up in Drupal, you'd be able to avoid the feature if desired - or at least control who can muck with it.

Posted on by catch56 (not verified).

Drupal's permissions don't help here. The issue is that to edit theme (or module) files, they need to be writable by the web server, which means many more ways for your site to get hacked.

Posted on by AntoineLafontaine (not verified).

I think the theme issue for Drupal is a very complex one. Some of it is (for what I read) tackled by the d7ux project.
But, I'd like to try to give my 2 cents here.

First, I'm from a design background with a previous degree in computer sciences (programming for automation). Yeah, I'm kind of an hybrid monster, but this makes me unafraid of code. That said, I try to avoid coding as much as possible when it's not necessary. That is one of the main reason why I found Drupal, looking for a framework to build sites.

I will start by commenting on the Drupal community and its lack of designers (or is it really...)
I would tend to think that it is not by offering many well designed/fancy themes that you will attract designers to Drupal.
A clean, well balanced neutral interface with a clear ability to shape it into any idea you might have would do the trick.
I believe that a designer will, at first, be attracted by the design of the product (d.o redesign will surely help).
Then, since it will probably be used to provide a customized site design to a client or for a personal project, will look to bend it to fit her/his design idea(s). This is where Drupal shines vs Joomla I would think. The problem is that Drupal doesn't have the first contact appeal that Joomla/WP seems to have.

You could have a look at a CMS called indexhibit. It's community is largely composed of artist/designers/photographers with (often) limited knowledge when it come to web technologies. The platform, although limited and mainly aimed at portfolio sites, empowers its users to build the site they want. I believe part of it's success in its easy administration interface and clear separation of admin vs site. Maybe this could be part of a default Designer's Drupal install profile...

This is only one facet of the Theme problem, but attracting a few designers would probably also help build a stronger (premium or not) theme base.

Antoine

Posted on by Jeff Noyes.

I completely agree with you that a "clear ability to shape it into any idea you might have would do the trick." I'm hopeful the work Mark and Liesa are doing will have this impact.

Designers are builders, creators, imagineers. They want to build the theme library vs use it. I fall into this category. As a designer, the only way I'd use a theme from a library of other themes is if I'm in a hurry to release - otherwise I'd much rather be original and get the experience of building a theme in an platform that appears to be growing.

Jeff Noyes
Interaction Designer
jeffnoyes1@gmail.com

Posted on by Jay Batson.

Jeff --

(Chuckling that we're using this public tool to have a conversation, when I could just yell down a couple of cubes... ;-)

I think there are two separate issues here that I'm discussing:

  • Things we need to do to attract designers. These are people like you. They need things like what Antoine is talking about.
  • Things we need to do to attract non-designers to using Drupal. These are people who don't do design, who aren't likely to hire one, and who want to pick from pre-existing designs, and do some slight customization (e.g. logo change, etc.)

We need to attend to both.

Posted on by AntoineLafontaine (not verified).

I agree on the need to have both. There are so many facets to building a website that we can't just neglect anybody (non-designers are often the best content providers.)

I would also like to emphasize on the fact that attracting more designer will, in part, also solve the problem of having a good base of high quality theme available for the non-designer crowd...

Posted on by barrysampson (not verified).

Sure we need to address the technical obstacles to getting designers involved, but there are similar challenges when theming Joomla or Wordpress.

I think the biggest issue is that it's much harder to build themes for Drupal because it has no default 'out of the box' layout or use case. Sure you can use Wordpress for other things, but it's basically a blogging engine, and the majority of the available themes are blog themes. Joomla may be more fully featured, but it still has a default layout that you can theme.

Drupal's power is in it's flexibility to let you build anything your imagination and skills can come up with. It would be impossible to come up with a theme that met every eventuality.

Perhaps the answer is to have a set of default install profiles based on common use cases that we can build themes around?

Posted on by peach (not verified).

Glad you guys are going to look at the theming part of Drupal.

Im about to launch a new line of premium themes on alldrupalthemes.com in 10-14 days, it's going to take Drupal themes to a whole new level with professional designs, elaborate configurability and full color module integration.

if you guys want to learn more or be part of it before it launches send me an email at my form: http://alldrupalthemes. com/contact.html

My wishlist for the Drupal theming engine:
-color module out of core: http://drupal.org/node/445990 (we need a color API not a garland-render module)
-File based CSS settings caching. I use this in my premium themes and will try to get it in core

JR

Posted on by eigentor (not verified).

Contributing a GPL'd theme to drupal.org

CVS - oh yeah.
This is about contributing a free theme to drupal.org. I recently did this, and it was quite an eye-opener why there are not more contributed themes on drupal.org.

Thinking from a designer's person mind set - avoiding coding and coding-like thinking as much as he can: frankly, no one that does not have a real strong determination will succeed to submit his theme.

CVS itself is hard to use - well, in the end I switched to Tortoise as a GUI-driven client which helped a lot. But _all_ documentation you find on d.o. describes using the command-line. So a designer could use Tortoise quite well - still he won't find much help how to.

Next step (after having struggled through how to use your CVS account at all, since there is no "login" which you would expect) is to create a project page, filling out a lot of fields, and linking this to your CVS Folder.

It sure was my own fault I did not find the link, but for quite a while I did not find a link to create a release (which is simple in the end, but you might overlook it).

The entire interface, process and hurdles to overcome is unbelievably tangled and counter-intuitive. If I had not been long fallen in love to the Drupal community I'd sure given up, took me two to three days with several re-try's anyway.

What was more: it was not easy to find help for this on IRC. Some kind people helped me out (kudos to killes patience), but you soon learn no one loves CVS...

Well, this has turned into a bit of a rant, sorry for that.

If we want to have more themes on d.o., this process must be built in a way a not-so-technical designer can make it, how it is at the moment it is rather a solid "iron man" parcours.

Posted on by Jeff Noyes.

I agree. I've been in the design business for a long time, and I've never had to use CVS, SVN or install patches to A) figure out what's going on B) contribute.

Having been in the space for almost a year now, I understand it's value. But its taken me a long time to get there, and so long as these types of barriers remain, we shouldn't expect a mass of contributions from designers or any other type outside of the developer community.

Jeff Noyes
Interaction Designer
jeffnoyes1@gmail.com

Posted on by deviantintegral (not verified).

I understand it's value. But its taken me a long time to get there

This hits it right on the head. Especially for designers who mostly deal with non-textual assets, version control doesn't seem like a very useful function. What if there was CVS documentation specifically for designers? It could explain specific use cases of why CVS is important and how it's a benefit to designers and theme users. For users of themes, project pages with their summaries, recommended versions, and so on are a huge benefit compared to 500 post long forum threads containing random versions of a theme - and that's all made possible by the use of CVS.

Posted on by dmjossel (not verified).

Or, you know, do something crazy. Like allow theme submission without CVS.

Posted on by typehost (not verified).

Around 50% of the open source themes available for free download on drupal.org contain functional errors. These are usually worked out in the issues queue and in subsequent version releases, but new users may not expect or realize that some of the free themes are not 100% production ready immediately after download. As an individual site's complexity increases, with the addition of more and more third party modules from different developing hands, the "join points" where they all come together in the theme layer multiply, requiring more and more site specific CSS fixes to maintain a consistent display.

DHTML complexity - all of the "seam points" between php, javascript, html, css, xml, and other code layers includes a wide variety of methods for styling output display that may have to be addressed individually by the developers / designers. For around half of the sites built for client requirements, use of stock free or premium themes + "bug fix" will be sufficient. The other half have a specific design vision or new idea that requires significant css, code, & template modifications to build a new theme, layout, & GUI that works with the site's functionality (ecommerce, social networking, social bookmarking, blog, etc).

CSS iterations of a base theme are probably the biggest resource to draw upon for drupal themes. So many designers have modified blue marine, zen, newswire, or other free themes to amazing new levels - if we can enable the sharing of all the sub-variations of a theme back to the design community, there would be many more options available. Expanding the theme garden to include multiple sub-versions of a base theme, along with review functionality on themes, would be excellent.

Tools enabling Drupal theme design in Dreamweaver or providing additional diagnostic integration through Firebug are available, but very minimally supported and used over all. A Dreamweaver-like layout tool for drupal allowing one to easily set the sidebar column widths, the size of the theme's block regions, colors, font, etc. save & publish a style.css would be great. Many new D6 themes are offering more & more of this in admin settings, working with theme api, color module, etc. but required custom css changes are sometimes difficult to integrate with these automated settings.

There is a huge difference between the drupal community and joomla when it comes to commercialized module & theme solutions. WordPress and drupal themes & modules are still primarily "free" in the sense of free open source software. It is a difficult path to walk but the commercialization of module & theme solutions as paid downloads is a proprietary model. The reason many developers build on the drupal platform is the open source sharing / foss philosophy - any loss of this = doom.

Things that would help also with theming would be integration of a WYSIWYG editor like FCK into core along with advanced profiles like APK / BuddyPress. There is a lot of future strength in developing powerful, finished, and thoroughly tested themes that are built specifically for an installation profile, and then supporting them like Acquia & Top Notch Themes. Cross-browser display issues remain a continual problem.

We have bought premium drupal themes for projects and have requested also mySQL maps of the demo site structure. Installing a site template from a mySQL map allows for the inclusion of positioned block elements as well as custom code in the display that can more easily be reconfigured by the designers, saving a lot of time.

Posted on by haanmc (not verified).

From where I sit, there are two major obstacles to more/better themes on d.o:

  1. Sharing themes is a very technical prospect. I love the command line, but maybe themes should be allowed a "dumbed down" upload your theme here link. Artists can be finicky and can be scared of "command line"
  2. A theme can only provide window dressing. Joomla themes come installed with functionality and an optional default configuration. To address default configurations, we need a way to add blocks, modules, setup modules, etc. This has been dealt with in a lot of projects, but the most mature is the patterns project. Once the patterns module becomes stable, sharing a pattern with a theme would fix our "default configuration" almost overnight.

If you want to focus your fire at something focus at this: Help the drupal.org team make it easier for themers to upload their themes AND/OR help the patterns team make default configurations (including downloading and installing dependent modules) a reality.

Josh

Posted on by AntoineLafontaine (not verified).

I also believe that patterns will help improve Theme development a lot.

Posted on by zanco (not verified).

I think that the best thing to do is encourage professional themers. There are many other drupal commercial themers that you don't mention here.
Joomla.org , before used to have a section where new themes could be published, regardless if they were free or commercial, and now that there are many community sites doing that so they have removed that section about 1 year ago.

Take a look at Magento, they have a section where they display all extensions, commercial or not, and a themes section too. They encourage commercial themers and in such a short period you have many magento theme providers and some really excellent themes. Because themers know their themes will be seen by people.

I think the best thing to do is encourage non-GPL themes, open a section for those themes in drupal.org. Making non-GPL themes or modules should not be seen as a heresy.

Posted on by Jan Krummrey (not verified).

I would agree that CVS is one of the biggest challenges for designers.

Having ported a couple of themes back then for D5, I never managed to get them into CVS. So I just gave up.

The other problem lies in the drupal architecture itself. It can do so many things that a theme just can't cover them all. That might not sound so challenging for a coder but for a designer it is.

Designs are build for a special audience and a special use-case. Unlike modules that is almost impossible to abstract.
So instead of looking for generic drupal themes, specialized themes for news-sites, social communities, galleries would be needed. But what modules are used for that task? What blocks? Drupal is so flexible, that is is very hard for a designer to build a generic theme that covers many use cases.

Having a few install profiles that a designer can design for would help.
But are there many?
Is there one for a forum?
For an image-gallery?

Maybe that would be a starting point. Give designer something that they can actually design. Not just a gazillion options.

Jan

Posted on by deviantintegral (not verified).

As to the information about JavaScript licensing; does using any of the functions in the Drupal.* namespace bind your code to the GPL? I would think that many themes with heavy JS would then have GPL'ed JS.

Posted on by Jay Batson.

Difficult question, Andrew.

I've asked lots of questions about this from various people that spend all day thinking about open source licensing. Note that I'm a lawyer, so I can speak the lingo; and I think I've looked at this a lot. But I still defer to people who think more about it.

I'm not a coder; so I'm going to assume the Drupal.* namespace you refer to is Javascript present on a page supplied to a browser by Drupal. If so...:

I think the controlling principle here is similar to what the OSF, etc., has said about web services: when application A on host 1 consumes / uses web service S running on host 2, A does not become a derivative work of S. If S is Drupal / GPL open source, the GPL of S does not "taint" A.

So, even if Javascript happens to use a Drupal.* namespace, that Javascript is still either running locally (in the browser of A), or accessing web services offered by S. In neither case, is it creating a derivative work of S (Drupal). So that Drupal.* namespace code would not be GPL'd simply by operation.

Make sense?

Posted on by deviantintegral (not verified).

Yes, it does, and makes sense for Javascript which doesn't call Drupal functions. But, a better example might be a theme which has translatable text. If Javascript is changing text, it probably calls the Drupal.t() function, which I think *is* GPL'ed. So then it's not just code living in your browser, it's code that directly interacts with Drupal. Other common functions might be Drupal.checkPlain(), Drupal.theme(), etc.

Thanks!

Posted on by Crell (not verified).

Sorry Jay, but you're wrong. :-)

Drupal includes PHP code that is GPLed. Any part of a theme that executes as PHP on the server (which includes all template files, as well as template.php) is subject to the GPL.

Drupal includes Javascript code that is GPLed, which includes the copy of jQuery that ships with Drupal. Any Javascript code that shares data structures with that code is therefore also subject to the GPL.

"Premium" themes have a hard time with the GPL, due to the GPL, not Drupal. PHP, template files, and Javascript are all subject to the GPL. Imagery is not subject to the GPL, assuming it's not derived from a GPLed image. CSS is an odd case; I suppose there it depends how much of your CSS is copying and pasting from core or a GPLed contrib theme like Zen.

All of this is already detailed on drupal.org: http://drupal.org/licensing/faq

Please direct people there when they have questions about the GPL.

--Larry Garfield
Drupal Association Director of Legal Affairs

Posted on by Jay Batson.

Larry --

Drupal includes PHP code that is GPLed. Any part of a theme that executes as PHP on the server (which includes all template files, as well as template.php) is subject to the GPL.

All this says is that the portion of the theme that executes on the server is tainted by the GPL. It does not say that the theme "as a whole" cannot have some reserved, proprietary IPR. A theme could become commercial (requiring a license to use) based on the inclusion of:

  • Non-executable, proprietary data
    • Copyrighted images (as you correctly indicate).
    • CSS that is not copied / pasted, or derived from, or a simple expansion of an existing GPL'd theme (again, as you indicate).
  • Executable, proprietary data
    • Javascript that is not jQuery that executes "locally" in the browser
    • Javascript that is not jQuery that makes asynchronous calls to a server somewhere - whether it's a Drupal server or not - to obtain data, have some data transformed, etc.
    • (I'm not sure if it's technically possible for any such non-jQuery JS to access / use the data in the Drupal.* namespace without that use tainting it. In fact, there's an interesting, really-big can of worms around JS that is bigger than just the Drupal discussion. Let's have a beer about it sometime.)
Posted on by zoonunit (not verified).

Simpler theming will require a few tweaks to Drupal itself, but I think these changes would be fairly minimal. Drupal has the potential to be far more modular in its theming. Here are my suggestions:

  1. Block theming. Add a field to the block edit page where a user can specify a particular block template. This would move some of the theming logic from the page template to the block templates, which makes the task of theming easier and more modular. Block templates could then be mixed and matched with a theme for much greater variability. Also, make everything on the page a block, including the main node display. This would allow savvy developers to cache most blocks, thereby increasing performance. The display logic for the page would reside in the block templates, not the page template. The page template would be greatly simplified and would function mainly as the layout template.
  2. Create a Drupal layout engine.This would be like panels on steroids. Since CSS positioning is one of the toughest theming issues, automate this process. A layout engine would allow a developer to drag and drop columns on a page from within a wysiwyg environment. With block theming offloading much of the page logic to the block templates, the layout engine would be far simpler to develop.
Posted on by peach (not verified).

Definitely ++ on the block theming part. On nearly all professional sites there are blocks that need to be differentiated within regions, but as of now it's still required to use contrib modules for this functionality, and many people don't even know these modules exist:
http://drupal.org/project/ blocktheme
http://drupal.org/project /block_class

Posted on by Jeff Noyes.

Good ideas. Have you seen Gabor's work on blocks? http://hojtsy.hu/

Jeff Noyes
Interaction Designer
jeffnoyes1@gmail.com

Posted on by DouglasT (not verified).

The best solution I've heard is one Mentioned above by Jan Krummrey.

"Give designer something that they can actually design. Not just a gazillion options."

I can do anything you like with CSS. Give me some semantic HTML and an idea, and I'll style your site. The downside of Drupal is that it takes a while to get the site configured the way you want, before you can really consider the style. A few default configurations would go a long way towards making out of the box themes a more reasonable expectation.

Posted on by AntoineLafontaine (not verified).

I tend to agree on that too.

Using patterns, We can have something like the following:

Community defined patterns (the gallery pattern, the forum pattern, and so on).
Then we have templates supporting X patterns.
This makes clear design objectives for designers to base their templates on.

And having patterns in the mix would make it possible to have all the necessary modules installed, configured and tweaked in order to have the 'common ground' needed to do so.

Posted on by Edith Illyes (not verified).

My list:

  1. Prepackaged, community-maintained, official install profiles (blog site, forum site, magazine site, e-commerce site, gallery site).
  2. An out-of-the-box theme shop solution with integrated file downloads and project management/issue queue. Building such a site is possible with both E-Commerce and Übercart and the Project module, but it's a challenge even for a black belt Drupal developer. For a CSS designer, a ready-made e-commerce solution could lower the cost of setting up a Drupal theme business by several thousand dollars.
  3. This one is easy: an RSS feed for new themes, both commercial and GPL'd. If it exists, I haven't found it, so it probably needs a little advertising. Modules are listed at the well known drupal.org/taxonomy/term/14< /a> page and the feed is featured on Netvibes and many other aggregator sites. Same exposure is needed for themes.
Posted on by duvien (not verified).

Firstly, wow it's so positive and refreshing to see how many users are passionate about theming in Drupal.

When i started using open source CMS a few years ago, i started out with a few other CMS but mainly used Joomla. It was relatively easy to build sites with Joomla because of it's limited features and functionality.

Drupal is different in the sense that it is very modularised and pretty much any thing in the theming layer can be overridden. This gave a lot of power to the themer than any other CMS i've used, IMO. However most of this power relies on knowing PHP placed in the template.php file which obviously isn't something Designers want to touch upon if they had a choice. So what i feel will make it easier for Designer are the following:

- To have all the theming settings already in a default drupal theme. Think of Acquia marine or Slate theme (or even Zen) with all the theme settings and configurations but stripped down frontend template so it can act as the base theme to build upon, which means ditch Garland.

- I agree CVS, should be abolished in favour of a simple upload and download feature for contrib themes. I use it only because there isn't any other choice.

- Separate frontend and admin panel. I don't have a problem with the way Drupal is but it will surely make theming less frustrating since at times there are conflicting CSS styles rendered for frontend elements and admin, and it becomes cumbersome having to override css classes each time it happens. This should keep the CSS clean and more manageable. Of course, there are ways to prevent this perhaps by loading certain CSS files using PHP but do we really need to put in that extra work? This separation does not mean you can't still have frontend inline-editing features.

- Agreed with everyone, there should exist more Install Profiles, however they can be too general and building an install profiles take quite a bit of time. So how about a tool to help build Install Profiles tailored to your own needs or community.

I don't have issues and think it's great that people can make a living from selling themes but I think commercial themes should be kept away from d.o since this can create conflicting interests within a community. Even Joomla has learnt this and now everything must be GPL only on their site.

Posted on by AntoineLafontaine (not verified).

The alternative to install profiles are patterns.

The limitation of install profiles is that they are used only at installation time. Patterns can be turned on at any time in the site building phase. Many people setup their site first, with a few modules, try stuff on then would like to add, say a gallery, even if there would be a gallery install profile, that would mean redoing another install. Although there are workflows to go around these limitations, Patterns are IMO what is needed as a supplement/alternative to install profiles.

Posted on by eigentor (not verified).

Documentation for Designers

When the D6 theming handbook came out, I was really enthusiastic about it: it had nice graphics, was quite coherently structured, a.s.o. As far as I know it has been mostly the effort of one single person in its basic form.

Meanwhile I see things a bit differently: it's a theming handbook written for developers. It has got the same flaw as other Drupal docs: It cannot withstand the temptation to mention the gazillion options that are there.

This is a fundamental flaw of Drupal itself seen from the eyes of an end user: loads and loads of options, but too little sensible defaults.

So there is a need for a Designers Doc that is _targeted_ at designers.

We need to try put ourselves in the shoes of a Designer that comes to Drupal and may have experience with other CMSes Theme layers or is maybe a pure CSS guy.

What you mainly have to think about is not, what you include, but much more, what you omit. Writing as little as one can, and just as much that is needed.

Really, when you start out, you don't need much. You won't even design a CCK content type with many fields. You just won't. So writing for the 80% comes in.

How little do you need to write a theme? I tried for D6 (older version for D5 also available), run through Google Translate, because it is in German.
http://www.drupalcent er.de/handbuch/17767

Well, sure, it is not true: you need to know more than that. But I think the page mentions (not explains) almost all you need to do your first Drupal Theme. When I did my first theme, I think it did not have much more that header variables, $sidebar_left and $content. But it worked. And it was in Drupal. At that time blocks and regions scared the hell out of me, I just did not use them - and did not miss them.

You can add more variables later, you can do whatever later. But first you need an experience of success, to make possible there is a 'later'.

Posted on by chichiMi7 (not verified).

Having a Graphic design background and only just recently adopting trekking the drupal learning curve, I like the flexibility of Drupal.

Yes! Drupal is difficult to theme at first, but once you overcome the hurdle of learning a little php (phptemplate)fundamentals, I feel there is more benefit in that than shying away from code.

I second helping the drupal.org team make it easier for themers to upload their themes AND/OR help the patterns team make default configurations (including downloading and installing dependent modules) a reality.

This would considerably keep Drupal as diverse and robust as it is, but further enable its diverseness to be a strength and not weakness for designer purists.

Posted on by Pasqualle (not verified).

My last Drupal theme: 1 base theme with 4 sub themes, around 30 theme templates.
If you have a theme which "kinda" works for the front page, and have some basic styling for forums, that isn't really a Drupal theme, is it?

And it could be even more flexible: http://dc2009.drupalcon.org/session/limitations-drupal-theme-layer

Posted on by Jay Batson.

Bálint -

Your video is interesting. I take it you're basically suggesting mushing XSLT into Drupal? I think I get the implications:

  • Drupal would have to have more semantic (XML) output, so that display & content are more separated at theming time
  • An engine would have to take the semantic output, and style it using the XSLT directives.

This makes some technical sense. I wonder: would this make it easier or harder to get designers to consider Drupal as their favorite / default platform? It may yet be one more technology cliff they'd have to climb (beyond Drupal, jQuery, etc.)

OTOH, the payoff could be so high that it would attract developers.

XSLT has been more used in the Java world; it didn't seem to "take over the world" there, though. Does that suggest how well / poorly it'd do in the Drupal world? Or do we need so much improvement that this might be latched onto as salvation?

Interesting talk. (It was hard for me to follow; whether it was my player, or the encoder, but the audio & video weren't synchronized.....)

Posted on by AntoineLafontaine (not verified).

My own experience is, although very powerful, xslt isn't easy to understand (especialy if your programming background is limited) and also requires a fair understanding of recursion to harness a lot of its power (I might be a bit off on that part...). I basically, didn't have a very enjoyable experience using xslt.

Posted on by Jeff Noyes.

I also think there's just generally a lot of confusion as to what Drupal is, and why it should be chosen over Wordpress or Joomla. On that note, I personally think it would be very helpful to have a showcase of Drupal sites that reveals how diverse Drupal is. Such showcases exist, but finding them is a chore. Hopefully the drupal.org redesign will help this problem.

Jeff Noyes
Interaction Designer
jeffnoyes1@gmail.com

Posted on by Omar Khan.

Thanks for a thoughtful, honest post. The complexities of theming in Drupal preclude easy answers, but it is great to hear that Acquia is taking on the issue.

I think providing a set of very clean, simple themes to start someone off that can be played with from with Drupal (exposed style sheets through a module) and superb documentation would be a step forward. The marketplace for paid themes is helpful too, but since this is such a free-oriented community, there should be a bundle of free themes available, ones that really offer visual options (not all top nav, etc.).

A contest with real $$s for winners to come up with themes that you might help support might also work.

Another thought might be a theme configurator - let someone start with a theme, then play with its attributes in some sort of engine on your site, and when done download the css files into their site. This could work with the Acquia module.

At this point, whatever you do to extend Drupal's ease of use (documentation) and aesthetic appeal (themes) will do more to extend its use than new programmed features.

Posted on by Jay Batson.

Common ideas so far.

Thanks all for an excellent start. I'm particularly glad to see a bunch of self-described designers participating. Maybe this can be the start of a (sub)community of designers in Drupal!

In reviewing comments up to today, here's the condensed version of the suggestions (no editorial pen here; just consolidating / summarizing):

  • "Default" themes need to be linked to a purpose, e.g. identified use cases (i.e. intranet, ...), and either leverage install profiles, or (it sounds like a preference for...) the patterns project (along with a request for a tool to build same).
    • Some desired pre-defined things: blog, magazine (media generally?), forum site, eCommerce, gallery, basic brochure-ware business site.
  • A non-CVS way to submit themes
  • Provide theme listings (on d.o, presumably) with a way to incorporate / display sub-themes derived from a base theme
  • Tools for Dreamweaver to assist in development of Drupal themes (I note that I've seen one; it hasn't rocked my world, but it helps.)
  • A "Drupal layout engine" (panels on steriods), plus block theming. (See also (orthogonally?) Gabor's blog).
  • Feelings on both sides of the argument re: the notion of encouraging Premium Themers. And a notation that if such a community does grow, those themes can't "live on" d.o, due to licensing or other conflicts.
  • More cleanly separate content from theming during page-building - e.g. Drupal needs to construct its content during page-building in a way that is more (semantically?) structured, and have a more rules-based (e.g. XSLT) method to actually create output. (This has the side-benefit of being able to output content several ways, e.g. web services, expose data to Yahoo search monkey / semantic search engines, ....)
  • RSS feed for new themes - both commercial and GPL
  • A(nother?) base / starting theme that's a bit different in approach (vs. Zen, ...): One with all the theming settings defined, but "minimally" themed so the designer can make it look as they wish.
  • Separate front-end and admin layouts. (I think this, however, may be better discussed under the D7UX redesign context.
  • Different orientation to documentation. Instead of a theming handbook for developers, a handbook targeted at designers to teach them to develop themes for Drupal.
  • Less concern than I might have thought about the requirement for designers to learn a little PHP - though the "Drupal learning curve" remains present.
  • A showcase of "what Drupal is for" - how it's being used, some of the designs that have been created for it, etc.
  • A repository of little re-usable snippets for theme designers
  • Improved documentation on d.o - eliminate need to muck through D5 to find D6 details, eliminate wading through comments, etc.

I'll edit this post to add any new stuff that shows up in the next few days. This sounds, though, like what I might have expected so far - though the surprise (for me - maybe not Dries & others) is the distaste for needing to submit themes via CVS.

Posted on by Edith Illyes (not verified).

"Some desired pre-defined things: blog, magazine (media generally?), forum site, eCommerce, gallery."

+ Brochure site.

Posted on by ercvision (not verified).

I'm a non-technical drupal user with neither programming nor design experience but i've known drupal for quite sometime now and am able to install and set up a basic site using out-of-the box features. From my perspective the design challenge with drupal can be reduced if there is more easy to understand and use documentation in the form of books and tutorials. People like myself are not afraid to dabble into css/javascript/php but I do need to see good practical step by step examples of how some good themes have been set up. Let's face it drupal does have some brilliant websites out there which look really nice but unfortunately when people talk about the process they went through to build them the language used often only appeals to experienced developers and designers like themselves. I would really like to commit myself to the design side of drupal but good books (in addition to the existing ones), video tutorials and affordable training will go a long way in attracting more designers to drupal.

Posted on by Jay Batson.

Bola --

Actually, the last 12 months have been a good year for Drupal books. There are currently over 35 Drupal books listed on Amazon, and several of them are focused entirely on Design.

I for one do want more books, and training. But do you have some specific holes you think are left unfilled from the current suite of Drupal books? We get asked by publishers all the time to help with new book titles; if there are holes, we can find ways to fill them.

Posted on by allanhoffman (not verified).

I won't pretend, at all, to know all about the various Drupal books, but it seems to me it would be helpful to have additional books for Drupal designers/users who will never need to install Drupal -- i.e., they're going to work on an existing site created by another team or developers (the situation for a big university site, say, or many company/nonprofit sites) -- but who want to do things like the following:

create a new content type
create views
actually make them look like the rest of the site and fit in with an existing design

So a book that really gets into creating new content types, new views, and the theming of both (yet doesn't delve at all into installation issues, etc.).

I recently picked up "Front End Drupal," which I'm hoping will help in this regard.

Posted on by Johnny van de Laar (not verified).

In our blog at Internet Unlimited we once discussed several changes that would be helpful for theming (the blog article is in dutch so I didn't link it).

One of the things that will help a lot of themers is a repository with little snippets that they can include in their template files. Like a repository to change the primary links menu, etcetera.

Ofcourse there already are the handbook pages, but searching on d.o is awful. You'll end up with articles about drupal 5 that will not work anymore in drupal 6, you'll have to search through comments that might suggest a solution which might work but actually is a very ugly solution etcetera.

it would be better if there was a page like api.drupal.org is for developers that only contain small snippets with some extra documentation for designers/themers. this would help starting designers/themers a lot with building their templates.

--
Internet Unlimited

Posted on by gterez (not verified).

I say give the user something simple but elegant and "good enough" to start with (Garland is not that: it was made for the admin screens, not for a website, Acquia Marina is much better but still not there). Something that he'd use for his site right away but at the same time would feel easy to customize, even just a bit (add a logo & change the colours). There must be a couple of nice and simple themes right in the core distribution. User has to start out with a simple unbranded theme (and please, please, please remove all traces of the hideous blue alien!).
I think that some of the most successful "seed" themes out there are Dave Shea's & Michael Heilemann's themes for Wordpress and Douglas Bowman's themes for Blogger. They are minimal, they use nice typography and subtle graphic elements and (most of them) offer room to grow. I also think part of their success was on the marketing level: hire a cool designer to make a great theme and the rest of the designers will follow.
Now these themes were all targeted to simple blogs while Drupal is a different beast. Creating different themes for different purposes sounds like a great idea. However, to offer a usable starting point for a specific purpose you'd probably have to use a couple of extra modules (CCK and Views as a minimum) and you'd have to start with some purpose-specific content types with appropriate fields. So it will probably involve more than a selection form a list of available themes.

Posted on by jreed (not verified).

Wow- a lot of great commentary here. I'm excited for the Drupal community- the efforts being made in both attracting designers and improving usability are huge.

As a designer who is pretty new to Drupal and the Drupal community, I'd like to think that I have some perspective in terms of what challenges face designers considering using Drupal.

I'm not sure that a lack of available themes is a priority issue for designers/front-end web developers, as I (and I think other designer/front-end types) would typically never start from a theme. If they did start with a theme, it'd be one specifically meant for branching off- a clean, simple theme that designers can use to both learn Drupal theming and provide a starting point beyond ground zero (as described above by George Terezakis).

That being said, I think having a place where designers could congregate around (and be inspired by) great Drupal themes would help promote the idea that great design and Drupal are not mutually exclusive. By the same measure, I think it'd be critical to have a directory of great Drupal sites, to show the design community (and the web community as a whole) what sort of crazy and wonderful things can be done in Drupal. (As an example, 16 Different Clones You Can Build with Drupal.) Designers need to see that Drupal theming not as challenging as they may think, and that some clever and wonderful things can be done with Drupal.

In my opinion, the biggest hurdles designers face are ease of theming and Drupal's usability. I know that what turned me away from Drupal initially was the fear that my clients would have a hard time using Drupal to manage their site. If I had to spend a lot of time walking clients through managing content, or if I had to spend a lot of time providing support for the platform I chose, it would be disastrous to both my bottom line and my mental health. Fortunately, Mark, Leisa and everyone else participating in d7ux are making great headway in this area, so I'm going to focus my comments on theming.

* Code entanglement. To get Drupal to "look like you want it to," frequently you have to resort to coding PHP; you can't just tweak HTML/CSS. This forces designers to have to learn Drupal to get that done. Drupal is trying to be more scaleable, flexible, etc., than competing systems, so it's learning curve is higher. Designers just want to make stuff "look like this." Learning how to code to get it done is more work than they have time for. So they pick an easier path.

Any system- Wordpress, Expression Engine, etc - all have their own way of doing things, so I don't really believe that this is a huge hurdle. I've never created themes/templates without having to dig in at some level. Johnny van de Laar's comment about a simpler API makes a lot of sense.

* Lack of in-CMS editing. In Joomla (and WP?) the site builder can edit the CSS & template HTML from within the CMS itself. You can't do that in Drupal. There are technical justifications for the Drupal approach. But it makes it hard for designers coming from the Joomla ranks. I'm one of them; I learned Joomla templating by making changes in the CSS / HTML from within Joomla. Once I felt more confident, I started changing it outside of Joomla (and using version control). But I learned within the CMS. Drupal doesn't let you start easy like this.

Well, Wordpress templates aren't accessible from Wordpress itself. Expression Engine allows you to edit templates within EE, but I never liked that approach. Personally, I prefer using applications tailored to code editing such as Coda or CSSEdit. I think most themers would probably approach the initial heavy lifting of template development with tools that make writing code and styles most efficient.

I can't speak to what does and doesn't make sense for people learning a new platform, but I would consider this a secondary concern.

* Reputation history. Drupal 6 made templating more sane in many ways, and IMHO many designers could easily learn to make Drupal templates. But while the Drupal community fixed the technical problem, they either didn't try, or didn't succeed in overcoming the reputation that "Drupal Themes are hard to build."

* Lack of outreach. Related to reputation history, there's been desire, but no organized effort to go attract the designer community.

I agree here- with the launch of D7 there needs to be a serious push from the community to show how much Drupal has grown.

One advantage that other platforms (Wordpress in particular) have is the perception that there are more resources aimed at designers. Any given visit to Digg will likely turn up ten times more links to Wordpress resources than Drupal resources. I'm not sure there's a clear and easy solution to this, but I think it takes a community effort to move perception of Drupal forward.

Another improvement I think the community should consider to ease designers/front-end developers' pain would be to improve Drupal's markup approach. Things like class="block block-block" and 'divitis' can really frustrate front-end developers. I would really love to see Drupal be the obvious first choice for developers who care about web standards, semantic markup, and accessibility, but that's probably a whole other topic of discussion. :)

Pages