Proposal - Modern recolorable theme with configurable "styles"

Overview: The purpose of this project is to build an awesome, modern, recolorable theme that can have different "styles" applied in the settings. The theme will also come with an integrated jQuery plugin, a slideshow or carousel/slider that can be configured in the theme settings.

Description: The proposed theme will integrate with the color module, making the color scheme configurable through the theme settings. In the same way that Garland works, users can choose gradient top and gradient bottom colors and see a preview of the theme.

The header and footer will have a transparent png overlayed giving it a "style", since they are transparent, they will work on any color scheme. These styles can be configured in the theme settings by switching style sheets.

The vision of this theme is to have a nice deafult theme that can be easily personalized by changing the color scheme and/or "style". It would be like having multiple themes in one, and people could make there themes awesome and unique without touching any CSS. The long term vision would be to encourage designers to make they're own styles and color schemes and contribute them back to the project. Having many color schemes and "styles" would lessen the effect of some bad color combinations seen on some sites using recolorable themes like Garland.

Other features include custom front block region (screenshot to come) and integration with jQuery plugin/s. The general idea is to be able to customize for example a slideshow or carousel/slider, in the theme settings by selecting transitions, speed, and uploading images.

Mentors:

Squikel - Very good knowledge of color module and theme settings

- needed

Difficulty: Easy/Medium: This project will just produce one theme, but it will be very flexible and configurable. The design process will be longer than a regular theme because multiple styles and color schemes have to be designed. The theming process will also be longer because of the color module and jQuery plugin integration.

Hey Alex, thanks for promoting this to an official idea, it's really exciting! My original idea was to be the student that works on this project, but after reading the SoC FAQ, I'm not sure if I'm eligible because I might have already graduated by April 14th. Anyways I'd like to be involved in this project in any way I can, I have already some experience integrating the color module to a theme, so I could be a mentor for this project if I don't get to be the student, and I could always help with the design. In any case this is a project I'm likely to work on even if it doesn't get picked, but it would take me a lot longer to finish the theme without the help of a program like SoC. Thanks to everyone for the great comments I've been receiving here and in #drupal-themes.

@Alex UA: Is it cool if I cross-post to the Drupal 4 Designers group? I'd like to get some feedback from some designers, and also see if they would be interested in doing "styles" and color schemes for the theme.

It's fantastic to have another person on board at such an early stage. Thanks so much for expressing your interest Ankur :), do you IRC by any chance? My nick is the same there, I hang out in the drupal channels mostly #drupal-themes.

Wow, its wonderful idea, I just read the phpTemplate engine articles and now ready to add my proposal here and intend to do this project.
Let me know how can I proceed to posting proposal? Do I need to add here as a attachment?

So this is just a theme that is re-colorable? I really think this proposal needs more thought as well, just creating a new theme that is re-colorable is not enough, to make this awesome - you need to clearly think about the color.module its restrictions and what we could do to improve it.

Not really, in my proposal I describe a theme that is recolorable, but that also have different "styles" which are transparent pngs with desgins overlayed, that users can select with an interface in the theme settings. Instead of a recolorable theme, I would call it a customizable theme, where users could give there websites a complete new look through an interface, not just change the color scheme. The idea is to get designers to contribute there own color schemes and "styles" to have many "styles" to choose from. I also mention a built-in jQuery plugin like a slideshow or slider/carousel that can be configured (speed, transitions, etc.) but also gives you the ability to upload images. Maybe this doesn't sound like a lot to an experience Drupal developer, but new Drupal users would love to have a theme like this. A lot of work would go in making the theme cross-browser and making admin work really well with the theme, so a lot of time will be spent debugging the theme making sure it'll work nicely for everyone.

you need to clearly think about the color.module its restrictions and what we could do to improve it.

I have integrated the color module before with a theme, so I'm aware of the restrictions. Skiquel has done a lot of work with the color module in SoC 08 so there has been a lot of work going on, on how to improve it. We have been talking about making the theme work with core stuff, but having a a companion module that would give you a lot more options. Like live previews of the theme (not on the preview box, but the whole theme), advanced setting for the jQuery plugin, and other things. If we don't do everything throught the theme settings, we have more liberty to give beter features to the theme.

I feel like the proposals are not getting enough critical thought.

Your entitled to your opinion and thanks for sharing it, this obviously a theme that is not meant for themers but for users starting out with Drupal that want to customize there theme through an interface, because they don't know CSS or working with images and vectors. This is an initital draft of my proposal and I'll work on giving more critical thought, and making it better. Is there any area in particular you don't think has been well though off? Thanks for the criticisicm. :)

I think this is a great idea. There have been more than a few occasions that I've needed to throw up a demo site, or a proof of concept or something simple. I don't want to have to use Garland, but I also don't want to wade through the theme directory to find something "unique." Being able to heavily customize the layout with new PNGs and lots of regions (e.g. 3 "rows" x 4 regions each) would be fantastic!

