{"action":"created","issue":{"url":"https://api.github.com/repos/jupyter/notebook/issues/179","labels_url":"https://api.github.com/repos/jupyter/notebook/issues/179/labels{/name}","comments_url":"https://api.github.com/repos/jupyter/notebook/issues/179/comments","events_url":"https://api.github.com/repos/jupyter/notebook/issues/179/events","html_url":"https://github.com/jupyter/notebook/pull/179","id":91939520,"number":179,"title":"Add less config for themes and apply throughout","user":{"login":"nsonnad","id":1362219,"avatar_url":"https://avatars.githubusercontent.com/u/1362219?v=3","gravatar_id":"","url":"https://api.github.com/users/nsonnad","html_url":"https://github.com/nsonnad","followers_url":"https://api.github.com/users/nsonnad/followers","following_url":"https://api.github.com/users/nsonnad/following{/other_user}","gists_url":"https://api.github.com/users/nsonnad/gists{/gist_id}","starred_url":"https://api.github.com/users/nsonnad/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/nsonnad/subscriptions","organizations_url":"https://api.github.com/users/nsonnad/orgs","repos_url":"https://api.github.com/users/nsonnad/repos","events_url":"https://api.github.com/users/nsonnad/events{/privacy}","received_events_url":"https://api.github.com/users/nsonnad/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":2,"created_at":"2015-06-30T00:07:07Z","updated_at":"2015-06-30T01:54:46Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/jupyter/notebook/pulls/179","html_url":"https://github.com/jupyter/notebook/pull/179","diff_url":"https://github.com/jupyter/notebook/pull/179.diff","patch_url":"https://github.com/jupyter/notebook/pull/179.patch"},"body":"This is far from over, but I'm looking at this approach for themes. Essentially the idea is to refactor the CSS so that all colors are defined in a `theme-name.less` file. For example here I have `themes/default.less` as well as `themes/eighties.less`.\r\n\r\nBy just changing the 16 colors in the `<theme>.less` files, I have this:\r\n\r\n### `themes/default.css` ###\r\n\r\n![screen shot 2015-06-29 at 8 01 48 pm](https://cloud.githubusercontent.com/assets/1362219/8421221/c4bd2636-1e99-11e5-89ed-f07f847208e3.png)\r\n\r\nSwitching to...\r\n\r\n### `themes/eighties.css` ###\r\n\r\n![screen shot 2015-06-29 at 8 02 04 pm](https://cloud.githubusercontent.com/assets/1362219/8421225/cacb78a2-1e99-11e5-99d5-685c1e919153.png)\r\n\r\nIf we can make sure that all colors are derived from these, it would be very easy for users to add their own themes. Once this is done, we could roll the gulp task into its own repo—maybe a simple CLI or node package—specifically for creating a new Jupyter theme. Jupyter could itself load this package to generate the default theme.\r\n\r\nOne issue here is that CodeMirror styles override anything in here. In the interest of leaving CodeMirror alone I think we should just override its colors by loading the Jupyter CSS later.\r\n\r\nThis is not intended to be a final product but just a demonstration of this approach. Please let me know if you have feedback."},"comment":{"url":"https://api.github.com/repos/jupyter/notebook/issues/comments/116910680","html_url":"https://github.com/jupyter/notebook/pull/179#issuecomment-116910680","issue_url":"https://api.github.com/repos/jupyter/notebook/issues/179","id":116910680,"user":{"login":"nsonnad","id":1362219,"avatar_url":"https://avatars.githubusercontent.com/u/1362219?v=3","gravatar_id":"","url":"https://api.github.com/users/nsonnad","html_url":"https://github.com/nsonnad","followers_url":"https://api.github.com/users/nsonnad/followers","following_url":"https://api.github.com/users/nsonnad/following{/other_user}","gists_url":"https://api.github.com/users/nsonnad/gists{/gist_id}","starred_url":"https://api.github.com/users/nsonnad/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/nsonnad/subscriptions","organizations_url":"https://api.github.com/users/nsonnad/orgs","repos_url":"https://api.github.com/users/nsonnad/repos","events_url":"https://api.github.com/users/nsonnad/events{/privacy}","received_events_url":"https://api.github.com/users/nsonnad/received_events","type":"User","site_admin":false},"created_at":"2015-06-30T01:54:46Z","updated_at":"2015-06-30T01:54:46Z","body":"Yeah, I don't think we can really talk about build/distribute/select until it is easy to configure a theme that is applied to the whole interface.\r\n\r\nLike I said, once we've solidified how this works with a default theme we could easily refactor theme generation into its own node module or CLI that Jupyter would depend on, or we could just have a bunch of `theme/<name>.less` files that generate different CSS."}}