4 Ways to Create Richer Web Experiences

CJ Gammon By CJ Gammon  |  Jul. 31, 2014

The Web has evolved a lot from being a simple document repository, and we now have browsers capable of rich visual interactions on desktop as well as mobile.

Because I’d like to talk about where the Web is headed in this article, many of the features I’ll cover may have limited support, so it is important to use resources like caniuse.com which has a robust list of features and charts specifying where they are supported.

Let’s take a dive into the four ways you can enhance your site UX:


1. CSS

CSS is the styling language for our documents, we tend to think of this in simple terms like changing font size or color, but it is becoming increasingly powerful with features like transforms and animations. We’re also getting new features to make it even more powerful.

If you’ve used Vector Masks in tools like Photoshop, you should be familiar with the idea behind CSS Clip Paths. This feature allows you to define a shape in CSS that defines the transparent and opaque parts of your HTML content. These work great with CSS Transitions for hiding and revealing UI elements. Similarly CSS Masks are making their way to the Web, which allow you to define the transparent parts of your content using an image. This allows you to use transparency more effectively in your designs for visual interest or textures.



2. SVG

Most of the images we find on the Web today are raster images, made up of pixels. This means that as we scale them or view them on higher resolution devices they get pixelated.

Vector graphics are awesome because they are made up of geometric primitives that retain their crisp edges at any size.

SVG is the vector format for the Web. We can use it to display graphics and even manipulate and animate its properties with CSS. Where SVG gets really powerful is when we combine it with scripting. Snap is a JavaScript library that makes it easy to manipulate and animate SVG content. It’s focused on modern browsers, so it supports the newest SVG features like groups and clip paths. Snap is open sourced on GitHub and we even used it to create a rich animated banner ad, you can read more about it in my blog.

And here’s a sample of an ad we did using SVG. 



3. 2D Canvas

2D Canvas is another powerful feature of the Web optimized for drawing shapes and images. It provides a JavaScript API that gives you granular control over your canvas element. It also gives you the freedom to integrate other forms of media, such as video, creating the potential for rich interactive buttons that play, pause or scrub video footage. 2D Canvas now supports blend modes, which allow you to mix the colors of layers in visually interesting ways, which you can read more about here.

We’re also starting to get support for alpha video that allows us to more seamlessly integrate video into our content. A fun example of alpha video is in OK Go’s music video ‘WTF’.

OK Go is known for elaborate music videos, and in this particular video they shot choreography in front of a green screen. Then using post processing continued to render the footage on top of itself creating a cool echo effect where the transparency was. We can reproduce this effect using 2D Canvas, but we can take it a step further and make it interactive using features like canvas blend modes to create new visual effects in real-time.



4. WebGL

WebGL provides a low level API for drawing hardware accelerated 2D and 3D graphics. The potential here is console style games, like Grand Theft Auto 5 running right inside your browser. As you can imagine WebGL gets somewhat complicated, fortunately open-source libraries like Three.js provide a great entry point with great examples to get you started. 

GitHub has become a great resource for the open source community. You can find Three.js and Snap on GitHub as well as other great libraries making it easier to do amazing work on the Web. I often put experiments and tools I make on GitHub as well, such as a camera spline tool I used to create camera paths for Three.js to fly through 3D worlds.



As we can see the Web is becoming increasingly diverse and powerful, it’s an exciting time to be a Web developer. The variety of technologies and resources we have access to are constantly growing, and it’s fun to see the rich experiences people are creating with them.