Responsive layouts

Design for all devices and display sizes

Default viewport

When designing, our main focus is to optimise Productboard for enterprise customers who usually own a device with larger viewport. While this allows you to increase the information density on the scene, simply designing for one does not meet the required standard for modern web. You should always check whether the design works for major breakpoints and add necessary changes and rules where need be.

breakpoint-xl

2560px

breakpoint-lg - default in Figma

1440px

breakpoint-md

1024px

breakpoint-sm

768px

breakpoint-xs

320px

 

Type scaling

We scale text size according to each breakpoint. You don’t need to make any manual text style changes between them as this is applied globally for the same type scale. Smaller breaks reduce the size of headings, while in the largest breakpoint we increase the size of the body text to make better use of additional space.

Ag
35.74px
font-size
30px in lg breakpoint. Use as title when there is a lot of space around, e.g. as title in large modals.
Ag
30px
font-size
24px in lg breakpoint. Use after Level 1 in long-form content or as H1 in Editor.
Ag
25px
font-size
20px in lg breakpoint. Use as a title in confirmation dialogs, as H2 in Editor or after Level 2 in text hierarchy.
Ag
20px
font-size
16px in lg breakpoint. Use after Level 3 in long-form content or as titles in dropdowns or smaller wrappers. Works great as a single level title above 14px paragraph.
Ag
17.5px
font-size
14px in lg breakpoint. Use as title in Cards, as a title when following by one 14px paragraph (e.g. in tooltips or checkmarks) or after Level 4 in long-form content.
Ag
20px
font-size
16px in lg breakpoint. Use to provide blocks of text a bigger emphasis or combine with larger heading for better size distribution.
Ag
17.5px
font-size
14px in lg breakpoint. This is our default size, go with this one if you don't know which.
Ag
16.25px
font-size
13px in lg breakpoint. Use this size one only in exceptional cases. It's recommended to choose between 12px or 14px for best optical size..
Ag
15px
font-size
12px in lg breakpoint. Use for not-as-important information, ideally with larger contrast in background and foreground color.
Ag
10px
font-size
10px in lg breakpoint. Only use this in extreme situations. Text with this size should be bold and uppercase.
Ag
30px
font-size
30px in lg breakpoint. Use as title when there is a lot of space around, e.g. as title in large modals.
Ag
24px
font-size
24px in lg breakpoint. Use after Level 1 in long-form content or as H1 in Editor.
Ag
20px
font-size
20px in lg breakpoint. Use as a title in confirmation dialogs, as H2 in Editor or after Level 2 in text hierarchy.
Ag
16px
font-size
16px in lg breakpoint. Use after Level 3 in long-form content or as titles in dropdowns or smaller wrappers. Works great as a single level title above 14px paragraph.
Ag
14px
font-size
14px in lg breakpoint. Use as title in Cards, as a title when following by one 14px paragraph (e.g. in tooltips or checkmarks) or after Level 4 in long-form content.
Ag
16px
font-size
16px in lg breakpoint. Use to provide blocks of text a bigger emphasis or combine with larger heading for better size distribution.
Ag
14px
font-size
14px in lg breakpoint. This is our default size, go with this one if you don't know which.
Ag
13px
font-size
13px in lg breakpoint. Use this size one only in exceptional cases. It's recommended to choose between 12px or 14px for best optical size..
Ag
12px
font-size
12px in lg breakpoint. Use for not-as-important information, ideally with larger contrast in background and foreground color.
Ag
10px
font-size
10px in lg breakpoint. Only use this in extreme situations. Text with this size should be bold and uppercase.
Ag
26.25px
font-size
30px in lg breakpoint. Use as title when there is a lot of space around, e.g. as title in large modals.
Ag
20px
font-size
24px in lg breakpoint. Use after Level 1 in long-form content or as H1 in Editor.
Ag
18px
font-size
20px in lg breakpoint. Use as a title in confirmation dialogs, as H2 in Editor or after Level 2 in text hierarchy.
Ag
16px
font-size
16px in lg breakpoint. Use after Level 3 in long-form content or as titles in dropdowns or smaller wrappers. Works great as a single level title above 14px paragraph.
Ag
14px
font-size
14px in lg breakpoint. Use as title in Cards, as a title when following by one 14px paragraph (e.g. in tooltips or checkmarks) or after Level 4 in long-form content.
Ag
16px
font-size
16px in lg breakpoint. Use to provide blocks of text a bigger emphasis or combine with larger heading for better size distribution.
Ag
14px
font-size
14px in lg breakpoint. This is our default size, go with this one if you don't know which.
Ag
13px
font-size
13px in lg breakpoint. Use this size one only in exceptional cases. It's recommended to choose between 12px or 14px for best optical size..
Ag
12px
font-size
12px in lg breakpoint. Use for not-as-important information, ideally with larger contrast in background and foreground color.
Ag
10px
font-size
10px in lg breakpoint. Only use this in extreme situations. Text with this size should be bold and uppercase.
Ag
24px
font-size
30px in lg breakpoint. Use as title when there is a lot of space around, e.g. as title in large modals.
Ag
20px
font-size
24px in lg breakpoint. Use after Level 1 in long-form content or as H1 in Editor.
Ag
18px
font-size
20px in lg breakpoint. Use as a title in confirmation dialogs, as H2 in Editor or after Level 2 in text hierarchy.
Ag
16px
font-size
16px in lg breakpoint. Use after Level 3 in long-form content or as titles in dropdowns or smaller wrappers. Works great as a single level title above 14px paragraph.
Ag
14px
font-size
14px in lg breakpoint. Use as title in Cards, as a title when following by one 14px paragraph (e.g. in tooltips or checkmarks) or after Level 4 in long-form content.
Ag
16px
font-size
16px in lg breakpoint. Use to provide blocks of text a bigger emphasis or combine with larger heading for better size distribution.
Ag
14px
font-size
14px in lg breakpoint. This is our default size, go with this one if you don't know which.
Ag
13px
font-size
13px in lg breakpoint. Use this size one only in exceptional cases. It's recommended to choose between 12px or 14px for best optical size..
Ag
12px
font-size
12px in lg breakpoint. Use for not-as-important information, ideally with larger contrast in background and foreground color.
Ag
10px
font-size
10px in lg breakpoint. Only use this in extreme situations. Text with this size should be bold and uppercase.

 

