Vous êtes sur la page 1sur 116

Create a smooth 3D design with Build a mobile Develop a game

UI for any screen after effects app with ionic for the browser
Natural animations with Dramatic new ways to Create hybrid apps with Get started with Phaser
the power of Famo.us showcase your work HTML5 and AngularJS for super-fast rendering

Project
The voice of web design

Create a
simple and
Issue 260 : November 2014 : net.creativebloq.com
easy workflow
with the top tools
Welcome

Welcome

editors note
Responsive web design: the idea is at our own Generate New York conference (netm.ag/
straightforward, its execution isnt. But marcotte-260), which complement the feature.
designing responsively doesnt have to mean more Finally, dont miss our special digital edition offer.
grey hair often its just a case of starting off on the Get a free Apple Newsstand or Google Play Store
right foot. This issue Justin Avery, who won a net version of this months mag at no extra charge.
Award for Am IResponsive? (ami.responsivedesign. OuriPad edition in particular is well worth checking
is), talked to a real whos who in RWD to find out the out, as its tablet-optimised and features additional
techniques you can need to ensure a fast, beautiful imagery and exclusive audio content which you
and future-friendly final product. wontfind elsewhere. Turn to page 43 for details.
To find out more, listen to the accompanying Enjoy the issue wherever you are!
podcasts (responsivedesign.is/feeds/podcast). Its also
worth watching Dan Malls Responsive Design is Oliver Lindberg, editor
Still Hard/Easy! talk at Beyond Tellerrand (vimeo. oliver.lindberg@futurenet.com
com/101875373) as well as Ethan Marcottes keynote @oliverlindberg

Featured authors
Justin Avery Ruth John Paul Woods Phil Coffman

Justin runs the RWD Weekly Ruth has been wireframing, Paul is a design director at Texas-based digital designer
newsletter and Responsive designing and coding for over Edenspiekermann, where he Phil is currently the head of
Design.is and on page 68 tells adecade, currently for The Lab works between digital and design at PCPartPicker. On
us how to master advanced at O2 (Telefnica). On page brand design. On page 76 page 90 heexplains how
techniques to get more out of 103 she discusses interesting hedives into digital editorial touse After Effects to create
responsive web design uses of the new Vibration API design and longform stories stunning 3D images
w: justinavery.me w: rumyrashead.com w: paulthedesigner.ie w: philcoffman.com
t: @justinavery t: @Rumyra t: @paulillustrator t: @philcoffman

february 2014 3
Future PLC, Quay House, The Ambury, Bath, BA1 1UA +44 (0)1225 442244
@netmag /netmag +netmagazine flickr.com/photos/netmag netmag@futurenet.com net.creativebloq.com

Editorial
Editor Oliver Lindberg oliver.lindberg@futurenet.com,
Deputy editor Martin Cooper martin.cooper@futurenet.com, Production editor Ruth Hamilton ruth.hamilton@futurenet.com,
Digital editor Tanya Combrinck tanya.combrinck@futurenet.com, Art editor Mike Brennan mike.brennan@futurenet.com,
Editor-in-chief Dan Oliver dan.oliver@futurenet.com

Editorial contributions
Justin Avery, Andrew Betts, Sarah Brown, Ian Carrico, Robin Christopherson, Phil Coffman, Ian Coyle, Gene Crawford, Tim Evko, Simon Foster,
Tobias Gnther, Steve Grunwell, Marko Heijnen, Brian Hoff, Will Howe, Kirsty Hulse, Sally Jenkinson, Ruth John, Mark Jones, Alex Matchneer,
James Miller, Anton Mills, Tim Nash, Adekunle Oduye, Simon Richings, Brandon Schmittling, Ben Scott, Carl Smith, Paul Woods

Art contributions
Daniel Byrne, Martina Flor, Ben Mounsey, Ben OBrien

management
Head of content and marketing, photography, creative and design Matthew Pierce matthew.pierce@futurenet.com,
Director of content and marketing Nial Ferguson nial.ferguson@futurenet.com Creative director Robin Abbott bob.abbott@futurenet.com,
Acting group art director Simon Middleweek simon.middleweek@futurenet.com Editorial director Jim Douglas jim.douglas@futurenet.com,
Chief executive Zillah Byng-Maddick zillah.byngmaddick@futurenet.com

Advertising Director of advertising sales James Ranson james.ranson@futurenet.com +44 (0)20 7042 4163
Advertising sales director Suzanne Smith suzanne.smith@futurenet.com +44 (0)20 7042 4122
Senior sales executive Victoria Sanders victoria.sanders@futurenet.com +44 (0)20 7042 4176
Marketing Group marketing manager Philippa Newman philippa.newman@futurenet.com
Circulation Trade marketing manager Daniel Foley daniel.foley@futurenet.com
Print & Production Production controller Roberta Lealand roberta.lealand@futurenet.com
Licensing Licensing & syndication director Regina Erak regina.erak@futurenet.com +44 (0)1225 732359
Subscriptions Phone our UK hotline 0844 848 2852; international +44 (0)1604 251 045
Subscribe to net online at myfavouritemagazines.co.uk

NEXT ISSUE ON SALE 3 November 2014


Future Publishing Limited 2014. All rights reserved. No part of this magazine may be used or reproduced without the written permission of the publisher. Future Publishing Limited (company
number 2008885) is registered in England and Wales. The registered office of Future Publishing Limited is at Quay House, The Ambury, Bath, BA1 1UA. All information contained in this
magazine is for information only and is, as far as we are aware, correct at the time of going to press. Future cannot accept any responsibility for errors or inaccuracies in such information.
Readers are advised to contact manufacturers and retailers directly with regard to the price of products/services referred to in this magazine. If you submit unsolicited material to us, you
automatically grant Future a licence to publish your submission in whole or in part in all editions of the magazine, including licensed editions worldwide and in any physical or digital format
throughout the world. Any material you submit is sent at your risk and, although every care is taken, neither Future nor its employees, agents or subcontractors shall be liable for loss or damage.

Print 10,632 Digital 3,672


We are committed to only using magazine paper
The ABC combined print, digital and digital which is derived from well managed, certified
publications circulation for JanDec 2013 is forestry and chlorine-free manufacture. Future
14,304 Publishing and its paper suppliers have been
independently certified in accordance with the rules
A member of the Audited Bureau of Circulations of the FSC (Forest Stewardship Council).

Colophon
Apps used paper Typefaces
Google Docs, InDesign, Reddit: COVER PaceSetter Gloss 250gsm Antonio, Amatic SC,
Ask Me Anything, YouTube, Skype, P3-82 Galerie Fine 100gsm Merriweather, Share
FutureSource, Photoshop, GitHub P83-114 Grapholvent 70gsm Tech, Titillium Web

4 october 2014
contents
Issue 260 : November 2014 : net.creativebloq.com

FEED FEED

SIDE PROJECT of the month 16


Workspace 18
Tim Evko explains how he put together an Simon Richings introduces AnalogFolks strangely shaped London
app to help developers improve their skills office, complete with three mezzanine levels, phone booths for when
the creatives need total focus, and lots of techy toys
clients from hell 17
A 3D designer struggles when a client gets
a bit click-happy with their Delete key

BEYOND PIXELS 20
Ian Coyle shares his mission to build a
motorbike with his own fair hands

NEED list 21
What we want, including an app that makes
your mobile screen mirror the sky outside

EVENT report 23
Sally Jenkinson reports from the 10th
and rather more mature dConstruct

voices
Consulting with clients 26
Proper consultation is the key to a great VOICES
client relationship, says Simon Foster
INTERVIEW 32
Death to all devices 28 We chat to designer
Devices are about to change forever. and typographer
Brandon Schmittling investigates JasonSanta Maria about
how he makes his decisions,
Big Question 38 and why some of the very
We asked the professionals: whats best type choices are
thesecret to a winning pitch? almost invisible

Q&A 40
FT Labs Andrew Betts on why its time for

SUBSCRIBE to net
the web community to take itself seriously UK readers turn to page 24
US readers turn to page 57
Wordpress evolution 42
Marko Heijnen looks at the 4.0 update and and save up to 50% Worldwide: netm.ag/17vH1hU
speculates on the future for WordPress

6 november 2014
Contents

regular
regulars
GALLERY 44 Network 8
The latest mail, tweets, posts and rants
Brian Hoff shares the
new sites he rates this Exchange 10
month, including Airbnbs high- Tim Nash, Kirsty Hulse, Ben Scott and
profile rebrand Steve Grunwell answer your questions

Showcase
design Challenge 52
Three designers tackle aquarium sites

Focus on 56
Gene Crawford on off-screen navigation

profile 58
We go behind the scenes at Bearded

how we built 64
We chat to the team behind On the Fence

PROJECTS
Build smooth digital UIs 84
Mark Jones on how the Famo.us framework
brings native app performance to the web

Features
Boost your Git workflow 94
Tobias Gnther explains how you can use
Tower to streamline your Git workflow

The Pros guide A journey into Head-to-head 96


toRWD 68 digital longform 76 Alex Matchneer on React versus Ember.js
Justin Avery on how to use basic RWD Paul Woods introduces the tools and
techniques to build asolid foundation, techniques you need to get started Build hybrid mobile apps 98
then take your design to the next level creating rich digital longform stories James Miller uses Ionic to build a mobile
app in a rapid development environment

web standards 103


Ruth John takes a look at the Vibration API
project
Develop a browser game 104
Create a dramatic
perspective shot 90 Anton Mills guides you through how to
create a browser-based game with Phaser
Phil Coffman on how to use
After Effects with Photoshop Take the pain out of Sass 108
to display your work in a new way Ian Carrico explains how to set upyour
Sass development environment properly
Exclusive video tutorials!
Look out for the video icon in the tutorials for ACCESSibility 114
exclusive screencasts created by authors
Robin Christopherson on virtual assistants

november 2014 7
Mail, tweets,
posts and rants
contact us @netmag /netmag +netmagazine feedback@netmagazine.com net.creativebloq.com

not saying its better than looking into web design and Youll find everybody is
theothers, but I think she development, and I have friendly and happy to help.
waswrong in some areas. found my passion. While I On the real-world side of
For example, in the article am still just starting to learn things, try and find some
she said: It can be pretty hard HTML and CSS, I am alittle local conferences and
to find a really great course overwhelmed by all the meetups to attend. Make
unless you are willing to shell different ways that I could go. aneffort to join in and you
out a lot of money. This is I read your magazine every will find itll pays dividends.
complete rubbish. If you cant month, and take everything Good luck!
find a cheap course on Udemy in. But I was hoping you could
that is good then you havent throw out a helping hand or
looked far enough. point out someone who could steroid apps
Nigel Brewster, Durham, UK give me some advice. It was a great piece on building
Styles of learning vary Kyle Narovich, Cadillac, MI smooth native apps with
greatly from person to Its great youve discovered Steroids (issue 259). How
freelance rate person. With this in mind your passion welcome to would you go about integrating
survey 2014 we didnt set out to uncover the web community! In a database search?
I enjoyed the Creative Bloq the single best learning site. many ways, the web Tunde Akinbode, Lagos, NG
post called Freelance Rates Rather we wanted to present community is the answer to Article author Alex
survey 2014: Are you on the a menu of options from your question about finding Newmansays: You can
money? Where can I find the which our readers could advice. Wed say follow usethe localStorage API,
results for the 2013 survey? choose, which is why Katie people whose work you find orlook into building an
Martin Bak, Slovakia looked at a range of fascinating on Twitter, APIto work with your data.
For the past few years, different aspects of each check out their personal Ilike MongoDB, Express
UK-based designer and service (tasks, scope for pages and ask questions. andNode.js.
developer ColeHenley has growth and so on). We
published his rates surveys. sought togive our readers
You can find previous some information and an
surveys on his personal site opinion they could use to
at netm.ag/Rates-260. inform their choice. Indeed,
in her conclusion, Katie
wisely tells people to try the
I dont agree different services andsee
Many thanks for all the great which works.
work in issue 258. I would
however like to challenge you
on Katie Kovalcins article on Where to start
The Top 10 Learning Websites. I had had no idea what I
I use Udemy, so I know how wanted to do with my life.
it works. I thought the article Ihave dabbled in a little bit
was misleading to anyone of everything, but a couple Online learning Last issue, Katie Kovalcin explored a range of online code schools,
who hasnt tried it out. Im of months ago, I started to help readers find the best site for their personal learning style

8 november 2014
Network

THE POLL
COOL Stuff
Whats the best way to We learned

find new clients?


This month
Dissecting Apple
Apple launched two
Ask past clients to Give your site an new phones and
recommend you SEO makeover 7% a watch. And the world
and your work 26% If people cant find stopped, and hung off
Happy clients should you, how will they every single one of Tim
be your best fans, so hire you? Cooks manicured words.
ask them to shout! Even cynical journalists
Write for industry were swept along. The
Write an ebook 4% publications 7% New York Times David
Show the world Publication helps Carr put himself on the
youre the master of cement your status psychiatrists couch and
your chosen subject as an expert asked: why?
netm.ag/apple-260
Offer free help Create an online
andadvice 14% course 1% Ditching Twitter
Offering a free taster Sharing skills is a Its impossible to
of your services can great way of getting imagine being part
help drive leads your name out there of the web community
and not having a Twitter
Blog 10% Traditional word account and probably
Blogging can convey ofmouth 32% being on it far too much.
passion for your Do good work, do it well However, Erin Kissane isnt
subject and your work and happy clients will convinced that being part
want to tell their peers of the great Twitter hive
is doing her any favours.
In her essay Ditching

From our timeline Usually half a ham


andcheese baguette,
Twitter she charts how
her relationship with
Whats in your daily work bag? screwed up Post-its the service has changed
scrawled with illegible notes, irrevocably.
Chewing gum. A load In my work bag: and a blunt pencil. netm.ag/twitter-260
ofchewing gum. I computer, mankini, @KevnGibsn
cantwork without it! dongle, leurve. Be careful what
@DanMReese @brucel Laptop, charger, youwish for
adapter, mouse, All that glitters is
I like to keep my bag Random cable portable charger/power not gold, even if
simple and uncluttered. adapters, business bank, cables, ear pods, pen, its an Amex and youre
Laptop; headphones; cards, Post-it notes, notebook, USB flash, tissue, sipping Bollinger in first
phone charging cable plus chargers, old receipts, iron phone (doh) and mints. class. Rather, looking back,
deodorant and ibuprofen for supplement pills. @SaraSoueidan blogger Ali Mese felt his
emergencies! @PikiDigital corporate life was a gilded
@AndiSmith Laptop and cables, tomb. So he quit. Sadly,
Keys, bus card (usually hearing aid batteries, the start-up dream wasnt
Mostly food. In fact, empty), handcream and net magazine, rainproof quite the escape hed
alot of food. The rest lipbalm in delicious coat, Nikon DSLR, and whatever hoped for.
isalready at work! flavours, a notebook and pen. book Im reading currently. netm.ag/startup-260
@TimSeverien @thebabydino @j_mes

november 2014 9
Practical
advice from
Send your questions to netmag@futurenet.com industry experts

this month featuring... QUESTION OF THE MONTH

Tim Nash What is the single biggest factor in


Tim is a consultant who
specialises in WordPress influencing a site to rank nowadays?
development and training Earl Grey, Gibraltar
w: timnash.co.uk
t: @tnash

Kirsty Hulse
Kirsty is head of SEO
atLondon-based search
agency Found
w: kirstyhulse.com
t: @Kirsty_Hulse

Ben Scott
Ben is a senior web
developer at the BBC,
where he insists on RWD
w: reload.me.uk
t: @BPScott

Steve Grunwell
Mastering SEO When it comes to scoring highly in Googles ranking, theres no silver bullet but reading
Steve is a full-stack
Googles Webmaster Guidelines should ensure you get the best start possible
developer and speaker
based in Columbus, OH
w: stevegrunwell.com Kirsty Hulse: There isnt a single top factor that influences ranking. Google uses
t: @stevegrunwell literally hundreds of different metrics to determine a sites quality, including links,
dwell time, spelling and grammar, and social signals. As a first point of call ensure
that your site is appropriately accessible to search engines. Theres no point in having
great content or off-site engagement if Google cant crawl your site properly. Googles
Webmaster Guidelines (netm.ag/guidelines-260) are an ideal place to start.

WordPress adoption in enterprise stacks. WordPress


Time to move on? is not goinganywhere. As for haters,
Do you think WordPress has had its time? thats justthe nature of the web.
So many devs seem to hate it.
Mustafa Kurtuldu, London, UK SEO
Tim Nash: WordPress is currently Meta data
managing around 22 per cent of websites Do meta-keywords matter any more?
and that figure continues to grow. The Sergei Golubev, London, UK
number of contributors is increasing and KH: No, Google stated in 2009 that
theres an increase in the rate of itdoes not use meta-keywords to

10 november 2014
Q&As

3 simple steps
Whats the best outreach
strategy to earn natural
links and exposure?
Pinnacle SEO, Armagh, UK

Kirsty Hulse: There are a number of


tips for this, but start by trying to
better understand your audience.

Pinnacle SEO @PinnacleSEOTwit

Meta data Search engines like Chinas Baidu still use meta data to work out their rankings

determine ranking, and Bing has cited constantly remind myself: if something Know your Audience
that these can be used to flag spam; so would be a pain to write in regular CSS, Getting apicture of the human
meta-keywords largely just serve as a then it is probably abad idea. Avoid behind the conversion helps you
way of signalling to competitors your excessive nesting usea naming create tailored content, which should
target keywords. Having said that, this convention such as BEM toavoid styles boost engagement. Try Google Analytics
does depend on the country you are overlapping. Be wary ofusing @extend Demographics & Interest reports (netm.
operating in, as some search engines and instead opt for modifier classes. ag/analytics-260) and Facebooks Graph
such as Chinas Baidu still use them. Formore tips, read this article by Nicolas Search (netm.ag/graphsearch-260).
Gallagher (netm.ag/gallagher-260).
PHP
Pinnacle SEO @PinnacleSEOTwit
The right foundations Sass
Do you think its important to be able to Workflow
use PHP without a framework such as What editor/preprocessor setup do you use
Laravel, before you can use it with one? for your workflow and why?
Andrew Milne, Bristol, UK James Bavington, Rugby, UK Test Your Ideas
Steve Grunwell: Id compare it to BS: Sass is my CSS preprocessor of Usability testing services, such as
learning an instrument: music theory choiceas it offers advanced features Feedback Army (feedbackarmy.com),
isnt nearly as sexy as learning some thatother tools lack. I try to avoid using will provide answers to a text-based
sweet guitar licks, but understanding them where possible, but it is useful to survey about your website or page,
why something works is just as have them there if needed. Breakup whilefivesecondtest.com gives an idea of
important as knowing how to do it. (github.com/BPScott/breakup) allows me to peoples first impressions of your designs.
Thats not to say Laravel cant be your create per-viewport style sheets without
first foray into PHP, but if you find creating lots of per-size partial files.
theres something you want to do that Iuse Grunt to watch for file changes Pinnacle SEO @PinnacleSEOTwit
Laravel doesnt have a method for, andtrigger compilation, and Sublime
checkthe PHP docs. Text 2 is my text editor.

Sass WordPress Paid Promotion and Seeding


Keeping code elegant Non-Server Fixes Content often needs a little push
Do you have any tips for writing Sass so Whats the best way to improve toget the level of reach we want.
that you dont end up with loads of performance on a cheap host that you Reddit Sponsorship and paid Stumbles
compiled style sheet bloat? onlyhave FTP access to? can be hugely effective, and content
Elliot Davies, London, UK Robert ORourke, Liverpool, UK platforms like Outbrain (outbrain.com) can
Ben Scott: Sass is a powerful tool but it TN: With server side off-limits, look give your content exposure on some huge
lets you do smart and silly things with athow you can reduce http requests publications with massive readership.
equal ease. When writing Sass I would (minification and concatenation of

november 2014 11
exchange Q&As

CSS/JS), reduce the size of files (especially servers on major web services such as
images) and look at lazy loading. On the Google, Facebook and Twitter, and in
theme side, if possible look at reducing most circumstances it reduces page
the number of DB queries and caching load.If you have root access to a server,
fragments. You could also consider going implementing SPDY is a fairly simple
completely static. Depending on your process. Its also supported by major
hosting you may wish to offload static vendors such as Apache and NGINX.
assets to a CDN. Finally consider an Implementing SPDY on your server is
alternative host FTP access-only is aquick and relatively simple win for
never a good sign. performance and security. Embracing Laravel This frameworks templating
system, Blade, is simple, fast and effective
SEO PHP
Pandas and Penguins embracing Laravel our scripts list, before de-registering it.
Weve had Panda for content and Penguin My app choked on PHP Smarty, so I moved However, if a theme or plugin is forcing
for links. What direction do you see search to JavaScript-based templates, with great aversion of jQuery in thehead and not
engines taking with future updates? success. How is Laravel? through registering the script with
Andrew Isidoro, Cardiff, UK Dan Nagle, Huntsville, AL WordPress, that script will remain.
KH: With OK Google and its transition SG: Laravels default templating system, Ideally you want to remove the spurious
into the Internet of Things, Googles Blade (netm.ag/blade-260), is rather call by the plugin ortheme rather than
future is heavily invested in voice search, simple, yet super-effective and holy removing the WordPress version.
connecting multiple devices without the smokes is it fast! One thing I really enjoy
user even having to pick them up. When about Blade is that while you can work SEO
it was announced, the Hummingbird with raw PHP in your views, the requisite Should I care about SSL?
update was cited as a platform, which <?php ?> tags stick out as a reminder to My site is now SSL-only since Google
suggests that Google will continue to keep your application logic out of the started factoring SSL in ranking. Most
build upon this. For SEO, this means views. As for JavaScript, while I havent sitesare still not bothered. Is it worth
ashift from traditional targeted done it myself, I have heard from thehassle?
keywords to more natural language- colleagues that Laravel works really Dan Nagle, Huntsville, AL
centric strategies. Think FAQs, location wellwith the popular JS frameworks. KH: In August this year Google
based forums and reviews. announced that sites with HTTPS would
WordPress be used as a ranking signal. However,
Wordpress jQuery calls this is a small tweak to the algorithm,
SPDY and HTTP2 WordPress can include an extra call to currently affecting only 1 per cent of
Whats your current feeling on SPDY/ jQuery on the frontend. How do you queries. I would not recommend making
HTTP2? Should sites (not necessarily prevent that? this change purely for SEO reasons, as
WordPress ones) be trying to implement it? Tim Evko, New York, US impact is likely to be minimal.
Phil Nash, London, UK TN: If you are seeing multiple versions of
TN: While HTTP2 is still in its infancy, jQuery loading, its normally because a WordPress
its based on the more mature SPDY theme or plugin is loading the additional Minification
protocol (netm.ag/SPDY-260). The latter is version rather than WordPress. You can Whats the best practice for concatenating
already being used in the production of check if WordPress has jQuery registered and minifying CSS/JS? Using
by using wp_script_is( jquery ); . To de- wp_enqueue_scripts versus Grunt?
register jQuery: Matt Walters, London, UK
TN: Its not so much about best practice
function net_remove_jquery() { but what fits your workflow. Where
if ( ! is_admin() && wp_script_is( possible, I would try to avoid leaving it to
jquery ) ) { WordPress, as we dont want to put extra
wp_deregister_script(jquery); strain on the server at page load. So if we
} can pre-minify as part of our workflow,
} before getting to WordPress, then this is
add_action(wp_enqueue_scripts, net_ going to be a more efficient way of doing
remove_jquery); things. Grunt is a good tool for this and
we can let the web server handle it with
SPDY is pronounced speedy and is a protocol thats The above code checks that we areon not tools like the PageSpeed Module (netm.ag/
been designed to speed up the web. on an admin screen and that jQuery is in speed-260).

12 novemebr 2014
T HE AWARD - WINNING

TAILORED FOR TABLET.


Experience additional multimedia content
in our fully interactive iPad edition

TRY IT
FOR FREE
TODAY!

Computer Arts readers know design matters. Thats why weve completely
reinvented our digital edition as a fully interactive iPad experience with
impeccable usability. Theres also additional interactive content,
such as image galleries and bonus videos, which bring the
motion content featured in the magazine to life.

TRY IT FOR FREE TODAY WITH


OUR NO-OBLIGATION 30-DAY TRIAL AT
http://goo.gl/sMcPj (UK) or http://goo.gl/aib83 (US)

Digital replicas also available on Google Play, Nook and Zinio


People, projects
& paraphernalia

This month Featuring...

Side PROJECT OF THE MONTH 16 Clients FROM HELL 17 Workspace 18


Tim Evko explains how hes created a One 3D designer has a nightmare project Simon Richings introduces AnalogFolks
handy three-part app aimed at helping when a client gets a little too click-happy London office, complete with three
developers improve their frontend skills with their Delete key mezzanine levels and lots of techy toys

BEYOND PIXELS 20 Need LIST 21 Event REPORT 23


Having fallen in love with motorbike riding, What we want this month, including an Sally Jenkinson reports from the 10th
Ian Coyle shares his new mission to build appthat generates psychedelic gradient outing of Brighton conference dConstruct
abike of his very own backgrounds for your devices and this year its all grown up

november 2014 15
FEED
Side project

