mrdoob/three.js — pull request #3912 by jlewin (2013-09-25 16:47:25+00:00)
Title: Editor Themes

First off, this isn't as much a pull request as it is a request to review and consider the proposed functionality. In essence, I'm hoping to remove much of the hard coded inline element styles to allow for easier css customization. This has the downside of the code not being as explicit about how it should be formatted but to me the flexibility it introduces seems worth the trade off.

For the time being I've stuffed a simple 'Theme' dropdown in the Renderers section but ideally the UI might live in an Editor Options dialog that only appears when invoked (possibly with things like Renderer, Clear Color, and/or any other options that are infrequently set user preferences). This would free up some of the most valuable screen space and separate editor settings from scene manipulation tools and property viewers.

Another aspect of theses changes that's not exactly related to externalize style rules relates to the expansion of the viewport and the overlaying of the dom toolbars on top of the scene. To me, this produces a very nice effect that makes the editor feel more interactive. (Sidenote: in it's current form this is still done with code but I hope to extract it to css to enable the style to define the layout thus not forcing the change on anyone). This was my original motivation for the update but I'm not sure how many gotchas it might introduce and beyond making the depiction more interesting, it isn't necessarily required. If it's a bad practice it can be squashed. Potentially there are two new issues that may be related to this aspect:
* Flickering sometimes occurs in the scene when you leave and later return to the Editor tab. Page refresh is required to fix the problem
* In some cases, dragging from the transform controls and releasing over a toolbar causes the orbit controls to stop working until a new object is selected. I assume the mouseup event handler isn't being fired and a workaround is needed but I haven't dug into it yet.

Anyway, this isn't a complete feature by any means but I wanted to get an idea if it's something worth pursuing and how it might be improved or revised if it were to be picked up.

![dark](https://f.cloud.github.com/assets/175113/1210301/fd7bb97a-25f7-11e3-8711-5002e00fc1de.jpg)
![dark](https://f.cloud.github.com/assets/175113/1210300/fd75a774-25f7-11e3-805e-e3a3d7b7d036.jpg)
![original](https://f.cloud.github.com/assets/175113/1210299/fd6155b2-25f7-11e3-9eea-28a7a38f5997.jpg)