One of the things today’s web adds to the mix, is the need to address devices with widely varying screen sizes. Seeing a web site made for an “old” 1024×768 screen layout squished onto a mobile phone screen is not really great if everything just ends up smaller on-screen.
Enter grid-based CSS frameworks and responsive CSS.
There’s a nice site to quickly try designs at different sizes, at cybercrab.com/screencheck. Here’s how my current HouseMon screen looks on two different simulated screens:
It’s not just reflowing CSS elements (the bottom line stacks vertically on a small screen), it also completely alters the behaviour of the navigation bar at the top. In a way which works well on small screens: click in the top right corner to fold out the different menu choices.
Both Zurb Foundation and Twitter Bootstrap are “CSS frameworks” which provide a huge set of professionally designed UI elements – and now also do this responsive thing.
The key point here is that you don’t need to do much to get all this for free. It takes some fiddling and googling to set all the HTML sections up just right, but that’s it. In my case, I’m using Angular’s “ng-repeat” to generate the navigation bar menu entries on-the-fly:
nav.top-bar(ng-controller='NavCtrl')
ul.title-area
li.name
h1
a(ng-href='{{appInfo.home}}')
img(src='/main/logo.png',height=22,width=22)
| {{appInfo.name}}
li.toggle-topbar.menu-icon
a(href='#')
span
section.top-bar-section
ul.left
li.myNav(ng-repeat='nav in navbar')
a(ng-href='{{nav.route}}') {{nav.title}}
li.divider
ul.right
li.myNav
a(href='/admin') Admin
Yeah, ok, pretty tricky stuff. But it’s all documented, and nowhere near the effort it’d take to do this sort of thing from scratch. Let alone get the style and visual layout consistent and working across all the different browsers and versions.
Tomorrow, I’ll describe the way grid layouts work with Zurb Foundation 4 – it’s sooo easy!