The practice app open issue on GitHub. Its a great way to contribute to
the open source community and Ihave Thomas Davis
of cdnjs to thank for the idea.
How Tim Evko created a three-part app to help
devssharpen their frontend skills net: How did the idea come about?
TE: One slow day at work last year, I decided that
Side project of the month Iwanted to sharpen some of my frontend skills by
building something cool on CodePen. The only
net: Lets kick off with an easy one: problem was that I didnt have much inspiration,
whoareyou and what do you do? andIcouldnt find a site that gave cool suggestions
TE: Im a frontend web developer from New York. so I made my own!
Currently, I work for an agency where I build
WordPress themes and web applications. In my net: How does the site work under the skin?
sparetime, Im usually working on a side project Howdoes it generate its ideas?
orwriting an article about web development. TE: The site is hosted on GitHub Pages, and I use a
Info
couple of different libraries for Markdown to HTML
job: Frontend
net: And your side project whats that all about? formatting, keyboard shortcuts and scrollbars. I use
webdeveloper
TE: The Practice App (tevko.github.io/practice) exists aspreadsheet to generate the ideas every week, which
company: Loewy Design
tohelp other frontend web developers get better at is then converted to a JSON file. The ideas are piped
w: timevko.com
their trade. It has three different sections. Firstly, the into the page with AJAX at the users request.
t: @tevko
random section gives out 20 random tasks for users
tobuild on CodePen, with each task organised by net: Whats the reaction been like?
difficulty level. Next, the Dribbble section uses the TE: The response has been great. Traffic has
Dribbble API to pull in arandom Dribbble shot, and increasedconsistently, thanks to mentions from
the user can choose to be redirected to CodePen where allover the web. The project has had plenty of
they can try to duplicate the shot with code. Finally, contributors on GitHub, and has generated a bit
the third section allows the user to solve a random ofpraise on Twitter aswell.

16 november 2014
Feed

How to

Optimise images
for the web
Web images must be beautiful,
butthey also need to be generated
with site speed, efficiency, context
andusability in mind

SAVING SPACE
top tools
It is impossible pin down one tool
as the best image optimiser.
Across our Twitter followers some
Exclusively for net: the latest in a series programs did, however, receive
of anonymous accounts of nightmare clients more recommendations than
others. tinypng.com, jpegmini.com,
Clients from hell smushit.com and kraken.io all fared
well. However, the hands-down
Im a 3D designer who creates mockups Me: At my currently hourly rate, I will have to winner was ImageOptim-CLI
forliving spaces. A while ago, a decorator charge an additional 200 for the logo redesign. (netm.ag/imageoptim-260).
commissioned me to design several apartments Client: What?! Why would you do that?
forher. Six days into the project, she calls me: Me: Ill be doing more work. It takes time to
redesign a logo. Size versus quality
Client: I need you to add my company logo to Speeding up image load times
allthe pictures of the apartments. She grumbles but agrees. I recreate the logo and inevitably means throwing away
Me: Okay, no problem. Just send me the logo. design all of the apartments before uploading the information and sacrificing quality.
Client: Its on my website. pictures to her website. Despite the extra fee, she Different compression tools treat
is delighted. this trade-off between size and
After spending far too long looking through her A year or so later, she calls me up for additional quality differently. ImageOptim-
website, thebest option I can find is a 320x320px work, and makes a point of saying I wont be able CLI, made by Jamie Mason, runs
logo from the main page. to charge for the logo redesign again. batches of images through
different optimisers. Mason has
Me: Im sorry, but this picture is not big enough. Me: No, of course I wont charge for that just also run comparisons of the main
Do you have the original files that came with the send me the logo I made you last year. compression tools. Visit his GitHub
picture? From whoever designed your logo? Client: I dont have it any more. I deleted it. It was repository (above) for his findings,
Client: Oh I deleted those years ago. They were taking up space. and more about ImageOptim.
Illustration: Ben OBrien huddleformation.prosite.com

taking up space. Me: So you want me to design it again? For free?


Client: If you have to. But you should still have
She tells me who designed it, and I track him it,right? Other factors
down, but he has no backups. A small image isnt a sure-fire
Frustratingly, I had deleted it in order to free winner theres a lot more to
Me: We have two options: I can either use this upsome space. handling images correctly for the
tinylogo and produce something a bit small web. Cropping for user focus might
andabit blurry, or I can redesign your logo. help drive sales conversions, for
Client: Well redesign it then. I dont want it example. And factors like giving
lookingugly. clientsfromhell.net files friendly names and precise alt
text all play an important role in
making great web images
(netm.ag/imageSEO-260).

november 2014 17
FEED
from the web
1

Tucked Under a bridge technology for technologys sake,


and always thinking about people
and value first.
Simon Richings introduces AnalogFolks quirkily Having said that, we really do
proportioned London office, filled with techy toys like playing with new toys. Theres
always something remarkable to
workSPACE interact with in thestudio. Were
using this drone (4) in an upcoming
AnalogFolks London studio without ever being in danger of hack day.
isin occasionally trendy becoming cut off. Regardless The phone booths (5) are cool
Clerkenwell, surrounded by more ofrole, were all trying to make little cubicles which you can escape
than its fair share of great coffee greatwork together. to at those times when you need
shops. Its nestled underneath a Lots of workplaces have this pure focus, whether thats for
hotel and a road bridge, so people famous Anthony Burrill poster writing aparticularly tricky piece
are always surprised when they (2),but we really do believe in its of code or penning a few words
enter the large and unusually simply stated maxim. Also, weve about youragency for a popular
shaped space and find it full of realised the be nice to people digital creativity magazine. You can
natural light. partactually brings a competitive also use them to make phonecalls.
The most important thing about advantage, as its another reason Office canine Frankie (6) is an
our space is its flexibility. We work why talented people want towork important fixture. He is super-
on a broad range of marketing here. So, ironically, this actually attentive and very well-behaved.
projects, from online platforms makes us quite evil. Especially if youre concealing
tofilm. The office has three Our guiding principles are dotted abiscuit in your right hand.
mezzanine levels (1), which may around the space and this is one of
Simon (in the foreground) is executive
seem a little greedy. However, it them: We use digital to make the
PROFILE

creative director at the London office


means there are plenty of distinct analog world better (3). Its of independent global creative agency
areas for us to arrange ourselves in, fundamentally about not using AnalogFolk (analogfolk.com)

18 november 2014
FEED
Beyond pixels

Stuff I like

Carl smi t h
Advisor, nGen Works
devianthippie.com

motorcycle building
HipChat/Slack
Yes Ive done the unthinkable,
Ive put HipChat and Slack
next to each other. But thats This month having been swept off his feet by the joy of
actually the way I use them.
Iuse HipChat at nGen Works,
motorbike riding, Ian Coyle is on a mission to build his own
and Slack at the Bureau of
Digital Affairs. Both do an beyond pixels
amazing job of keeping me
connected to my teams. I had been pushing the motorcycle in the hot journey, its fast straightaways, long curves,
hipchat.com, slack.com July sun for a mile when I heard a third person switchbacks and the feeling of the machine. Then
astutely comment: It works better if you ride it! perhaps after a mountain-top pit stop its on
Pausing to catch my breath and survey the long tothe third chapter: the ride home.
Polldaddy uphill road back to my workshop, I began to Ive since sold the XS to build another bike, but
I use this to find out how question my dedication to learning to build these Istill remember my first ride. Looking back now,
different groups of people are two-wheeled gasoline-powered machines. that motorcycle changed my life and set me on a
feeling about a topic from Carburetors are the bane of my existence these new path of creative pursuits. About five years ago
finalising an agenda to voting days. In theory, it seems easy: airflow plus gasoline, Idecided I wanted to build my own bikes, and my
on a company policy. People add a spark, equals combustion. But to be honest, first project was to reimagine my own version of
respond quicker to the survey not long ago, I didnt even know what a carburetor myfirst XS650. Its been a fun, humble, and at times
format. There is some was, let alone the difference between a regulator, frustrating pursuit. Ive not read Zen and the Art of
information I absolutely rectifier, stator and rotor. Maintenance, but Id call the phase Im currently in
couldnt capture without it. I rode my first motorcycle eight years ago, Patience, and the Art of Asking for Help.
polldaddy.com oneday after I sold my jeep to pay for it and seven Growing up, I was never very interested in
daysafter I had crashed over the handlebars at mechanics. There were many days my father
themotorcycle training class. It was a beautiful askedif I wanted to help change the oil in the car
Google Docs Yamaha XS650 Special, built by Jano Bachleda orlearn how to replace its brakes. All I wanted
One of nGens core values is (janocycles.com), a talented craftsman and now todowas play on our new Apple IIGS. But as Im
transparency and this is the goodfriend. Forthe first few summers, he taught learning how to build these bikes, I find I call him
app for that. Everyone can me how to ride the beautiful curved roads through most weekends to seek his advice. While the irony
see whats being documented the mountains of Colorado. isnt lost on me, its been one of the best parts of
and provide feedback in real There is something romantic about hitting this new creative pursuit.
time. Were experimenting theroad on a bike. Like most stories, there is a
with collaborative proposals beginning, middle and end. The first chapter is
Ian is creative director at
where clients can contribute about leaving everything behind. Even with a group,
PROFILE

Huge/KingCoyle (hugekingcoyle.
in the same manner. youre alone on the bike. Slowly you leave behind com), aPortland-based
docs.google.com your everyday distractions and preoccupations. innovation lab focused on
Themiddle chapter is the ride. Engaged only in the design,culture and craft

20 november 2014
Need list

Need list

Stuff we want
Small objects of web design desire: from a collection of essays designed
to inspire, to a psychedelic gradient background generator

1 2 3

antetype  130 per license The business of web design 10 reddit - ask me anything free

4 5 6

YoWindow Free colorful css generator  Free tiiny free

What we think
(1) Designed by designers for designers, Antetype is a tool for creating responsive UIs for enterprise sites and apps (antetype.com).
(2) The Business of Web Design is a collection of short essays designed to spark inspiration and feed creativity (netm.ag/Busweb-260).
(3)AnAndroid app from the makers of Reddit, Ask Me Anything curates the sites collection of online interviews accessibly (netm.ag/Reddit-260).
(4) YoWindow is a magical weather app that makes your phones screen mirror the outside world, and its new to Android (netm.ag/Yo-260).
(5) The Colorful CSS Gradient Background Generator does what it says on the tin, gaudily and in real time (netm.ag/CSSback-260).
(6) Tiiny is a sharing app that enables users to share tiny looping images and videos, each of which disappears after a day (netm.ag/Tiiny-260).

november 2014 21
next
month

Essential
JavaScript
22 JavaScript tools every web designer
anddeveloperneeds to know

PLUS
Build a web UI with Create modular Prototype with
HTML5 Boilerplate content systems Origami and Quartz
and jQuery UI inWordPress Composer

ISSUE 261 on sale 3 November


Print edition, back issues and special editions available at

myfavouritemagazines.co.uk
Digital editions available on iTunes, Google Play, Kindle, Nook and Zinio

net.creativebloq.com
Feed

EVENT GUIDE
Fronteers
Date: 9-10 oct 2014
Location: amsterdam, nl
Founded in 2008, Fronteers is
Europes largest conference for
fontend developers. Speakers
include Meri Williams, Rachel
Nabors and Sara Soueidan.
fronteers.nl/congres/2014

Paris web
Date: 16-18 oct 2014
Location: paris, FR
A top line-up of experts gathers

dconstruct
in Paris to explore accessibility,
design and open standards.
Talks from Bruce Lawson,
Benjamin Becquet and more.
This year marks the 10th birthday of Jeremy Keiths Brighton paris-web.fr/2014
conference,and its all grown up. Sally Jenkinson reports
The web is
Event report Date: 30-31 Oct 2014
Location: cardiff, uk
Date: 5 September 2014 Warren Ellis kicked off the day by discussing To celebrate 25 years of the
Location: Brighton, UK historical cunning folk, and giving us a reminder web, 16 of the greatest digital
URL: 2014.dconstruct.org that modern web workers are ... part of something innovators will come together to
very old, yet constantly renewed. Next came a talk tell their stories. Speakers will
This year, dConstruct celebrated its 10th from Georgina Voss, around the frictions in the include Brad Frost, Linda Liukas
birthday, and with this new milestone came network, before Clare Reddington provided some and Keren Elazari and more.
ashift in attitude and pace. dConstruct had grown light relief in the form of her Playable Cities. theweb.is
up, and it wasnt afraid to show it. Other highlights included Brian Sudas lecture
A Brighton-based technology conference with onbalance and our relationship with the network, full frontal
adifference, the established gathering is renowned and a talk from Mandy Brown (above) on how Byron Date: 7 november 2014
for showcasing atypical aspects of working with the the immortal light bulb illustrates how the network Location: brighton, uk
web. Its strength has always been the breadth of is as messy, sexist, racist and fucked up as we are. The webs brightest and best
itsexpert speakers backgrounds, brought together Finally, the excellent Cory Doctorow returned for gather in Brighton to share
through an expertly curated theme for the day anencore of his 2004 talk, closing out the day. andexplore ideas surrounding
thisyear, Living with the Network. The shift in focus and delivery appeared to topics like open source, CSS
dConstruct 2014 once again delivered an polarise feedback from attendees, with some andthe physical web.
exceptional, thought-provoking set of talks. finding the days shift in tone and delivery puzzling, 2014.full-frontal.org
Photography: Tom Morris tommorris.org

However, this was not the lighthearted conference but others praising the conference for providing
of years gone by. Where previously there were compelling talks unlike those found anywhere else. thingMonk
addicted toasters, YouTube video comments and As usual, all sessions were recorded and can be Date: 2-3 december 2014
erotic fanfiction passages, instead the day brought found at netm.ag/dConstructvids-260. Location: london, uk
history lessons, dystopia, complex stories warning Excited by the Internet of
about privacy and freedom, and a great deal of Things? Then ThingMonk is the
Sally (sallyjenkinson.co.uk)
political undertones. conference for you. Now in its
PROFILE

isafreelance technical
The powerful talk content was emphasised by consultant, speaker and author, second year, the London show is
anotable lack of slides in most sessions, coupled who helps people with their now a two-track event.
with heavilyscripted, highly polished deliveries. digital strategies thingmonk.com

november 2014 23
Two simple ways to subscribe
Online: www.myfavouritemagazines.co.uk/netp1y
Phone: 0844 848 2852 and quote code NETP1Y
Subscribe to
And get 10 issues free*!
Great Reasons to Subscribe
Get 10 issues free* Stay updated on the new
Get your copy before net hits web technologies
theshops Exclusive access to the worlds
The perfect gift for Christmas! leading experts

UK offers 6 month DD 25.49 (Save 26.89)*


1 Year 53.99 (Save 23.88)* 2 Year 93.49 (Save 62.25)*

Not from the UK? Here


are your exclusive offers Special
Europe: 33.99 (Every 6 months) Christmas
ROW: 41.49 (Every 6 months) Offer!
Live in the US? Turn to Page 57

Terms & conditions: * UK savings compared with buying a two year subscription from UK newsstand. Europe and ROW have no set newsstand price
and therefore we cannot advertise the specific savings you will make. You will be charged in GBP. This offer is for new print subscribers only. You will
receive 13 issues in a year. Full details of the direct debit guarantee are available upon request. If you are dissatisfied in any way you can write to us
or call us to cancel your subscription at any time and we will refund you for all unmailed issues. Prices correct at point of print and subject to change.
Offerends 31 January 2015. For full terms and conditions visit: www.myfavouritemagazines.co.uk/terms
Opinions, thoughts & advice

business

consulting
with clients
Death to all Devices 28
In a world of super-flexible metal and the
Internet of Things, Brandon Schmittling
askswhats next for devices

Get your new designer-client


relationship off to a flying start
by investing some time in proper
consultation, says Simon Foster
Quite often when I start a new design
project or meet new clients, Im
interview32 reminded of a very common scenario from
We chat to designer, typographer and A Book my time as a hairdresser. At least once a day
Apart co-founder Jason Santa Maria about the a client would come in to the salon, sit in
secret to making the right type choices my chair and produce a picture from a
magazine of how he/she would like their
hair to look. If I was lucky, then the picture
they had selected was of a person with a
similar hair type, hair texture, skin tone,
face shape, lifestyle and so on.
But nine times out of 10 this wasnt the
case. So I developed a method of consultation
that would let the client know that we should
probably look at a different direction, while
still making them feel they were in control,
Q&A40 and without causing offence.
FT Labs director Andrew Betts on lucrative Firstly Id ask them to look at the picture
URLs, exciting new tech and why everything and describe the hair texture, thickness,
isnot awesome in the web community colour, length and then the face shape, skin
Opinion

tone and eye shape to build up an overview


of the person in the photo. Then Id ask them
the same set things about themselves, at
which stage the whole point of my question-
ing would start to become apparent.
Id then ask, So why do you think this
person looks good with that haircut?, to
which the only logical reply would be along
the lines of: Because the stylist has consid-
ered their hair type and face shape and
lifestyle and cut the hair accordingly. So
what youre saying is if I cut your hair with
the same consideration to your own indi-
vidual needs youll look good? YES.

passing on knowledge
How does this relate to web design?
Consultation is an often-overlooked aspect
of the design process (especially by the less
experienced) but it is massively important.
How many times have you taken on a client
and theyve sent you a bunch of links to
websites they like that are very well
designed, easy to use and aesthetically
beautiful, but totally inappropriate for that
particular clients needs? And Im sure we
all complain about our clients making silly
requests like make it pop or make the Once the client feels comfortable talking
logo bigger, but who is to blame for that?
Well, surely its us. to you, feedback becomes something
We are the ones with the knowledge of our
industry, and we need to pass that on to our collaborative and enjoyable rather than
clients and potential clients. We need to give
our clients an insight into how the design painful and daunting
process really works and educate them how
to evaluate the needs of their particular point where the client trusts you and feels the why you can then start thinking about
project. This gives them the tools they need comfortable talking to you about their the how. How will the users needs be met?
to communicate with us effectively from an project, feedback becomes something Howwill you convey the clients message?
early stage, and makes the whole procedure collaborative and enjoyable rather than How will you build the site? How will the
far more enjoyable for everyone. painful and daunting. Once youve built this information architecture be handled? How
relationship, ideas from both sides can be often will you iterate the design phase?
Building bridges exchanged without fear of ridicule. We shouldnt forget that we arent really
Through educating our clients about our designing for our clients, we are designing
design process we can also manage expecta- Designing for users for their customers. A lot of clients have
tions, explain budget issues and make the Research is a fundamentally important phase ahard time understanding that, but if
process work for us, rather than against us. of any web project and I believe that consul- youconsult properly throughout the project,
We as designers need to remember that for tation forms a large slice of this. If you really you should be able to steer your clients
most clients, hiring a web designer is an get to know your clients business and thoughts in that direction, and produce a
intimidating experience, especially if youre culture, then you can start to understand better product, together.
not so tech savvy. why the website needs building in the first
Often clients just need a way of starting a place, why they have picked you to work on
Simon (simonfosterdesign.com) is a freelance
PROFILE

dialogue, and if you consult properly with it (which helps you understand client expec- frontend web designer, writer and lecturer based
them you can quite quickly build up a rela- tations), and why users will be coming to the in London. He specialises in responsive design,
tionship of trust. When youve reached a site. Once you have a good understanding of HTML/CSS and web typography

november 2014 27
VOICES Essay

28 november 2014
Essay

Mobile

Death to
all devices Illustration by Ben Mounsey

Super-flexible metal and the birth of the Internet of


Thingsmeandevices as we know them are changing forever.
Brandon Schmittling considers a future of device disappearance

Smartphones are stupid. In fact, all devices are digital experiences and touchpoints into the world
stupid. They make us dependent, they demand that around. To do this will require changing how we relate
we respond to commands, theyre expensive and they to objects and ourselves.
cut us off from the people around us. Our obsession with In todaysinterconnected era, functionality has become
them is limiting our ability to create a more seamless, concentrated into one single device. In the coming era,
less intrusive digital world. We have the opportunity to functionality will become a diffuse array of digital
create a connected future that is so much more than 10 elements forming an intra-connected, self-organising
billion mobile devices flickering like stars in the sky. network. It wont be anything like a smartphone.
Socially, the very concept of a device is too small for
The easy part the future, and will exhaust itself in the long run. Devices
Until recently, the idea of developing effective AMOLED are tools that serve a cultural function. Once we no longer
display technology which unflattens screens was have a need for them, they change.
fanciful. AMOLED combines OLED with Active Matrix, In the West, we love to fetishise objects, and we do
allowing for the display of pixel data on a flexible surface. thisthrough devoting time to our devices. In everyday
There have been several versions of AMOLED devices life we see tension between the human need to socialise
demoed since 2010. But only now, as engineers make and the desire to spend time with our devices. Right now
progress in using graphene to fashion essential parts we are swinging really hard into technology, but this
like memory chips and batteries out of the material, can wont continue if we dont see a return on our efforts.
the possibility of completely flexible, paper-thin devices Culturally, theres a fallacy when we talk about
become real. Just look at the Paddle concept phone from theconnected generation. While global smartphone
Hasselt University iMinds (netm.ag/paddle-260). These penetration will reach 60 per cent by 2019 (netm.ag/
progressions will mean we can start saying goodbye to smartphone-260), that doesnt necessarily mean those
the fragile, fussy and intrusive devices we have today. devices will link to each other in a meaningful way, or
that information will be shared freely between them.
The hard part Connection alone does not solve anything.
To get to this kind of post-device future, we need to Whats even more disconcerting is the fact that
embrace the concept of device disappearance. This is complete connection remains a very new idea. All the
the unravelling of the idea that you physically need to great world cultures share hero myths, in which heroes
hold on to something in exchange for the integration of disconnect and return with solutions. The Navajo twins

november 2014 29
VOICES Essay

left their tribe, Buddha his castle and King Arthurs but we need to think more generally like how we play
knights all marched off in different directions. Discon- music without instruments. Future devices can increase
nection is as important now as it was then. participation rather than curtail it.
Getting people connected and then challenging the
idea of disconnection making disconnection seem odd Achieve ubiquity
represents a complete shift in how weve told stories As Cory Doctorow observed, computers are all around
for thousands of years. We need to accept that people us they just have cases we dont recognise. We need
may not want or need to be connected. Goals and away to trust whats going on around us if we are going
attitudesare likely to change between generations, to embrace an explosion of computing thats even less
making the ideal of connection a moving target at best. controllable. Fortunately, hes proposed a series of solves
Finally, were starting to experience device fatigue. that help to move us in the right direction, based on the
Were hunting around like never before for micro- Trusted Platform Module (netm.ag/platform-260). Watch
applications of the handheld device, and still its leaving him discuss the idea at netm.ag/doctorow1-260.
our hand. Thats what the Internet of Things is all about.
Now that we have a taste we cant go back. Embrace evaporative data
Deji Olukotun, the Ford Foundation Freedom to Write
The futures building blocks Fellow at PEN American Center, said earlier this year
Ive tried to identify five building blocks to make the that the phone is essentially a device for collecting data
post-device future easier to imagine. As we invent it, and pushing ads.Citizens will continue to want a

Were starting to experience device fatigue. Were hunting


around for micro-applications of the handheld device,
and still its leaving our hand. Thats what the Internet of
Things is all about. Now that we have a taste we cant go back
technology for the post-device future needs to promote stronger sense of ownership over their data because all
connectedness, create time, close literacy gaps,achieve citizens have the ability to be vocal activists now. As
ubiquity and embrace evaporative data. reporting data becomes more universal, we accelerate
the creation of an economy based on personal data. Future
Promote connectedness technology should offer users the ability to opt out or
Connectedness is to do with removing boundaries benefit from their participation in this economy.
between digital and non-digital contexts.The more
connectedness we have, the more fluidly we can move Death to devices
from one behaviour to the next, without interrupting As we get closer to a future in which the format of our
ourselves with a device reference. Consider Nod, for technology changes so dramatically, well need new and
example (hellonod.com).There will be a lot of testing different terms, perspectives and expectations. If we
around this idea, until the contours of life with comput- start thinking now about the shortcomings of our current
ing are better understood. tech beyond can it control my TV? we can address
larger social and cultural issues, and bring humanity and
Create time technology into closer alignment. With each wave of
This is about reducing effort, automation, and helping computing comes opportunities and this one is clear:
you shut off and shut out. Its also about the next wave lets expand our horizons, correct our course and start
of privacy and emphasising the break between off and imagining a world without devices.
on.We should be able to treat devices like paper (weight-
less, can be hidden, no breakage) and not worry about Read an extended version at netm.ag/schmittling-260
damage and the time weve invested in them.
PROFILE

Close literacy gaps Brandon Schmittling (@elbuenob) is


seniorinteraction designer at Huges Brooklyn
Few people can fully use their current devices. Ideas like
office(hugeinc.com), and has presented at
programming without code are setting us on this path, SXSW Interactive

30 november 2014
VoiceS Interview

Jason santa maria


Words by Martin Cooper Photography by Daniel Byrne

The designer, typographer and co-founder


of A Book Apart explains why typography
is as much about looking to the past as
the future, and why some of the best
typography choices are invisible

32 november 2014
Info
job: Senior designer,
Vox Media
w: jasonsantamaria.com
t: @jasonsantamaria
Voices Interview

Id love to say there was a eureka


moment, but there wasnt. It was more
of an oh shit moment. Jason Santa Maria
laughs as he recalls how he first discovered
design and fell under its spell. I originally
went to school to learn about illustration.
Ive loved to draw all of my life, he says.
When I got to college I discovered loving
illustration wasnt enough to be good at it,
and everyone around me was considerably
better at it thanIwas.
That realisation propelled Santa Maria
intothe world of the web, and hes now one
of the webs most renowned designers,
typographers, speakers, teachers and com-
munity members, and he has the CV to
proveit. His whistle-stop tour of previous
jobs includes spells as creative director at
Happy Cog, A List Apart and Typekit; he co-
founded A Book Apart and Editorially; and
has his own studio, Mighty (madebymighty.
com). His current gig is as senior designer at
Vox Media (voxmedia.com).
Born and raised in Philadelphia, Santa
Maria moved to New York in 2007. It was a
city, he confesses, that possessed a certain
romantic pull at that time. His decision on
where to set up camp was, however, a more
pragmatic one.
I ended up in Brooklyn because of the
property prices, he smiles. But even then
it was a place where you could gather to-
gether with a lot of people of a similar age
who were practicing similar trades, and its
where you could get a studio space. Design
has always thrived around here. Not only in
Brooklyn but certainly in Manhattan back
from the days of all the ad agencies.

