I set out to do a quick and dirty typography overhaul to make things
more consistent and a bit cleaner, but I kept running into things I
didn't like, so this lead me down something of a rabbit hole of design
tweaks to the OSM site.
Goals here are to have better content hierarchy, better vertical
rhythm, more consistent UI, cleaner markup with less tables, all while
keeping the basics pretty much intact. There are a lot of things I
didn't touch even though they need to be updated (lots of tables where
stuff shouldn't be tables, mostly).
Basic overview of changes:
I added a new persistent header that helps segment pages. It's now
a lot easier to know what you're looking at. The header has a page
title, a description, plus a submenu of actions.
There is now a pattern of 20px/10px margins and padding for more
rhythm and breathing room throughout the site.
I know there are other problems here or things I've missed - would
love another set of eyes to look over this! I am still getting comfortable
working on the site - it's my first time ever digging into a ruby or rails
so I'm not familiar with the templating language yet.
In OpenLayers 2.12 the event handling of PanZoom and PanZoomBar clashes
with the result that the zoom level changes by two steps every time one
of the zoom buttons is pressed. Using the Zoom control fixes this issue.
This commit should have no functional affect. It just changes the
abstraction level of OpenLayers from completely abstracting away
getMapExtent etc, to using OpenLayers's functionality directly but
providing proj and unproj to make projections palatable.
Also very all our use of window.onload and switch to using dom:loaded
instead where we can - the main case where we can't is when using a
vector layer as IE will fail unless the page is completely loaded.
If the bounding box of a changeset is much larger than the map then
there seem to be problems with OL not rendering the feature correctly
so reduce the highlight to just be the extent of the map plus a small
margin in that case.
Add a map to the changeset list page, with a bounding box for each
changeset and highighting when the mouse is placed over either a box
on the map or a row of the table.
Make any request for a changeset feed with a page argument redirect
to the version with no page argument and ensure that any RSS links on
the HTML version of the changeset list don't have a page argument.