Overlay Scrollbar Redesign

Registered by Harvey Cabaguio

The scrollbars we're using in Luna (overlay scrollbars from unity) quite frankly suck. Instead, we should hack on GTK's existing scrollbar widget. This way will keep the scrollbar compatible with existing gtk themes. But, like the overlay scrollbars, they will appear on top of the content and not beside it.

The scrollbar behaviour will be similar to the overlay scrollbars, they appear only while scrolling and when you hover over the scrollbar area. When hovering over the scrollbars they should still be clickable and be able to drag them around to scroll through the content. Clicking the empty scrollbar areas should immediately slide the scrollbar handle to the area you clicked on.

Blueprint information

Needs approval
Series goal:
Proposed for 0.3-freya
Milestone target:
Completed by
Danielle Foré

Related branches




#1 reason for overlay scrollbars to appear outside the window: they obscure window content. In fact, overlay scrollbars obscuring the right side of maximized windows can be problematic, I recall having to unmaximize the window because the scrollbar was getting in the way. I hope it will not be an issue if the scrollbars are thin and apps have decent padding.

Besides, making one click take you to a totally different place without an easy way to return is not a good idea. I've came up with two ways of solving that.

First, we could require holding down the primary mouse button for a while to navigate to a different location, thus minimizing the harm of an accident click. Combined with a "kinetic" scrolling it could feel rather natural - for example, if the scrolling speed increases as long as you hold down the mouse button until the place where you hold down the cursor is reached, where it smoothly comes to a halt.

Another idea is more or less instant scrolling to any location at all, with a hint of kinetic scrolling for scrolling to relatively nearby locations, and *an easy way to undo the scrolling*. As I see it, after "leaping" to a relatively remote area with a click on the scrollbar area the scrollbar should leave a "ghost" of itself in the location you just left. Clicking the "ghost" will return you *exactly* to where you were before you clicked the scrollbar area. I believe this will simplify navigation over large documents or web pages greatly and it goes hand in hand with http://elementaryos.org/docs/human-interface-guidelines/user-workflow/always-provide-undo


I've made a mockup for a new overlay scrollbar. It retains the current minimal look, but when the cursor gets close you get a traditional scrollbar (overlaid on the content). The activation area should be a little farther than the edge of the window (I made it about 6px)so it's easier to hit.


+1 to the idea of a ghost to undo scrolls. However I think it should only be visible in large documents (when the slider is small), otherwise it can block part of the scrollbar and make it harder to "leap" to specific places (also, it wouldn't be very useful).
Here's a mock for that: https://dl.dropboxusercontent.com/u/647204/Eos/scrollBar2.gif


Gtk 3.16 will have an overlay scrollbar implementation, so I'm marking this blueprint as obsolete. Nothing for us to do here. Thanks Gtk! --DanRabbit


Work Items

This blueprint contains Public information 
Everyone can see this information.