Turning to type
Santa Maria is, of course, best known as
The purpose of typography
Type has to serve two main
a typographer. It all started when I was in
purposes. It has to introduce school, he recalls, explaining how he and
and welcome a reader It his friends immersed themselves in Ray Gun
opens the door and lays out
the carpet. Once youre into
magazine, and the work of David Carson and
the article, the typography Neville Brody.
needs to disappear. When They were the designers who were
youre reading, it should be
like flowing water.It should
reallypushing typography in uncomfortable
move you along. and interesting directions, he recalls. A
lotofpeople in my classes myself
included wereswept away with grunge
letterforms and their malleability. For
better for worse,that was where I started to
really lookat type as something more than
just words.

34 november 2014
Interview

Above Santa Maria at work in the Brooklyn apartment he shares with his girlfriend Top right A Polaroid
OneStep the designer saved from his parents attic: Photography is one of my big loves, he says

His tastes may have changed, but those history plays an important role. Just like
early typefaces mark a special place in Santa buildings, typefaces can be read by somebody
Marias development. Looking back, I might with an eye for their inherent social and
not appreciate those designs aesthetically historic specificity, he explains.
but Iappreciate them for what they did: they There are many ways you can place a
opened the door for me, he explains. They typeface in time, whether its a particular
made me want to learn more about classicism type of italic or stroke, or different kinds of
and historical typographic movements. serifs whether theyre bracketed or not,
he comments. But type design is a craft of
Defining type recursion. Theres a lot of revival happening I keep up to date with news and with
How does Santa Maria define typography? because many designs were very successful, foundries that I like, he explains. That
Its the written word given visual form, and also because they can be improved work pays off when Im looking for a
hereplies. Thats the technologically. Type- typeface I know that three years ago
si mple def i n it ion, You know, more faces can also respond to therewas this Serif that was justperfect.
because it can be so much newer mediums. But, you know, more often than not I just
more. Type can bea story often than not I just gather up a bunch of typefaces thatare
in its own right.It can be gather up a bunch of looking back contenders, and play with them.
a supporting layer to a With this histor y
story, and itcan be a dis- typefaces that are inevitably come certain Font Hunting
tracting layer, too.
Despite his boundless
contenders and play connotations and links.
When you can choose a
When hunting for a font, Santa Maria also
prefers to stray off the beaten track in
enthusiasm for type, with them typeface that has some favourof smaller type foundries. Theyre
Santa Maria is at pains to sort of other symbolism mainly independents; not the bigger ones.
emphasise that its just one component in behind it, it makes your choice feel more Places like Just Another Foundry (justan-
adesigners toolbox. Design has many valid. It doesnt mean its necessarily the otherfoundry.com), Okay Type Foundry (okay-
ingredients contrast, hierarchy, colour right choice, but it feels as though youve type.com), he lists. People that are doing
andgrid systems, type. To be a designer, you discovered something that was meantto be. some really interesting things. Not Monotype
must understand how they each influence a Thats not to say that Santa Marias type or big guyslike that.
design.Its the way that they all work in choices are entirely driven by symbolism. There are also a few handy sites Santa
concert thats important, he sums up. Although it certainly feels good to weave Maria has bookmarked for inspiration.
And what, in his opinion, is the secret of intoa design a typeface that carries a Onewonderful siteis called Fonts In Use
good design? Its staying away from any- complementary story, thats less crucial (fontsinuse.com), where the curators of the
thing thats too of the moment, he muses. thandodging bad and jarring links. Indeed, site, and anyone else, canpost up work and
Its about not being trite, its about doing he says, avoiding bad references is more chart out the typefaces used in that work.
something thats honest, something that important in achieving design success than And it all links together, so if you like that
feels like a natural form of communication. finding positive connotations. Bodoni, you can click on it and see all of
Its not about surface-level polish. The designers process of choosing a face theuses of it. Thats a great way to see
When it comes to picking the right type- begins with notebooks, lists and a hunt designwork and also see how different
faces to use in a design, Santa Maria believes through his many, manyshelves of books. designers use typefaces.

november 2014 35
Voices Interview

Left Santa Maria splits his time between


working at home, at a local coworking
space and at Vox Medias Manhattan
office Above Just some of Santa Marias
extensive book collection

Returning to the business of design, I ask powerful thing being able to tailor the ty- why [it works] is more troublesome. My book
Santa Maria how he knows when hes made pography to a situation rather than choosing is a means to think through these problems.
the right choice. When the typography feels one direction and it being just good enough. Another side project was Editorially
like it can disappear into the background and That said, responsive didnt bring about (editorially.com), a collaborative writing
doesnt seem as though it needs to flaunt particularly radical changes in Santa Marias platform that closed its doors in May. Since
itself. And it does so with ease and a grace workflow. He explains that what works in then, the founders Mandy Brown, David
that benefits not only the story being told, one space is probably a good place to Yee andSanta Maria have been acquired
but the overall design too, he responds. Its startinanother. So, if something looks by Vox Media, where theyre now working
difficult to make that happen visually as you goodon a desktop or on a phone, and you on the companys backend story editor.
dont necessarily notice the pieces that make move to another envi- Were trying to solve
that happen, but you notice it when it isnt ronment, its not Good typography many of the same prob-
there. You notice when something is working amatter of throwing lems Editorially was
against that goal. everything out and feels like it can trying to solve. Its an in-
So, should type be invisible? It can be. starting from scratch. disappear into the teresting project to work
Butnot completely. Type has to serve two Rather, he says, Youre on because we all love
main purposes, Santa Maria says. It has just fine-tuning. background and writing and the writing
to introduce and welcome a reader it opens
the door and lays out the carpet; it should Side projects
doesnt need to process, and we also love
making beautiful tools
tease and be cinematic. Once youre into the Before the conversation flaunt itself that make people want to
article, the typography needs to disappear. draws to a close, I ask create, Santa Maria says.
So typography can be a tease, rather than about Santa Marias book, On Web Typography With Editorially over, theres a gap in Santa
trumpeting over everything thats there. (netm.ag/ontype-259). What motivated him Marias schedule for a new side project and
When youre reading it should be like flowing to pick up a pen? when we spoke to him, he was planning
water.It should move you along. Stupidity mostly, helaughs. It took onpicking up some neglected type and
much longer than I expected. The real photography projects. Its easy, heexplains,
Going Responsive motivation was, a lot of the books Iread about to dig too deeply into one subjectand refine
All this talk of structure and flow through typography talked about the history and one skill set to the detriment of others. Varied
apage leads us on to the subject of the arrival principles, but not about things that are side projects give Santa Mariaan outlet to
of responsive design. Did Santa Maria feel harder to define, like aesthetics or dissecting broaden his horizons and explore other
aloss of control when responsive broke? a typeface, and trying to understand why areas.Illalways jump on an opportunity
Initially I think I was afraid, but as I theforms look the way they do. Those are to work with someone I admire, or learn
startedthinking about it more, it was quite difficult topics to tackle because there are something new, he smiles.
exciting. Thats because youre able to no right answers, theres just a spectrum
makethe typography more suited to the from good to better. Its easy to put a Next month: We chat to A Dao of
environment its being read in. Thats a very typeface into a website, buttalking about WebDesign author John Allsopp

36 november 2014
VOICES Big question

Industry

Whats the secret to


a winning pitch?
You know youd be ideal for a project, but how do you get a potential client to see
how fantastic you are? Industry pros give their guides to perfect pitching

S up ri ya De v-
P urk ay s t h a L e a Simp s on
Head of Client Services Strategy director, TH_NK
forward3d.com think.eu

Winning a pitch is about three things. First,


credibility. Do you deserve to be there? And First things first, make sure
could anyone in the room look foolish for having
chosen you? Second, engagement is the pitch
youactually want to do it. A
amonologue or a dialogue? Third, commitment. successful agency is usually one
What exactly is the client going to get? Vague
claims of betterness or revenue uplift arent which knows when to say no to the
convincing. Credibility gets you in the room but
alone it wont win pitches. Its the other two wrong pitch. Make sure your team
thatyou need to focus on, with engagement
being the more critical. isclose and has rehearsed a lot you
cant fake chemistry. Its important
to behave as any good host would,
Da n Edwa rds which means being attentive to all
Freelance designer
Danedwards.me ofthe team, not just the most
seniorperson. Remember that a
Remember the client is buying
from you, and your personality pitch works both ways this is an
is what will set you apart. Put agencys chance to see whether the
yourself in their position: avoid client has the right ambition and
buzzwords, be patient and take the
culture for them, too. Show interest
time to understand what the client
really wants. Above all, show you
by asking questions, and challenging
are passionate, be honest and dont some of the preconceived notions
be afraid to ask tough questions. within the brief.

38 november 2014
Big question

M at t Connolly Ow en Shiffl e t t
Client services director, Rockpool Digital Art director, Viget
rockpooldigital.com owenshifflett.com

People spend a lot of time preparing and


Believe in your pitch, and believe in practicing their pitches, but the reality is
thatits the deviations from the script that create
yourteam. Believe in what you are early trust and excitement. To invite meaningful
pitching and who you are pitching with. participation, treat the pitch as a kick-off, rather
than a sales endeavour. Be ready to evolve the
Passion and confidence are difference- conversation on the fly to adapt to the flow of the
discussion. Bring your deck, but let it be your
makers and they can only happen when ideas and interactions that drive your pitch.

the pitch team trusts each other and the


concept it has created. And whether its
awin or loss, get the pitch team together S t e v e Pip e
Managing director, Si digital
and explore what worked well, and what sidigital.co

could have been done better. Trust your


1. Give yourself plenty of time
teams opinions and believe intheir ability to prepare and practice. We
to keep improving. doat least one dummy run to the
team before pitching to the client.
2.If you can, call the client toask
questions beforehand this helps
T om Dougher t y
build a rapport. 3.Doyour research.
User experience director, Delete
deleteagency.com Understand the problems facing
theclient, its competitors and the
Demonstrating a commercial understanding of your clients business and
industry as a whole. 4. Encourage
the impact you believe your work could have on it will instil confidence
thatyou are able to operate beyond just producing pretty design work. Most questions. The pitch should be more
businesses will be measuring their digital activity on a set of objectives and KPIs of a discussion than a monologue.
that are typically established early in the pitch phase. Extracting these from your
client and referencing them throughout your presentation will convey a sense of
5.You wont win every pitch. Dont
business acumen that clients are always encouraged to see. get disheartened.

Further reading
Pitching is a life skill Make them love your idea Sell me a pen
Being able to sell ideas in meetings is Working in a creative industry is, in Jordan Belford is the Wolf of Wall Street.
anessential work skill. Lifes aPitch by general, a pleasure. Until, of course, Hes a convicted criminal and also a
Stephen Bayley and Roger Mavity (netm.ag/ somebody pours cold water on your cherished master salesman. In this video netm.ag/
pitch-260) takes the view that good pitching idea. IdeaSelling by Sam Harrison (netm.ag/ sellpen-260 he explains why successful people
doesnt just help in the office its a life skill ideaselling-260) is a book aimed at creatives ask questions and dont just rely on blarney
which, when mastered, leads to a happier social who need to sell themselves and their ideas, (fast-forward to around 90sec). Questioning,
life as well as a more fulfilling career. and its packed with techniques and tips. heasserts, is the most critical part of selling.

november 2014 39
Voices Q&A

problem. I felt excited to be part of it. I registered a


few domain names for sites that weregoing to be the
Next Big Thing. Turns out I wouldhave been better
off doing nothing with themat all, because the ideas
were rubbish, but the domains themselves turned out
to be a pretty good investment. I owned freestuff.com
and .co.uk for 10 years, and they did a lot better than
my savings!

net: Looking at the web, which technologies are


getting you most excited right now?
AB: At FT, we want ServiceWorker as soon as possible.
Wed also quite like CSS Grid Layout, and were
waiting patiently for Web Components. The way we
build websites has changed fundamentally over the
last few years, but the foundations are the same.
Nowwith these new technologies, its as if were
getting a new set of foundations. Its big news.

Q&A

Andrew Betts
net: How did you approach creating an experience
that would work offline for the FTs app?
AB: Right now if you want to have an offline web
appand its not the simplest thing in the world, youll
find it a frustrating experience. My colleague Matt
Andrews has written a tutorial (netm.ag/andrews-260)
The FT Labs director on messy hacks, that goes into detail on some of the problems.
For the moment our approach is a messy
lucrativedomain names and why the web compromise of many hacks almost too gruesome
industry needs to start taking itself seriously todescribe. For example, we convert images into
text,then convince the browser that eachpair of
characters is actually just one two-byte character
net: Why dont you introduce yourself? (which is usually Chinese). Then we can do the reverse
Info AB: Im the director of FT Labs at the Financial Times. to get our image back again, but we can now store
job: Director, We look after the FT web app (app.ft.com), and much of twice as many images on your phone or tablet!
company: FT Labs the FTs frontend web development. I also run Edge ServiceWorker, of course, solves this problem far
w: trib.tv conference (edgeconf.com) and co-organise the London more elegantly.
t: @triblondon Web Performance meetup (londonwebperformance.org.
uk). Before this, I ran a web development agency net: Finally, tell us about your relationship with
called Assanka, spent a year in the UK air traffic theword awesome.
control service and briefly worked in Zimbabwe, AB: Awesome is one of those words like ninja,
building a tracking system for a manufacturing rockstar and app that is applied to pretty much
company that had six computers between 300 staff. everything to the point of making the word useless.
I love open collaboration. My team has just But that doesnt mean that it cant do harm. I tend
launched a public polyfill service (cdn.polyfill.io) to to mentally associate reckless superlatives and
take the pain out of auto-polyfilling missing features developer hero-worship with a culture thats come
in legacy browsers, and its available to everyone. tobe called brogramming (a word I also dont like).
Were a young industry, with little regulation,
net: How did you get started on the web? alackof strong professional bodies or chartership,
AB: My mum wanted a website for her company, andyet web development is arguably as vital to the
soIdid something in FrontPage, then got frustrated modern world as law or banking. I want to see an
at how inflexible it was, so I learned HTML and CSS. industry of diverse, professional practitioners,
It was satisfying to be able to put something out withameasured, thoughtful and mature community.
there that the whole world could see and use, and The only thing truly awesome about the web is its
the barrier to entry was so low. It was the boom of existence and our responsibility to look after it well.
the late 90s and the web was going to solve every Everything else is ephemeral.

40 november 2014
voices Opinion

WordPRess

WordPress evolution
Marko Heijnen reflects on the 4.0 update and considers the future for WordPress
WordPress recently launched a new the WordPress 4.0 release additionally think is the next big step for WordPress?
version, 4.0, amid much excitement included code cleanups and an application Theincorporation of a RESTful API.
around the releases updates and how they of standards for increased code quality. More complex websites and mobile apps
would benefit end-users and developers. For example, almost all uses of the PHP func- are continually being built with WordPress,
The release boasts over 1,200 updates tion extract() were removed. The function so it is important for WordPress to have
since 3.9. Although no groundbreaking previously exploded an array into variables, aRESTful API. Such an inclusion could
new additions were included, 4.0 leads the which although handy to use,accidentally support current WordPress apps as well as
way for future releases, with a number overwrote variables without users knowing. mobile apps that use WordPress as a
ofunderlying changes and clean-ups Users were previously unsure as to what was backend.As a feature available as a plugin
making WordPress 4.0 a more stable CMS. being parsed by extract() . now, users are currently
The removal of the 4.0 leads the way able to test this service.
New additions function increases the Going forward, the
My personal contributions to the release stability of WordPress
for future releases, platform will continue to
ofWordPress 4.0 included one patch. as a package, as no vari- with underlying update its legacy code and
Iinitially co-created the WP_Image_Editor. ables have the possibility add the APIs that devel-
class with Mike Schroder in WordPress 3.5. of being overwritten.
changes and opers need to better
With ongoing improvements, the update Additionally, Scruti- clean-ups making accommodate these user-
forWordPress 4.0 adds the method get_. nizer, a code inspection cases as their popularity
quality() . An important class that handles platform, was used to
WordPress 4.0 a increases.Although a lot
allimage manipulation within the plat- detect dead code and more stable CMS of work is still needed
form,the new method will help developers unused variables by around this, I am hopeful
retrieve the current quality of an image when searching through the codebase to find that we will see this update in WordPress
using the class directly in their own projects. possible issues. Although not necessarily 4.1 or 4.2.
Whilst a number of incremental changes fixing every issue, the access modifiers gave Secondly, I expect to see the rebuild of the
are present within the frontend and backend, a goodindication as to the current status of image editor in WordPress. A new project in
the code, increasing the overall quality. which I am involved, the current version
The code cleanups and removal of dead displays a number of issues including
code within update 4.0 are a huge benefit to extendibility. Although the status of the build
developers, making it easier to contribute to and release date are currently undetermined,
the ongoing improvement of WordPress as I see a huge potential here for a more extend-
a CMS platform. able UI for plugin developers to create new
With textarea support for Customizer, features for users.
less code is required for developers to There are also plans to extend the class
test themes. When installing plugins WP_Image_Editor with new methods. Hope-
on a dev version of WordPress, a fully these extensions add the default
new tab is visible. This saves inclusion of image filters (such as greyscale
developers time when completing or sepia). As a personal goal for this project,
updates as it displays all features I will begin working on new ways to show
being worked on as plugins. images on mobile.

The future Marko (markoheijnen.com) is an avid WordPress


PROFILE

The most notable change in this enthusiast, and has been making contributions
release is the creation of updates since 2010. As well as working full time for 1&1,
we can build on. But what do I he is the main core developer for GlotPress

42 december 2013
Gallery Inspirational sites
Brian Hoff

Brian is the founder and


creative director of Brian Hoff
Design, a Philadelphia-based
boutique digital agency
creating web and mobile
platforms and products
w: brianhoffdesign.com
Sensational design and superb development t: @behoff

HTML5, Canvas, CSS3, Backbone, jQuery, Modernizr


The Make
airbnb.com Airbnb Yours
DesignStudio wearedesignstudio.com, R/GA rga.com, Airbnb tool is a great
example of
Airbnb has not only received a beautiful detection that allows users to make the
new website and app, but a rebrand that Airbnb logo their own. Users can create a
using modern
helped position more of a focus on the unique community symbol using a collection technology in
companys hosts and community. During the of over 1000 illustrations and forms. a unique way.
rebrand, DesignStudio a global agency that The redesign also helped flush out the High fives all
has also worked with the likes of Nokia and inconsistencies that Airbnb had previously around
Sony PlayStation became an extension of faced across desktop, mobile and its app. These
Carlos Gavina
Airbnbs internal team. all now feel part of the same experience. All @Carlosgavina
In collaboration with R/GA, the team parties did a wonderful job of creating a sense
built a fun, interactive tool using HTML5, of community through new photography, warm
Canvas and CSS3 (with CSS animations) and colour palettes and graphic treatments. The
Backbone, jQuery and Modernizr for feature whole experience now feels much more human.

44 november 2014
Inspirational sites

jQuery, HTML5, CSS

vans.com
Huge hugeinc.com

The new Vans website was designed by Huge, a digital agency that
specialises in business strategy, design, marketing and technology
services. Stationed across seven offices throughout the US and London,
Huge has worked with some of the worlds best-known brands.
The new site was designed with a high amount of content in mind
and a focus in helping the brand grow up, while maintaining the audience
that has been with it for over 30 years, says Huges executive creative
director Jon Jackson.
Beyond selling shoes and other clothing merchandise, Jackson
emphasised that Vans is also a content provider. One of the goals
of the redesign was to combine content and product, and get people
into the site either way. The new site presents a more simplified style
than wed usually expect from the brand, which not only improves the
shopping and navigating experience, but also helps Vans move towards
its current audience and their updated style.
Much like its audience, Vans website has grown up as well, with
asmart responsive design that means its just as beautiful and useful
ondesktops as it is on a variety of other devices and screen sizes.

november 2014 45
Gallery Inspirational sites

si t e of t he
mon t h

HTML5, CSS Transforms of theagencys work are emphasised, taking up large The sites
firstborn.com
portionsof the screen. It makes a real statement. interactions
Beyond aesthetics, what I love most about the site is the
are fun while
Firstborn firstborn.com balance and grid. The site breathes with beautiful white
space amongst all the imagery and typography, meaning all
being snappy
Firstborn is a full service agency specialising in areas theelements flow perfectly. And while the studio could have enough to not
ranging from digital strategy to web design and content kept a more boxy grid approach to styling various areas, it hinder the
strategy. Its recent redesign is a real gem. It has personality subtly broke expectations by balancing call to action buttons, experience
and grit whilst maintaining a clean and modern aesthetic, animations and fades, all executed with the level ofpolish Jonathan Suh
which vice president and executive creative director Dave youd anticipate from this team. @jonsuh
Snyder says was one of the projects creative goals. The previous site really revolved around the work we do
The large typography is mixed with a sharp, bright red and thats a huge indicator of the mentality here at Firstborn.
colour palette, helping the redesign feel more bold and However, we wanted to add a bit more around the people and
powerful than before. Captivating graphics and images what grounds our approach to that work, explains Snyder.

46 november 2014
Inspirational sites

HTML5, CSS3 animations, Backbone

starwars.com
Disney.com disney.com

The new Star Wars site is a fine example of simplicity


sprinkled with a just the right amount of detail. The use of
parallax and animation for the navigation and hero image give
thescrolling experience personality without going overboard.
The site is packed with little tricks and treats, which give it
some extra personality for example, the mobile hamburger
menu and close icon for search turn into lightsabers, and different
highlight colours help differentiate each section.
The creators even got a little fancy with the loader. Created
using CSS only, one circle rotates clockwise while the other moves
anti-clockwise, and with one element an interesting approach.
This site houses a ton of information and the grid system is
flexible enough to allow for variety in layout while maintaining
enough structure for the continued addition of content. The
creators have also crafted a responsive design that leaves viewers
happy, no matter what device theyre on. Building a content-
heavy site that can be maintained across avariety of devices
istough, but this is a great example of it being done right.

november 2014 47
Gallery Inspirational sites

HTML5, jQuery

adage.com
Area 17 area17.com

Three things in particular get me really excited about web design:


great typography, a strong structure and beautiful balance. The
new AdAge nails all three. This news website, which is highly regarded in
the marketing and media community, carries most of its weight on the
shoulders of beautiful and readable Tiempos Text (and Tiempos Headline
for, well, headlines). What I love about this typeface choice is that while it
has an editorial nod, its curves also pack some personality.
The experience and layout remains equally enjoyable as you scroll
down the page, and each section feels well thought-out and unique, with
comfortable breathing space around the various elements. Far too often
I come across news websites that cram text and headlines into every
little fold, nook and cranny. This is a welcome breath of fresh air.
The redesign attempted to address AdAges business needs while
enhancing the overall user experience, says Miguel Buckenmeyer of
Area 17. The visual design the typography, the use of white space,
the extra templates and so on are clear nods to print editorial, and we
believe help differentiate the overall product.

AdAges
website is
not trying
to be too
clever, and
this is a good
thing. They
understand
their audience
and display
articles in
a feed-like
style
Yaron Schoen
@Yarcom

48 november 2014
Inspirational sites

HTML5, CSS Perspective property

orangina.eu
Achtung! achtung.nl

Theres so much to say about the Orangina redesign,


Idont know where to begin. This website has it all:
beauty, craft, quirkiness, unexpectedness, movement,
balance. Upon loading up the landing page, youre presented
with lovely, highly detailed product photography, animations
and what might be the finest use of CSS3s perspective
property Ive ever seen.
Button and image box perspectives shake things up
(pun intended) and add welcome personality by throwing
something unusual at what could have been a standard,
mundane grid. The main typeface Berthold Block Condensed
compliments the quirkiness of the graphic and grid
elements nicely, too.
According to Achtung!, the design took Oranginas
Shakethings up slogan as its starting point, with animations
adding a wonderful touch and shaking product photography
complimenting the theme perfectly. Well done for bringing
arefreshing new site to the web!

november 2014 49
Gallery Inspirational sites

HTML5, SVG, CSS Transforms

dsg.com/baseball2014
Viget viget.com

Digital agency Viget is known for pushing


the envelope in its designs, and its site for
Dicks Sporting Goods Gear in Action campaign
certainly lives upto expectations.
The product assignment was to develop a
shoppable and shareable lookbook to highlight
new baseball products for the 2014 season,
says co-founder and CEO Brian Williams. The
lookbook displays products in an engaging,
scene-driven format that allows visitors to easily
discover, share and make purchases.
We used vector assets whenever possible,
says frontend developer Chris Manning. This
allowed us to create SVG images that scale well,
save on file size, and move commonly used icons
to web font files to improve page load times.
Frontend developer Doug Avery stressed the
challenges of creating such a unique experience:
CSS transforms were used as a way of scaling
the video to solve the issue of overwhelming
computer capacity.
The result is a beautiful blend of smart UX,
engaging storytelling and beautiful film. What
more could you ask for?

50 november 2014
Sublime design
& creative advice

this month Featuring... Design


Challenge
This month...
Focus on 56

Aquarium
Gene Crawford considers the benefits and
pitfalls of the trend for off-canvas navigation,
made popular by Facebooks mobile site
websites
Sarah Brown
PROFILEs

Sarah is a freelance web designer and


developer from Louisville, Kentucky
w: sarahsfolio.net t: @sarahthewebnerd

Ade k unl e Od u y e
Adekunle is a product designer at NASDAQ
OMX, working on web-based products
Profile 58 w: adekunleoduye.com t: @adekunleoduye
We meet the faces behind Beardeds award-
winning design work, and find out why theyre W il l Ho w e
on a mission to give something back to the web Will is a Newcastle-based art director and
designer working across print and digital
w: willhowecreative.com t: @WillHowe

Brief
Wed like you to design a site for a public aquarium.
Maybe its a slick, glossy and industrial creation like
Orlandos SeaWorld, or a more modest affair like Sea
Life in London. Alternatively you might create a local
How we built 64 centre that works to conserve a single species of fish.
How a team of university students joined web
agency Springload to create a fun-filled tool
toget New Zealands young people voting