I hadn't thought there would also be the ability to upload new PNGs. But rather just put them into an "available images directory." If you are also figuring out a sensible upload interface for new PNGs, including storage, thumbnail display and image management, I think you have got more than enough work lined up for this project!

I specialy like the png / gradient deal, very nice, and if users can upload their own png files, it realy could be very customizable.

I have a question about the carousel with jQuery, what would you show in the carrousel? The first three nodes from /node or? Perhaps integrate it with nodequeue, or would this be too much for the target audience? Just thinking out loud here... thoughts?

@emmajane: Wow! thanks so much for your comments and your fantastic ideas. I hadn't thought of letting people upload the transparent PNGs through an interface, but drop them in a folder. My idea was to let people upload images for the integrated slideshow or the slider through an interface in the theme settings, but your idea is fantastic and would make the theme easier to use and opens more possibilities. I'm really excited about this, thanks!!!

@manuel garcia: Hey thanks so much for your comments! My idea originally was to let people upload images for the carousel or slideshow. It would be fantastic to display the first promoted nodes, but my worry about that is that some people would find it hard to use. If you display the body of the nodes, you can have very different page lengths, and that would make a slideshow or carousel look very weird. I think having an interface where people could upload images, and they get resized to fit the carousel, would be extremely simple and easy to use, so it would be great for people starting out with Drupal. However I do really like the idea of having fields in the slider, but this would be more of a thing for a contrib module (I know there are several). Maybe this can be an additional option if we make the module that adds more configuration options to the theme (which would not be possible through theme settings), that we've been talking about with skiquel.

Is this project is limited to just color changing functionality or some AJAX and drag and drop funtionality is also involved..with it?
Options for creating buttons,editing text-size,font and drag and drop funtionality for images may be added for creating more user freindly environment.

I think a flexible theme is something Drupal really needs. I definitely like the idea of users being able to add their own PNG's. I also think users should be able to add their own graphics for forms, buttons, icons, blocks, etc. These might not be transparent PNG's.

I'm not completely sold on the idea of the jQuery Carousel idea. It covers one very specific use case and there is a contrib module for this: http://drupal.org/project/jcarousel

Perhaps the theme should check if the jCarousel module is installed and if it is, then provide some customizable options for theming the output of jCarousel. That being said, the theme should probably take into consideration the most popular contrib modules and perhaps add some extra options for those modules.

I'd like to see you make this a sub-theme for one of the heavily supported themes such as Zen, Blueprint, or the new drupal 7 theme so that the work you do with the color integration can easily be used by other theme builders. It would be great to see this in the base drupal 7 theme.

Every theme is a candidate for core. ;) This theme will need to be extensively field tested before it's considered as a candidate. Adding a requirement to have the theme accepted to core is not a reasonable request for an GSoC project like this one.

I have played with some different approaches to a similar type problem before (I used to run a Zen sub-theme creator on my website) and I could add a few more options to this to flesh it out a bit more.

I think it would be awesome if there was a module that could be added on to let each user customize their own theme, or allow their own settings to be loaded. This could then be controlled for which pages the user would be allowed to change it, or if other users would be allowed to see if when viewing certain pages (think customizing your theme on your profile page on a social network).

Also, imagine if there was a module where you could say take the dynamically generated theme output and save it as a static and downloadable theme bundle? Would this be useful to some folks? I think it would, however this would probably be outside the scope of this project.

@mikey_p I love your enthusiasm for this proposal. I pretty much feel the same way about it and can see all kinds of applications. I don't want this project proposal to get so big that it can't be accomplished though. I'm also not sure I completely see the need for what you're describing (e.g. why not just configure existing modules to accomplish the same?). Do you want to flesh out your ideas on a new project page and link to there from here so that we can keep this page focused on what ipwa has described up to now? I look forward to reading more ideas!

Iam having a high propensity towards this project...i have been using Drupal since 6 months and found it very user freindly and efficient.
Hope it will help Drupal to go beyond programmer community and reach to the beginners and help them to create new freindly themes.

for not keeping up with the comments, I had to go to Paris in a bit of an emergency, but now I'm back in London and looking forward to pushing forward with this.

@jtsnow: I really like your idea for baing able to add their own graphics for more elements, I'll have to think more about that.

@atouch: Yes I'm considering building this theme as a Stark sub-theme, or based on Stark.

@yoroy: I think as emmajane said, making a theme for core might be outside of the scope of this SoC project.

@ mikey_p: Wow your ideas sound amazing! I look forward to discussing this with you on more details, and I would love to help out on the application you are considering on building based on this proposal.

@emmajane: Thanks so much for supporting this proposal :)

@ajitlodhi: Thanks, its great to have another student interested on this project!

I've committed the theme but without the theme settings. Since none of the students that chose this proposal got picked for Summer of Code, I did this in my free time. Skiquel's new background module and the theme settings I've seen in Acquia's TNT themes, brings us a lot closer to what I had in mind here. I'll comment back when there's more progress.