refactor(tabs): adds support for non-fixed tabs

Closes #825.
Closes #460.
Could you add a comment about what this is doing?