52 december
november2013
2014
Design challenge

Sarah Brown

Kihanni Bay Aquarium my month


A calming design that lets the content and photography shine (see the full-size image at netm.ag/brown-260)
What have I been
doingthis month?
Ive been in the process
of rebranding myself
The concept of Kihanni Bay Aquarium
Close up and redesigning my
wasformed around my previous visit
website, as well as
toHawaii. The state has a subtle beauty that (1) I intended for the photograph with the tagline to be
finding freelance jobs
Iwanted to portray in my design. By using only the first element viewers see, so that this sets the overall inmy community.
one colour besides black and white the look and feel of the website. (2) If the viewer is looking for
Which websites have I
photography and content speaks for itself. anything in particular, they can click on the magnifying
visited for inspiration?
As an aquarium website, its main goal is to glass icon to push the navigation to the left. A text field designspiration.net for
display information so viewers can plan their will then appear for them to search what they are looking general inspiration,
visit. In the case of Kihanni Bay Aquarium, for. (3) When hovering over a photo in this section of andinspired-ui.com for
mobile inspiration.
that information is particularly important, as the website, a white overlay will appear, alongside the
viewers will be mostly tourists from outside title of the blog post and a Read more link. (4) This is What have I
ofthe state or country. an application that visitors can use during their trip to beenwatching?
Season 2 of Hemlock
As well as visiting info, I felt that viewers Kihanni Bay Aquarium users are able to keep track of
Grove, NBCs Hannibal
would also want to see more news and a brief the next show time so that they dont miss out on the full re-runs, many classic
sneak peek into the aquarium before visiting. experience. (5) When using this application, users are also horror films.
I chose to use a four-photo grid to display the able to find information about the aquarium, see other
What have I been
blog posts rather than just bland text. show times, play games and even share photos of the listening to?
The site would be built to be responsive, and memories they are making. The Album Leaf,
all elements would stack using media queries, Exitmusic, and Green
so that people can view all the information they orBlue.
require on all devices.

november 2014 53
Showcase
Design challenge

2
1

Adekunle Oduye

My month Neptunes World


What have I been An image-led site that puts the users needs first (see the full-size image at netm.ag/Oduye-260)
doingthis month?
Organising a frontend
development and
design conference
I decided to use some of my UX skills
Close up
forthis design challenge rather than
inNew York.
starting with how the site was going to be (1) I decided to put the address and transport icons in
Which websites have designed, I focused on why. I had to really aprominent position right underneath the logo, because
Ivisited for inspiration?
thinkwhy someone would come and visit the typical user will likely want to know the location of
A lot of zoo and theme
park sites (such as anaquariums site, who would be the typical the aquarium and how to reach it. (2) A large hero image
bronxzoo.com, and visitor, and the process they would gothrough would take most of the space. This would be used to
aquariumofthebay.org) whenexploring the site. highlight any special exhibitions happening at the time.
to get a good sense The Neptunes World site will use web (3) On the mobile version, the sidebar would become
what information is
technologies like HTM5, CSS3 and JavaScript. a header. As the user scrolls down, the address and
usually displayed on
homepages. The CSS3 will be written in Sass, and will transport icons would minimise to give the main content
leverage frameworks like Compass (compass- more real estate. (4) The daily schedule would show the
What have I
style.org) for patterns and reusable modules, times and names of the shows. If the user clicks on a
been watching?
House of Cards. andSusy (susy.oddbird.net) a simple but show, a video preview would start playing. (5) Finally,
Itsawesome! powerful layout framework that helps make theres an interactive map that the user can interact
thedesign responsive across mobile devices. withto plan their visit and learn more about the animals
What have I been
listening to? Since the site is going to be image-heavy, on display.
Michael Jackson: Greatest using CSS3 to handle animations and display
Hits, RnB and some icons is very important. Techniques like Object
hip-hop.
Oriented CSS, SMACSS and lazy loading will be
used to enhance performance.

54 november 2014
Design challenge

Will Howe

Discovery Pools
A bold and vibrant site that transports users under the sea (see the full-size image at netm.ag/Howe-260) my month
What have I been
doingthis month?
Making a splash with a visually rich and
Close up A responsive overhaul
interactive design is this one-page site for of a charitys
an aquariums new penguin-filled Discovery (1) After a fullscreen loading animation, an animated ecommerce presence
Pools. The design would feature a prominent Discovery Pools logo would load up as a background and a creative online
and print marketing
background visual, composed of above-water, image in the centre of the screen, with a CSS fill animation
campaign for a
underwater and aquarium photography. followed by a scroll down prompt. (2) The second section software company.
On scrolling, the user would be taken on would incorporate some subtle parallax scroll on the
Which websites have I
anengaging journey through some of the new foreground penguin. (3) The third section would act as
visited for inspiration?
pools, exploring and interacting with each agallery carousel, as well as providing space for additional tympanus.net/codrops
section. Regular Book Now buttons act as calls text content. CSS multiply blend modes could be used tobrush up on CSS and
toaction, to ensure the opportunity to convert on the image mouseovers, with a more conventional JS trends, and browsing
a casual visitor into acustomer isnt missed. image fallback available for non-compliant browsers and spotify.com albums for
colour palette
The site makes use of on-scroll effects and mobiles. (4) An interactive map would allow users to get
inspiration.
UX to give a clean, visceral experience. Subtle more info on specific areas and animals in the pools. (5) A
What have I been
parallax effects will be used on backgrounds final prompt to subscribe to the conservation magazine
listening to?
and elements, making clever use of the would lead down to a footer made up of contact details
Q-Tip, People Under
versatile Skrollr.js JavaScript library. and directions. theStairs, Michael
Based on a 12-column grid, sections within McDonald and the
the page could stack responsively for mobile, pleasant distraction of
Nerdist.com podcasts.
although for the sake of UX, parallax and
someanimate-in effects would be sacrificed
for mobile and tablet.

november 2014 55
Showcase Focus on

Focus On

Off-Canvas Navigation
It saves room in your design and has the wow-factor, but approach
off-canvas navigation with caution, warns Gene Crawford

There is a navigation design pattern


thats emerged for multi-device layout
that, unlike most other patterns, utilises
off-screen space to hold a lot of navigation.
Popularised largely by Facebooks mobile
website, this off-canvas navigation is an
attractive and elegant solution for websites
with a lot of navigation or other elements
for multi-screen design.
The basic concept is that for smaller
mobile device screens, important
navigation items are only a single view
away. It brings back a decent amount of
space to the main area of your design, and
it also looks pretty cool. Lets face it, clients 1
want designs with wow-factor and a slide-
in, off-canvas navigation could be just what
the doctor ordered for good or bad.
There are some negatives, however.
Itspretty advanced to work into a website
build, and you need to know what youre
doing so it both scales properly and doesnt
break down across devices and browsers.
Itdoesnt scale well outside of mobile
device screen sizes and it can be confusing
to people when encountered on a desktop
computer. This is probably why weve seen
so many different variations in the use
andimplementation of this pattern.
The off-canvas navigation pattern is
intriguing. Im not a huge fan of it for 2 3
websites. I think it has its place in native
mobile applications, but generally speaking
Im never a fan of hiding the important
things you want your websites visitors to (1) The website for Muse (choosemuse. a large off-canvas menu to house just
see - like your websites navigation. com) a brain activity device employs about everything youd need to interact
the interaction model thats present with the site. (3) The website for Time
in the off-canvas navigation. When magazine (time.com) uses the same basic
activated it covers the homepage UX pattern as the off-canvas menu for
Genes mission is to work tirelessly
PROFILE

to provide inspiration and insight with a sightly transparent, coloured its main site navigation, but in this case
for developers. His recent projects background. (2) The mobile web version the menu covers up content instead of
include unmatchedstyle.com of Facebook.com (m.facebook.com) uses displacing it.
USA/Canada xmas Offer!
Subscribe to and save up to 50%

Great Reasons
to Subscribe
l Get
 your copy early

l Stay
 up to date on the new
webtechnologies

l Exclusive
 access to the worlds
leading experts

l The
 perfect gift for Christmas!

Prices
6 months $60.99 (Save 45%)
1 year $143.99 (Save 35%)
2 years $220.87 (Save 50%)
Special
Seasonal
Subscribe online at imsnews.com/net-a039 Offer!
Or call toll-free on 1-800-428-3003 quote code a039
Live in the UK? Turn to Page 24
Terms and Conditions: * Savings compared with buying 13 full priced issues at $16.99 from the US newsstand. This offer is for new North
Americanprint subscribers only. You will receive 13 issues in a year. Minimum subscription term is 12 months. If at any time during the
first 60daysyou are dissatisfied in any way, please notify us in writing and we will refund you all unmailed issues. Prices correct at point of
printandsubjecttochange.Offer ends 28 February 2015
Showcase
Profile

The Beardeds From left: content strategist Caralyn


Green, designer Matt Braun, founder Matt Griffin,
developer Patrick Fulton, developer Brett Bender
Profile

Bearded
bearded.com

We meet the small but perfectly


formedwebdesign team intent
ongiving something back to
the web industry
If theres one thing Bearded is really
lacking in, its beards. Only one of its
members can be truly described as hirsute.
Luckily, what it lacks in facial hair, itmakes
up for in design excellence. Founded in 2008
by Matt Griffin (the proud owner of the
aforementioned single beard), the web
designagency has been honed into a crack
team of five talented individuals, each
specialising in a particular field.
Working alongside Griffin are designer Matt
Braun, content strategist Caralyn Green and
developers Brett Bender and Patrick Fulton.
We caught up with some of the team to find
out the thinking behind their mission to move
the web forward, and the real slightly geeky
story behind that agency name ...

net: Why dont you start off by describing


Bearded, its personality and values
MG: We started Bearded in 2008 as just a
designer and a developer. From the beginning
our central idea was that of collaboration.
Weve always been single-team sized right
now those five people represent disciplines
encompassing research, UX, content strategy,
design and full-stack web development.
No oneperson can be hero-level at all
ofthethings that go into making great web
experiences, socollaboration between people
who each specialise in one part of the system
is the key. Since we started Bearded I gave up
Photography: Noah Purdy

the idea of my work. But thats OK, because


our work is so much better than anything
Ive done on my own.
The other big thing we wanted was to do
workthat we could feel good about at the end
of the day. Which is why you see so many

58 november 2014
Profile

info
Location: Pittsburgh, PA, USA
Established: 2008
Team size: 5
Expertise: User experience, web
design, frontend development,
workshops and training
Selected clients: Carnegie
Museums of Pittsburgh, Intel,
Leukemia and Lymphoma Society
Awards: Shortlisted for nets
2014 Agency of the Year, multiple
HOW Interactive Design Awards

november 2014 59
Showcase
Profile

Above Childrens Museum of Pittsburgh website,


featuring a responsive calendar
Right A custom web application for a photography
initiative at the Carnegie Museum of Art

nonprofits on our roster. Its not really the term typeface right? Well, all physical net: Whats the web design scene in
where the big bucks are but my feeling is type has an anatomy. The face is the surface Pittsburgh like?
that no one can pay you enough to dislike that gets inked, the ledge the letterform PF: In short: awesome! The community
what youre doing with your time. emerges from is the shoulder, and the slope here is close-knit, vibrant and excited about
Time is really all that any of us have, between the face and shoulder is the beard. the web. There are so many web and tech-
soyou better make sure youre having It isnt particularly noticeable, and it isnt related meetups here that one could attend
experiences you feel good about during the part that prints. But without it there, a different event on nearly any weeknight.
thattime. For me that means doing quality supporting the face, you couldnt print Pittsburgh itself is great, too. Many people
work, learning and growing as craftspeople, anything. So thats my long and rarified think of it as an American football-crazed,
enjoying the interactions with each other metaphor for Bearded. It doesnt make dirty, smoky steel town but thats not
and our clients, and making the world a avery good elevator pitch. really the case any more. We still love our
little better if we can while were at it. sports teams, but the city and surrounding
Wow.That got kind of heavy, huh? net: How did the agency start? region are beautiful.
MG: Two guys in our homes making sites
net: Where did the name come from? and a logo for next to nothing. Not long into net: You say: We do more than
MG: Well, Ive had a beard for most of it we got a leaky office and a third dev. It incorporate future-friendly technologies
myyears since high school, so it seemed was humble beginnings for sure. We really we help move the web forward.
like asafe bet. But theres a more arcane had no idea what we were doing with pretty Canyou give us some examples?
explanation that involves type. Fair much anything, which was kind of an asset. MG: Everything we come up with that
warning: aside from being a citizen of If wed known how ignorant we were about seems remotely useful we write about,
theinternet, Im also a letterpress printer. running a business I may have never speak about or put on GitHub for people
Ready? Here we go. Were all familiar with recovered from the resulting panic attack. touse. Which to me is just what one should

Above Bearded developers Patrick Fulton (left) and Brett Bender having an impromptu code review Right Designer Matt Braun (left) and founder Matt Griffin at
theirVandercook no. 4 printing press. Braun is setting wood type, while Griffin checks a proof

60 november 2014
Profile

office culture

MATT GRIfFIN

Whats on your desk?


A 13" Retina MacBook Pro, a Cinema
Carnegie Learning A collaborative effort Bearded took care of content strategy, design and frontend Display, an external keyboard, and a
development, while Carnegie Learnings development team built out much of the site in ExpressionEngine
Logitech Marble mouse both keyboard
and mouse with wrist rests (totally
do on the web. Weve all received so much really workshopped us on kick-offs. Its necessary). A figure of Finn from
great free knowledge from everyone before totally changed the way we work. Before our Adventure Time, A Happy Meal toy of
us, as well as our contemporaries first meeting we do a series of stakeholder Speed Racers Mach 5 car from when I
was a kid. My badass NASA coffee mug.
anything we can do to give back will only and user interviews to get the lay of the
bea drop in the bucket, compared to what land. Then we design a custom one- or Whats on your walls?
weve already received. Were just trying two-day workshop to explore those themes A lot of letterpress prints by friends,
tobalance the scales a little. through various collaborative activities. abike map of Pittsburgh done by our
Itsprobably currently the most fun and friends at Deeplocal, Kevin Cornells
original illustration from one of my
net: Whats the key to a successful exhausting part of my job.
firstA List Apart articles, and a
agency-client relationship? JacquesCousteau CED.
MG: Honesty. Thats the big one. If net: How do you ensure you and your
somethings bugging you, dont bottle it up client are on the same page before the
What hours do you work?
and make assumptions about the clients pixel-pushing begins? Burnout can be a real problem
especially when you love what you do
intent. Tell them about it. Theyre on your MB: Over the last year weve really refined
so we keep to normal business hours.
team, after all! They want the same thing our research and discovery phase. Its We almost never do nights and
you do a startlingly successful project. important to know what problems youre weekends, because that will cut into the
A smart friend of mine, Norm Goldberg, trying to solve before you start trying to next weeks productivity.
who works at another Pittsburgh agency, solve them. So before we get into design we What else happens?
said a client once told him there were only ask a lot of questions. This includes the We have a decent video game
two things they wanted from him: Dont interviews and the kick-off workshop, and setup.Wehavent had time to play in
surprise me, and dont make me cry. Even alot of IA, UX and content strategy work awhile, though. Or maybe its just
good surprises arent a good thing, because where we get to know the client, and why because Matt Braun destroys everyone
at Golden Eye every time.
they mean the clients out of the loop. were making what were making.
Thats pretty good advice. Bring them We explore who the client is, who its How often do you hang out?
into the team so theyll never be surprised. not, and who it wants to be. We also We hang out all day during the week!
Because theyre embedded in the process. attempt to define who the users are, what We mostly spend time with friends,
There will likely be less crying that way. their stories are, and how theyll find a use spouses and kids on the weekends. We
have a great time at the office when
Hey, this is pretty good marriage advice, for what were making. With this we can
were here, though.
too. Do you guys have a magazine for that? define the overall direction, and potential
hurdles become more evident. Describe your office culture
net: How do you run your initial meetings inthree words.
with a client? net: Do clients sometimes find it hard to Friendly web nerds.
MG: Thats a whole article right there! Not understand your creative direction?
long ago we brought Seven Heads Designs MB: Occasionally but for the most part,
Kevin M Hoffman in on a project, and he no. We never have a big reveal on our

november 2014 61
Showcase
Profile

Timeline

Beardeds story: from launch


to the present day

November 20008
Bearded is founded in Pittsburgh
asatwo-person team

Wood Type Revival A Kickstarter-funded personal project that seeks out lost historic wood type and
converts it into digital fonts for modern designers. There are currently 10 fonts available
November 2011
Bearded launches its first responsive
website. It stops using static projects. Clients are able to view their sites month is that to make a watchable film,
mockupsin favour of creating wireframes and mockups in a browser, so weneed more than just a bunch of expert
HTML/CSS/JS comps theyre exposed to real stuff very early in interviews. We need characters, story
the process. Our clients are our partners, areal narrative arc.
and weve found it works best to keep the So thats what were taking a first stab
february 2012
process transparent and let them in on atwith Ethan in Boston. There will be more
Bearded wins a HOW Interactive Design
things early. If we have an off-the-wall than just a person in a chair talking about
award for its iPad app for LISC
idea, we might do a quick mockup or sketch the web. I mean, now well have multiple
and just show it to them early. But more people walking around and talking about
june 2012 often than not, its an idea that might have the web! Totally different right?
Its responsive site for the Pittsburgh already been discovered together in our
Childrens Museum launches, kick-off meetings or presented in the net: So whats next for Bearded?
prompting Ethan Marcotte to say hed
research phase, so theyre expecting it. MG: Well, by the time this prints well have
like Bearded to stop making the rest of
us look so bad launched our new two-page website. We
net: Are all your sites built from scratch had been building a massive new Bearded
ordo you have a menu of elements and site for more than a year, and recently
july 2012 components that you draw together? decided to scrap it.In two weeks we totally
Matt Griffins first article is published PF: We begin building our sites with the redesigned everything as asimple site
by A List Apart. This eventually leads to
help of Stubble, our starter kit (netm.ag/ thats the absolute MVP for us. It says
his regular How we work column
stubble-260). Stubble is a simple collection whowe are, what were good at, and how
of our most commonly used patterns toget a hold of us.
march 2014 itsBeardeds boilerplate. Stubble helps What we realised is that Bearded has
Bearded is hired to work with Intel, usquickly put together our wireframes, changed a whole bunch in the past year,
Samsung, the Linux Foundation and andmake a consistent and clear start on and the big site wed been slowly chipping
Lullabot, to rework the UX, IA and ourmockups. away at between projects just didnt
content strategy for the Tizen
represent us any more. Its always a tough
websitesin time for the new
SamsungZ unveiling net: Tell us about your What Comes Next thing to do, letting goof things you really
isthe Future project ... like and have been working on for a long
MG: Well, were making a movie. Its a time. But it was also a huge relief because
april 2014 documentary about the people who build weknew it wasnt right any more.
Bearded is shortlisted for nets the web, which gives me an excuse to nerd It reminds me of a Hemingway quote that
Agencyof the Year award
out with people whose work and ideas Ivery came to me via Hillman Curtis book MTIV:
much admire. The main things Ive done so take out the good parts, and see if it still
may 2014 far are upgrade the heck out of my gear and works (netm.ag/MTIV-260). If you like
What Comes Next Is the Future, schedule more interviews. something too much to throw it away
MattGriffins documentary about In October I have a big trip to Austin whenits outlived its use, thats a problem.
thepeople who build the web, is planned, but before that Ill be going to Especially with the web which is so
fundedon Kickstarter Boston to do some shooting with Ethan mercurial, youve got to be ready to toss it
Marcotte, and hang out with Filament all out and start over, should the need arise.
Group and Dan Cederholm. One of the Hey, thats pretty good. I should write that
biggest realisations weve had in the last on my bedroom mirror or something.

62 november 2014
Showcase How we built

How we built

onthefence.co.nz
A team at Massey University joined Springload to create a humorous web
tool that would get New Zealands young people excited about politics

1 5

Close up
Brief
(1) The On the Fence site is built around an image of language and a cheeky tone of voice help re-frame
In 2011, a group of third year
students produced a colourful, a sheep teetering on a fence a metaphor for being political issues for a young audience. (5) Clear,
humorous Flash tool to guide undecided. (2) A responsive approach was essential. simple actions guide 92 per cent of users to
inexperienced voters to make an Our primary audience are young, first time voters, complete all 17 questions, with an average time on
informed decision. In 2014 the who often access socially shared content through site of 7.48min. (6) In the last New Zealand election,
toolgot a responsive update, with mobile. We wanted them to be able to complete close to 60 per cent of 18 to 24 year-olds turned out
help from web agency Springload.
the game on their mobile device. (3) As the game to vote. This site provides the opportunity for young
progresses, the sheep is dressed in props relating to people to make sure theyre ready to get involved,
how the user answers each question. (4)Humorous and enrolling to vote is the first step.

64 november 2014
How we built

K arl K ane Josh Barr Kieran Stowers


Timeline

How the On the Fence


projectdeveloped

September 2011
Massey University group launches
Design lecturer Karl leads Josh is a frontend director Graphic designer Kieran is Onthe Fence version one after
Massey Universitys Design andundercover designer at junior research officer on the a six- week long hackathon
&Democracy Project, the Wellington-based design and project, and oversees creative
initiative behind the tool development studio Springload direction of the frontend tool
w: massey.ac.nz w: springload.co.nz w: kieranstowers.co.nz Oct 2012
t: @musettecc t: @joshbarrnz t: @kieranstowers
The On the Fence concept is refined
inKieran Stowers honours year project

In 2011, the Design & Democracy develop the 2011 version. Now, I act as
Project at Massey University junior research officer, overseeing the March 2014
decided to tackle the apathy towards creative direction of the frontend tool. Massey University and Springload
politics amongst young people in New JB: Karl and Kieran approached Springload starttalks about collaborating on
anew, responsive On the Fence
Zealand. A team of third-year students in early 2014 to collaborate on a new
embarked on a six-week hackathon version of On the Fence. We contributed
to create a Flash tool aimed at getting advice on UI and interaction design, as May 2014
youngsters engaged. After being blown well as managing the build, frontend Questions and policy areas are
away by the positive response from development and devOps. developed and finalised with the team
New Zealanders everywhere, the team
brought in web design agency Springload net: What were your main goals when
June 2014
to help make a responsive version. Here, you started out, and how did they evolve?
Backend application Democratic is
Kieran Stowers one of the original On JB: We discussed success in human
completed, and a questionnaire is sent
the Fence creators and Springloads terms we imagined a busy family with out to a panel of experts
Josh Bar walk through the project that highschool-aged children sitting down to
put a new slant on New Zealand politics. dinner, and someone going: Hey, I saw
this funny sheep game at school today July 2014
net: How did the project start out? it helped mefigure out who to vote for. Design and development of the
frontend app, mobile device testing,
KS: It began in 2011, when a young lady As the project progressed, we narrowed
user testing and refinement
named Rebecca Whyte approached Massey the focus toward first-time voters and
University College of Creative Arts and pre-voters, allowing other digital tools
asked if the students could do anything tomeet wider audiences. August 2014
about the lack of enthusiasm for politics Our major technical goal was moving On the Fence launches, attracting
shed noticed amongst young people the 2011 Flash-based On the Fence to a 30,000 visitors in its first three days
in New Zealand. A group of third year responsive website. We knew wed need
students, including myself, researched, to architect the app to work on any size of
September 2014
conceptualised, prototyped, branded, screen, and a wide range of browsers.
The team starts developing tools to
marketed and launched On the Fence just help high schools use On the Fence in
six days before the New Zealand general net: Tell us about the user research you their Civics Education curriculums
election, and over 30,000 Kiwis from conducted, and what you found out.
around the world responded. JB: We tested guerilla-style, with friends
and family. We were mainly looking
net: Who worked on the project, for the best way to input responses to
andwhat were your roles? questions, and we found that users wanted
KS: The tool is a product of Massey to respond with a few definite reactions,
Universitys Design & Democracy Project, rather than an ambiguous sliding scale.
an initiative led by Karl Kane. I was the KS: Joshs 14 year-old sister Ani user-
designer and team leader that helped tested the app several times, and there

november 2014 65
Showcase How we built

1
2

Evolution

The team walk through the evolution of On the Fence,


frominitialUI discussions to device testing
(1) It was important to start with a shared vision and a clear direction. We
prototyped the user interface mechanics on paper first. (2) We tried many, many
iterations of the final voting mechanism. This component was refined right up
until the go-live day. (3) The Design & Democracy team worked out the questions
for each policy area at Massey Universitys Open Lab. (4) On the Fence is full of
images. Kieran Stowers produced a fantastic set of visual assets for the app.
(5)We tested on a range of desktop and mobile browsers. Believe it or not,
Android 2.3 is still really common in New Zealand!

66 november 2014
How we built

was no shortage of politically disaffected


(yet willing) participants at Massey
Unis School of Design. Social media also
provided a rich resource for feedback
justmake sure you have a thick hide.

net: How did you come up with the


