[Bf-funboard] UI colors/ themes

Ton Roosendaal bf-funboard@blender.org
Tue, 14 Oct 2003 19:29:24 +0200


Hi all,

Below you can find a proposal for user presets. I've checked on the  
work in Tuhopuu, and the basics I can copy for it. With a few changes  
however...

A general - but good - read on this topic is an article, which Matt  
pointed me to:
http://ometer.com/free-software-ui.html

Apart from rewarding people's "personal taste" there are presets that  
make sense in general:

- contrast; not all monitors have identical gammas. What looks good  
here, can look horrible at an LCD screen for example
- colorblindness. Not to understimate.
- screen resolution: large resolutions make pixels disappear
- cursor defaults, for example at OSX the 'editing crosshair' is barely  
visible
- creating a good match for your other preferences (desktop theme)
- allowing people to match colors with settings used in other software


-----------------------------

Data:

- the settings will be saved as extension to the 'UserData' struct in  
Blender. It only will reside in $HOME/.B.blend (saved with option  
CTRL+U). Themes will not reside in regular .blend files.
- multiple themes will be possible in a single file, including the (not  
editable) 'default' theme.
- I'll code that Blender will optionally read (append) the Theme part  
from any file, this as means to exchange themes.

Categories:

1, Buttons

Apart from buttons window, you can find this anywhere in Blender. So  
it's a global setting like the font type. Main choices are:

- drawing style (embossing, shading)

Here I prefer to stick with a limited set of choices. Like 'shade  
on/off' and 2 or three button drawing styles. Can be defined later on,  
doesn't have to be all ready today!
I like how Matt provided drawing styles to enhance visualization for  
button functioning as well. We shouldn't be forced to use colors for  
all of it.
The new button 'Panels' can have user presets as well.

- color groups

Nevertheless, users then still can make choices for a specific color to  
visualize its functioning:

   - tool/action button ("Render", "Extrude")
   - setting button ("Wire", "Solid", "Gour")
     to distinguish graphically; two extra are needed (now blue and  
purple))
   - neutral button (now grey)
   - number input buttons, including sliders
   - menu or popup button
   - backdrop color for pulldown menus
   - hilite color for pulldown menus

2. 'Spaces'

Each Blender 'space type' (window type) will get user presets. What is  
commonly shared among spaces are:

- background color
- basic text color, hilite text color (default: black and white)
- primary colorshade (sliders/bars/headers) (default: grey)
- secundary colorshade (like used in ipowindow, action window)
- special attention color (like selected files in filewindow)

Per 'space' we can allow some interesting presets. Like in Tuhopuu for  
the View3D window:

- grid color
- basic wire color
- selected/active wire color
- 'being transformed' wire color
- vertex size
- unselected, selected, active vertex color

Note; for this I'll stick to the way Blender currently works. This is  
step one. The UI project on 'wire colors' and drawmodes is far from  
finished yet. Nice for 2.31 or so!

Note 2: as a start, these presets are 'global'. Next step is to see if  
there's use to have local themes per window itself... different  
backdrop colors for 3d, dependant on what you work at or so.  
Technically it's all possible. But I don't think we should spend too  
much time on working with the UI itself, instead of creating cool 3d  
content. :)

3. Coding...

There's a myriad of color calls all over Blender, without even thinking  
of themes... I cannot predict how far I'll come for release 2.3, but at  
least what is mentioned above is feasible.
My proposal is to be quite conservative with 'themes' now.

-Ton-


------------------------------------------------------------------------ 
--
Ton Roosendaal  Blender Foundation ton@blender.org  
http://www.blender.org