D3.js with Rectangles appended as well as text. Using nodeSize, we can specify how big the rectangles are and make the TreeLayout separate accordingly.