design concept and visual language?
KS: The sheep on the fence is a metaphor
for being undecided, and represents the
herd mentality most people show when
it comes to voting. It was particularly
appropriate because the sheep narrative
and farm setting is familiar to a lot of
NewZealanders. The visual style borrows
from Saturday morning cartoons, internet
memes, video games and the growing
Yeah bro The tools copy is based on New Zealand colloquial language, with responses ranging from
array of flat-style graphic websites.
Noway! to Yeah bro. It was allowed to be silly, but not confusing or misleading, says Kieran Stowers
Staying true to New Zealand culture
was also an important factor. We used a
font designed by legendary New Zealand
typographer Joseph Churchward, and selects their response. We used vector On the Fence is actually three
famous Kiwi comics such as Foxtrot Flats graphics, which are easy to manipulate, applications. The game section is a
also help setthe scene. and make animation a breeze. one-page web app built on Backbone.
JB: At last count, we had about a megabyte Marionette (marionettejs.com), a great
net: Youve got some great illustrations. of detailed vector art (including a full framework thats surprisingly fast on
What was your process for those? wardrobe of props for our sheep to wear). mobile devices, with solid memory
JB: Kieran actually has a time-lapse Kieran and I worked to balance the image management. With over six million
video from 2011 with him illustrating and detail against the loading times, haggling clicks,swipes and pages visited, its
creating the first On the Fence character over the detail in the scenery. Its really doinga sterling job.
and scenes in about two hours. important to set a performance budget
KS: From there, more characters were and stick with it. net: What were the biggest challenges,
created to help tell the story. Theres and how did you overcome them?
an awkward cow that stares a lot and net: What technologies and tools did JB: With a rich visual language, we had
interrupts, and Durgie the helpful youuse to build the site? to balance clarity and fun. The first On
chicken, who introduces the tool. JB: We realised we would need to the Fence featured a parallax scrolling
The sheep avatar provides a bit of handle a high number of connections, farm scene. Users enjoyed this, but we
nonsense fun and acts as a very loose without spending the whole budget on discovered they were leaving after only
way to interpret users political leanings. infrastructure. We looked for something ahandful of questions. This time, we
Each policy statement has two extreme fast and light, and settled on an dialled back the open-world experience,
agreement points, each with a prop that asynchronous stack: new-kid-on-the- which was a risk, but weve seen a
is generated onto the sheep when the user block Node.js with nginx on the front. substantial increase in the time on site.
KS: The constant challenge is not to dumb
down the information but to translate
it, reword it and re-package it. These
policy provocations needed to take lofty
political ideology down into the realm of
plain speech, turning it into something
that could be understood by our panel
members, as well as the target audience.
Our direction was guided by the question:
Would a 16 year-old kid get this?

Making friends Users can share their custom Alien abduction We used SnapSVG library for the Next month: We chat to the creators
sheepavatar with their friends on Facebook final scene,where a sheep is abducted by aliens of The Field Museums new website

november 2014 67
Features Cover feature

Au thor
Justin Avery
By day, Justin
Illustration
(@justinavery) is a
technical consultant, Martina Flor
and by night he curates Berlin-based Martina
the RWD Weekly creates type, lettering
newsletter, hosts a and illustration work for
responsive podcast and clients all over the world
runs responsivedesign.is martinaflor.com
Cover feature

esponsive web design sounds The three main concerns were defined by the
incredibly simple. Opt for flexible Responsive Images Community Group (RICG):
grids for the layout, use flexible
media (images, video, iframes), 1. The kilobyte size of the image we are sending
and apply media queries toupdate overthe wire
these measurements to best arrange 2. The physical size of the image we are sending
content on any viewport. Inpractice tohigh DPI devices
weve learnt it is not really that easy. 3. The image crop in the form of art direction for
Tinyissues thatcrop up during every project keep us theparticular size of the viewport
scratching our heads, and occasionally even carving
fingernail trenches on our desks. Yoav Weiss, with help from Indiegogo (netm.ag/blink-
Since I began curating the Responsive Design 255), has done the majority of the work on the Blink
Weekly newsletter (responsivedesignweekly.com) Ive implementation Googles fork of WebKit, and by the
been fortunate enough to speak with many members time youre reading this it will be shipped in Chrome
of the web community and hear their experiences. and Firefox. Safari 8 will ship srcset , however the
Iwanted to find out exactly what the community sizes attribute is only in nightly builds and <picture>
really wanted to learn, so I circulated a survey to is not yet implemented.
readers. Here are the top results: With the arrival of anything new to our web
development process, it can be difficult to get started.
1. Responsive images Lets run through an example step by step.
2. Improving performance
3. Responsive typography <img
4. Media queries in JavaScript <!-- Declare the fallback image for all non picture
5. Progressive Enhancement supporting browsers -->
6. Layout src="horse-350.jpg"
<!-- Declare all of the image sizes in srcset. Include
With those topics in mind, I ran a series of podcasts the image width using the w descriptor to inform the
(responsivedesign.is/feeds/podcast) asking some of browser of the width of each image.-->
our industry leaders for their thoughts. In their srcset="horse-350.jpg 350w,
responses, one point was unanimous: focus upon horse-500.jpg 500w,
getting the basics right before you start worrying horse-1024.jpg 1024w,
about exciting and advanced techniques. By taking horse.jpg 2000w"
things back to the basics, we are able to build a robust <!-- Sizes inform the browser of our site layout.
interface for everyone, layering on features when the Here we're saying for any viewport that is 64ems and
device or users context allows. bigger, use an image that will occupy 70% of the view-
So ... what about these advanced techniques? port -->
Ihear you ask. I think Stephen Hay summed it up sizes="(min-width: 64em) 70vw,
best when he said: The ultimate RWD technique is to <!-- If the viewport isn't that big, then for any
start off by not using any advanced RWD techniques. viewport that is 37.5ems and bigger, use an image that
Start with structured content and build your way up. occupies 95% of the viewport -->
Only add a breakpoint when the design breaks and the (min-width: 37.5em) 95vw,
content dictates it and ... thats it. <!-- and if the viewport is smaller than that, then
In this article, Ill begin with the basics and add use an image that occupies 100% of the viewport-->
layers of complexity as the situation allows, to build 100vw"
up to those advanced techniques. Lets get started. <!-- always have alt text.-->
alt="A horse" />
Responsive images
Fluid media was a key part of RWD when it was first From a performance point of view it doesnt matter
defined by Ethan Marcotte. width: 100%; , max-width: ifyou use min-width or max-width in the sizes attribute
100%; still works today, but the responsive image but the source order does matter. The browser will
landscape has become a lot more complicated. With always use the first matching size.
increasing numbers of screen sizes, pixel density Also, remember we are hard-coding the sizes
anddevices to support we crave greater control. attribute to be directly defined against our design.

november 2014 69
september
Features Cover feature

Stephen Hay

The ultimate RWD technique


is to start off by not using any
advanced RWD techniques.
Thats it. Start from the basics
and go from there. Start with
structured content and build
your way up. Only add a
breakpoint when the design
breaks and the content
dictates it and ... thats it.

70 november 2014
Cover feature

Cutting the mustard


Cutting the mustard is an approach that toboth sets, however the HTML5 groupwill also Cutting the mustard allows us to organise users
involves testing for specific device features. benefit from localStorage, querySelector and into tiers based on feature detection. These tiers
Ifthese features exist then the user is served addEventListener . all receive a different website experience, but
amore advanced and immersive experience, every user still has access to the basic content.
while those that do not support them will still if('querySelector' in document There's a useful BBC article at netm.ag/
get the content they were looking for. && 'localStorage' in window mustardarticle-260, or check out a presentation
The test effectively separates users into two && 'addEventListener' in window) { by the BBCs Tom Maslen who first coined
groups; those with HTML5 capabilities and those // bootstrap the javascript application the term 'cutting the mustard at netm.ag/
without. The same initial content is delivered } mustardvid-260.

This may cause issues moving forwards. For example, the article is delivered to the user as quickly
if you redesign your site, youll need to revisit all of aspossible and within the 14kb magic number.
the <img> or <picture> s and redefine the sizes. If Lets look at the process:
youare using a CMS, this can be overcome as part
ofyourbuild process. 1. User clicks on a Google link to a news story
WordPress already has a plugin to help (netm.ag/ 2. A single blocking request is sent to the database
picture-260). Itdefines the srcset on WP standard for the article. No related stories or comments are
image varieties and allows you to declare sizes in requested
acentral location. When the page is generated from 3. The HTML is loaded containing Critical CSS
the database, it swaps out any mentions on <img> in the <head>
andreplaces them with the picture markup. 4. A Cut the mustard process is undertaken and any
conditional elements based upon the users device
Basic features are loaded
Think about whether you really need to include an 5. Any content related to or supporting the article
image. Is the image core content, or is it decorative? itself (related article images, article comments and
One less image will mean a faster load time soon) are lazy loaded into place
Optimise the images you do need to include using
ImageOptim (imageoptim.com) Optimising the critical rendering path like this means
Set expire headers for your images on your server the <head> is 222 lines long. However, the critical
or.htaccess file (see details under Performance) content the user came to see still comes within the
PictureFill (github.com/scottjehl/picturefill) provides 14kb initial payload when gzipped. Itsthis process
polyfill support for pictures that helps break that 1000ms rendering barrier.

Advanced Conditional and lazy loading


Lazy load your images using jQuerys Lazy Load Conditional loading improves the users experience
plugin (appelsiini.net/projects/lazyload) based on their device feature. Tools like Modernizr
Use HTMLImageElement.Sizes and HTMLPictureElement allow you to test for these features, but be aware that
for feature detection. just because a browser says it offers support, that
The advanced PictureFill WP plugin, found on doesnt always mean full support.
Github (netm.ag/imgtags-260), will allow you to define One technique is to hold off loading something until
custom image widths and sizes values the user shows intent to use that feature. This would
be considered conditional. You can hold off loading in
Performance the social icons until the user hovers over or touches
To get the fastest perceived performance on our pages, the icons, or you could avoid loading an iframe Google
we need all the HTML and CSS required to render the Map on smaller viewports where the user is likely to
top part of our page within the first response from the prefer linking to a dedicated mapping application.
server. That magic number is 14kb and is based on the Another approach is to Cut the mustard see boxout
max congestion window size within the first round- above for details on this.
trip time (RTT). Patrick Hamann, frontend technical Lazy loading is defined as something that you
lead at the Guardian (theguardian.com), and his team always intend to load on the page images that are a
have managed to break the 1000ms barrier using part of the article, comments or other related articles
amixture of frontend and backend techniques. The but that dont need to be there for the user to start
Guardian's approach is to ensure the required content consuming the content.

november 2014 71
Features Cover feature

Basic If you are supporting multiple languages with your


Enable gzipping for files and set expire headers design, then line length may vary as well. Moore
forallstatic content (netm.ag/expire-260) suggests using :lang(de) article {max-width: 30em} to
Use the Lazy Load jQuery plugin (appelsiini.net/ cover off any issues there.
projects/lazyload). This loads images when approaching To maintain vertical rhythm, set margin-bottom
the viewport, or after a certain period oftime against content blocks, <ul> , <ol> , <blockquote> ,
<table>, <blockquote> and so on, to the same as your
Advanced line-height . If the rhythm is interrupted with the
Set up Fastly (fastly.com) or CloudFlare (cloudflare. introduction of images you could fix it by adding
com). Content delivery networks (CDNs) deliver your Baseline.js (netm.ag/baseline-260) or BaselineAlign.js
static content to users faster than your own server, (netm.ag/align-260).
and have some free tiers
Enable SPDY for http2-enabled browsers to take Basic
advantage of http2 features like parallel http requests Base your font on 100 per cent body
Social Count (filamentgroup.com/lab/socialcount) Work in relative em units
allows for conditional loading of your social icons Set your margins to your line height to maintain
Using the Static Maps API will allow you to switch vertical rhythm in your design
out Interactive Google maps for images. Take a look at
Brad Frosts example at netm.ag/static-260 Advanced
Ajax Include Pattern (netm.ag/ajax-260) will Improve font loading performance with Enhance.
loadcontent snippets from either a data-before , js (github.com/filamentgroup/enhance) or deferred font
data-after or data-replace attribute loading (netm.ag/defer-260)
Use Sass @includes for semantic headings.
Responsive typography Often we need to use the h5 style in a sidebar widget
Typography is about making your content easy that requires h2 markup. Use Beardeds Typographic
to digest. Responsive typography extends this to Mixins (netm.ag/mixin-260) to control the size and
ensurereadability across a wide variety of devices remain semantic with the below code:
andviewports. Jordan Moore admits that type is one
thing he isnt willing to budge on. Drop an image or .sidebar h2 {
two if you need, but make sure you have great type. @include heading-5
Stephen Hay suggests setting the HTML font size }
to100 per cent (read: just leave it as it is) because
eachbrowser or device manufacturer makes a Media queries in JavaScript
reasonably readable default for a particular resolution Ever since we have been able to control the layout
or device. For most desktop browsers this is 16px. across a variety of viewports through media queries,
On the other hand, Moore uses the REM unit and weve been looking for a way to tie that into running
HTML font-size to set a minimum font size for certain our JavaScript as well. There are a few ways to fire
content elements. For example, if you want the byline JavaScript on certain viewport widths, heights and
of an article to always be 14px, then set that as the orientations, and some smart people have written
base font-size on the HTML element and set .byline { some easy-to-use native JS plugins like Enquire.js
font-size: 1rem;} . As you scale the body: font-size: to suit (netm.ag/enquire-241) and Simple State Manager (netm.
the viewport you will not impact the .by-line style. ag/simple-260). You could even build this yourself
A good reading line length is also important aim using matchMedia . However, you have the issue that
for 45 to 65 characters. Theres a bookmarklet you can you need to duplicate your media queries in your CSS
use to check your content (netm.ag/bookmarklet-260). and JavaScript.

Responsibly responsive performance issues found in many responsive concatenating, minifying or gzipping code,
sites to RWD itself, but rather to a broader lack optimising imagery, caching and so on should be
Web designer Scott Jehl asks
if RWD is bad for performance of follow-through with widely-recommended applied to responsive sites as well. Sometimes its
optimisations. RWD is defined as nothing more tricky to pull off with multi-device code, but I think
I think the web in general has a problem with than a means for adapting visual layout, and its its more of a challenge than an impossibility.
bloated pages, and that problem both preceded the best approach we have for doing that.
and continues alongside responsive sites. In All of the performance recommendations Responsible Responsive Design by Scott Jehl will
that light, I dont think its fair to attribute the we need to follow for building sites in general be available Oct 2014 (netm.ag/responsible-260)

72 november 2014
Cover feature

Ethan Marcotte

At the end of the day,


flexible layouts and media
queries are the only
prerequisites of a
responsive design.
Everything layered on
top of that is at the
discretion of the designer
or developer.

november 2014 73
Cover feature

