:root { --size: 100px; } svg { width: var(--size); height: var(--size); } .branches { display: block; position: sticky; top: calc(-1 * var(--size)); } .node { position: sticky; top: calc(-1 * var(--size)); display: inline-flex; justify-content: center; align-items: flex-start; } .children { height: var(--size); overflow: scroll; position: -webkit-sticky; position: sticky; top: calc(-1 * var(--size)); display: inline-flex; align-items: flex-start; flex-direction: column; height: var(--size); }