---
title: "App patterns explained : navigation\n    | Ubuntu"
description: When we design an app, we consider the different types of information
  we are communicating and their relationships to one another. This helps us establish
  what content is of equal importance, what we want to be able to do with it, what
  is a detailed view of something else and so on. We use three  […]
url: https://ubuntu.com/blog/app-patterns-explained-navigation?format=md
keywords: index, follow
---

1. [Blog](https://ubuntu.com/blog)
2. Article

---

[Canonical](https://ubuntu.com/blog/author/canonical "More about Canonical")

13 March 2013

# App patterns explained : navigation

[app design](https://ubuntu.com/blog/tag/app-design)
[app design guides](https://ubuntu.com/blog/tag/app-design-guides)
[app patterns explained](https://ubuntu.com/blog/tag/app-patterns-explained)
[Design](https://ubuntu.com/blog/tag/design)

---

Share the article

When we design an app, we consider the different types of information we are communicating and their relationships to one another. This helps us establish what content is of equal importance, what we want to be able to do with it, what is a detailed view of something else and so on.

We use three predominant navigation structures to navigate our apps: **flat**, **contextual** and **deep**.

## Flat

We call the navigation “flat” when the user moves between main views of functionality that have equal importance. These views are navigated by using the [tab](http://design.ubuntu.com/apps/building-blocks/tabs) navigation structure.

## Contextual

We call the navigation “contextual” when the user moves between different levels of detail within one view. These views are navigated by using the [expansion](http://design.ubuntu.com/apps/building-blocks/expansion) navigation structure.

## Deep

We call the navigation “deep” when the user moves up and down hierarchical levels of an application. These views are navigated by using the [page stack](http://design.ubuntu.com/apps/building-blocks/page-stack) navigation structure.

## One last thing

We don’t combine [flat](http://design.ubuntu.com/apps/global-patterns/navigation#flat) with [deep](http://design.ubuntu.com/apps/global-patterns/navigation#deep) navigation in the same view –
the page stack (deep navigation) introduces a back button which, when combined with tabs (flat navigation), could be misinterpreted as another method for navigating between tabs.

And that’s it! Keep these navigation patterns in your mind when you are designing your app.

Read about navigation and the building blocks to make it happen in the [App Design Guides](http://design.ubuntu.com/apps "App design guides").

[Get in touch

Interested in running Ubuntu in your organization?](https://ubuntu.com/about/contact-us/form)

## Newsletter signup

Get the latest Ubuntu news and updates in your inbox.

Work email:

\*I agree to receive information about Canonical's
products and services.

By submitting this form, I confirm that I have read and agree to [Canonical's Privacy Policy](https://canonical.com/legal/data-privacy).

Sign up

## Share on

---

## Related posts

[### Challenges designers face in open source (and how to fix them)](https://ubuntu.com/blog/challenges-designers-face-in-open-source-and-how-to-fix-them)

Open source powers up to 90% of modern software, yet many projects lack usability. Canonical’s Design team surveyed 115 cross-functional professionals to uncover the 4 core...

[Kola Ojoodide](https://ubuntu.com/blog/author/kola-ojoodide)

26 June 2026

[### Template: Streamlining open source design contributions](https://ubuntu.com/blog/template-streamlining-open-source-design-contributions)

As designers working at Canonical, we’re always thinking about open source. We believe that encouraging more designers to contribute to open source benefits everyone, from the...

[Nina Rojc](https://ubuntu.com/blog/author/ninarojc)

16 June 2026

[### Decoding design: How design and engineering thrive together in open source](https://ubuntu.com/blog/decoding-design-how-design-and-engineering-thrive-together-in-open-source)

Open source thrives on engineering-driven processes. Fast feedback loops, terminal tools, Git workflows: they’re the lifeblood of how we build software in the open. But for...

[Miguel Divo](https://ubuntu.com/blog/author/mdivo)

22 May 2026

[### Why web engineering is great](https://ubuntu.com/blog/why-web-engineering-is-great)

Hi, I’m Johann! I’m an engineering manager in Canonical’s web team. For the larger part of my 15 years of work experience as engineer, I’ve been working in web development....

[Johann Wolf](https://ubuntu.com/blog/author/johannwolf)

27 April 2026