Aaron Gustafson has a neat trick that means /* declare the mobile first width for the grid */ Resources
you dont have to manage and match your media .grid-1-4 { float:left; width: 100%; }
Performance
queries in your CSS and your JS. The idea originally Network Link
came from Jeremy Keith (adactio.com/journal/5429) /* When the viewport is at least 37.5em then set the throttling (netm.ag/
and inthis example Gustafson has taken it to a grid to 50% per element */ stuntbox-260)
fullimplementation. @media (min-width: 37.5em) { Chrome Dev Tools:
Using getActiveMQ (netm.ag/media-260), inject .grid-1-4 { width: 50%; } Canary (netm.
ag/canary-260)
div#getActiveMQ-watcher at the end of the body element
and hide it. Then within the CSS set #getActiveMQ- /* Clear the float every second element AFTER the Enhance.js (netm.ag/
first. This targets the 3rd, 5th, 7th, 9th... in the grid.*/ enhance-260)
watcher {font-family: break-0;} to the first media query,
.grid-1-4:nth-of-type(2n+1) { clear: left; } Github South
font-family: break-1; to the second, font-family: break-2;
} Street (netm.ag/
to the third and so on. southstreet-260)
The script uses watchResize() (netm.ag/resize-260)
tocheck to see if the size of the viewport has @media (min-width: 64em) { .grid-1-4 { width: 25%; Polyfills
changed, and then reads back the active font-family . } Respond.js (netm.ag/
Now you can use this to hook JS enhancements like /* Remove the previous clear*/ respond-260)

adding a tabbed interface to a <dl> when the viewport .grid-1-4:nth-of-type(2n+1) { clear: none; } Picture.js (netm.ag/
/* Clear the float every 4th element AFTER the first. fill-241)
allows, changing the behaviour of a lightbox, or
This targets the 5th, 9th... in the grid.*/ Flexbox Polyfill
updating the layout of a data table. Check out the
.grid-1-4:nth-of-type(4n+1) { clear: left; } (flexiejs.com)
getActiveMQ Codepen at netm.ag/active-260.
} Plugins
Basic TableSaw (netm.ag/
Forget about JavaScript for different viewports. Wave goodbye to using position and float for your tablesaw-260)
Provide content and website functions to users in a layouts. While they have served us well to date, their Fit Vids (fitvidsjs.com)
way they can access it across all viewports. We should use for layout has been a necessary hack. Weve now Fit Text (fittextjs.com)
never need JavaScript got two new kids on the block that will help fix all Adaptive UIs (netm.
our layout woes Flexbox and Grids. ag/allsopp-260)
Advanced Flexbox is great for individual modules, controlling Label Mask (netm.ag/
Extend Gustafsons method by using Breakup the layout of pieces of content within each of the label-260)
(github.com/BPScott/breakup) as a predefined list of modules. There are layouts we attempt to deliver that All things RWD
media queries and automating the creation of the can be more easily achieved using Flexbox, and this
Responsive Design
listof font families for getActiveMQ-watcher is even more true with responsive sites. For more on Weekly (netm.ag/
this, check out CSS Tricks guide to Flexbox (netm.ag/ newsletter-260)
Progressive enhancement flexbox1-26) or the Flexbox Polyfill (flexiejs.com). This is Responsive
A common misconception about progressive (netm.ag/thisis-260)
enhancement is that people think, Oh well I cant CSS grid layout Responsive Design.is
use this new feature, but really, its the opposite. Grid is more for the macro level layout. The Grid (responsivedesign.is)
Progressive enhancement means that you can layout module gives you a great way to describe your
deliver a feature if its only supported in one or even layout within your CSS. While its still in the draft
no browsers, and over time people will get a better stage at the moment, I recommend this article on the
experience as new versions arrive. CSSGrid layout by Rachel Andrew (netm.ag/grid-260).
If you look at the core function of any website,
you can deliver that as HTML and have the server Finally
side do all the processing. Payments, forms, Likes, These are just a few tips to extend your responsive
sharing, emails, dashboards it can all be done. practice. When approaching any new responsive
Once the basic task is built we can then layer the work, take a step back and ensure that you get the
awesome technologies on top of that, because we have basics right. Start with your content, HTML and layer
a safetynet to catch those that fall through. Most of improved experiences upon them and there wont be
theadvanced approaches we have talked about here any limit to where you can take your designs.
are based upon progressive enhancement.

Layout Thanks
With thanks to Jeremy Keith, John Allsopp, Stephen Hay,
Flexible layout is simple to say, but it has many
Aaron Gustafson, Ethan Marcotte, Brad Frost, Patrick
different approaches. Create simple grid layouts Hamann, Jordan Moore and Scott Jehl, who all helped
withless markup by using :nth-child() selector. formthe thoughts in this article.

november 2014 75
Readabilty
Interactivity
creativity

r
ope
er ve
l
sign de
de
Second feature

A Journey D
igital longform. Its a format
that has exploded in popularity
ever since The New York Times
launched its now-famous Snow

into Digital
Fall (netm.ag/snowfall-260)
piece in 2012. Shortly afterwards
came the Guardians equally renowned
longform story Firestorm (netm.ag/
firestorm-260), and soon the format was

Longform
being embraced by publishing houses,
brands, ad agencies anddesigners alike.
But how does one go about creating
a longform piece? What makes a good
reading experience online? And crucially,
how do you capture anaudience in a
world where people barely have an
Digital longform is where design, attention span of 140 characters, let

technology and journalism come alone 1400 words?


At Edenspiekermann, weve been
together to create rich stories. lucky enough to work on quite a number
of these types of projects in the past few
Paul Woods, design director at years, for both publishing houses such
Edenspiekermann, introduces the as Zeit Magazin (zeit.de/zeit-magazin/
index) and brands such as Red Bull
tools you need to get started (givesyouwings.redbull.com). So, without
further ado, lets take a step into the
world of digital longform.

An integrated workflow
It goes without saying that whatever
workflow you employ, an integrated
approach to design, development
and content creation from the start
Author is crucial to the success of any digital
Paul Woods project not just digital longform. The
(@paulillustrator) is problems with the traditional waterfall
a design director at
approach (designers handing PSD files
Edenspiekermann,
where he works to developers, and developers passing
between digital to content editors, with little or no
and brand design. interaction between the respective
His work has won parties) are numerous and well
several awards and
documented (netm.ag/agile-260).
is regularly featured
in international Static mockups and pixel-perfect
publications implementations are dead, and a close
paulthedesigner.ie collaboration between design and

november 2014 77
FeatureS Second feature

Snow Fall The now-famous article launched in December 2012 by The New York Times Fontshop Choosing a digitally native font can make a world of difference to your article

development is key. At Edenspiekermann, the globe; a different one for each readability, interactivity and creativity.
we approach our digital editorial using athlete. We went back and forth between Itis a delicate balance.
aScrum workflow (netm.ag/scrum-260), in content, design and development in a On one hand you want to push the
which design and development take place truly integrated workflow. interactive possibilities of digital and the
simultaneously. With digital longform The writers were encouraged to think art-directed nature of longform. On the
in particular, not only do design and beyond the written word and include other, people need to feel focused on the
development teams need to work suggestions for infographics, video and words if theyre going to read anything
together, but the writer or journalist other interactive elements. Likewise, ofsignificant length. As we all know well,
alsoneeds to be closely integrated right design and development decisions in our digital world attentions spans are
from the very start. which happened in parallel to writing short and distractions are many.
Recently we developed a series of fed back into the writing process. On the World of Red Bull campaign,
longform pieces for the World ofRed we started out really trying to establish
Bull campaign. For this project, we set A balancing act an individual look and feel for each
out to create rich visual worlds for each Digital longform is a field of digital athletes story. We developed the stories
of the seven athletes stories that would design that really benefits from completely one at at time. By the time
feature on the campaign website (netm. pushing the envelope in terms of visual we got to the third story, we felt wed
ag/stories-260). To write the stories, we creativity. We found that the key to got the balance between readability,
worked with journalists from across a successful piece is the right mix of interactivity and creativity just right.

A brief history of digital longform


Defined as a branch of journalism dedicated The format draws its roots from early of words, video and graphics. The story brought
to longer articles often taking the form of experiments in parallax-style HTML5 in countless readers and a Pulitzer Prize, and
creative nonfiction or narrative journalism storytelling around 2011 (such as Nike Better according to the Times, generated 3.5 million
(netm.ag/longform-260), longform journalism World from Ian Coyle fieldnotes.iancoyle. page views in one week.
is certainly nothing new. However, it is only com). Combining digital know-how with its About a year after Snow Fall, the Guardian
in recent years that the format has reached rich heritage in printed longform journalism, released the almost-as-famous Firestorm
maturity in a digital context and been widely The New York Times launched Snow Fall in (netm.ag/firestorm-260). This took quite a
adapted by media outlets. Now, traditional print- December 2012 (netm.ag/snowfall-260). different approach and was far richer in media
based publications such as the Guardian and Arguably the piece that kicked off digital and video, feeling much more like an app. Since
TheNew York Times have embraced the long-read longform as we know it today, the piece centred these two pioneering benchmarks, the format
format, and creating hugely popular feature around the story of a group of skiers buried in has been widely adopted by media outlets and
articles that are brimming with interactivity. an avalanche and was told through the layering brands the world over.

78 november 2014
Second feature

Make it personal In text areas, all excess distractions need to be minimised an approach taken here in the World of Red Bull athlete stories project

We then worked the things wed learnt font to testing it across multiple devices, how fonts actually render. Investing
backinto theother stories. the handling of typography makes or some time optimising text across
When people need to read, all breaks an editorial design after all, it multiple devices, browsers and platforms
other distractions need to instantly isthe base unit of this format. really pays off. Often a small change
disappear. Lose the interactive maps, It goes without saying that all such as setting "-webkit-font-smoothing:
CSS animations and above all, parallax typographic decisions should be made antialiased" makes a massive difference
scrolling (although we have used it once directly in the browser. Type rendering over long passages of text.
or twice). White background, black text. in Photoshop, Sketch, and so on differs When setting type for digital editorial
Think of it as entering focus mode. drastically from how it appears in the or indeed any digital project never
One of the way we achieved this was underestimate the importance of
by using a modular, panelled approach, When people need to selecting a digitally native font (one
so that interactive elements were designed specifically for screen). These
heavily separated from the reading read, all distractions usually have less contrast in the strokes,
sections. These focused panels featured need to disappear. meaning higher legibility, especially at
little other than a single block of text.
Navigation can afford to disappear,
White background, smaller sizes. Choosing a contemporary
digital font such as Klim Type Foundries
onlyreappearing when absolutely black text Tiempos Text (netm.ag/tiempos-260),
necessary. Its what books (you know, used on What Screens Want (netm.ag/
the things made with paper and ink) browser on your shiny 27" iMac, let chimero-260) amongst many others
have been doing for a very long time. alone Windows machines, older Android instead of an older font like Garamond,
The message is simple: make it easy devices and feature phones. which was never designed for screen,
foryour readers to read. These days, designers barely even need can make a huge difference.
to get their hands into code (although Its also important to choose a font
Think type they probably should) to test out fonts that is hinted (netm.ag/hinting-260)
Arguably the most important decision in the browser. Tools such as Typecast byhand (tweaking the rasterisation
you will make when it comes to digital (typecast.com) and Fontshops Tryout ofafont so that the optimal outlines
editorial is type. From choosing the right (next.fontshop.com) make it easy to test are mapped onto a screens pixels),

november 2014 79
FeatureS Second feature

Resources
Articles on longform
The Guardian browser
support principles
netm.ag/mustard-260
The Guardians approach to
progressiveenhancement
Diving into digital long-reads
netm.ag/longread-260
A basic introduction to digital
long-reads

Tools and processes


GhostLab
vanamco.com/ghostlab
Synchronised browser testing
for mobile devices
Catching on Digital longform is an increasingly popular format for editorial content, both for media outlets and brands
The Subsetter
subsetter.com
Remove the letters you dont need,
to greatly reduce the font file size so itdisplays far better across older Like any progressive enhancement
browsers and devices. technique, the organisations website
Fontshop Tryout
next.fontshop.com/tryout is designed mobile-first, with features
Test-drive web fonts in real time all about Performance loaded in progressively, based on
and collaborate freely with anyone Given that digital longform content is browser capabilities. The Guardians
on your artwork often consumed on the go, in situations site(netm.ag/guardianmobile-260),
Typecast where internet coverage is poor (such currently in beta,is a real benchmark
typecast.com ason the Tube), performance and page for performance and is blisteringly fast,
Design a working prototype using
speed area key considerations. even on the worst of connections.
a simple web interface, then export
production-ready HTML and CSS, No discussion on the importance of Web fonts can really rack up
orshare by URL performance in digital editorial would the kilobytes, so it is worthwhile
An introduction to Scrum be complete without a mention of the paying close attention to subsetting
netm.ag/agile-260 Guardians approach to progressive possibilities. Ask yourself, Do I need
A summary of why we work with enhancement (netm.ag/mustard-260) the full set glyphs for a font that I just
Scrum at Edenspiekermann based on the BBCs Cut The Mustard use for infographic numbers? Probably
technique (netm.ag/bbc-260). not. Optimise the hell out of your font
by kicking the unnecessary glyphs.
Tools like FF Subsetter (subsetter.com)
areperfect for this.
One big mistake that a lot of big
digital publications (and I mean a lot)
aremaking is trying to avoid any flickers
of un-styled system font. The problem?
On slow connections, the web font loads
after the images have loaded. Weve all
been there on the train, staring at a
blank screen waiting to read the latest
tech article and frustrated that the
images and CSS load before the web font.
Reality check: a flicker of un-styled
system font on page load is harmless.
No one cares if the text is in Times New
Roman and not your awesome custom
web font they just want to get on and
Keep it collaborative Close working relationships between designers and developers are vital for any digital project read the article. Use an asynchronous

80 november 2014
Second feature

Amaphiko For Red Bull Amaphiko, modules were the used as the building blocks for each story, meaning it can be easily manipulated and edited, and even reused if necessary

approach to loading your web fonts Recently we created our own custom Before diving into creating a custom
(netm.ag/asynchronous-260) for reading Storybuilder tool for a project called Red CMS, bear in mind that there are also
on poor connections. Bull Amaphiko, a project working with some great existing tools for managing
social entrepreneurs in South Africa editorial content and these tools can
Manage that content (netm.ag/amaphiko-260). Using the often be combined. For example, in
Although the idea of a completely Storybuilder, the social entrepreneurs the past we have combined the highly
customised and art directed story may created their stories using pre-defined customisable Rails-based Active Admin
seem fantastic to a designer, in reality building blocks (modules). (activeadmin.info) with the JavaScript
this is may not feasible. Not only that, drag-and-drop interface Sir Trevor
its often not even the best choice.
A best practice (madebymany.github.io/sir-trevor-js).
Journalists and editors will probably Weve also looked into API-based
need to be able to go in and edit the approach is to design solutions, such as Contentful (contentful.
content, change images and perhaps
even reuse the template for a new story
and build longform com), for more complex editorial
projects. Of course, sometimes a far
(albeit with a different art direction). stories in modules simpler solution is all you need, and a
Perhaps you need to translate the file-based CM like Get Kirby (getkirby.
content into different languages? Or rather than pages com) will do the job just perfectly.
non-Latin charters? Maybe even right
to left? On the World of Red Bull project We created a set of basic module types, Storytelling
we needed to adapt (and localise) the including image, text block, video Above all, be flexible and open minded,
custom art directed to over 30 languages and so on that could be combined and and chose the tools and processes that
in more than 60 countries. reordered to create an elegant longform best meet the projects needs. Inspect
A best practice approach to content story. Think of it like a recipe the and adapt your approach and be honest
management and adaptation is to design building blocks are the ingredients that about what works and what doesnt.
and build longform stories in modules can be combined to create a story. As Lastly, and probably most importantly,
rather than pages. Modules are reusable, the stories grew, the users could also remember that the real make or break
easily dragged-and-dropped around the add additional chapters. The visual style of your digital longform will not be not
page, can be added or removed as needed of each story was chosen from a set of be the technology, typeface or custom
and are easily integrated with a CMS. themes in the global setting. artdirection it will be the story.

november 2014 81
on
sale
now!

In 164 packed pages, we show you how to get to the top of Google.
From making your site load faster and climbing the rankings to the
latest SEO tricks and techniques, this handbook contains everything
you need to know to become a master of SEO. Youll also learn all about
Analytics from a wide range of industry experts and Google itself
and key marketing techniques to drive your site or business
to the top of the worlds favourite search engine.
Tips, tricks
& techniques

This month Featuring...

84 90 104

Build smooth digital uis  84 Head to head  96 Create a browser game  104
Mark Jones on how Famo.us helps bring Alex Matchneer considers the differences Anton Mills on how to create a browser-
native app performance to the web between React and Ember.js based game with the Phaser framework

create a perspective shot  90 Build Hybrid mobile apps 98 Take the pain out of Sass  108
Phil Coffman explains how to use After James Miller explores how Ionic can Ian Carrico walks through how to set
Effects to create adynamic display of work beused to build a mobile app upyour Sass development environment

Boost your Git workflow  94 Standards 103 Accessibility 114


Tobias Gnther shows you how to Ruth John takes a look at the new Vibration Robin Christopherson on how the war of
useTower to simplify your Git workflow API, and what to use it for the virtual assistants impacts accessibility

Browser support Exclusive videos


Desktop Mobile/tablet
0 0

We feel its important to inform Look out for the video icon
0 0
our readers which browsers the throughout our tutorials. This
technologies covered in our tutorials issue, three authors have created
0 0 work with. Our browser support exclusive screencasts to
info is inspired by @andismiths complement their articles and
0 0 excellent When Can I Use web enhance your learning, including
widget (andismith.github.io/caniuse- Mark Jones guide to building
0 0 widget). It explains from which digital UIs with Famo.us, and Phil
version of each browser the Coffmans tutorial on creating
features discussed are supported. perspective with After Effects.

november 2014 83
PROJECTS Frameworks Download
the files here!
Find the GitHub repository
accompanying this tutorial at
netm.ag/famGit-260

A b o u t t he a u t h o r
Ma rk Jones
w: thisismarkup.co.uk
t: @mark_jones
job: Lead frontend
developer, Kaldor Group
areas of expertise:
Frontend development,
best practices and
tooling
q: what was your
childhood nickname?
a: Desmond

Frameworks

Build smooth digital


UIs with Famo.us
Mark Jones explains how the Famo.us framework can
beusedtobring native application performance to the web

60 frames per second. Its the target we should Famo.us is a free, open source JavaScript
be aiming for when building digital interfaces. framework that helps you create smooth, complex
Despite improvements to our development tools, it UIs for any screen. At its core is a 3D layout engine
isdifficult and at times seemingly impossible alongside a 3D physics-based animation engine.
toachieve animations that run smoothly and feel Famo.us renders to the DOM, with Canvas and
natural. Why is this? Browser layout engines like WebGL rendering contexts coming in the near future.
WebKit and Gecko were built for rendering text and Unlike browser rendering engines, it has been built
links with a few images in-between, rather than the with many similarities to 3D rendering libraries.
complex applications we see in browsers today. The performance of animations has been the focus
Video
With the success of initiatives such as Jank Free from the start of development, with the framework
Mark Jones has created
(jankfree.org), its clear developers trying to create beginning life as code that animated a single <div>
an exclusive screencast
to accompany this experiences matching their native counterparts are at 60fps without the use of CSS animations. In its
tutorial. Watch along at required to understand browser rendering intimately. current form, Famo.us functionality focuses on
netm.ag/famousVid-260
Whilst this isnt something to discourage, Famo.us building your applications views, leaving it up to you
aims to provide adifferent option. to decide how to handle other application concepts

84 november 2014
Frameworks

such as models, controllers and templating. At the


time of writing there is no IE support due to a bug in In-depth
IEs preserve-3d implementation, but support for the
browser is planned once this is fixed.
To follow along with this tutorial, download the
repository at github.com/markj-/netmag-famous and
Under the hood
use main.js as your starting point. main.js requires This tutorial covers how to use Famo.us, but now lets take
the modules needed for all of the code samples, alook at the optimisations that the framework uses to bring
but when developing properly you will only want native performance to the web.
torequire the specific modules your code uses.
Eachcode sample has a corresponding branch in requestAnimationFrame
the netmag-famous repository that you can switch requestAnimationFrame (rAF) animations are a replacement
toin orderto see the code in full, or if you have for setInterval animations that schedule animation work to be
trouble getting anexample to work. completed during the current animation frame. The benefits
include: animations only running if theyre visible (saving us
Creating context precious battery life) and animations being synced to your
The first aspect of Famo.us to understand is the monitors refresh rate to avoid skipped frames that would
concept of a context. A context is not a visible otherwise lead to janky animations.
element, but instead provides the frame in which To learn more about rAF and why we should be using it to
aFamo.us application will run. powerour animations, take a look at an excellent article by
LuzCaballero at netm.ag/request-260.
var context = Engine.createContext();
Batching DOM read/writes
The performance of When we modify the DOM, then query the DOM, then modify
theDOM again, we run the risk of causing layout thrashing

animations has been (netm.ag/thrashing-260) which decreases our applications


performance. Famo.us batches DOM reads and writes for us,
the focus from the very sothat all the reads happen followed by all the writes, preventing
the thrashing from occurring.
start of development
Flat DOM
To create something that our users will be able to Famo.us HTML output is a flat DOM with little nesting of elements.
see, we need to create some Renderables, then add Having a shallow DOM is one way to avoid expensive reflows (netm.
them to our context. A Renderable is anything that ag/reflow-260), so despite the output being unlike something we
can be seen on the screen in our Famo.us context, would write by hand, it is an important optimisation to make for
the most primitive of these being a Surface. efficient animations.

var surface = new Surface({ JavaScript transitions


content: 'My first surface' There has been a trend over the past few years for developers
}); touse CSS transitions for all animations. Frameworks and
context.add( surface ); libraries such as Famo.us, VelocityJS and the GreenSock animation
platform have adopted JavaScript animations instead, which
Surfaces map to elements in the DOM tree, in this allows optimisations to be made during the render loop. For more
case a <div> containing a text node. Our content information about CSS versus JS transitions and the potential
property contains a string that will be inserted into optimisations, this article by Julian Shapiro is a great read:
the Surface. This can be an arbitrarily long string davidwalsh.name/css-js-animation.
of HTML, following the normal rules of HTML.
Also available are ImageSurfaces, CanvasSurfaces,
InputSurfaces and VideoSurfaces, with all of these
mapping to their corresponding HTML element.

Size
Passing in the size property when we create our
Surface allows us to specify width and height in
a variety of ways. We can specify our Surfaces

november 2014 85
PROJECTS Frameworks

dimensions as a number (in pixels), as undefined var modifier = new Modifier({


(100 per cent of the Surfaces parent context width/ transform: Transform.translate( 100, 100, 0 )
height) and also as true (size the Surface to the });
width/height of its contents).
var surface = new Surface({
var surface = new Surface({ content: 'My first surface'
content: 'My first surface', });
size: [ 150, 150 ]
}); context.add( modifier ).add( surface );

Styling Modifiers let us define a collection of visual changes


Right now our Surface is looking kind of boring. to apply to our Surface. The Modifier we have created
Wecan make it more visually appealing by applies a transform matrix, causing our Surface to be
passing ina properties object during the Surfaces rendered 100 pixels from the top and left-hand edges
instantiation. Youll notice these are standard CSS of our context. Modifiers also allow us to change our
properties, following the rule that the HTML inside Surfaces opacity, size, origin and alignment.
aSurface operates untouched by Famo.us.

var surface = new Surface({ The key to building


content: 'My first surface',
size: [ 150, 150 ],
large applications
properties: { is to create smaller
color: 'white',
backgroundColor: '#67b2e8' composable pieces
}
}); Origin and alignment
A Modifier that changes our Surfaces origin
This method of styling Surfaces may seem unusual andalignment is another way that we can lay out
at first, but the reasoning is linked to Famo.us ourinterface.
rendering being abstracted from the DOM. When
Resources theCanvas and WebGL contexts are finished, we var modifier = new Modifier({
align: [ 0.5, 0.5 ],
Links list willbe able to render our application to either one
due to not relying on DOM-based concepts such origin: [ 0.5, 0.5 ]
Theres a
comprehensive list asclasses and IDs. });
of resources to help
you find out more
about developing with Transform var surface = new Surface({
Famo.us at netm.ag/ Our Surface will render in the top left of our context content: My first surface,
hackpad-260 size: [ 150, 150 ],
by default. To move our Surface away from the top
left corner, we need to create a Modifier. properties: {

Left Famo.us' infamous stress test showcases what an early version of the framework was Right Famo.us University: your next stop on the way to mastering Famo.us

86 november 2014
Frameworks

Demos Play with the


color: white, Adding a Modifier or Surface directly to our context demos and then download
backgroundColor: #67b2e8 the Famo.us starter kit to
creates a branch. Any Surfaces added to a branch (by see the code behind them
} chaining the add method) will only be affected by
}); the Modifiers further up the branch.
modifier3 being added to modifier2 demonstrates
context.add( modifier ).add( surface ); Modifier chaining, which is a pattern we can use
to separate different parts of a modification. For
The align property defines the Modifiers anchor example, if we wanted to rotate and move surface2 ,
point for the parent context, and the origin property modifier2 could handle the rotation whilst modifier3
defines the anchor point for the child Surface. These could handle the positioning.
particular values will cause our Surface to becentred
within our context. Views
Notice how the Surface adjusts its position The key to building maintainable, scalable
whenwe change our browser window size. Try largeapplications is to create smaller composable
setting the align array to [ 0, 0 ] . This causes the pieces that can be brought together to form our
centre of our Surface to anchor to the top-left application. Famo.us views allow us to group
of theparent context, as this is now the parent Surfaces, encapsulate functionality and also provide
contexts anchor point. an eventinput and output, allowing communication
with other views in a decoupled manner.
Branches and leaves Unlike other frameworks, views in Famo.us
To understand the effects of Modifiers we must first are notrenderable, so they will not change our
understand Famo.us render tree. Luckily, the core applications appearance unless we have added
ideas are simple: a Famo.us context is the root of Renderables to the view. Views have no default
the render tree. The render tree has a Surface for appearance; they are simply a collection of Modifiers
each leaf. A leaf is affected by exactly the Modifiers and Surfaces, which themselves affect what is
between it and the root. rendered. Views are treated as a single leaf on
therender trees branch, causing any Surfaces
var surface1 = new Surface(); thatare added to itto be affected by Modifiers
var surface2 = new Surface(); higherup the branch.
var modifier1 = new Modifier();
var modifier2 = new Modifier(); var surface = new Surface({
var modifier3 = new Modifier(); content: 'My first Surface'
context.add( modifier1 ).add( surface1 ); });
context.add( modifier2 ).add( modifier3 ).add( surface2 ); var surface2 = new Surface({

november 2014 87
PROJECTS Frameworks

content: 'Another surface'


Focus on });
var view = new View();

Future developments
view.add( surface );
view.add( surface2 );
context.add( view );
Here are some of the exciting things we can look forward to
in future Famo.us releases: Famo.us comes with many in-built views such
as FlexibleLayout, a view for providing ratio-based
Famo.us Wrapper responsive layouts that provide us with a starting
The Famo.us Wrapper is similar to (and based on) Cordova point for our applications. By composing several
(cordova.apache.org). The Android version of the wrapper is being of these views, we can quickly build common
built in conjunction with Intel and will allow your application to be application layouts with minimal effort.
packaged with a Chrome 35 WebView, regardless of the Android
version its running on. Not developing for Android? An optimised Can touch this
version of Cordova is also being worked on for iOS, Windows Our application isnt going to be very interesting if
Phone,Kindle and Firefox. we cant interact with it. Famo.us events are captured
at three different levels. The first level is on the
MVC framework Surface, the second is the Surfaces parent context,
Famo.us provides us with much of the functionality we need and the third and final level is the Engine.
to build interfaces that rival native applications. However, it
leaves certain architecture choices (Models, Controllers, Routing, surface.on( 'click', function( e ) {
Templating and so on) up to us. The Famo.us MVC framework will console.log( 'Surface clicked', e );
provide a complete solution for our applications architecture if });
youwould prefer not to roll your own.
context.on( 'resize', function() {
Framework integrations console.log( 'Context resized' );
Already using another MVC framework? Dont let that get in the });
way of taking a look at Famo.us. An Angular integration is already
available (famo.us/angular) with Ember, React and many more Engine.on( 'keyup', function( e ) {
integrations in the works. console.log( 'Keyup event', e );
});
Mobile templates
If youre used to developing with Bootstrap or Ionic youll be Animations
pleased to hear that a project is underway to port many of the Weve covered many of Famo.us basics, but we
templates they provide to Famo.us, allowing common application still seem to be focusing on displaying content,
layouts to be constructed with ease. With the added bonus of 3D something that modern browser engines are pretty
layout and physics, of course. good at. Be it the animation of a scrollview or
the transitions between screens and menus, our
jQuery Widgets animations have to be smooth and feel natural
Whilst jQuerys animation techniques are starting to show their totheusers input.
age, jQuery plugins are as popular as ever. Many of the more Famo.us achieves this by doing away with CSS
ubiquitous plugins are being ported to Famo.us, allowing widgets animations, instead applying matrix transformations
such as carousels to be swapped out for the Famo.us-powered directly to the Surfaces it is animating. We will use a
equivalent in a snap. specific type of Modifier called a StateModifier , which
is simply a Modifier which contains its own state via
setTransform .

var context = Engine.createContext();

var surface = new Surface({


content: 'My first surface'
});

var modifier = new StateModifier();

88 november 2014
Frameworks

Left The Angular


context.add( modifier ).add( surface ); an element is interacted with, and with a choice of integration is ready and
waiting for developers
transition styles. with more integrations
modifier.setTransform( onthe way
Transform.translate( 100, 300, 0 ), Transitionable.registerMethod( 'wall', WallTransition );
Right Say goodbye to
{ duration : 1000, curve: Easing.inOutBack } the DOM and hello to the
); var surface = new Surface({ render tree

size: [ 150, 150 ],


StateModifier s setTransform method allows properties: {
animations to be triggered on Surfaces. The first backgroundColor: '#67b2e8'
parameter determines what we want to animate }
(such as rotations or opacity), andthe second });
describes how it should perform theanimation,
including the duration and the type of animation var modifier = new StateModifier();
curve. setTransform has a third parameter acallback
that runs once our animation is complete. context.add( modifier ).add( surface );

var wall = {
Where Famo.us excels method: 'wall',

is the combination of period: 500,


dampingRatio: 0.1
its physics engine with };

animations modifier.setTransform(
Transform.translate( 0, 400, 0 ), wall
Were using Famo.us Easing object to dictate );
the curve of our animation. The Easing object
provides uswith over 30 easing curves to use This example shows how to register a Transitionable
in ouranimations. Should we wish to sequence method called 'wall' , which we use as the second
severalanimations, we can chain them by calling argument to our StateModifier s setTransform method.
setTransform multiple times. When we chain This causes our Surface to animate 400 pixels
animations, the previous animation will finish from the top of our context over a duration of 500
before the next one begins. Complex sequences of milliseconds, and when it arrives at its destination
animations are simple tocreate using this pattern. itbounces as if it has hit a wall, causing it to come review
toa gradual stop.
David
Physics Fetterman
Where Famo.us really excels is the combination of Whats below the surface? With thanks to David
its physics engine with animations. Our previous Famo.us is an exciting framework that is simple Fetterman, head of
animation occurred over a fixed amount of time. touse whilst being incredibly powerful. This article Famo.us Labs, for his
review of this tutorial.
Famo.us gives us the ability to create animations that couldnt cover everything it does, so check out the
occur for varying durations, depending on the way resources in the sidebars to find out more.

november 2014 89
PROJECTS After Effects Download
the files here!
Download the source
filesforthis tutorial at
netm.ag/perspective-260

A b o u t t he a u t h o r
P hil coffma n
w: philcoffman.com
t: @philcoffman
job: Head of design,
PCPartPicker
areas of expertise:
Design (visual, UX and
UI, product, interface,
website, application)
q: what was your
childhood nickname?
a: I didnt have one, but
I got my fair share of
coughing jokes with
my last name

After Effects

CREATe A dramatic
PERSPECTIVE SHOT
Phil Coffman walks you through how to use After Effects with
Photoshop tocreate a striking, tilted grid display of your work
Digital designers are always looking for new from a PSD resource. Being the control-freak that
ways to showcase their work. One popular I am, I wanted a better way of achieving this look
method is to present your screenshots in a grid, while maintaining aesthetic freedom.
angled away from the viewer. There are numerous Photoshops 3D tools continue to elude me, but
ways to achieve this look. One method I see regularly thanks to Adobe Creative Cloud I have After Effects
makes use of Photoshops Smart Objects, which can sitting there begging for me to use its 3D capabilities.
be skewed, rotated and scaled without permanently One of the amazing things about After Effects is how
altering the assets original state. All the designer easy its 3D tools are to use. With one enabled setting
video
has to do is open a Smart Object, edit its contents and and a virtual camera, you can build a 3D scene that
Watch an exclusive
hit Save to see their work in all its isometric glory. places full perspective control in your hands.
screencast of this
tutorial created by This approach is perfectly fine, but requires that In this tutorial, Im going to show you how to set
Phil Coffman at: the designer either a) knows how to skew a Smart up a simple grid of images in Photoshop and leverage
netm.ag/coffman-260
Object so that it appears at a natural 3D angle, or the power of After Effects to build a perspective shot
b) accepts whatever preconfigured setup they can get you can edit, change-up and reuse.

90 november 2014
After Effects

This tutorial requires both


01 Photoshop and After Effects.
Thanks to Adobe Creative Cloud,
getting a copy of both is as easy as
navigating to the Apps tab in the
CC app and clicking Install .

Well begin in Photoshop, but


02 before we start you will need
a collection of images to work with.
In this example were showcasing a
grid of beautiful photos I sourced
mine from Unsplash (unsplash.com).
Open all of the images in a single
Photoshop document, with each
ontheir own layer. Your document
should be fairly large to begin with
Istarted at 4000x4000px.

Now we need to arrange the


03 images into a grid. What the
grid looks like is completely up to
you. In this example the images are
the same size, so I used the Align
tool to make sure they were in the
same location and spaced them out Step 4 Before moving out of Photoshop and into After Effects, you need to trim off all the excess space around your grid display
left to right, top to bottom, across
the canvas. Youll want to leave a done quickly by going to Image > create a new composition. In the expert tip
decent amount of spacing between Trim... , selecting Transparent Pixels Composition Settings dialog give
each image. Im making a 4x4 grid
with 70px gutters.
under Based On and all sides under
Trim Away , then hitting OK .
ita name and set the size to
whatever you want your rendered Creating an
even grid
Photoshop will cut all the unused image to be. Im making a high-res
Once youve assembled your space out of your canvas. shot for Dribbble, so Im setting
04 grid, youre almost ready for mine to 800x600px. Next specify
the magic of After Effects. But first Now save your Photoshop the background colour I chose When making an evenly
its best to remove any unused
05 document and open up After amedium grey. Since this is a still spaced grid of items in
portions of our canvas. This can be Effects. The first step here is to image you can leave the rest of the Photoshop, the first thing
settings alone. to do is make sure
Snap is turned on under
Next import your Photoshop View > Snap . Instead of
06 file. Go to File > Import > setting up a series of
File , select your image grid PSD, guides, I manually drag
make sure you have Import as alayer to sit directly
Footage selected in the Import nextto its neighbour (the
dialog box, and click Open . A snap will make sure it
Footage dialog will appear. Make clicks into place). Then,
sure Layer Options are set to holding down Shift , nudge
Merged Layers it will be much the layer over at 10px
easier to work with our layers as increments. Repeat this
amerged asset. process and everything
will be evenly spaced.
The Photoshop file now
07 shows up in the Project
window on the left, next to your
Step 5 After Effects is where all the perspective magic takes place newly created composition.

november 2014 91
PROJECTS After Effects

Double-click to open up the tocreatethe perspective shot will


composition and then drag beachieved with the Camera.
thePhotoshop file into your
compositions Timeline. Dragging To set up the shot, select the
afile asset into the Timeline instead
11 Camera layer and press the c
of onto the compositions canvas key, which brings up the tools we
will automatically centre the asset can use to orientate the Camera.
on the canvas. Repeatedly pressing c cycles
through the four Camera tools:
We need our Photoshop Unified Camera, Orbit Camera, Track
08 asset layer to be a 3D layer. XY Camera, and Track Z Camera.
You can either right-click on it and The Unified Camera tool allows you
select 3D Layer , or enable it by to move the Camera up, down and
clicking on the empty box below the around the scene. Orbit is similar,
3D Box icon next to the layer name. and you wont really need it here.
If you dont see a row of options Track XY keeps the Camera at its set Step 11 Select the Camera layer and use the selection of tools to orientate the Camera
with icons, then click on the button height but slides it around. Track Z
Toggle Switches / Modes at the allows you to zoom in and out. Use the alt key, click the stopwatch up the parent/child relationship,
bottom of the Timeline to bring up all of these together to find the right icon next to the word Position . thechilds position will adjust so it
those options. perspective view of your grid. Thisbrings up the option to specify isslightly down from the parent
anexpression for the position gridlayer.
We wont see the magic With your perspective angle property. An expression gives us
09 ofa3D layer until we add
12 dialed in the way you want it the ability to dynamically control Now its time to start
aCamera to our composition. (you can always adjust this later if aproperty rather than hard-coding
16 simulating depth. Create
Go to Layer > New > Camera... you need) its now time to begin the its values. The expression input field several duplicates of the child Grid
orright-click in the layers region process of adding depth to our grid should be highlighted in the layer. I like to use the keyboard
ofyour compositions Timeline of images. To start this process we Timeline on a line titled Expression: method so I can quickly create
andselect New > Camera . You need to duplicate our Grid layer. Position , but if its not simply click several duplicates. I have a total
can leave the Camera settings at Select the Grid layer and go to Edit on the words transform.position of10 copies of the child Grid layer.
their default orchoose to select > Duplicate or type cmd/ctrl+d . and add the following expression: Youll start to notice that
oneof the presets. position+[0,0,(index-1)*1] . eachduplicate is automatically
The top copy of the Grid layer positioned 1px down from the layer
Next we need to make our
13 will be our master, but while Now we need to establish a above it, thanks to our expression
10 Grid layer lie flat in our we need it in our Timeline, we dont
15 parent/child relationship and parent/child relationship. Sure,
scene. Select your Grid layer and want it to be visible. Turn off its between our copied Grid layer and these layers could be positioned
expand its layer options by clicking visibility by clicking on the eyeball the Grid Master layer. Click on the manually with each copy, but this
on the layers triangle. Under icon. Its also good to give this layer Parent dropdown on the copied method is much faster and allows
Transform find the Orientation its own name. With the layer Grid layer that we applied our for quick customisation to the
property, click on the first value selected, hit the Return key and expression to, and select the Grid amount of depth by changing
of0.0 and set it to 270. Apart title it Grid Master. Master layer. This parent/child thenumber of duplicated layers.
from one small position tweak well relationship works in tandem with
make in a minute to thislayer, we Next, select the bottom Grid the expression we added to the The depth might be hardto
wont touch this layers position
14 layer, expand its Transform child layers position. It might be
17 see at this point, depending
again. Everything weneed to do properties and, while holding down difficult to notice, but after setting on what your images look like. One

