Is it a good idea to give visitor a toolbar, that can change the various CSS parameters, such as the alignment of text, the size and the color of the text, etc.? Or would that be perceived as the designer leaving his work to the end user?
It was fairly common about 10 years ago to have different 'themes' on forums for users to switch between. vBulletin boards did this a lot.
It's not a sign of weak design, and given the right situation can be a benefit.
If we look at web standards, then WCAG 2.0 success criteria 1.4.8 does say that a "mechanism is available to achieve the following", including changing line spacing, colours, background colours, text width and text size. If you're designing a site for AAA level WCAG (web content accessibility guidelines) compliance then you need to include some way for users to change aspects of the visual presentation.
AAA compliance is seen as a 'nice to have', even by the Web Accessibility Initiative. Going for AA is sufficient unless the client demands AAA, and at AA compliance there's no need for users to change most aspects of visual presentation (the one that users should be able to control, natively or through your site, is text size).
I would first ask, what would be the purpose of allowing the user to do such as thing? Does this benefit the experience overall somehow? Without a compelling reason, it sounds like this would complicate the user experience for no benefit whatsoever.
One compelling reason would be to allow an admin user to whitelabel or theme a site/page so that other visitors may experience the site under that specific brand. This of course is essentially in a "editing" type of mode and not usually in a "viewing/read only" type of scenario.
Every once and awhile on sites, I also see options for the user to change the font size (small, large, extra large). Not sure how beneficial this method is, since anyone that needs the font larger likely has some accessibility features turned on in their browser/os, but these options are generally subtle and don't distract too much from other elements on their respective pages, so overall I don't see this feature necessarily in a negative light.
Then there's the feature of theming for individual use. A good example would be being able to change your webmail theme in gmail, yahoo, outlook, etc or even your web browser theme such as in Google Chrome. The big difference I see here is that when the user simply selects a theme, all the colors and font metrics are also set for them without further work from the user. This keeps the user choice simple by default (sometimes there are advanced options, but generally are not the first choices with which a user is presented). By keeping the theme choice simple, it allows the user to move on and cognitively focus on the more important parts of your website. Allowing the ability to more personalize an experience to an individual user can be a positive if done well.
Ultimately, I would shy away from giving the user too many options to "theme" your site, unless of course you have a compelling reason that will somehow improve their experience or allows required functionality to take place.
Customizing visual styles is ok (font-size, background color, a dozen themes to choose from, especially day/night themes).
Bigger benefit (for me, as a user) would be having customization over the content itself. For ex., I don't want to see Google Chat in Google Mail.
Of course, customization brings complexity.
Customization according to one's preferences has nothing to do with the generic UX. It's more like a feature add-on to the core service.
If we think about it, We do a lot of focused user research in order to create a user experience which caters to (targets) it's specific audience. By providing customization options, we are allowing users to further adjust the UI according to his/her own personal preferences.
It's very important to understand that just by providing UI Options, we can't make a drastic change in the core UX of a product. It's still the same product and UI customization comes with a cost of complexity and learning. So the placement of such features is also important. They should be discoverable by power users (Should be avoided during onboarding and early stages of user adaptation)
Customization options don't add anything to a site that will only be visited once, or infrequently. The time it takes to set up the customization will be disproportionate for the benefits it gives, and in the worst case, it will hinder good UX-Design ("Why bother, the user will customize it anyway").
On a site that is frequented often (facebook, google, ...) Customization options can, if done properly, avoid user frustration that would otherwise be unadressable (no accounting for taste). Here they offer a tool for the user to "claim" the site for their own.
The other problem with the idea, as you presented it, is the relatively high degree of complexity it suggests. The more options you give the user, the more time he needs to spend to learn how to use them. Are there any use-cases which actually justify the amount of learning the user would need to do? Could the tool as you describe it offer any options, that wouldn't be easier to use by presenting streamlined options (themes, readability options)?
For accessibility reasons, there is no need to let the user adjust the fonts and colors of your site:
- Users who need a larger font or a better contrast do mostly already have some kind of assertive software on their devices.
- If they don't, they will have a hard time changing these settings on each and every site in order to be able to use those sites.
So, the answer is: Put your efforts on something more productive instead.