top of page

Designing UX for Responsiveness

  • Writer: Craig Morris
    Craig Morris
  • Apr 1, 2023
  • 5 min read

Updated: Apr 1, 2023

In this article, I'll be discussing the guidance I set for responsive design at my previous company. These were the guidelines I set for my team, and I believe they can be useful to other design teams as well.


In my opinion, these guidelines will work best for a team that is working on enterprise apps, and many of them at once. This was the situation for my team. We were an enterprise B2B company and our product suite was quite large - with over 100 applications of various scopes all using the same design rules, components, etc.


We arrived at these guidelines after a long evolution of our processes and after solving a number of design and technical challenges. Additionally, some of these recommendations are pulled directly from the biggest players in the space (Google, Apple, Microsoft) or adapted from their guidance.


They may not work for everyone, but they worked well for us, and there is surely something in this article that can help your team.


Design for the smallest screen first

Start by designing for the smallest screens first. Scale your small-screen designs up into the larger form factors. This allows you to reuse content and layouts in larger form factors.


Trying to scale large screens down simply doesn't work as well in practice.


Column-based layout

Break the viewport into 4 or 8 or 12 columns, depending on the platform. Generally speaking, UI elements should be no less than 2 columns wide. Be careful using widths of an odd number of columns, because depending on your layout rules, it can cause layout problems on certain form factors. We avoided it at our company because our layout components didn't support them well.


The Navigation areas of apps are not part of the column layout. See diagrams below.

  • Large screens are broken into 12 columns.

  • Tablets are broken into 8 columns.

  • Mobile devices are broken into 4 columns.


Margins and Gutters per Device

For each layout, the margins (space around the main content) and the gutters (space between columns) are tailored for the specific device to deliver the cleanest layouts.

Screen width in px

Device Class

Columns

Gutter Width

Minimum Margin Width (px)

0-599 px

Mobile

4

8 px

16 px

600-839 px

Foldable / Small Tablet

8

8 px

16 px

840-1023 px

Tablet

8

8 px

16 px

1024-1379 px

Desktop

12

16 px

16 px

1380+ px

Widescreen Desktop

12

16 px

32 px


Size Classes

iOS's Size Classes are a simple way to account for platform differences in your layouts. They define how a UI should look at different sizes and on different devices.


Personally, when I discovered these, they were a revelation. They made it so much easier for me to keep track of which variants I needed to create, and I was able to mix and match different variations of content in order to get the ideal layouts for each Size Class.


See a description of each Size Class below, and some layout tips:


Compact Width

  • Condense content into single columns.

  • Spawn additional views on top of the existing view (instead of beside)


Regular Width

  • Use multiple columns.

  • Consider line length for readability.

  • Some elements may still fit best as a popover or modal.


Expanded Width

  • Show side menus or lists for selection of critical records.

  • Most items should not need to be popovers.


Compact Height

  • Condense multi-line content into fewer lines.

  • Consider progressive disclosure of lower-priority information.


Regular Height

  • Items can be taller.

  • Content sections can contain more information without needing to select to see more.


Mixing and matching the above 5 Size Classes ends up creating 6 variations:

  1. Regular Height, Expanded Width

  2. Regular Height, Regular Width

  3. Regular Height, Condensed Width

  4. Condensed Height, Expanded Width

  5. Condensed Height, Regular Width

  6. Condensed Height, Condensed Width

These six variations can support a wide variety of device types and sizes.



Size Classes per Device

See below for the specific pixel sizes per device to determine which size class each device layout should use.

Screen width

Device Class

Device Posture

Horizontal Size Class

Vertical Size Class

Columns

Gutter

Min. Margin Width

0-599

Mobile

Portrait

Condensed

Regular

4

8

16

Landscape

Regular

Condensed

8

8

16

600-839

Foldable / Small Tablet

Portrait

Condensed

Regular

8

8

16

Landscape

Regular

Regular

8

8

16

840-1023

Tablet

Portrait

Condensed

Regular

8

8

16

Landscape

Regular

Condensed

8

8

16

1024-1379

Desktop

Portrait

Condensed

Regular

12

16

16

Landscape

Regular

Regular

12

16

16

1380+

Widescreen Desktop

Portrait

Expanded

Expanded

12

16

32

Landscape