Expert tip

Introducing After Effects


If youve never worked in After Effects before, dont let that scare you: think of
it as Photoshop set to motion. After Effects is primarily a Timeline-centric app.
Your layers stack on a Timeline and you have a stage area where you work with
compositions. Youll see a lot of Photoshop favourites such as Filters, which are
Step 9 Add in your After Effects camera referred to as Effects, Blending modes, Alignment tools and so on.

92 november 2014
After Effects

expert tip

a different
viewpoint
After Effects gives you lots
of control over how you
view your composition.
You can create up to four
simultaneous views and
specify the POV for each
(Active Camera, Front,
Top and so on). This can
be helpful when making
sense of your 3D scene.
Plus, you can set the zoom
level of your scene and
adjust the resolution down
from Full if you notice
adrop in performance.

Step 17 A good way to create a feeling of perspective is to darken the layers that sit behind the top layer

way to heighten the 3D illusion is Now lets blur this layer by adding the Iris Shape , which may or may those are set, click Render at the
todarken all the duplicated layers, aGaussian Blur effect. Set its not have an impact on the softness top-right of the Render Queue
apart from the top one. Select the Blurriness property to something of the blur. window and youll have a shiny new
layer thats second from top and go like 40. Under the Transform image file.
to Effect > Color Correction > Hue & properties of this layer, set Opacity The final thing you need
Saturation or right-click on it and to 70 per cent and increase its Z
22 todois export an image of I typically render out my
select the same options. position (the third value under yoursexy perspective shot. Go to
23 images as JPGs set to the
Position ) so that it sits lower down Composition > Save Frame As > highest quality. If you render to a
In the Hue & Saturation than the image grid above. Lastly, File... and youll get After Effects format that supports an alpha
18 effects panel drop the name this layer Shadow. Render Queue . All you need to do is channel (PNG, PSD, for example)
Master Lightness value down to specify the Output Module , which then the background colour of your
something like -35. Select the Hue Now you have a grid of 3D is the file type (JPG, PSD, PNG and composition wont be included
& Saturation effect under Effects
20 images which you can easily so on) and Output To location. Once inthe rendered file.
on the applied layer, copy it via Edit update via Photoshop. Its simple
> Copy or cmd/ctrl+C , select all of toreposition the grids perspective
the other bottom layers and paste with the Camera in After Effects,
the same effect. Now all the layers, and change the depth by making
other than the top one, will havea quick duplicates.
slightly dark tint.
If you want some final polish,
The final effect for simulating
21 turn on Depth of Field on the
19 depth is to create a shadow Camera. Expand the Camera layers
thats being cast by the 3D images options and turn on Depth of Field
onto the composition background. under Camera Settings . Getting
After Effects has a lighting system, this looking just right requires
but I find that to be overly complex lotsof trial-and-error. Itypically
for an effect like this. Instead, make experiment by adjusting the Focus
a duplicate of the bottom Grid layer Distance , Aperture and Blur Level
and adjust its Master Lightness values these can each be higher
under Hue & Saturation to -100. than 100% . You can also change up Step 21 Turning on the Depth of Field option can help add polish to your composition

november 2014 93
PROJECTS Git
Exclusive offer!
20% off Tower
Visit git-tower.com and use
the code NETMAG20 to
receive 20% off Tower. Valid
from 2 October until
4 November 2014

A b o u t t he a u t h o r
Git
T obias

streamline your git


Gn t her
w: git-tower.com
t: @gntr

workflow with Tower


job: CEO, Tower
GitClient
areas of expertise:
Version control with Git
q: what was your
childhood nickname?
a: Tobidobi and it still
accompanies me today
Tobias Gnther explains how to boost your Git productivity
byusing Tower to simplify tedious, time-consuming tasks
Git has been a synonym for modern version individual parts or even lines of changes means
control for a couple of years now. The challenge your commits fit really perfectly. This is tedious
today is to find ways to use it professionally and to doon the command line, which is where
productively. Tower (git-tower.com), a desktop Tower comes in. It makes the process much more
application for Mac, makes Git a bit more straightforward by simply selecting the parts and
straightforward by helping people work more easily lines of code you want to include in the next commit.
and efficiently with the Git version control system.
Dealing with problems
Crafting meaningful commits I dont know about you, but I find myself making
Merely saving a new revision of your project wont mistakes. Regularly. All the time, actually. No matter
necessarily help move things forward especially how much experience I have, mistakes remain a
if, when people come to look at your revision, its constant. I cant avoid them, but I can make sure
difficult to see what has changed. Version control thatIm able to quickly undo things.
makes sense only when your commits make sense. Making it easy to recover from mistakes is one of
This requires a commit to be granular: to only the core jobs of a version control system. The good
contain changes from a single topic. news is, Git allows you to undo almost anything. The
Making granular commits ensures two things: bad news is, the necessary commands are spread all
over the system, sometimes requiring quite complex
1 Changes can be understood more easily. If you sets of parameters.
mix different topics in the same commit, your Of course, this is where a GUI application shines:
co-workers (and you) will have a hard time figuring rolling back to an older version of your project
out what each piece of code really does just like reverting a historic commit is as easy as
2 Changes can be undone. Big, bloated commits right-clicking the commit in question. Your last
Video withmany different topics are hard to revert, commit can be amended by holding the alt key in
This is a step-by-step because you will not only undo error-infected code, the commit interface. Its even possible to discard
course for learning but also any other topics that have been crammed unwanted local changes on just a single line of code.
version control and Git,
into that same commit
tailored to beginners.
It includes a free online Solving merge conflicts
book, videos and an With its staging area concept, Git makes it easy Merge conflicts are nothing to be afraid of. They
ebook: learn-git.com
to only include certain files in your next commit. occur when a file is modified in contradictory ways.
Taking this one level deeper working only with In this situation, a user must decide which version is

94 november 2014
Git

correct (Git cant do this automatically), or even edit


the final version until its correct.
As easy as this sounds, the situation can be quite
abstract. Thats why the latest version of Tower,
Tower 2, has introduced a new conflict wizard that
helps to visualise the situation. Users can clearly
see which versions of the file have clashed, how
they looked, who made the changes and in which
commits. They can then decide easily how the
solution should look, simply by clicking the files
theywant in the final resolution.

Staying up to date
In most cases, your local repository will be connected
with one (or multiple) remote repositories that are
used to exchange data. The commit data that you
caninspect in these remote repositories, however,
isonly as up-to-date as your last sync. There is Conflict wizard Towers
no live connection you have to download new You can restore any of your stash items, either Conflict Wizard helps
usersunderstand and
changes from the remote repositories to be able completely or in parts. solvemerge conflicts in
toinspect them. avisual way

To avoid having to do this manually, Tower 2 Managing hosting services


performs a fetch operation in the background You would think that cloning a repository wouldnt
be a big deal. Thats true if you have all information

Tower helps people readily available. A host of different authentication


options can make this seemingly simple task quite

work more easily and tedious: managing SSH keys, creating passcodes and
generating access tokens is both time-consuming
efficiently with the Git and error-prone.
Thats why Tower now integrates with popular
version control system code-hosting services like GitHub (github.com),
Bitbucket (bitbucket.org) and Beanstalk (beanstalkapp.
atregular intervals. This makes sure youre always com). After connecting your accounts just once in the
up-to-date with whats happening on the remote app, you no longer need to juggle with usernames,
server, without having to remember to sync things passwords, tokens and URLs any more.
up yourself. Cloning a repository from one of your accounts
isthen simply a matter of a single click. You can
Keeping your working copy clean create new repositories directly in your hosting
In many situations, it is advisable or sometimes account right from within the app. And, last but
even required to have a clean working copy (i.e notleast, you can even manage SSH keys connected
no uncommitted local changes) expecially when with your account.
pulling or rebasing, switching branches, or cherry-
picking commits. Becoming productive
With its stash feature, Git already provides In the end, its not about the command line versus
the necessary tools to make this possible. On a GUI client, because both approaches are valid and
thecommand line, you simply need to call the can be used side-by-side. Some things are indeed
git stash command to put your current local changes easy to do on the command line: like completing
ona clipboard. The hard part is simply to remember a commit, initiating a merge and creating a stash.
to do this. In version 2, Tower automatically offers Other things, however inspecting commit
to do this for you, in situations where stashing history, creating branches via drag and drop, and
yourlocal changes would be a good idea to help solving conflicts in a visual way are far easier in
youavoid conflicts. aspecialised GUI application.
Its visualisation of stashes also helps make things In the end, the question is how to be productive.
very intuitive: each stash can be inspected as easily How to get access to the professional features. In
as a commit, including the exact changes it contains. aneasy way.

november 2014 95
PROJECTS Head to head

HEAD TO HEAD

React vs Ember.js
A b o u t t he a u t h o r
Alex Matchneer takes a look at the differences between
Alex Reactand Ember.js, and considers which to use and when
Matchneer
w: machty.com React ember.js
t: @machty An open source, Facebook-sponsored JavaScript An open source, heavyweight framework for building
job: Lead engineer,
library for building user interfaces. It ditches traditional client-side web applications. It provides universal data
Express Checkout;
Core team member, data binding in favour of a unidirectional, re-render binding and a URL-driven approach to structuring
Ember.js everything approach that is component-centric. applications with a focus on scalability.
areas of expertise:
Client-side JS Scope
applications
q: what was your Reacts homepage describes it as a JavaScript library Ember.js homepage describes it as a framework for
childhood nickname? for building user interfaces (netm.ag/react-260). React creating ambitious web applications (emberjs.com).
a: Little Man
provides a simple yet performant API for client-side Client-side rendering is one of the features Ember
rendering, and can be used as the rendering engine for provides, but it also intends to provide structure to
other JavaScript libraries (including Ember). scalable web applications beyond just the view layer.

Managing State
React implements a unidirectional data flow, so Embers object model facilitates Key-Value
whenever a components setState method is called, Observation, which allows Ember to re-render
that component (and any of its children) will re-render. changes to specific properties. Two-way binding is
Data flows downwards, events (clicks, form submits) supported, but for the most part, Ember encourages
flow upwards and ultimately translate into a setState . unidirectional data flow.

Scalability
Fact file React is arguably the most performant and flexible Embers patterns for structuring applications are
Data-binding rendering library around, even when rendering large baked into the framework in a convention-over-
Ember features one- lists. That said, it doesnt intend to provide any sort of configuration manner and have seen great success in
and two-way data- application structure, and must be used in conjunction the ecosystem of large JavaScript applications. That
binding via Key-Value
with other libraries or architectures (such as Flux, said, Embers view layer is less performant when
Observation (KVO).
React doesnt use KVO, react-router) for any medium- or large-scale apps. rendering large lists, particularly relative to React.
but instead re-renders
using a unidirectional Secret Weapon
data flow originating
from calls to setState . Every time setState is called, React generates a new Embers recent secret weapon is ember-cli ,
virtual DOM with the latest data and efficiently diffs theofficial command line interface for building
Contributors itagainst the previous version, generating a minimal andmanaging Ember applications. ember-cli makesit
React was built and is
list of changes that need to be made to the real DOM incredibly simple to generate and import Ember
actively maintained by
Facebook. It was open- to bring it in sync. addons into your projects.
sourced in mid-2013.
Ember was forked verdict
from SproutCore in
2011 and is maintained Keeping in mind that React is a UI library and Ember is an application framework, you should
entirely by the Ember give both React and Ember a try. If youre building something large, lean towards Ember. If
community.
youre building something smaller but performance-sensitive, opt for React.

96 november 2014
WordPress
THE COMPLETE GUIDE
148
pages of
web-building
advice

Make your own website today its easy!


Personal blogs E-commerce sites Design tips

Available at all good newsagents or visit


www.myfavouritemagazines.co.uk/computer
PROJECTS Mobile Download
the files here!
Download the GitHub
repositoryfor this tutorial
atnetm.ag/ionicgit-260

A b o u t t he a u t h o r
Ja mes Mil l er
w: james-miller.co.uk
t: @jimhunty
job: Technical lead,
AnalogFolk
areas of expertise:
Frontend development
q: what was your
childhood nickname?
Hunty it was my
fantasy wrestlers
name on my first ever
web project

Mobile

Build hybrid Mobile


Apps with IOnic
The Ionic framework enables web developers to create mobile apps
inarapid development environment. James Miller explains how

I like frontend development. Its simple and phone functionality through the use of JavaScript.
quick. In comparison, creating apps for mobile Cordova is the open source version of PhoneGap,
platforms can be long andlaborious. Thankfully, an HTML5 hybrid app framework
programmers have brought the world of native apps l AngularJS (angularjs.org) is Googles JavaScript
to web developers through HTML5 hybrid app MVW framework, supplying the business logic part
frameworks. These use the devices webview to of the app. Angular provides a way to structure
display the app, so we can use frontend technologies JavaScript to make use of modular patterns and
like HTML, CSS and JavaScript to build apps that give correct separation of concerns
the same experience. Using a framework means one l Ionics UI framework is a set of tools that help
set of code can be deployed onto multiple platforms, youbuild aesthetically pleasing, native user
video reaching a wide audience with minimum effort. interfaces. Similar to Bootstrap, it can be used to
James Miller has put Ionic (ionicframework.com) is a rapid development write HTML in its prescriptive manner, instantly
together an exclusive framework for hybrid mobile apps. It is made up of delivering afunctional interface
screencast to go
three different technologies:
alongside this tutorial.
To watch along, visit I have put together a networking app for nets
netm.ag/ionicvid-260 l Cordova (cordova.apache.org) forms the core of the Generate conference (netm.ag/ionicgit-260) to go
application framework, allowing access to native alongside this guide. There is significantly more

98 november 2014
Mobile

detail in the app than the guide touches on, so have


arummage if youre interested in exploring further. Resources
First, follow the installation instructions at netm.
ag/gettingstarted-260. Once completed, you will
have installed Ionic, Cordova, and will be set up for
development on Android (and iOS if youre on a Mac).
angular 101
You will find Angulars steep learning curve a lot easier
Command Line Interface toscale if you have a good grip of the terminology used.
For frontend developers the command line can
sometimes be a scary place, but with the emergence Two-way data binding is described as Angulars killer feature for
of technologies like npm, Grunt and Gulp, weve areason. It allows the data structure to be combined with elements
really got to grips with it. The Ionic command line on the page. If you change a field in a form bound to another
interface (CLI) is built on top of Cordovas; a natural element for example a heading as you type, the changes would
extension that uses the same intuitive commands, appear instantly in the heading. This forms part of the scope.
aswell as a few extras.
To get started, open up the terminal and cd to Scopes are JavaScript objects that allow the division of an
thefolder that you wish to build the app. Type in the application through inheritance. Each object will have its own scope
lines below, pressing enter after each: made up of its own set of variables and functions, however it can
also inherit these from its parents. Scopes allow for concerns to be
$ ionic start Generate sidebar better laid out and provide a more focused approach.
$ cd Generate
$ ionic platform add ios Directives create custom HTML elements and define their
$ ionic build ios interactivity. This mixes templating and JavaScript functionality
$ ionic emulate ios to create reusable components. Out of the box, Angular offers
anumber of ready-to-use directives.

HTML5 hybrid app Views are used to display the user interface. They consist of HTML,

frameworks bring the CSS, templating and directives.

world of native apps Services organise and share data. Use services to connect to an
external server and to manage the data layer of the application.
to web developers
Controllers manage the user interactions that bind your view
So what do those lines of code do? The first creates andservice.
an Ionic build from a sidebar menu template,
including Cordova, AngularJS and the UI framework. Modules collect and organise components (scopes, directives,
The next moves us into the newly created folder, views, services and controllers, plus others) allowing you to
where the third adds iOS as a platform (alternatively abstract areas of the application.
you could use Android, by replacing the references
to ios with android ). The fourth line runs the build, Learning resources
which moves the top level of files to the platform lO
 fficial Angular JS tutorial (docs.angularjs.org/tutorial/step_00)
level. The final line runs the iOS simulator, which Start here for the fundamentals, including correct unit testing
should show everything correctly installed. through Karma
Creating the project also creates a demo lE
 gghead.io (egghead.io)
application, so you can play around with Ionics John Lindquist has a tremendous set of video tutorials featuring
features straight away. all aspects of AngularJS
lA
 ngular best practices (netm.ag/best-260)
The Interface Joe Eames videos on PluralSight offer excellent explanation on
When building an app in Ionic, you must only work structure and the best practice ways to use this framework
within the top-level www folder. The files within
this folder are used to build the application.
In /templates you will find HTML files with
snippets of code that are injected into the
application. The aim here is reusability, giving
amore modular approach to development. In the

november 2014 99
PROJECTS Mobile

sample app, I renamed the templates and their


Focus on assigned JavaScript functionality to maintain
aworking application throughout development.

Mobile emulation To display a list of contacts on the network.html


template, a few Angular directives were used.

with Chrome
<ion-list>
<ion-item class="item-avatar" ng-repeat="person in network
| orderBy:'name' | filter:search " href="#/app/person/{{person.
When building apps with Ionic, the default method of testing id}}"> ...</ion-item>
is to emulate the device by using the command line interface. </ion-list>
Waiting for Ionic to compile, build and install the app on the
emulator can be a slow and painful process. Fortunately Chrome The code uses the elements created by Ionics
offers an alternative. custom directives. This provides all the styling
Chrome developer tools include the ability to emulate a mobile andfunctionality needed to make things look
device (netm.ag/emulation-260). As Chrome uses the same browser greatwithout much effort.
engine (Webkit) as the webview in Ionic, there should be like-for- <ion-list> creates a placeholder for the list,
like emulation. To enable mobile emulation, navigate to your project and using ng-repeat creates a loop on <ion-item> .
in Chrome. Right-click and select Inspect Element to bring up the Identical to a foreach loop, this lists each contact
developer tools. Next choose the blue symbol at the top right of thatexists in the network array (obtained from a
the Inspect Element window it looks like a > symbol with three service) and displays their data.
horizontal lines. This will display a secondary menu at the bottom
of the screen, where you should choose the Emulation tab.
Choose your desired device from the dropdown and press
When something is
Emulate. You may need to refresh the page to start the emulator. typed in the search box,
Features: this code will remove
lS
 creen Viewport resolution adjusts the window view, setting
the boundaries to the device chosen. You can also change the
items that dont match
orientation, emulating both landscape and portrait
lS
 ensors Touch Events replaces mouse clicks with emulated On the directive ng-repeat , a filter:search is
touch allowing you to test the performance of gestures specified. The filter points to a text input box
lU
 ser Agent Spoofing tells Chrome you are coming from a mobile that sits above the list and acts as a search. When
device, rather than the desktop that you are developing with something is typed in the search box, this simple
piece of code will remove items from the list
The obvious downfall to this approach of emulation is that you that dont match. Before Angular this kind of
cant use the native plugins (camera, contacts and so on) available functionality required much more code, but now
within Ionic as there is no physical device. Likewise Chrome will be issignificantly easier to implement.
more powerful than the devices webview, so performance when The file js/app.js initialises the app, setting up
emulating can be misleading. For functionality and styling however, the top-level functions for the application. URLs
Chrome is extremely helpful at speeding up development of HTML5 decide which template (page) is injected in to the
hybrid apps.

Emulation The device emulation is fairly hidden this is where you will find it
Plugreg An excellent resource, linking browsing plugins to their sources

100 november 2014


Mobile

application and how it will be controlled. Below is the


example applications person page in the router.

.state('app.person', {
url: "/person/:personId",
views: {
'menuContent' :{
templateUrl: "templates/person.html",
controller: 'PersonCtrl'
}}})

The purpose of the page is to display the contacts


data in a form. At the end of the url line :personId
is defined. This is a namespace for a variable
(number or string) that can be parsed through to the
Controller. Once received by the Controller (see next
section), it can talk to the data store and obtain the Helpful info Ionics
data relating to that contacts details. controller. localStorage is perfect here, as it creates website is a constantly
growing resource of
The pages templateUrl links to the template file a simple, device-independent store. If your project information for each of
person.html , which contains all of the HTML required gets bigger, consider Cordovas storage plugin. thetechnologies it uses

to display the page. Finally, we define the Controller


that will manage the interactions for the page. Extension through Plugins
With Cordova at its core, Ionic has the option to
Controllers use Cordovas official and community plugins. The
Controllers ( js/controllers.js ) manage user interactions Cordova community has created plugins to cover
as well as the discussion between data store and user almost all native functionality, accessible through
interface. Within a Controller you can manage what JavaScript. The most complete source of plugins
dependencies are injected, ensuring each area of the available is PlugReg (plugreg.com).
app gets exactly what it needs. Plugins are installed using the CLI. The example
app uses the official notifications plugin. To install
.controller('NetworkCtrl', function($scope, $location, the notifications plugin, type:
PeopleService){
$scope.network = PeopleService.list(); $ cordova plugin add org.apache.cordova.dialogs
... })
This can be seen in action when a user wants to
Here the Controller manages the network page. Note delete a contact. This makes it easy to display a
the PeopleService dependency, which is our gateway native confirmation pop-up, instead of a typical
to the data storage. A variable called network is set JavaScript one.
to access the PeopleService to get a list of contacts to
display. This is how the data goes from end to end. navigator.notification.confirm(
'Are you sure?', // popup message
Services and Storage $scope.removeContact, // callback function
There are different ways to write services (Providers, 'Delete Contact', // box title
Factories, Service and so on) but the differences are ['Delete','Cancel'] // button labels
negligible at this level. For a small app, a standard ); RESOURCE
service will do the job, as with PeopleService . ionic creator
Within this service is the list function: If you install plugins, remember to build before you The Ionic team are
putting together
emulate to make sure the plugin files are distributed
a drag-and-drop
this.list = function(){ into the correct platform-specific folders. interface, called Ionic
var people = JSON.parse(localStorage.getItem('people')); Creator to help non-
return people; } Conclusion developers create
Ionic apps. Looks a
Beyond these basics, you can extend the Sass file to very exciting project to
We are using localStorage as a permanent data give your app a more customised look and feel, add follow. ionicframework.
com/creator
store. The list function retrieves the JSON object more JavaScript components, and even deploy the
from localStorage and returns it for use within the finished product on the app stores.

november 2014 101


issue 188
on sale
now!

exclusive
pixar
tutorial
Learn to render
realistic skin using
Pixars RenderMan

digital and Print editions out now!


Newsstand for iOS: www.bit.ly/3dworld-app
Print: www.myfavouritemagazines.co.uk/design
Web standards

// vibration isnt supported


}

Using it is as simple as calling the navigator.vibrate


method and passing in aparameter for time.

// vibrate for 100ms


navigator.vibrate(100);

This bit of code would set vibration on for 100


milliseconds. If you wanted a more explicit pattern,
you can pass in an array of millisecond values that
repeatedly turn the vibration on then off.

// vibrate on, off, on


navigator.vibrate([100, 200, 400]);

Web APIs The above would cause the device to vibrate for 100

Vibration
milliseconds, then pause for 200 milliseconds, and
then vibrate again for a further 400 milliseconds.
You can also stop vibration prematurely by passing
in an empty array, or simply a zero.

API Uses
// stop vibration
navigator.vibrate([]);
navigator.vibrate(0);

