Hi,
Welcome! 
So for the most part yes, you can add your own @:composite bits… usually though, if you wanted the previous behaviour you would need to extend your composite class from the parents, for example, say you wanted to create a new tabbar with some different layout using @:composite:
@:composite(MyTabBarLayout)
class MyTabBar extends TabBar {
...
}
class MyTabBarLayout extends TabBarLayout {
...
}
This way you inherit the code of the parents layout. Of course, you dont have to do that… if you are rewriting a layout completely then you dont need to inherit the previous layout code. The same concept applies to Builders and Events.
Behaviours are much simpler, you can use just them in any “Component” derived class, if they already exist they should just be overloaded.
I appreciate that the way things are structured initially in haxeui can be confusing / daunting but its exactly because of these behaviours that haxeui can work with so many different backends / frameworks including creating 100% native UIs.
Also, keep in mind that, depending on your usage you may not care about any of this stuff… the @:composite / @:behaviour stuff is generally to abstract code away so that native UIs will work (and not try to use composite code - which will likely crash)
Hope that helps a little, let me know if you have any other questions, or i wasnt clear enough.
Cheers!
Ian