diff --git a/IPython/html/static/widgets/js/widget.js b/IPython/html/static/widgets/js/widget.js
index f1b8a5c..a4bdac9 100644
--- a/IPython/html/static/widgets/js/widget.js
+++ b/IPython/html/static/widgets/js/widget.js
@@ -419,9 +419,36 @@ define(["widgets/js/manager",
var old_classes = model.previous('children');
this.update_classes(old_classes, new_classes);
}, this);
+ this.model.on('change:fore_color', function (model, value) {
+ this.update_attr('color', value); }, this);
+ this.model.on('change:back_color', function (model, value) {
+ this.update_attr('background', value); }, this);
+ this.model.on('change:width', function (model, value) {
+ this.update_attr('width', value); }, this);
+ this.model.on('change:height', function (model, value) {
+ this.update_attr('height', value); }, this);
+ this.model.on('change:border_color', function (model, value) {
+ this.update_attr('border-color', value); }, this);
+ this.model.on('change:border_width', function (model, value) {
+ this.update_attr('border-width', value); }, this);
+ this.model.on('change:border_style', function (model, value) {
+ this.update_attr('border-style', value); }, this);
+ this.model.on('change:font_style', function (model, value) {
+ this.update_attr('font-style', value); }, this);
+ this.model.on('change:font_weight', function (model, value) {
+ this.update_attr('font-weight', value); }, this);
+ this.model.on('change:font_size', function (model, value) {
+ this.update_attr('font-size', value); }, this);
+ this.model.on('change:font_family', function (model, value) {
+ this.update_attr('font-family', value); }, this);
this.update_classes([], this.model.get('_dom_classes'));
},
+ update_attr: function(name, value) {
+ // Set a css attr of the widget view.
+ this.$el.css(name, value);
+ },
+
update_visible: function(model, value) {
// Update visibility
this.$el.toggle(value);
diff --git a/IPython/html/static/widgets/js/widget_box.js b/IPython/html/static/widgets/js/widget_box.js
index a1e97fe..a613c7c 100644
--- a/IPython/html/static/widgets/js/widget_box.js
+++ b/IPython/html/static/widgets/js/widget_box.js
@@ -16,6 +16,11 @@ define([
}, this);
},
+ update_attr: function(name, value) {
+ // Set a css attr of the widget view.
+ this.$box.css(name, value);
+ },
+
render: function(){
// Called when view is rendered.
this.$box = this.$el;
diff --git a/IPython/html/widgets/widget.py b/IPython/html/widgets/widget.py
index 3471f47..9c85b6c 100644
--- a/IPython/html/widgets/widget.py
+++ b/IPython/html/widgets/widget.py
@@ -18,7 +18,8 @@ import collections
from IPython.core.getipython import get_ipython
from IPython.kernel.comm import Comm
from IPython.config import LoggingConfigurable
-from IPython.utils.traitlets import Unicode, Dict, Instance, Bool, List, Tuple, Int, Set
+from IPython.utils.traitlets import Unicode, Dict, Instance, Bool, List,
+ CaselessStrEnum, Tuple, CTuple, CUnicode, Int, Set
from IPython.utils.py3compat import string_types
#-----------------------------------------------------------------------------
@@ -381,3 +382,44 @@ class DOMWidget(Widget):
visible = Bool(True, help="Whether the widget is visible.", sync=True)
_css = CTuple(sync=True, help="CSS property list: (selector, key, value)")
_dom_classes = CTuple(sync=True, help="DOM classes applied to widget.$el.")
+
+ width = CUnicode(sync=True)
+ height = CUnicode(sync=True)
+
+ fore_color = Unicode(sync=True)
+ back_color = Unicode(sync=True)
+ border_color = Unicode(sync=True)
+
+ border_width = CUnicode(sync=True)
+ border_style = CaselessStrEnum(values=[ # http://www.w3schools.com/cssref/pr_border-style.asp
+ 'none',
+ 'hidden',
+ 'dotted',
+ 'dashed',
+ 'solid',
+ 'double',
+ 'groove',
+ 'ridge',
+ 'inset',
+ 'outset',
+ 'initial',
+ 'inherit', ''],
+ default_value='', sync=True)
+
+ font_style = CaselessStrEnum(values=[ # http://www.w3schools.com/cssref/pr_font_font-style.asp
+ 'normal',
+ 'italic',
+ 'oblique',
+ 'initial',
+ 'inherit', ''],
+ default_value='', sync=True)
+ font_weight = CaselessStrEnum(values=[ # http://www.w3schools.com/cssref/pr_font_weight.asp
+ 'normal',
+ 'bold',
+ 'bolder',
+ 'lighter',
+ 'initial',
+ 'inherit', ''] + [str(100 * (i+1)) for i in range(9)],
+ default_value='', sync=True)
+ font_size = CUnicode(sync=True)
+ font_family = Unicode(sync=True)