With little info about the new UI system, I was a little concerned that we wouldn't be able to create custom widget types (actually add our own vertices to the new UI system). But it looks like we can, and it's as simple as adding a CanvasRenderer to your GameObject, and calling SetVertices on it, with an array/list of UIVertex. Nice! It doesn't take indices, so it looks like it renders everything as a list of quads, which is just fine in most cases. Seems nicer to use (and hopefully a bit faster) than the API for creating meshes at runtime - SetVertices accepts an IList or range from an array - looks like SetVertices(array, size) - so you can avoid the constant re-allocation of arrays when increasing/reducing the vertex count. So adding support for unusual widgets, or something like a replacement text system, should be fairly straightforward!