Skip to main content

What are you looking for?

Try searching for…

Patterns

Placement, order and language in buttons

How can we create a more predictable and inclusive experience by standardising button placement and order?

Updated April 22, 2026

Inconsistent placement and order of buttons create unnecessary friction. It increases the risk of errors and makes tasks harder, especially for people with reduced vision, motor challenges or cognitive barriers. When we use the same placement, order and language across solutions, the experience becomes more predictable. Users find their way faster and make fewer mistakes.

Design and experience

Limit the number of buttons

Limit the number of buttons to what the user actually needs in the situation. When each choice is clear and unambiguous, it becomes easier to understand what is happening and safer to click.1

Use the order primary, secondary, tertiary

As a general rule, buttons that appear in a group should always be presented in the order primary → secondary → tertiary.

Three buttons placed horizontally with the order primary, secondary and tertiary from left to right on a desktop screen, and vertically with the same order from top to bottom on a mobile screen.
Three buttons placed horizontally with the order primary, secondary and tertiary from left to right on a desktop screen, and vertically with the same order from top to bottom on a mobile screen.
Click the image or press Escape to close
The example above shows three buttons in a group, where the order primary → secondary → tertiary is followed on both mobile and desktop.

Place buttons to the left

Place buttons to the left in the interface. This makes them easier to find for all users, especially those with reduced visual fields or those using screen magnification.2

Three buttons placed to the left in the interface.
Three buttons placed to the left in the interface.
Click the image or press Escape to close
Place buttons to the left. This increases the likelihood that users will see them.
Three buttons placed to the right in the interface.
Three buttons placed to the right in the interface.
Click the image or press Escape to close
Avoid placing buttons to the right. Users must read less important options before reaching the primary action. It can also make the buttons harder to find for some users.

Practical examples

Modal (dialogue)
To create a predictable experience, buttons in a modal should be placed and ordered the same way as elsewhere.

Modal with the text 'Do you want to stay signed in?' and two buttons placed to the left in the order primary 'Keep me signed in' and secondary 'Sign out'.
Modal with the text 'Do you want to stay signed in?' and two buttons placed to the left in the order primary 'Keep me signed in' and secondary 'Sign out'.
Click the image or press Escape to close
Example of a modal with buttons placed to the left.

The close button (X) should be placed in the top right corner of the modal. It should have the same function as clicking outside the modal or pressing the Esc key. The modal closes, and if a question requires an answer, it should always fall back to the least intrusive or least destructive option for the user.

Popover
A popover is used for short, limited choices or confirmations that require immediate action without taking the user out of context. Buttons in a popover should follow the same placement and order as elsewhere.

Popover with the text 'Are you sure you want to delete the row? You cannot undo this' and two buttons placed to the left in the order primary 'Yes, delete row' and secondary 'Keep row'.
Popover with the text 'Are you sure you want to delete the row? You cannot undo this' and two buttons placed to the left in the order primary 'Yes, delete row' and secondary 'Keep row'.
Click the image or press Escape to close
Example of a popover with buttons placed to the left.

Single-page form
In forms where everything is completed on one page, the “Submit” button will usually be the only primary action.

Form with an input field and a primary button with the text 'Submit', followed by a secondary button with the text 'Cancel'.
Form with an input field and a primary button with the text 'Submit', followed by a secondary button with the text 'Cancel'.
Click the image or press Escape to close
Example of a form with a single page.

Multi-step form
Do not use a disabled “Previous” button on the first page of a multi-step form.3

Multi-step form where the first page has a primary button with the text 'Next step' and no secondary button.
Multi-step form where the first page has a primary button with the text 'Next step' and no secondary button.
Click the image or press Escape to close
The example above shows the first step of a form, which does not include a "Previous" button.

On the remaining pages, the “Previous” button should be placed near the “Next” button. Elements placed close to each other are perceived as related.4 Alternative actions such as “Continue later” or “Delete form” are different types of actions and should not be grouped with Next or Previous.

On small screens, “Previous” should appear below “Next”, following the main ordering principle. On larger screens, there are differing views on whether this rule should be broken. Some choose to prioritise reading and action direction, but there is currently no documented evidence that this is beneficial.

More insight needed
If you have insight into the placement of Next and Previous buttons, please share it in the ongoing discussion on GitHub.

Step 2 in a form with a primary button 'Next step' and a secondary button 'Previous step'. Next step appears first on desktop.
Step 2 in a form with a primary button 'Next step' and a secondary button 'Previous step'. Next step appears first on desktop.
Click the image or press Escape to close
This example follows the main rule that buttons in a group should be presented in the order primary → secondary → tertiary.
Step 2 in a form with a primary button 'Next step' and a secondary button 'Previous step'. Previous step appears first on desktop.
Step 2 in a form with a primary button 'Next step' and a secondary button 'Previous step'. Previous step appears first on desktop.
Click the image or press Escape to close
Here, an exception to the rule has been made on larger screens.

If you make an exception, it should only apply to larger screens, not small screens where buttons are stacked. It is important that the visual presentation matches the DOM. This can be solved by adding an extra button that is hidden with display: none; and completely removed for screen readers. See code example with extra button (nav.no).

Final step in a form
On the final step of a form, it should be clear that the user is submitting the form. “Submit” is the primary button.

Final step in a form with a primary button 'Submit' and a secondary button 'Previous step'.
Final step in a form with a primary button 'Submit' and a secondary button 'Previous step'.
Click the image or press Escape to close
The example above shows the final step in a form.

Language

Button text should always describe what happens when the user clicks. The text should be short and concise, ideally no more than three words. Use verbs in the imperative form, such as “submit” and “sign”.

Avoid abstract terms such as “OK” or “Cancel” when there are alternatives that clearly describe what happens. Users should not have to interpret the buttons. It should be obvious what happens when they click.

Avoid: A modal showing 'Are you sure you want to cancel?' with two buttons labelled 'OK' and 'Cancel'.
Avoid: A modal showing 'Are you sure you want to cancel?' with two buttons labelled 'OK' and 'Cancel'.
Click the image or press Escape to close
The question and button labels increase the risk of mistakes because it is unclear what happens when clicking.
Do: A modal showing 'Are you sure you want to exit without saving?' with two buttons labelled 'Exit without saving' and 'Continue editing'.
Do: A modal showing 'Are you sure you want to exit without saving?' with two buttons labelled 'Exit without saving' and 'Continue editing'.
Click the image or press Escape to close
Make it clear what happens. Describe both the action and the consequence in the text and the button.

Use the wording "Previous step"

Use the wording “Previous step” in forms instead of “Back”. This makes it clear that the action only takes the user to the previous step in the form, not out of the process.

Use “Cancel” consistently

“Cancel” should always mean that the user cancels an action without saving or changing anything. If there is a risk of data loss, consider asking: “Are you sure you want to cancel? Your changes will be lost.” When the function is something else, use terms that describe the action, such as “Save and continue later”. This removes the need for users to interpret what will happen.

Code

Focus order

The tab order should, as a main rule, follow the reading direction. This means that when a user navigates with the keyboard, focus should move through elements in the same order as they are visually presented.5-6

If “Next” is placed to the right of “Previous”, it may be tempting to change the focus order in the code so that users reach “Next” first. This should be avoided, as it creates unpredictable behaviour for keyboard users. It is better that the focus order matches the visual order. This provides a predictable and accessible user experience.

Relevant sources

Edit this page on github.com (opens in a new tab)