Using breakpoints in Figma

In Figma, breakpoints are supported as variable collections. You can simply swap the collection to a different break and preview how your design looks on different device.

 

Component variants

Sometimes, you’ll need a separate component or variant for particular breakpoint, f.e. switching navigation panel to mobile layout on smaller viewports. We have a specific Figma variable for this called component-responsive. You can create create responsive variants by:

  1. Creating a component with a variant for each breakpoint change.
  2. Name the variants according to the breakpoint mode, f.e. “xl“, “lg“…
  3. Place an instance of the component in your design.
  4. In the props panel, assign component-responsive to the variant
  5. Done! You should now see component swapping between variants when you’re swapping variable collections. 🥳

Since we’re saving responsive variants inside a Figma variable, you can also alter all components inside a prototype. This gives you a powerful way to modify many components at once using a simple trigger.

In the example above, we’re showcasing a single responsive frame in Figma prototype by changing one mode and variable.

 

Best practices

Do

Build layouts using auto layout, layout grids and grid so elements react to changes in width.

Caution

Avoid building layouts with groups. Groups in Figma are only used to put multiple layers into a section inside layers panel.

Do

Assign breakpoint variables to parent frame so its resolution will change with mode.

Don't

Don't design inside section. Sections are not able to use auto layout and elements inside them are not able to set layout constraints.

Do

Name responsive component variants according to their breakpoint, f.e. "xs".

Don't

Avoid custom naming responsive component variants. These won't be able to react with the global variable.

Do

Assign global responsive variable to component instances to see them change.