<div dir="ltr"><div><div><div><div><div><div>You specify it when you create the instance:<br><br></div><span style="font-family:courier new,monospace">w = SomeWidget(_dom_classes=["panel-body"])</span><br><br></div>or, in the case of class that should always get a _dom_class:<br><br></div><span style="font-family:courier new,monospace">class PanelBody(widgets.Box):<br>    def __init__(self, *args, **kwargs):<br>        super(PanelBody, self).__init__(*args, **kwargs)<br>        self._dom_classes += ("panel-body",)</span><br></div></div></div><span style="font-family:courier new,monospace"></span><div><br></div><div>You could also monkey with the kwargs beforehand, avoiding, under the covers, two calls to update_classes, but this approach is easy to read, which i think wins out.<br></div><div><br></div><div>When I asked about this on gitter, the reasoning for this change was that the add/remove class couldn't be made stateful, and that it was using extra, custom comms stuff to do something that traitlets were perfectly capable of. Thus, this traitlet. Howevever, as you can see from it having the _ prefix, this is really much more of a widget-developer functionality: it is suggested that no-fooling custom javascript be done... which is still not exactly simple.<br></div></div>