glennw / servo-shell

Proof of concept HTML/CSS/JS browser UI for Servo
177 stars 16 forks source link

Feature: Paginated Tabs #4

Closed liamzdenek closed 9 years ago

liamzdenek commented 9 years ago

This feature is to add pagination to the tab list of servo-shell.

servo-shell paginated tabs example

Internal Overview

This feature works by:

I originally intended to implement chrome-style tabs with every tab in the window visible, with the new tab button to the side. However, this is difficult without flexbox (which Servo does not currently support), or a lot of JS.

I then intended to implement firefox-style tabs that scroll horizontally with arrows placed alongside the tabs. This is difficult without layout support for css's calc(), or a number of CSS hacks. Servo also does not have proper support for overflow:hidden (or maybe I was just using it wrong? My tests worked properly in chrome). A list would overlap the buttons placed alongside it.

This was the simplest compromise using the features that Servo currently supports, and I still had to work around a few quirks.

Known bugs or design faults:

glennw commented 9 years ago

Thanks!