1. A system for providing a user interface comprising: a non-transitory computer-readable medium storing: a behavior library including an XML-based behavior definition element, the behavior definition element including one or more XML-based behavior elements including at least one XML-based reaction element that specifies a script function to be called in reaction to an event; a gadget library including an XML-based gadget definition element defining gadget for instantiation in a user interface and specifying that the gadget is associated with the behavior definition element, the XML-based gadget definition element including properties of the gadget and an identifier for the gadget; a style library including an XML-based style definition element specifying one or more styles to be applied to an instance of the gadget when the instance of the gadget is instantiated, the XML-based style definition element including: a tag selector attribute set to the identifier for the gadget, the tag selector attribute specifying that the one or more styles specified by the XML-based style definition element are to be applied to the instance of the gadget when the instance of the gadget is instantiated, and one or more style attributes to be applied to the instance of the gadget that control a visual appearance of the instance of the gadget, when the instance of the gadget is instantiated; a scene file, wherein the scene file is an XML-based document specifying the user interface, the scene file including an element referencing the gadget stored in the gadget library and specifying that the gadget is to be instantiated as a component of the user interface; and instructions; and at least one processor that is configured by the instructions to implement: a parser to parse the XML-based behavior definition element, the scene file, the style library including the XML-based style definition element, and the gadget library including the XML-based gadget definition element, and to generate an object model based on the parsed scene file, the parsed XML-based style definition element, and the parsed XML-based gadget definition element, the object model including a gadget object corresponding to the gadget, the gadget object being attached to a plurality of event listeners including a first event listener and a second event listener; a layout engine to determine, based on the object model, a layout of the user interface; a rendering engine to render, based on the determined layout, the user interface, the user interface including the instance of the gadget having the one or more properties defined by the XML-based gadget definition element and being styled according to one or more styles specified by the XML-based style-definition element; and a dispatcher, responsive to detecting the event, to dispatch an instance of an event object corresponding to the event to the first event listener, the first event listener, responsive to determining that the event object has not been handled, propagating the event object to the second event listener.