Responsiveness

Responsiveness

Ensures your application scales beautifully across devices, from phones to wide displays.

Who is this for?

This document is relevant for everyone who works on the UI, that includes UX designers, visual designers, and UI engineers. It covers requirements, specs, and foundations for how to make a page responsive. 

Requirements

We are required to make our UI completely usable for all screen sizes at 400% zoom from the starting point of 1280x1024px. 

Content can be presented without loss of information or functionality, and without requiring scrolling in two dimensions for:

  • Vertical scrolling content at a width equivalent to 320 CSS pixels;

  • Horizontal scrolling content at a height equivalent to 256 CSS pixels.

Standard Breakpoints

The following breakpoints are required as part of our accessibility guidelines. Breakpoints based on screen width are the following:

  • 1440px +

  • 1200px

  • 1024px

  • 770px

  • 640px

  • 480px

  • 320px and below


Summary

These are the main things that needs active definition from design and engineering.

  • By default, most text will be wrapped, you need to decide if you want it truncated instead

  • The default tabs variant isn't responsive, you need to turn on the adaptive prop

  • Breadcrumbs need active definition as it is more of a layout than a component

  • Widgets mainly just need a minimum width

  • Input forms need a maximum width

  • Steps and anchors need to be switched to different variants at specific breakpoints

  • Non-EBR tables need fixing of the first column when the table width is narrower than the total of all columns.

  • Any custom layouts needs to be fully tested.

Legend

✅ component is fully responsive out of the box

📏 component or layout needs active definition from design and engineering 

Navigation 

Header ✅

The header has three responsive elements, app switcher, domain switcher, and the search bar:

  • When there is not enough space, the app name is hidden from the app switcher

  • The domain name is always visible, but will middle truncate if there is not enough space

  • The search bull will turn into an icon + overlay when there’s no space available

Side Navigation ✅

  • The side menu uses percentage with min and max widths

  • Below 769px, the side menu cannot be locked and is shown as an overlay

Subnavigation 📏

Tabs 📏

In subheaders with tabs, tabs are expected to be the item that shrinks in narrower screens. Whenever you’re using tabs, you should always use the adaptive variant. Adaptive tabs is a prop that when turned on, automatically truncates all tabs that can’t fit on the screen into one tab. 

Breadcrumbs 📏

Breadcrumbs are a lot wider than tabs, even when shrunk and made responsive. Because of that, you will need to set a max width to the entity name at smaller breakpoints. To achieve this you need to set your own breakpoints based on your content.

[Here are some examples you can use]

Side Menu 📏

The side navigation will have an overlay variant that slides in from the left side of the page. You will need to set your own breakpoints.

Dashboards (examples)

Widgets 📏

The widgets layout is based on the minimum width of the widget, which can be customized. An easy way to test the responsiveness of your dashboard layout is:

  1. Set autolayout to wrap 

  2. Set minimum width to all widgets

  3. Set widget width to fill 

Entity Browser (examples)

Table 📏

  1. All columns will have a minimum width of 100px by default - this can be changed 

    1. This is the main part designers need to worry about when designing list views for EBR. 

  2. If the table width is less than the sum of all columns’ minimum width, the first column will be fixed, the table will be horizontally scrollable. At the lowest break point, the first column will be unfixed.

Actions ✅

Secondary buttons collapse into the more actions dropdown at lower breakpoints.  

Side Panel 📏

When designing side panel content, make sure to test your content for the small and large side panels in all breakpoints. 

  • Small panel: 30%

  • Large panel: 50%

  • Minimum width: 400px

At lower breakpoints, the side panel is shown as a full page modal. 

Filter Panel ✅

Filter Bar ✅

Full Page Forms 📏

Content Width 📏

  • Full width: if your content uses the full width of the modal, all you need to test is how it shrinks with the modal

  • Custom width: If you’re using fixed width, 700px for example

    • Set the max width to that number

    • And set the width to fill container, that way it shrinks if there is less than 700px available for the content

Vertical Steps 📏

When using vertical steps you will need to switch to horizontal steps at either of the 1024 or 770 breakpoints depending on the content width. 

Horizontal Steps 📏

The horizontal steps component will have a shrunk version that you can switch to at your chosen breakpoint, depending on how long the names are and the number of steps. 

Anchor Menu 📏

Just like vertical steps, the anchor menu will have a vertical variant that can be placed as a subheader. 

Breakpoints

These are the breakpoints to follow when designing for responsiveness, make sure to apply these on the content area instead of the view port, which can be affected by the navigation side menu.

  • 1441px +

  • 1201p - 1440px

  • 1025px - 1200px

  • 770px - 1024px

  • 769px>

Testing Responsiveness

Make sure to test any custom layouts or any designs you're uncertain of on all of the following screen sizes. An easy way to test all the breakpoints, is to test each breakpoint at its lowest and highest value:

  • 1440

    • Using the 1440+ breakpoint specs

    • Using the 1200-1440 breakpoint specs

  • 1200

    • Using the 1200-1440 breakpoint specs

    • Using the 1024-1200 breakpoint specs

  • 1024

    • Using the 1024-1200 breakpoint specs

    • Using the 770-1024 breakpoint specs

  • 770

    • Using the 770-1024 breakpoint specs

    • Using the 770- breakpoint specs

  • 640

    • Using the 770- breakpoint specs

Handing Off & Annotation

Here are some examples of how to annotate for responsiveness when handing off:

  • Min, max, fill container, hug content

  • Breakpoints


Help make this page more useful.

Help make this page more useful.