OOUI/Widgets

Widgets are compositions of one or more OOUI elements that users can both view and interact with. All widgets can be configured and modified via a standard API, and their state can change dynamically according to a model. The library handles the application’s low-level DOM events (, ,  , etc.), filtering the "noise" (e.g., a copy and paste of the same content that results in no actual change) and emitting (see OOjs/Events) high-level, meaningful events to the application.

The OOUI library contains a number of ready-to-customize widgets that fall into several main categories: buttons and switches, icons, indicators and labels, selects and options, input widgets, popups, and progress bars. When used together with layouts, these widgets can create high-level components like dialog or modal windows.

Note that not every widget in the library is commonly used ‘out-of-the-box.’ Some widgets, such as  , are designed to be extended and will rarely be instantiated on their own.

If you are interested in “Extending the Library” - please write documentation for it once you know how to :)