- See all our web design articles here
Multeor is a multiplayer web game developed by Arjen de Vries and Filidor Wiese and designed by Arthur van 't Hoog. The idea of the game is to control a meteor crashing into earth. You score points by ensuring you leave the biggest trail of destruction. Up to eight players can connect to a single game simultaneously.
Rather than using one of the many game libraries, Wiese built entirely from stratch. "We decided not to use a prefab game engine," he says, "which means rendering the graphics, detecting collisions, keeping track of entities and coding a particle system for the explosions. Not depending on a specific game engine was great fun: it gave us a lot of creative freedom and we definitely learned a lot because of it."
The CrimeTimeline uses public APIs to pull in data about crime in Britain
"We wanted a responsive site showing a heatmap of crime density and type for the month chosen on a slider. The heatmap, street map and location search were built using the Google Maps API v3," say Cyber- Duck devs Alex Miller and Gareth Drew.
03. Philippa Gregory
Second up is the website for international author Philippa Gregory, who wanted a website to launch alongside the new BBC One series The White Queen, which is based on her novels.
"The analytics from her previous website showed us that the split between devices was around 40 per cent tablet/mobile and 60 per cent desktop," says Adam Gatenby, head of digital at agency behind the site, Better. "Using responsive web design was part of the solution to address this issue."
"As the site developed, we had an issue with the weight of some pages, so I built a loading screen – using window.onload/setTimeout event – that hid away any tricky layout problems until we ready to reveal them."
Dickie also utilised some plug-ins to save time. "I used bxSliderfor the carousel in the footer. This was a decision principally made for expediency, but this particular plug-in was chosen as it was flexible enough to re-skin for the varying responsive views."
05. Here Is Today
Here is Today was created by designer Luke Twyman. He explains the motive behind the site: "Being fascinated by the scale of time, I wanted to create something that would clearly give people a sense of that vastness, and a feeling of where we sit in relation to all that's gone before. To do this, two important features on the technical side would be some kind of zooming/scaling mechanic, and also a super clean layout."
Twyman kept all widths relative to make the site's message convey equally well on a smaller screen: "From the start I decided to do away with pixel measurements and pt sizes for type, and instead set my own measurement unit based on a fraction of the screen width. I set one unit to be 1/22 of the screen width and positioned and scaled everything using that unit, so the spacious layout would be maintained on different displays."
Tweetmap represents countries in the world proportionally based on numbers of tweets
Tweetmap by Pete Smart and Rob Hawkes represents countries in the world proportionally based on numbers of tweets. Hawkes explains, "Tweetmap brings together lots of clever technologies, including TopoJSON, D3.js, Node.js, PhantomJS, and an algorithm to construct contiguous cartograms in real-time.
"We chose Node.js to power the server side of things as it's quick, flexible and we already had experience using it to scrape tweets. For rendering and animating the map (in TopoJSON format) on the client we use D3, which is a fantastic library for data visualisation. Specifically, we extensively used the geo module, which allows you to do some complex geographic calculations and conversions."
To prevent performance problems in the browser, Smart and Hawkes use D3.js on the server to render countries and generate contiguous cartograms. "However, we actually run it on the server using PhantomJS (a 'headless' WebKit rendering engine) and transmit the maps back to the client," says Hawkes. This prevents the performance hit experienced when generating the cartograms on the client. "The browser locked up for four seconds," explains Hawkes.
07. The Trip
08. Si Digital
"To achieve this effect I used jQuery .animate(), using its step() option to work out where the liquid was in the tube - and if it needed to activate any other animations on its journey," says Crooks. He adds, "Everybody reads at different paces, so we tried to find the right balance for the liquid speed. However, if it's too fast for the user, it [the animation] will always wait at the next stage for them to scroll down.
Pointing the way
"To 'open' new stages for the liquid to flow through I used the jQuery Waypoints plug-in," says Crooks, "which was also used to trigger the text fading in, and other various loading/waiting animations so users that skip ahead still get a great experience."
The interactive timeline on the team page, which enables users to drag with their mouse to see some of the company's past work and events, makes use of jQuery UI. "The team page has a timeline to highlight Si digital milestones and events, pulling in our social media accounts ranging from Twitter updates to Dribbble uploads," Crooks explains. "The timeline is generated entirely dynamically based on a database of our events loaded via Ajax. The primary way to navigate the timeline is by dragging with the mouse (using jQuery UI draggable), but keyboard navigation is also included."
09. Jean Helfenstein
Create gorgeous patterns with your mouse on developer Jean Helfenstein's homepage chase
Developer Jean Helfenstein's personal site features an eye-catching canvas animation on the homepage. "I really had fun with the backgrounds," says Helfenstein. "I always love to experiment with new technology, so I decided to use my landing page as my playground and mess around with three.js and the canvas element.
"The idea was to create a site that follows the current minimalist design trend [but adds] something fresh. To achieve that, I decided to use click-and-drag navigation rather than the usual left/right arrows. With mobile devices becoming more popular, I feel that people are starting to be familiar with this type of interaction."
Everything about the site is impressive, including the subtle animations between pages - and in particular, the way you can drag between projects on the 'Playground' page. It's a brilliant showcase of what can be achieved with some of the newer technologies we have available.
10. Nick Jones
11. KIKK Festival
We love the falling feathers!
A common trend is to use HTML5 pushState to allow the user to go back and forward between transitions. "The page transition is visually the most interesting feature," reckons Daubrez. "It's been composed with a dynamic URL rewriting using the history.pushState feature, so it gives the impression of travelling in an horizontal single page."
Dog Studio made full use of some quirky jQuery plug-ins to produce the falling feather effect: "For that we simply used a Snowfall jQuery plug-in we modified to give the feather rotation effect, and get more control over the number of items and their speed. Those three main directions really make us think we managed to get a unique experience."
MapsTD harnesses the power of Google Maps for an immersive gaming experience
MapsTD is a tower defence game, but with a difference. You tell it where your home is, and through the power of Google Maps, it will produce a game in which you're defending your hometown, with the baddies relentlessly charging past the streets and houses of your neighbourhood.
As the game progresses, more enemies (or 'creeps' as he has called them) appear on screen. Barclay found himself battling to keep performance high and timings correct: "One of the biggest challenges – one that still isn't quite right - was the timing. Firstly, if the page isn't active, most browsers reduce how often they check if timeouts have reached the end, resulting in creeps moving in bursts rather than moving steadily. I ended up fixing that by pausing the game when the tab loses focus. The detection code was taken from David Walsh's blog and is in the game credits.
"The other problem was that as you progressed, there were too many things happening, which resulted in the game slowing down a lot. The workaround ended up being to use harder creeps rather than more of them, and making the game incrementally more difficult each level after level 50."
Command & Conquer is back, and it's online, thanks to Aditya Ravi Shankar
This is an amazing example of how powerful today's tools are. Aditya Ravi Shankar has used them to create an online version of classic real-time strategy game Command and Conquer.
Recreating the original 1995 game was a long and painstaking process, says Shankar. "Every little thing took time - things like selecting single units or multiple units; being able to select by drawing the box from left to right or from right to left; making sure the panning was smooth; figuring out a decent fog of war implementation; allowing for building construction, dependencies (the Power Plant is needed for the Refinery, which is needed for the Factory) and building placement (buildings cannot be constructed on top of other buildings); and depth sorting when drawing so units could move behind buildings and trees."
14. Glimpse Catalogs
Page turn effect
Khandelwal also describes the usage of Turn.js. "While developing magazine-style catalogues, we used Turn.js - an open source jQuery plug-in flexible enough to be adapted to our needs. We also liked that it was managing the page turn effect entirely with DOM elements."
"Both of these together helped create an HTML5 magazine with interactive markup. It also gave us a great deal of satisfaction to contribute some of our code back to the developer community."
15. Chrome Web Lab
Red Bull Music Academy Radio, bringing kickass beats to your browser
Red Bull is the energy drink that keeps fingers moving during late-night coding sessions: couple it with music and you have an awesome setting for code cranking. Looks like Red Bull gets this: its Red Bull Music Academy Radio brings kickass beats to your browser.
RBMA Radio is all about standards, and using Modernizr helps it get there. From a feature-detection perspective, Modernizr continues to be the best choice for enabling you to leverage new HTML5 and CSS3 features in a cross-browser manner, and the fact that it's continuously updated ensures that as new features come out, you can scale your code to handle them.
One millionth tower: Bringing together residents, architects, animators, and web developers
"We're exploring the human experience of vertical living in global suburbs over several years using many kinds of platforms," explains director Katerina Cizek. "In One Millionth Tower I was interested in harnessing the imagination of the people who live inside to re-envision the bleak spaces around the buildings.
"The other problem the project faced came when creative technologist Mike Robbins brought in the idea of putting a story about space into 3D space, so it became a story about transforming the physical world, by transforming the virtual world."
What got me excited about this site was that it both lives and breathes, a lot like the web - if it's actually raining in the Toronto Highrise, it's also raining in One Millionth Tower. If you've ever used weather APIs, you'll know this isn't a technically difficult feat, but integrating it into virtual landscapes is something I haven't seen done until now.
One of the core tools that made One Millionth Tower possible was Popcorn.js - a library by Mozilla featuring some work by Boston-based hack loft Bocoup. Popcorn helps link real-time social media, news feeds and other content directly into online video in real-time, enabling developers to easily create rich, interactive experiences that go beyond traditional static video on the web. Three.js was also used to help implement the 3D world around the high-rise neighborhood.
18. Nouvelle Vague
It took three people about four months to create, says Ultranoir's JB Grasset. "We were very interested in all the WebGL experiments running on the web and became convinced that Ultranoir had to try something with this new technology. The Ro.me project (ro.me) really astonished the whole team, so we decided to produce our own experience.
"The basic idea was to exploit the atmosphere we created for the Ultranoir V3 video introduction. It was produced with 3D tools and we wanted to make it interactive.
19. The Convergence
Cynics may say HTML5 is still playing catch-up to Flash in the gaming world, but it's finally getting closer to matching the smooth, arcade experiences gamers have been desperately pleading for.
While not without its flaws, The Convergence is a great proof of concept game implementation. If you enjoy playing it, you can look forward to more features in the future including extra levels and a particularly important addition - HTML5 audio.
I'd also be interested to see some support for the Web Joystick/Gamepad API Mozilla have been showing off lately; it's bound to make games like this even more entertaining!
Kindle Cloud Reader: An impressive feat using standard web technologies
Carrying all my books in a slim, lightweight tablet is amazing. So when Amazon announced its new web-based Kindle Cloud Reader, I was thrilled the convenience level had been pushed up several notches.
For example, the team leveraged Kelvin Luck's jScrollPane plug-in to provide CSS skinning of scrollbars to match their UI. And continuing the consistent UI theme, the jQuery Templates plug-in was used for building and rendering standard templates of data.
Amazon also elected to use WebSQL for offline support. While not the W3C standard, this web database implementation seems to have provided the team with an interim solution until IndexedDB is more widely used and implemented.
Being an avid Kindle fan, it's really exciting to see what Amazon has built and that it was able to do so using standard web technologies.
Les Enfants Terrible: Creepy, weird and insanely cool
The use of the Shadowbox.js library for popping up videos is also a nice effect since it doesn't intrude on the user's experience like a normal browser popup would. It also has the added benefit of not being blocked by popup blockers.
Freak like me
One of other cool nugget is how they combined Shadowbox.js with the jQuery Cycle plug-in to create a flipbook of their work and also display some candid pictures. The guy in the creepy mask did freak me out a bit but I managed to look past him and check out some of their work.
"Les Enfants was put together to see how far you could push jQuery on the iPad before it ran into framerate issues," says site developer Martin Hughes. "It turned out that when combined with CSS Transform and GPU acceleration you could really get a lot of movement happening without running into trouble.
Pinterest: Enjoy the endless scrolling with Jean-Sbastien Ney's PageLess jQuery plug-in
Pinterest has got a lot of positive press lately and when you look at the site, you can see why. The layout allows users to 'pin' images to a virtual pinboard shared with the rest of the community.
This is made possible through the use of jQuery, jQuery UI and Jean-Sbastien Ney's PageLess jQuery plug-in, which allows endless page scrolling.
PageLess is a vitally important to the UI as it keeps users engaged by providing a constant stream of pinned tiles on the screen as the user reaches the bottom. And as most sites do, Pinterest has included social sharing functionality to like, repin or comment on a tile.
There are other plug-ins being used for things such as tooltips but what stands out to me is the endless scrolling. It's really the secret sauce for keeping users wanting more.
Love Bomb Builder: Taking advantage of modern features such as the HTML5 semantic tags
How much do you love your friends? Do they do things that really rock but you're not sure how to express that to them? This is what Jess Klein and Atul Varma set out to help with when they created the Love Bomb Builder. It's a neat and simple website that lets you send a love bomb to someone who has done something really awesome.
But to me the coolest feature is the split-screen styling, which allows visitors to style up their love bomb in real-time. Don't like red? No worries. Go into the HTML and CSS source displayed on the left, make your changes and instantly see the results. This is rendered in an iframe and leverage's SVG for the dynamic redrawing. Very smooth and well done.
24. Smokey Bones
Smokey Bones: Ensuring that a visitor will get a chance to see most pages on the screen
The first thing that caught my attention was the full-screen slider they're using to automatically switch between elements on the page. The code 3 slides divs in and out based on a timer, ensuring that a visitor will get a chance to see most pages on the screen.
Code and chips
Adding to this, they've also included keyboard navigation ensuring that not only can you scroll left or right but up and down! The really clever part of this up/down scrolling is that as you do so, it actually builds a canvas-based hamburger as well as showing a glass of beer being consumed. Seriously, you have to check it out. What I loved was that the team used the EXCanvas polyfill to allow non-modern browsers to have the same experience.
Definitely some great stuff going on here. Now I'm hungry!
The Michelberger Booze site: Making excellent use of vertical scrolling
I may not be a drinker but I can certainly appreciate a cool site. The Michelberger Booze site is very neat in that it makes excellent use of the new trend in vertically scrolling sites.
Infinite scrolling seems to be the new black in terms of site design. The site uses it to navigate users through a number of scenes that offer interactive features as you scroll down. The infinite scroll was made possible using the jQuery Waypoints plug-in, which lets you execute a function when you scroll to a specific element. In this case, scrolling down the page brings up different scenes that trigger off everything from rotating masks to glasses being filled with booze.
Socket to them
Near-instant communication between Trello users is achieved using Web Sockets. Although they are seeing wider browser support, this still presented a few challenges.
"Web Sockets are a relatively new technology," says LeCheminant, "and the libraries we're using had some issues when being used at a large scale. It took us a few months after launch to get them working reliably enough.
"Fortunately, Trello is able to run using fast Ajax polling, so we were able to fall back to that while we were resolving the issues we had with the library, and we're currently using Web Sockets on all browsers that have support."
27. Remote Tilt
Remote Tilt: Detecting motion events on a desktop browser
If you don't have a mobile device to pair with there is also the option of using an emulator in a pop-up window, but obviously it's harder to get a feel for orientation that way.
Remy said that it wasn't particularly tough to get a consistent level of support across devices. "But I did have to do some hard (or hard for me) maths to get the number right, and I did spend several hours with a mobile phone in one hand tilting in all directions trying to ensure my numbers matched up correctly!
"I was made aware of a bug in older iOS versions whereby one of the axes in the Device Orientation event gives a reversed value. Luckily, however, I forgot which older iOS it was, so was never able to confirm the bug first hand!"
BrowserQuest: A loving homage to RPG video games
Created by Little Workshop for Mozilla, BrowserQuest is a loving homage to RPG video games designed as a demonstration of HTML5 and technologies such as WebSockets, which can support hundreds or even thousands of simultaneous users interacting.
"Creating a multiplayer game appeared to be a good way to showcase these technologies working together," he continues. "The classic top-down view and retro look is a tribute to games that amazed us as players - our favourite Easter egg is probably the clever reference to Valve's Portal."
His first version, initially a luxurious 8kb, took an afternoon; weeks of tweaking and optimising got the size down. "The procedural generation of the tree was influenced by optimisations I used to get the demo under 1k," Buchanan explains. "Often a change to one meant re-writing the other."
To reach that byte target involved "clever abuse" of the language. "One tactic is avoiding in-built keywords. If there's an 'if (a) b else c' statement, using the ternary operator a ? b : c saves 8 bytes."
"Optimisations often become confusingly convoluted," Buchanan continues, "and writing code in the shortest form possible comes at the cost of performance, readability, and accuracy."
Timeline: Making your social networking simpler
Creating a usable visualisation of a timeline in a web browser isn't easy, with Flash typically being called upon for a smooth experience. But newer development techniques and the rise of HTML5 are making inroads into reducing the headache.
The timeline builder by Vrit.co for the Knight News Innovation Lab, is billed as being easy and intuitive to use. Users can pull in tweets and media from YouTube, Flickr, Vimeo, Google Maps, and SoundCloud. Timelines can be defined in JSON or, if you'd rather keep it simpler or let a non-technical author join in, use special Google Docs templates.
Embed a hosted version of your timeline or grab the files and host it yourself. By default, Stamen's duotone map tiles layer is used if you want to add mapping, but there are other options. The project is released under the GNU license and hosted on GitHub, so contributions are welcome.
jsPerf: Making benchmarking and learning from other developer's tests even easier
"The few performance test cases that were available at the time weren't easily comparable: some measured the operations per second, others measured the number of seconds per 10,000 operations, and then there were tests that displayed the results in the form of a score. All tests on jsPerf use the same benchmarking algorithm and output the results in a standardised way."
Some of the new features now supported include rich, interactive graphs and browser filters. We can now select from bar, column, line, pie and tables for displaying our results and then filter them down using different families of browser such as desktop, mobile and so on.
Benchmarks can now (for the first time) also be easily embedded in external sites, so gone are the days of reporting a piece of code as optimal and including a screenshot of our results: we can now easily include the results directly in our pages so they're always up to date.
Searching for other developers' test cases, in case someone else may have already created a test we may wish to learn from, is now also a lot more straightforward with queries and syndication feeds being supported.
Finally, all of the PHP for the site has been open- sourced onGitHub, so you can easily make changes to it if there's a feature you'd like to add or improve. "So far the response has been great," says Bynens, "lots of pull requests with code improvements. I recommend checking jsPerf out as I find it an invaluable resource daily."
32. Nokia Maps 3D
Nokia Maps 3D: One of the most impressive examples of WebGL
By far, the most impressive example of WebGL I've seen so far this year is Nokia Maps 3D. Not only does it allow us to view the Earth in an astonishing level of detail, but almost everything on the map is rendered in 3D, complete with terrains, buildings and lighting.
Most major cities can be viewed on the map and we can zoom, pan and tilt without relying on any plug-ins. You'll need the latest version of Google Chrome to view it, but it's worth taking a look at just to see where the future of maps may look like.
Lights: Taking users through a vibrant-coloured terrain that vibrates and reacts to your mouse
Following hot on the heels of Nokia's foray into WebGL is Lights, an interactive music experience for singer-songwriter Ellie Goulding by Brighton-based company HelloEnjoy.
The WebGL-based site (powered by three.js) takes users through a vibrant-coloured terrain that vibrates and reacts to your mouse movements and acceleration.
You're in for a visual feast of light particles, explosions of colour and more, all set to the tune of Goulding's latest track Lights. Check out the site in the latest version of Google Chrome for the best experience.
34. Draw a Stickman
Lots of sites are all about being serious, but it's also important to have fun. The team at Hitcents has created a whole lot of fun via Draw a Stickman.
The basic idea is that you're given a virtual drawing pad, on which you can use your mouse to create little doodles. But it goes way beyond that. Once you've created your stick figure, it becomes animated and walks around until it finds a box. You then have to draw a key to open the box, revealing a surprise and... Well, I'm going to leave you to look at the site and find out what happens next. It's definitely worth it.
Vector it in
It's a really neat experiment, and something that kept me engaged for a long time. Granted, my drawing skills are terrible, but you shouldn't judge the website based on my lack of artistic talent.
Zui: Making use of client-side technology to enhance the user experience
Also awesome is Mustache.js, an incredibly powerful client-side templating library. You define how your templates should look, use tokens to define where pieces of data will be filled in and then pass it over to Mustache for processing. It handles the heavy lifting, enabling you to build consistent UIs without needing a ton of code to generate the results.
In this case, it was used with home-grown code to produce a 'bento-style' UI, making it easy to place elements of various sizes within your page while still maintaining a consistent layout size. "We call the mixed-media search results bento boxes," says Will von Reis, CTO of KidZui. "The name is inspired by the Japanese lunch trays made up of different-sized rectangles."
I like seeing this kind of site making use of client-side technology to enhance the user experience.
36. Panera Bread
Panera Bread was built by agency Luxurious Animals
The Panera Bread website was built by agency Luxurious Animals. "'Live Consciously, Eat Deliciously' was our second opportunity to work with Panera Bread and Cramer-Krasselt," explains technical strategy director Dan Federman, "and we wanted it to feel like part of the same family as our first collaboration for Panera Soup."
The agency also took advantage of other libraries to speed up development and organise the code. "Yeoman handled scaffolding, optimisation and build processes," says Federman. "Backbone.js provided data modelling and templating for the content we were wrangling. The content itself lived in flat HTML files (loaded via Ajax), which also served as static content for SEO."
37. Peanut Gallery
Peanut Gallery is a project from the Google Creative Lab
Peanut Gallery is a project from the Google Creative Lab. Valdean Klump, a producer at the Lab, explains the concept. "The Peanut Gallery is a Chrome experiment that lets users add intertitles to silent film clips by talking to their browser," he says.
"One of our favourite features of the API is that text updates in real time while you speak," Klump continues. "For example, if you say 'European Union' slowly, you can watch as the API begins by printing 'your' or 'year' and then corrects it to 'European Union'. "Another neat feature (for English speakers only at this point), is punctuation. Say 'question mark', 'exclamation point', 'comma', or 'period' and the API will insert the correct punctuation for you," adds Klump.
The site aims to educate students about the workings of the ear
The Interactive Ear was created by Leeds-based agency Epiphany Solutions for its client Amplifon, which specialises in hearing aids, tests and solutions for the hard of hearing, and is targeted at both primary and secondary school level education.
The website showcases the three major parts of the ear's complex systems, encapsulated within a smoothly transitioning interface which enables the user to find out where sound goes, what happens and how it travels to the brain.
"In older browsers without the support, you still get a swift experience which works, but we get the absolute best for the people who have modern browsers. With the power of modern technology, we were able to make the ear itself 'feel' more real with a rollover effect which draws separate 'pieces' in to where the user is browsing.
"We knew how we'd create the magnifying glass area from a previous project which also involved masking content inside a circle. The issue we had was that if you have numerous elements inside a CSS border-radius circle, the elements within still show as though they are contained within a square, so the image absolutely had to be what we used – an animated GIF."
He also used D3.js for the drawing of his graphs. "Violin automatically finds and rewrites code so that when functions are called they also update and animate the graph. This is nice as it means you don't have to change how your code is written - Violin does all that work for you! In the demo, I've used Backbone to write a simple to-do list style app, and the graph is drawn using D3.js," he adds.
Items are arranged in a Pinterest-style layout, with minimal text
Khandelwal also describes the usage of Turn.js. "While developing magazine-style catalogues, we used Turn.js, an open source jQuery plug-in flexible enough to be adapted to our needs. We also liked that it was managing the page turn effect entirely with DOM elements."