Expanded

Expanded

12

16

32


Examples

4 column Mobile - Portrait

4 column Mobile - Landscape

8 Column Tablet - Portrait

8 column Tablet - Landscape (Mobile app)

12 column desktop - landscape


12 column desktop (Expanded)


Consider leaving 1 column of padding around app content areas that are wider than 960px.




Element Sizing

Be careful when stretching elements on large devices to be the full width of the screen. Consider line length and readability. Form fields should be no more than 4 cols wide, except in some special cases, like a Search Call-to-Action.


Modals and Dialogs should be full-screen on small devices, but may be small windows on larger devices.


Typography

Font sizes can be set as small, medium, large (possible other varieties) and they will scale depending on the platform.


Components

  • Layout components can expand into multi-column layouts for larger screens, or shrink down into a single column.

  • On Mobile, an ApplicationMobileMenu (v.8.0) should be used for navigation

  • On Tablet or Desktop, an ApplicationMenu (v.8.0) should be used for navigation.

Canonical Layouts

These are standardized layouts that can be reused to help developers build responsive apps quickly.

List-Body

Full Page

Body-Detail







List-Body

Good for showing a list of records with complex details.


Full Page

Good for workhorse apps and dashboards, or full-screen grids.


Body-Detail

Good for browsing a large collection in the Body area, and viewing record details in the Details area.


Touch

Generally speaking, when a user initiates a touch scroll, their intention is to scroll either vertically or horizontally. So, for general user comfort, the following guidelines should be followed. We did have a few apps where a users preferred to pan freely, but these were never simple content lists (think Google Maps).


But, for most of our enterprise productivity apps, on every screen the following guidelines applied:


  • When scrolling vertically via touch, the horizontal scrolling functionality on a page or section or app should be disabled.


  • When scrolling horizontally via touch, the vertical scrolling functionality on a page or section or app should be disabled.


Safe Areas

  • Leave margins on the edges

  • Leave room for the any status information

  • Account for dynamic island or camera bump

  • Reserve space for virtual keyboards



Foldables

Foldables are devices with expandable screens. They have one or more "postures," which are configurations of the hardware (folded or unfolded).


Typically, foldables support a single-column posture in their compact mode.


Common postures

  • Folded Landscape

  • Folded Portrait

  • Unfolded Landscape

    • Break content into two columns, make sure the central gutter is centered in the fold. This may mean that the two columns are unequal widths (for instance, if the left side includes a navigation bar)

  • Unfolded Portrait

    • Reflow content into a single column

    • Use caution when using two columns as they may not be wide enough to accommodate the content

  • Tabletop - Two portions of the screen are perpendicular, with one edge resting flat on a table

Considerations

  • Posture transitions

  • Center Hinge

    • Avoid placing key information on the center hinge. This includes modal dialogs that appear in the center of the viewport, and content sections that may stretch across the hinge.

  • Edges and corners

    • Elements on the edges or corners can be hard to hit reliably and comfortably






Misc stuff

Context menus

For mobile these should be represented with an Action Sheet

For tablet, these should be represented by a Menu

For desktop, these should be represented by a Menu


Hover states

Items should have hover states when the device is using a pointer-based interaction mode (mouse cursor)

The cursor should change on hover to indicate navigable links

The cursor should change on hover of text content to indicate selection is possible It should NOT change when text is not editable or selectable


Keyboard

Software keyboards should appear when a user has focused an editable field. The virtual keyboard should not appear when a hardware keyboard is attached.


Keyboard Shortcuts

For devices with hardware keyboards, certain standard shortcuts should be supported where it makes sense

  • Copy (Ctrl-C / Cmd-C)

  • Cut (Ctrl-X / Cmd-X)

  • Paste (Ctrl-V / Cmd-V)

  • Delete (delete / backspace)

  • Submit (Enter)

  • Play/pause (Space)

Transitions

When moving from landscape to portrait modes and a list item is selected: show the detail view of the selected item following the transition to portrait mode.


If the user hasn't made a selection, return to the list view on portrait mode when switching orientation.


Drag and Drop

Coarse Targeting

Fine Targeting

Visual Indicators

Drop Zones

Persistent Zone

Hotspot

Pre-defined Zone

Windows


Sources

 
 
 

Comments


bottom of page