Creating new UI elements

Hi guys, in terms of Cesium architecture, what is the “correct” way to add custom UI elements to Cesium that are WebGL based?
Currently I did some tests by implementing a custom UI element that is drawn using WebGL as a Cesium primitive, but maybe there’s a better way?
And what if I want to mix HTML (for example, for text rendering) with an WegGL UI element?