{"action":"created","issue":{"url":"https://api.github.com/repos/bokeh/bokeh/issues/3219","labels_url":"https://api.github.com/repos/bokeh/bokeh/issues/3219/labels{/name}","comments_url":"https://api.github.com/repos/bokeh/bokeh/issues/3219/comments","events_url":"https://api.github.com/repos/bokeh/bokeh/issues/3219/events","html_url":"https://github.com/bokeh/bokeh/pull/3219","id":119825673,"number":3219,"title":"Basic theming","user":{"login":"havocp","id":218689,"avatar_url":"https://avatars.githubusercontent.com/u/218689?v=3","gravatar_id":"","url":"https://api.github.com/users/havocp","html_url":"https://github.com/havocp","followers_url":"https://api.github.com/users/havocp/followers","following_url":"https://api.github.com/users/havocp/following{/other_user}","gists_url":"https://api.github.com/users/havocp/gists{/gist_id}","starred_url":"https://api.github.com/users/havocp/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/havocp/subscriptions","organizations_url":"https://api.github.com/users/havocp/orgs","repos_url":"https://api.github.com/users/havocp/repos","events_url":"https://api.github.com/users/havocp/events{/privacy}","received_events_url":"https://api.github.com/users/havocp/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/bokeh/bokeh/labels/status:%20ready","name":"status: ready","color":"bfd4f2"}],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":6,"created_at":"2015-12-01T22:44:56Z","updated_at":"2015-12-03T17:58:23Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/bokeh/bokeh/pulls/3219","html_url":"https://github.com/bokeh/bokeh/pull/3219","diff_url":"https://github.com/bokeh/bokeh/pull/3219.diff","patch_url":"https://github.com/bokeh/bokeh/pull/3219.patch"},"body":"In this PR:\r\n* add an apply_theme feature to HasProps to insert theme props between defaults and application-set values\r\n* add Theme class which can come from a yaml file or a dict. (currently the same format as the existing default.yaml file)\r\n* add Document.theme which can be set to a Theme instance\r\n* use Override() to empty out default.yaml so other themes don't have to cut-and-paste those values\r\n* if theme.yaml is found in an app directory, set it as the theme\r\n\r\nFuture work not in this PR but soon:\r\n* when include_defaults=False, we'll need to send themed values; doesn't matter right now because we always use include_defaults=True and the default theme doesn't theme any values. Will sort this out as part of switching to include_defaults=False, which can only happen once we close https://github.com/bokeh/bokeh/pull/3099\r\n\r\nFuture work not in this PR, unknown timeframe:\r\n* make the theme file format more powerful\r\n* build up themes from multiple files, such as sitewide, per-user, per-app\r\n* autogenerate some kind of catalog or doc of everything that can be set in the theme, so designers can play with themes without having to read source code to see what possible properties there are\r\n"},"comment":{"url":"https://api.github.com/repos/bokeh/bokeh/issues/comments/161731894","html_url":"https://github.com/bokeh/bokeh/pull/3219#issuecomment-161731894","issue_url":"https://api.github.com/repos/bokeh/bokeh/issues/3219","id":161731894,"user":{"login":"bryevdv","id":1078448,"avatar_url":"https://avatars.githubusercontent.com/u/1078448?v=3","gravatar_id":"","url":"https://api.github.com/users/bryevdv","html_url":"https://github.com/bryevdv","followers_url":"https://api.github.com/users/bryevdv/followers","following_url":"https://api.github.com/users/bryevdv/following{/other_user}","gists_url":"https://api.github.com/users/bryevdv/gists{/gist_id}","starred_url":"https://api.github.com/users/bryevdv/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bryevdv/subscriptions","organizations_url":"https://api.github.com/users/bryevdv/orgs","repos_url":"https://api.github.com/users/bryevdv/repos","events_url":"https://api.github.com/users/bryevdv/events{/privacy}","received_events_url":"https://api.github.com/users/bryevdv/received_events","type":"User","site_admin":false},"created_at":"2015-12-03T17:58:23Z","updated_at":"2015-12-03T17:58:23Z","body":"No requests to wait, merging now. "}}