Hi,
I have tried this module once almost 2 years ago. Congratulations on the progress and on what I see becoming a great module!!!
I was assuming/hoping that this module would allow users to change colors of color-based themes like Garland, Pixture etc. But alas. Without such feature, this is pretty much a show-stopper for me.
On my site I want to have only one color-based theme enabled. And rather than developing a variety of themes for my users to pick from, I'd rather have only 1 custom theme based on Color module and give the users just the option to change colours. With endless combinations between 6 colours, this pretty much means an endless ammount of "themes" that they can adopt, while the format of the style remains universal and clean. So for instance, lets say the main site runs on Blue Garland by default, but Tom's profile page and blog appears under Green Garlan, while Mary's is under Orange Garland, etc.
What I'm proposing is the same way that www.Twitter.com is doing it. Under Profile>Edit users see a tab that says "Display" and there it allows you to change the colours of Twitter's main theme through the same color-tyrell as we see provided by the core Color module (try customizing Garland for example to see Colours module in action).
It also allows you to upload your own background picture, which can be just in the top left, or repeatable along X or Y.
It would be absolutely awesome if the maintainers of Blog Theme would enable such functionality whereby the users, rather than choosing from a variety of enabled themes, can instead pick their own colours for the One theme that runs universally throughout the site.
What do you think?
Comments
Comment #1
beginner commentedI think it's a great idea. I'll review any patch that comes along.
Comment #2
drupalina commentedI'm not a coder, unfortunately, but I can help by testing a dev on my live site and reporting back the feedback from my users.
Comment #3
drupalina commentedA small update:
there are several themes that integrate beautifully with the Color module
http://drupal.org/project/wabi
http://drupal.org/project/pixture
http://drupal.org/project/twilight (also could let users choose alternative Logo style if colour picking by users was enabled by BlogTheme module)
http://drupal.org/project/garland
http://drupal.org/project/austere
http://drupal.org/project/ad_blueprint
http://drupal.org/project/kommunity
Also watch this video for a brief intro to 3 themes.
http://www.metacafe.com/watch/1273616/drupal_6_hot_new_themes/
New colour-module-based themes can be easily created. Here's some documentation on how color themes work:
http://drupal.org/node/108459
It would be absolutely awesome to just have 1 enabled theme, which users can later simply change the colours for. This would mean developing only 1 theme that can allow 1,000,000s of variations, rather than individually deleoping 10 or 20 themes and then worrying whether each new module or upgrade would be compatible with all of them. It would also mean a whole lot LESS clutter in User's Account Settings (especially if theme colour customizatons would be placed under a different tab rather than Account Settings).
I'm soooo looking forward to Blog Theme developing this functionality!
Comment #4
pribeh commentedSubscribing.
Comment #5
pribeh commentedFound this but am not to sure what ever happened to the development:
http://groups.drupal.org/node/4013
Comment #6
alanburke commentedSubscribe.
Very useful, but looks tricky.
If any customizations are made with color module, they would have to remain private to that user.
Within the current system, that would mean a whole new theme, I think.
Alan
Comment #7
drupalina commentedThe best and most famous site that is doing it right now is www.Twitter.com . They have millions, if not tens of millions, of users and they have 1 fixed theme which each user can customize through the colour turrel like we have in Drupal. So I guess this is very much doable.
I can offer a small $50 paypal bounty if it helps :)
Also: if we recall MySite module was alllowing users to customize the colouring of their pages. So maybe some code could be taken from them.
Comment #8
pribeh commentedI'll double drupalina's paypal bounty :)
This would be a "killer-app" feature for Drupal-as-community-site - particularly if it could be applied to user profile pages as well, where with panels, APK and activity so much content display is moving toward.
Comment #9
entr3p commentedThis would be great!
subscribe
Comment #10
Gary Feldman commentedI've hacked together something that does a much more limited version, and I emphasize limited and hack. The limitation is that it relies on canned color scheme, instead of allowing the users to pick arbitrary colors.
The basic tactic is to use a theme proprocess hook to add an extra
to the $variables['styles'] list, which brings in the .css file that controls the colors and background images. It gets the value by an explicit DB query, with a hardwired profile field name. The profile field was manually created as a selection list, while I used a form_alter hook to change the drop down to radio buttons and add the screen shots.
The color schemes were created manually via the color.module. For convenience, I hacked the module to use the color scheme name instead of a random number for the directory name, as well not deleting the previous schemes. (Hey, I said it was a hack.) This let me generate a handful of color schemes at once, without losing the previous ones or struggling to figure out which one was which.
A quick look at Twitter suggests that their color manipulation is much simpler than what the color.module provides. They seem to have a single space set aside for a background image, as well as letting the user specify specific solid colors for backgrounds, borders, text, and links. The stock Twitter image I tried didn't have a transparent background, so it severely limited the choice of colors that would work. In fact, unless you upload your own image, you can't get very much out of their color selection system.
On the other hand, the Drupal Color module will generate gradients and recolor existing images, but requires the theme maintainer to set up gray scale masks for that purpose. It will also remap arbitrary colors in the .css files, though my experience is that it didn't work well enough for my case (perhaps because of the mask file I used and not something specific to the color module). Unfortunately, dealing with the mask file is non-trivial (at least for me, working with Paint Shop Prop X2). I'd say that 90% of my work was in learning how to use the color module (and fighting bugs in color.ng). It might have been easier to write a PSP Python script to generate the color schemes outside of Drupal.
I believe that it would be easy to extend Blog Theme so that it would add a user-specific stylesheet to the output. The only significant pieces that I haven't done is to automatically generate the profile field (or put it elsewhere) and create the UI for populating the values. It would also be easy to build a color picker setup similar to Twitter, if you're willing to live without the smarts contained in the Color module. The hard part would be coming up with the themes, unless - again - you're willing to live with Twitter's primitive approach.
Comment #11
pribeh commentedThe theme hue module is apparently developing just such a feature-set. Check it out: http://drupal.org/project/theme_hues
Comment #12
aacraig commentedI'm the author of the Theme Hues module, and it looks like we're all heading in the same direction.
The Theme Hues module allows the designer to group sets of css selectors together, and then the end user can choose colors for those sets. It allows a designer to create a color scheme that should always look more or less coherent, no matter what colors the end-user chooses.
Currently, Theme Hues effects the entire site, and it isn't possible to indicate that it should only handle certain pages.
One of the next releases of Theme Hues should have an improved interface for managing styles. The current system is rudimentary. Eventually I thought to get around to doing per-user color choices, but it looks like you've already done that.
I'm just posting open up a discussion about how we can support each other's work or integrate modules in some way.
Have a look at http://drupal.org/project/theme_hues and let me know what you think.
Comment #13
Gary Feldman commentedIt sounds like the Theme Hues and the Color modules take different approaches. The Color module doesn't require you to do anything special at all with the selectors. You just need to specify one or more .css files, it reads the file, and everywhere it finds a hex color (#xxxxxx), it does a replacement. It does some special processing for link selectors, and allows you to have a "don't touch" section at the bottom of the file. It's less flexible but seems easier.
Comment #14
pribeh commentedI would love to see collaboration on these two projects. Just a mention: most users will prefer the jquery color wheel as opposed to handling/working with Drupal's own color module. Drupal's own color module is too extensive for this purpose. Twitter's example is a good one, they offer all a user needs to make a customized look to their page. In most cases I think this is all that's probably needed. Take a look at virb.com as well - they allow for some nice color combinations with just a few selectors. Twitter is python so it's using a python script but I think virb.com is using php and jquery.