A basic tree layout with nodes that are aware of the sizes of other nodes. Also supports zoom functionality. I originally created this to answer my own Stackoverflow question on jsFiddle and am simply moving it over to Codepen.
A Pen by Augustus Yuan on CodePen.