What does it mean to be responsive?

Maureen Holland

A typical approach to responsive web design is “mobile-first”. Get the essentials right for the smallest canvas and then work up to the desktop design.

But how responsive is your design to user font size preference? Motion preference? Language?

One of the beautiful but difficult things about web design is how much control is in the hands of your users. The final product is not a static design file but a fluid web page, subject to all the possible settings a user can access in their device and browser.

Here are a few ways we took a broader definition of responsiveness into account during the refresh of our own silverorange.com website.

Font Family

When choosing a font, it’s always good to look at glyph and language support. If you’ve skipped this step, any unexpected characters will cause a jarring switch from your carefully chosen font to a generic fallback.

Remember how big a topic the TV series Shōgun was for a minute there? Every culture website got a mini-test in their font capabilities. Some did not pass. Arial Narrow Italic was an eyesore as a fallback.

Vulture website has an article discussing the TV show Shōgun. Dev tools are open on the side to show two fonts are used: the intended Elderkin font and a generic fallback Arial font for the character Elderkin can't render.

Stéphanie Walter has a whole presentation on the pain of navigating the web with a “special” character in one’s name. It gets a lot worse than poor aesthetics, particularly where forms are involved.

Aside from being able to properly render names, it’s worth noting that auto-translation is easier than ever, so you might as well assume your content is being rendered in multiple languages.

We made sure to pick fonts that could handle many glyphs and languages:

Font Size

We don’t want users to strain to read our content. While we try to offer generous default sizes, we have to consider these sizes might be adjusted based on user preference.

In deference to this, we use relative units for certain use cases. For font size and some spacing, we use rem to size things relative to the user’s chosen font size. For width media queries, we use em to ensure our design reflows as expected (as Polypane notes, em is the same as rem at media query level, and Safari is buggy with rems in media queries).

Here is the top of the site on Chrome with the default zoom and font size setting for a 1000px width screen:

An orange border runs across the very top of the page. Below that, a two column layout. The first column has a slice image and text. The second column has a tree and orange basket illustration.

Here it is with zoom set to 200%:

The layout is a single column. Top border, slice image, font size and spacing have all increased. The tree illustration is out of viewport.

Here it is with font size setting “Large”:

Under Chrome settings for Appearance, the dropdown for Font Size says Large is selected.
The layout is a single column. Font size and spacing have increased, but the top border and slice image have not changed in size. The tree illustration is in mobile orientation underneath the text.

Obviously, screen size isn’t the only variable in play here. It wouldn’t do the user or the design any good to force a two-column desktop layout when the single column mobile layout is more appropriate for these zoom and font size settings.

Color

Color contrast is one of the easiest wins you can get! There are many tools to help catch low contrast issues at a design and development level. Yet somehow, 79.1% of the top million home pages in the world fail to meet WCAG guidelines on color contrast.

We can do better.

Our designers have integrated color contrast checks into their workflow and we’ve created a culture where developers are able to speak up if something slips through. It’s never too late to raise a flag and ask for an adjustment.

The next step is to consider High Contrast Mode. I think Polypane gives a great overview of why that name is a bit of a misnomer:

What High contrast mode does is severely limit the palette of available colors, and lets users pick which colors those are, for the things that make up a UI:
  • Text
  • Background
  • Links
  • Buttons

Usually users will pick highly contrasting colors for the text and background. But they don't have to. They can also choose to avoid specific colors, create a sepia theme or specifically configure the theme to avoid contrast.

The main feature is that it limits and controls the range of colors, making it easier for users to emphasize content and UI in a way that works for them.

Ideally, you can test with an actual Windows device. But the Polypane browser also has a handy feature to toggle on High Contrast Mode, which allows a side-by-side comparison with the default setting site.

Two websites at desktop screen size side-by-side. The first is in dark High Contrast Mode, with the white tree illustration standing out against the dark background and a simple underline on the bright yellow link. The second site is not in High Contrast Mode: the tree illustration melds with the white background and the orange link has a fancy curved underline.

Very minor adjustments were needed to reach parity:

  • fill SVGs so they don't rely on white background for color
  • revert to the default underline link style instead of our fancy underline when the forced-colors media query is active

And voilà! The site responds beautifully to custom user theme colors.

Motion preference

With great power comes great responsibility and nowhere is this more evident on the web than in animation. Especially scroll-based animation. One user’s delight is another user’s migraine. Or vertigo. Or nausea.

We knew early on that animation would not feature strongly on the MVP version of the site. But we had some small touches in the smooth scroll to the contact section and a few gently waving leaves on our hero tree.

Small touches can still have big impacts. For users who indicate they prefer reduced motion, we remove these smooth scrolling and subtle animation styles.

Importantly, reduced motion does not necessarily mean no motion. We preserve a small animated size bump on the contact email at the bottom of the page when users jump to that section to clearly indicate this is the reason we've moved them.

As someone who often develops animation for the web, I can tell you I set the “reduced” preference a lot. There’s only so many times I’m going to be delighted by an animation I have to stare at for eight hours in a day.

A User-First Approach

When you really think about it, responsive design is more “user-first” than “mobile-first”. Truly responsive design is inclusive of preferences and considerate of circumstances beyond the device. We are responding to so much more than screen size.