First off I love the component library concept.
So I was a little surprised no one else brought this up but how do you manage the conflict between creating lots of prefab overrides (as Sam shows) and the need to constantly “revert all” to undo problems from the UI serialization bug. I risk accidentally reverting something I wanted to keep.
So far I found that the best way to minimize overrides is to use lots of autolayout but it only gets you so far. For example I found no good way of dealing with an override on the scrollview. For example to get a nice big empty scroll view like the below you need an override. (see below)
Another very different option - it seems like you get a lot of overrides because you’re creating a prefab variant of a panel. How about starting with an empty game object instead and putting the panel as a child and then everything as a child. Then you prefab that parent as a new original prefab. The only catch I found is the parent is a rect instead of a rect transform and I don’t know if that will cause problems down the line.
Sam’s work below showing the large open scroll view