How is the cesium-viewer div created/populated?

I’d like to create my own widgets and I’m seeing that they live in the cesium-viewer div inside the cesium container. They are created dynamically I’m assuming through javascript. Is this the case? Are there any examples of custom UI being created?