enhance(ripple): adds support for non-fixed tabs

Closes #825.
Closes #460.
Good call.  I was mirroring `self.selected` above, but both should probably be changed.