4 ways to create richer web experiences
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:
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.
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.
And here’s a sample of an ad we did using SVG.
3. 2D Canvas
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.
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.