MicroRaptor Gui is a C API for creating user interfaces, it can be used as an application writing environment or as an interactive canvas for part of a larger interface.
Drawing with microraptor is done using cairo. Interspersed with the cairo drawing calls you can register motion, press and drag pointer event callbacks rectangles for the drawn scene. Key bindings are also registered while/after drawing. For control over styling (and positioning) of text and other elements micro raptor uses CSS/XHTML, in mrg pushing and popping named style contexts corresponds to the nesting hierarchy of a DOM.
MicroRaptor Gui has three independent backends it can use, SDL-1.2, GTK+-3.0 and ANSI/vt100 terminals, the GTK backend provides both full application hosting, and a widget for use as a canvas in GTK+applications. The terminal backends has mouse support, is utf8 native and for simple text-centric applications you can even build static libraries skipping even the cairo support.
In terms of programming paradigm, microraptor contains aspects of both traditional retained widget-tree/scene-graph ui's and (purist) immediate mode uis. Since microraptor doesn't have a retained scenegraph, and some of the freedoms gained with imgui, like being able to paint incrementally directly from data-structures are also gained with microraptor.