Uses
Ruth John takes a look at the latest in Some uses of the Vibration API come to mind
immediately. The most popular choice is user
along list of mobile-influenced Web APIs feedback letting users know that, yes, that button
has been pressed or that input theyve filled in isnt
Over the past couple of years, weve seen a in the correct format. Gaming also provides a big
massive influx of Web APIs influenced by mobile pull, not just in terms of user feedback, but also for
devices. Theres no mystery here: if web tech wants collapsing boulders and shooting spaceships.
tokeep up to date, its going to need similar access to The usefulness doesnt stop there. Jos Dirksen uses
device features that you get with native technologies. it alongside Web Sockets to send Morse code signals
Enter the Vibration API. (netm.ag/morse-260), and Terence Eden has had some
funfaking incoming calls (netm.ag/calls-260). Ilike
Current support the idea of bringing music into the equation, asa way
The current W3C specification went into Candidate of picking up on playing music (see my demo here:
Recommendation status on 9 September. It is already netm.ag/dance-260), but also generating it, as with
supported in Gecko and the latest versions of Android The Lab at O2s haptic library (netm.ag/haptic-260).
and Blackberry browsers, and recently landed in The wonderful Christian Heilmann has even coded
Chrome and Opera. However, there is still no support a fun polyfill for laptop and desktop users. All you
for mobile or desktop versions of IE or Safari. need to do is include his code (netm.ag/buzz-260)
Its a good idea to test for support within your code: in your build and it adds a shake to your page every
time the Vibration API is called. Clever stuff.
if ( vibrate in navigator ) { Hopefully this API will start to become more
// vibration is supported widespread soon. Its great to explore functionality
} else { like this and as you can see, pretty fun too.

Ruth (@Rumyra) wireframes, designs and codes. You can often find
PROFILE

her chatting about web development, building apps and how an extra
div is not the answer to your styling problems

november 2014 103


PROJECTS JavaScript Download
the files here!
Find the GitHub repo
forthistutorial at:
netm.ag/phasergit-260

A b o u t t he a u t h o r
An t on Mil l s
w: holler.com.au
t: @antonmills
job: Technical
director,Holler
areas of expertise:
JavaScript, creative
technology, game
development
q: what was your
childhood nickname?
a: Otter, because one
kid said I had a face like
an otter when I was in
primary school. Kids can
be so mean (sniff, sniff)

javascript

Develop a browser
game with phaser
Follow Anton Mills as he guides you through the fundamentals
of browser-based game development with the Phaser framework

Now is a hugely exciting time for developers To install the Yeoman project template generator,
creating games for internet browsers, and open a new terminal window and type the following
overthe past 12 months Phaser (phaser.io) has gone (remember to prefix with sudo if youre on Mac):
from strength to strength. This game framework
provides a friendly and intuitive ecosystem for game npm install g yo generator-phaser-official
development and also leverages the excellent Pixi.js
(netm.ag/pixi-260) for outstanding Canvas and The first thing we need to do is to create and compile
Game WebGL-rendering performance. a project to test everything. Create a new folder for
your game and cd to it in your current terminal
The Wizard is a retro
styled rogue-like game Getting started directory, then type:
mimicking the golden Youll need Yeoman (yeoman.io) set up on your
16-bit era, made machine, so if you dont have it (and why the heck yo phaser-official
with Phaser. This fun
game is out now, and not?) follow the instructions on its website. With
you can find it here: Yeoman up an running, start by installing a Yeoman Yeoman will ask you for the answers to few questions
netm.ag/wizard-260 project template for game development this will while creating the template: the game name (weve
save a lot of repetition when creating games. used netmag-phaser), the version of Phaser you

104 november 2014


JavaScript

want to use (2.0.0), and your games width (900) and


height (480). When Yeoman has finished creating the Focus on
project, check everything has been set up correctly
by running grunt from the command line.
Your browser will open and the default game this
project contains will start running. Have a play!
12 games, 12 weeks
Thomas Palef is an engineer based in Paris. He had very
Structure and states little experience of game development but had always loved
Looking into the projects structure, there are a few games, so after an initial week of research he decided to use the
key folders we will be working with, including: Phaser framework to jump in and learn how to develop games for
himself. He set himself a challenge: develop 12 games in 12 weeks
l  /assets the folder containing the image assets using Phaser. You can check out some of the games he made during
l  /game the games JavaScript files this challenge on his website (lessmilk.com/12games.php).
l  /game/state the games states Keeping the graphics minimal allowed Palef to focus on the
l  /dist the compiled game for hosting online game development and game logic itself, and not let the aesthetics
take up his time. I think youll agree that this lends his games a
You will spend the majority of your time inside stylised, retro charm which only boosts their brilliance.
the game and states directories; these are the Take a look through his games and use them as inspiration for
core project files. Each game is made up of several your own creations. Ask questions like: what ideas can you borrow?
states you can think of these as different stages How can you make it unique? What can you change? Theres a
of a game. In our game we will use just four states: whole world of game development at your fingertips and browser-
based games are extremely accessible, as youll see by browsing

Phaser provides a through Palefs gallery of games.


The Phaser framework is built on top of Pixi.js, a dedicated

friendly and intuitive rendering system for browsers. The frameworks are a fantastic
match, coming together to help users create great games, quickly.
ecosystem for game Read nets interview with Thomas Palef at netm.ag/side-260.

development
Preload, Menu, Play and Gameover. You can see these
JavaScript files in the game/states folder.
Each state is made up of a common layout. If you
look at the template states you will notice the most
common methods are Preload, Create and Update:

l Preload offers a place to situate an asset or data


preloading before the state is created
l Create is where we instantiate objects, place
graphics and set the state so it is ready to play Save the rabbits Explore Thomas Palefs creative and unusual game style
l Update can be thought of as the states main
tick. This method is invoked at 60 times a second
and contains the core of our games logic

Now is a good time to download or clone the


contents of this tutorials GitHub repository (netm.ag/
phasergit-260). Inside, there are a number of folders
for different stages in the game, including one
entitled Assets , which contains the imagery for this
game. Start bycopying the entire contents of this
folder to the /assets folder inyour game.

Identifiers
Jumping into the Preload.js state lets you set each of Pixi.js Find stunning examples of the work Pixi.js can do on its website
the copied assets to preload before our game starts.

november 2014 105


PROJECTS JavaScript

Add the following to the preload.js preload() method:

this.load.image(menu, assets/menu.jpg);
this.load.image(background, assets/background.jpg);
this.load.image(player, assets/player.png);
this.load.image(creature_1, assets/creature_1.png);
this.load.image(creature_2, assets/creature_2.png);
this.load.image(creature_3, assets/creature_3.png);
this.load.image(gameover, assets/gameover.jpg);

The load.image method takes two parameters.


The first is a string-based identifier we will use to
reference the image if we need to create instances
ofit once its loaded, and the second parameter is
thepath to the image.
Next up is the games main menu scene. Open up
the Menu.js state, remove the entire contents of the
in-depth create() method and replace it with the following:

Getting started
this.title = this.game.add.sprite(0, 0, menu);

Remember those identifiers we gave our assets at


With Phaser being an extremely popular framework for game Preload? We simply have to use game.add.sprite() , give
development, theres no shortage of learning materials out it a horizontal and vertical position of 0 and then use
there. Your first stop for anything Phaser-related should be the the menu identifier we specified in the Preload state
excellent Phaser website (phaser.io), which boasts a huge range for the main menu image.
of examples, hosted with sample code, to walk you through each Test your progress by running Grunt from terminal
piece of Phasers functionality. You can find the examples at phaser. to see the results load up in the browser. Your game
io/examples. Of particular note is the Activity Feed at the bottom. should boot up to a new menu with graphics.
This is a curated list of all things Phaser very handy!
PhotonStorm (aka Rich Davey, the creator and lead developer Mechanics
of the Phaser framework) hosts a tutorial on creating your own In this section we will look at the game mechanics,
Phaser-based platform game. This has been updated to the Phaser but to save lots of typing Ive created the basic
2.0.0 release we use in this article and is another great learning gameclass. Simply copy the Play.js from the folder
resource. I would highly recommend jumping into this tutorial to entitled 3-Play in the accompanying source code and
cover some of the basics for platform-based movement with the overwrite your current Play.js in /game/states .
frameworks in-built physics system. You can find the tutorial Inspecting the code, there are a few key lines
online at netm.ag/firstgame-260. ofthe framework to point out. Lines 10, 13 and 14
Last but not least there is a Phaser ebook written by none create a rectangle that is used as a boundary to keep
other than Thomas Palef, of 12 weeks, 12 games challenge fame, objects within it. These lines also enable Phasers
and its fantastic! Check out the books accompanying web page built-in Arcade physics system.
at discoverphaser.com for a little more information. It features Lines 17 to 21 create our player. We load the image
some great examples of games that you will build throughout the the same way as before, but this time on line 20 we
chapters, its up to date with the Phaser 2.0.0 release and will
extend a lot of the functionalities covered in this article.

Main state Here is the games main state. The aim is to squash as many
creatures as possible

106 november 2014


JavaScript

Left At this point, our


games Menu state
set the anchor. This essentially means the objects player a velocity change using player.body.velocity.x . features new graphics and
x and y position can be offset so we position the We dont have to use actual x-y values, we just give only a few lines of code

player by its centre point (horizontally) and not its avelocity to x-y and leave Phasers physics system Right The final game state
top left point. to handle the rest. Our player can now move around is the Gameover state.
We have switched out the
We add the player to the physics system by using while jumping. graphics and added a score
game.physics.arcade.enable() and setting the players At line 83 there is an example of how we update
body to collide with the boundary. At this stage the aPhaser text field. We simply use setText() and
player will react to gravity, and collide with the floor. the text content we want to render. It will use the
Lines 24 to 32 create an array of enemies using existing text style properties we instantiated it with.
the same method as above. There are a few extra An example of how to test for collisions between
properties we create on each enemy that are used in two sprites (not a physics-based collision) is to use
their jumping functionality. This sets an intensity the Phaser.Rectangle.intersects method() , as per line 113.
for their jump height and a delay between each jump. Wepass it two sprites.bounds() and it will return a true
The logic for jumping is in the Statesupdate() method. or false , based on if they are colliding or not. If the
collision returns false , it hides the enemy until the

These lines create a enemy timer creates a new one.

boundary rectangle Game over


The rest is mostly just standard JavaScript, but there
and enable Phasers is one final part of Phaser to highlight the game.
state.start() method on line 129. Once this is invoked
Arcade physics system it ends the current state and moves to any state we
specify as a string in this situation, when the timer
Lines 39 through to 54 create the variables for hits 0 we jump to the Gameover state.
score and time. They also use another of Phasers In the Gameover.js, clear the contents of the
functionality for rendering text. Using game.add. create() method. Similarly to the Menu state, we will
text() you can create a string of text on-screen create a background image, but this time adding a
while specifying fonts, fills and alignment. Phaser dynamic text field to show the users score.
has great text-based functionality were only Enter the following in the create() method:
scratching the surface in this tutorial.
this.gameoverbg = this.game.add.sprite(0, 0, gameover);
Update method this.score_text = this.game.add.text(this.game.world.centerX,
Now we can move on to the update() method, which 325, this.game.score, { font: 32px Arial, fill: #ffffff, align:
center});
is where the main games logic resides. Lines 59 and
this.score_text.anchor.setTo(0.5, 0.5);
Game
60 create shortcuts to the frameworks input system.
A Ghosts and Goblins
The cursors variable allows us to check if keys are remake (woohoo!)
down, using cursors.right.isDown() , for example. Now save the Gameover.js file and run Grunt again. was released using
We use this in lines 66 to 73 by listening to which This time you should get the full menu screen, the Phaser by Karza
Games and wow is
keys are down, and if the player is not colliding with game and a much improved Gameover screen. it impressive! Take a
the boundary object we previously looked at. We can Hopefully this has given you a taster for game peek, you will love it:
do this by using player.body.onFloor() . If this returns development with Phaser. Its a great framework int33h.com/test/gng

false then the player is in the air, and we give the thatwill help you create some fantastic games.

november 2014 107


PROJECTS Sass Download
the files here!
Download all the source
codeyou need for this tutorial
at netm.ag/sass-260

A b o u t t he a u t h o r
Ian Ca rrico
w: iamcarrico.com
t: @iamcarrico
job: Webchef, sass
FourKitchens

Take the pain out of


areas of expertise:
Drupal, Sass, Gulp,
responsive web,
performance
q: what was your

Sass development
childhood nickname?
a: Nutboy, because I
ateNutter Butters like
itwas my job

Ian Carrico walks through how to set up your Sass development


environment properly, saving you from future headaches
Using CSS preprocessors has become a standard Remember, Codekit is awesome, but it does limit
practice across web development. They have theversions of Sass you can use.
provided us with immense power in our frontend
development, not just with new grid systems and What makes Sass hard?
colour functions, but by offering us the opportunity In short: Ruby. The Sass compiler is built on Ruby,
tokeep our code truly DRY. The problem is, ensuring and most of the community code is deployed
our development environment is ready for writing as RubyGems. In order to ensure we keep our
Sasscan be tricky especially to those of us who development environments in sync, we need to
didnot start as Ruby developers, and are treading make sure our versions of Ruby and RubyGems are
unfamilar ground. consistent, and documented in code. On the plus
side, the tools we need to do this have been worked
Latest and greatest on for a long time, and are (mostly) well documented.
Sass is constantly evolving. It is a language that is
actively being developed, offering many community- Im not on OS X ...
driven tools. If you want to explore the full power This tutorial is meant mainly for OS X, but the tools
of Sass, this article is for you. I will explain step- (except Homebrew) can be used on any Linux system.
by-step what tools you need to make sure your Sass The only change is that instead of using Homebrew
development starts properly, and point you in the commands to install the packages, you will use the
direction of the right documentation to help save native package manager for your version of Linux.
youfrom future headaches. Every piece of software included has more detailed
If you are brand new to Sass and do not need installation instructions for different systems within
video thelatest and greatest features, there are a number their documentation as well.
This article is based of applications to help start you off. My favourite
on Ian Carricos talk at
Sass Conf. Watch his Sass playground is Sassmeister (sassmeister.com), Easy win
original presentation at developed by Jed Foster and Dale Sande. If you are Before we install anything, or get into the tools
vimeo.com/86306777 looking for an application to run locally, get your we need, there is one configuration file everybody
hands on a copy of Codekit (incident57.com/codekit). should use. It stops RubyGems from installing the

108 november 2014


Sass

Left The Sass language


gives us more control over
our CSS than we have ever
full documentation of each gem locally, saving time sure all of the package information is up to date. had before
during gems install. Generally, you should run this before any new
Right Sassmeister is a
Run this single line from the command line: package installations. webapp that will allow you
to compile Sass samples
$ echo gem: --no-rdoc --no-ri >> ~/.gemrc Managing your Ruby versions and publish them to a
GitHub gist
Ruby is constantly updated, both with major releases
Homebrew and patch fixes. It is important that we know which
For Mac users, the first step of this project is to version of Ruby we are developing on, as there
install Homebrew (brew.sh), the unofficial package are differences in each version. Luckily, there are
manager for OS X. Homebrew will enable us to install standard practices to ensure the version of Ruby
the rest of thetools we need in order to tackle some youare using is correct.
painless Sass development. There are three main tools that allow us to
manage our Ruby version: RVM (rvm.io), rbenv

Preprocessors have (github.com/sstephenson/rbenv) and chruby (github.


com/postmodern/chruby). I recommend using rbenv,
provided us with and this guide will go over how to install, configure
and use it.
immense power in our However, if you already have RVM or chruby

frontend development installed, do not also install rbenv, as the two are
not compatible with each other. If you already
haveone of these programs installed, skip the
For users that have not used Homebrew before, section below, and jump to Ruby versions.
open the terminal and run this line of code to install
the package manager: Install rbenv
To install rbenv, run the following on OS X:
$ ruby -e "$(curl -fsSL https://raw.github.com/Homebrew/
homebrew/go/install)" $ brew install rbenv ruby-build
$ echo eval "$(rbenv init -)"' >> ~/.bash_profile
Once youve installed Homebrew, you will be able
to run the command brew on the command line. Open up a new terminal window rbenv should now
Toensure you are ready to move forward, run brew be installed to your system. Now we need to install
doctor , which will check to ensure Homebrew the version of Ruby that we want to use globally,
installation is ready to use. If there are any errors, which at the time of writing is 2.0.0p451.
Homebrew also provides instructions on how to fix
the installation. $ rbenv install 2.0.0-p451
If you already have Homebrew installed, $ rbenv rehash
additionally run brew update , which will make $ rbenv global 2.0.0-p451

november 2014 109


PROJECTS Sass

The first line will download and install the right Bundler
version of Ruby onto your system. The second line Sass, Compass and the many Compass extensions
rehashes rbenvs knowledge of what versions you are distributed using RubyGems. As each gem can
have installed, and should be run after installing exhibit pretty big changes in-between versions,
anyversion. The last line will set the global Ruby wewant to document the versions needed in code
version to be the version we just installed. as well. We do this through Bundler (bundler.io),
By default, rbenv will download and install Ruby ourfriendly Gem version manager for Ruby.
versions into ~/.rbenv/versions . If you ever want to Installation is easy, just run:
uninstall a version of Ruby, just delete the version
folder from ~/.rbenv/versions . So, the command youd $ gem install bundler
need to use to uninstall the version we just installed
would be: Gemfiles
The two files that Bundler uses to make sure the
$ rm -rf ~/.rbenv/versions/2.0.0-p451 versions of gems are accurate are Gemfile and Gemfile.
lock . We can create the former with the versions of
Ruby versions gems we want to use, the latter is made by Bundler
No matter which program you are using to manage with the exact versions of each gem we are using.
your Ruby versions, they can all respect the file Both must be committed to version control, so that
named .ruby-version in your projects folder. This every developer installs and uses the exact same
is aone-line file that will document the version of Ruby gems.
Ruby we started this project with.
With rbenv, you can create this file by:
Speed up your workflow
$ rbenv local 2.0.0-p451
with a task runner ...
You can also create it by running: Gulp.js helps automate
$ echo "2.0.0-p451" > .ruby-version common tasks
Always commit the .ruby-version file to your version Each project can have different Gemfiles, as tools
Homebrew This allows for control. Then anybody else working on the project, update and change continually. As a starting point,
package installation on OS
X, and can be used to install
as long as they have RVM, rbenv or chruby installed, here is an example of a Gemfile with the most
a variety of tools will always be using the same version of Ruby. up-to-date versions of Sass and Compass available
at the time of writing. You can specify either exact
versions, or fuzzy versions (e.g >= 1.0) within your
own Gemfile.
For more information on Gemfiles syntax, look at
Bundlers documentation at netm.ag/bundler-260.

# Pull gems from RubyGems


source 'https://rubygems.org'

# Use Sass version 3.4.2 - 3.4.9.


gem 'sass', ~> 3.4.2

# Use Compass version 1.0.1 - 1.0.9


gem 'compass', '~> 1.0.1'

# Other Compass extensions


gem 'breakpoint', '~> 2.5.0'
gem 'singularitygs', '~> 1.4.0'
gem 'toolkit', '~> 2.6.0'

Save the file above as Gemfile , then run bundle


install . Bundler will then read the Gemfile, install

110 november 2014


Sass

Focus on

Why is Sass so great?


It may seem like this tutorial is long. Since we are playing
withRuby, there are lots of dependencies and requirements.
Is all of this worth it just for the power of a CSS preprocessor?
Why not use something a little simpler, keep everything in Node.
js? Better yet, lets just use Bootstrap that gives me everything
Ineed, right?
The reason I love Sass so much is not just because of the power
it has as a CSS preprocessor, it is because of the community that
has grown around it. This has not just made Sass more powerful,
Bundler This can be used to ensure everybody is using exactly the same
but there are so many tools that have been built in Sass that I
same versions of the gems within your project couldnt possibly imagine building a site without it any more.

the needed versions of each gem and install them.


Finally, it will create the Gemfile.lock which will
contain the exact versions Bundler installed.

Using Bundler
From this point forward, instead of running your
usual Compass commands, put a bundle exec in front
of Ruby commands. So, to compile or watch your Sass
files, you can use:

$ bundle exec compass compile LibSass This is a C implementation of Sass, built to make compiling Sass even
$ bundle exec compass watch easier and faster. Although it does not currently have feature parity with Sass,
there is constant development

The bundle exec will ensure you are running these The beauty of this tutorial is that it only needs to be run once,
commands through Bundler, thus always using the and your environment is pretty much set up forever. Afterwards,
you will only need to update gem and npm package versions
proper versions of each gem.
occasionally. Moreover, the Sass community has been hard at
If you need to update the gem to a newer release, work trying to simplify this process even further, primarily through
you have two options, depending on the version building LibSass (libsass.org).
you want to install. If you want to update to anewer
version that is still valid to the Gemfile, you would
run bundle update gemname . If the version you want
to use is not valid, then the Gemfile needs to be
updated, followed by bundle install .

Wrapping it in magic
For bonus points, we can speed up our workflow
with a task runner. Gulp.js (gulpjs.com) can be
used to automate common frontend tasks, from
compiling Sass to minifying images. It runs each
task concurrently, ensuring the least amount of Team spirit The Sass community is constantly making new tools, blog posts,
tutorials and podcasts
timewaiting at our command line.
Setting up Gulp.js starts with ensuring you have In short, I am proud to be apart of the #teamSass community,
Node.js installed (nodejs.org/download). Once Node.js and will continue my work to make Sass development easier for
is installed successfully, then Gulp.js can be installed everyone. I am amazed at the creativity the community has used
tocreate the tools that power the web.
globally with:

$ npm install -g gulp

november 2014 111


PROJECTS Sass

In-depth

Where to go next?
Sass has been made so powerful because of the community
that has been formed around it. There are innumerable tools
that have been created to make frontend development easier,
faster and more DRY.

Twitter accounts to follow


The Official Sass Twitter: @SassCSS
Hampton Catlin, creator of Sass: @hcatlin
Natalie Weizenbaum, lead developer of Sass: @nex3
Gulp.js This helps you automate into a simple and fast workflow Chris Eppstein, creator of Compass: @chriseppstein

Next, within your project directory, create a According to the Sass official documentation, to use Sass you must
package.json file and install the required npm pay Hampton Catlin a compliment and get Natalie Weizenbaum
packages by running: some candy. Technically not required, but at least paythem a follow
on Twitter.
$ npm init
$ npm install --save-dev gulp compass-options gulp- Awesome Compass extensions
compass I use each of these tools personally on almost every project I do.

Gulp uses the file gulpfile.js within your project Breakpoint (breakpoint-sass.com)
directory to create and manage tasks. Below is an Creating simple media queries
simple gulpfile that will compile your Sass for you, S
 ingularity (singularity.gs)
using Compass. Grids without limits
To run the command, just copy the code into Toolkit (github.com/Team-Sass/toolkit)
your gulpfile.js, and run gulp sass . At github.com/ The Swiss Army Knife of responsive web design
iamcarrico/netmag-code there is a more complex Color Schemer (github.com/Team-Sass/color-schemer)
example gulpfile with many more tasks you can run. A robust colour toolset
Navigator (github.com/Team-Sass/navigator)
var gulp = require('gulp'); A Ruby testing framework for Sass
var compass = require('gulp-compass'),
paths = require('compass-options').dirs(); Where else can I find information?
There are many folks writing excellent tutorials and blog posts on
gulp.task('sass', function() { Sass every day. Check out the Sass community page (sass-lang.
return gulp.src(paths.sass + '/**/*.scss') com/community) for the latest in Sass writings. Also, I cannot
.pipe(compass({ recommend enough Dale Sandes book Sass in the Real World,
config_file: './config.rb', available on GitBook (netm.ag/realworld-260).
css: paths.css,
sass: paths.sass Get involved
})) There are many Sass meetups across the world. Find the one that
.pipe(gulp.dest(paths.css)); is closest to you and meet other Sassy people in your area. Follow
}); the general @SassMeetup Twitter account for information of all
meetups as well. Moreover, if you get the chance, go to SassConf
Thats it! (sassconf.com) or Camp Sass (campsass.com) to really dive deep
That wasnt so hard was it? A little bit of within the community.
environment setting-up, and now your Sass
development can focus on the Sass, not the
underlying Ruby. From here, the sky is the limit.
Check out the tools the community has been creating
to extend your Sass development even further.

112 november 2014


PROJECTS Accessibility

Accessibility

Virtual assistants
Following the introduction of Cortana, Robin Christopherson explains
why the AI war is especially welcome for users with impairments
For some time now, the two leading the time so who knows who the final winner will be?
smartphone operating systems iOS and Actually, I do the answer is disabled users. Whilst
Android have been vying for supremacy in the these in-built AI agents are hard at work making
battle to have the best and quickest intelligent life easier for all smartphone users, the disabled
personal assistant. We all know about Siri, the perky community is benefitting from the escalating efforts
AI that comes on all new iDevices, who is extremely of the tech giants more than any other.
helpful when she works and extremely frustrating
when she doesnt. Youve probably heard of Google Saving valuable time
Now too, which is the equivalent on Android phones. Its to do with those valuable seconds that these AIs
Now theres a new kid on the block: Cortana (netm. save us, because for disabled users such as myself
ag/cortana-260) for Windows Phone. And shes (Im blind) what Siri can do in five seconds might
already holding her own against the incumbents take me five minutes, or sometimes 10. In many
helped along by a series of hard-hitting Microsoft cases I might not be able to manage to find what Im
ads that pit Cortana against Siri (netm.ag/mirror-260). looking for at all because the websites Im using are
inaccessible to my screen-reading software.
A showdown A similarly slow and painful experience is had
Both Siri and Cortana are able to tell you Winston by many who cant use a mouse. Try using your site
Churchills birthday, provide turn-by-turn directions from the keyboard and youll soon see what I mean
to your nearest pizza place, and bring up pictures of itll either not work at all or itll take you entire
pigmy marmosets (officially the cutest monkeys in minutes to get where you want to go.
the world). However, a painstaking perusal of the So for the blind, the motor-impaired, those with
various phone face-offs online have thrown up some learning disabilities or dyslexia, those older users
interesting results. Here, for example, is a video of a who love the KISS principle, for positively millions of
recent tussle between Siri and Cortana, managed by impaired smartphone users out there, this battle has
Mashable, which sums up the current key differences benefits far beyond the modest boost in convenience
between the AIs: netm.ag/mashable-260. experienced by the average user. And even the
Mashable favours Cortana in its video showdown, contenders themselves have no idea just how far
but the contestants are becoming faster and fitter all thisthing will go.

Robin is a founding member of AbilityNet (abilitynet.org.uk), a globally


PROFILE

acclaimed charity specialising in web, mobile and software accessibility,


where he acts as head of digital inclusion

114 november 2014


Projects
Build smooth digital
UIs with Famo.us
Create a dramatic
perspective shot
Streamline your Git
workflow with Tower
Build hybrid mobile
apps with Ionic
Develop a browser
game with Phaser
Take the pain out of
Sass development
9015

A fusion of creativity
Brilliant technology. Amazing art. Its a match
that helps deliver great images and videos to
creative professionals like you.

35 million images
1.5 million videos
30,000 new files added daily

Explore our innovative new tools


at shutterstock.com/labs.
9000

Vous aimerez peut-être aussi