Design

SaaS Tabs & Segmented Control UX: Real Screenshots & UX Patterns (2026)

Tabs are the quiet workhorse of SaaS interfaces — the row of choices at the top of a settings page, a profile, a record detail, a dashboard — and they do a very specific job: divide one context into a few peer sections and let a person move between them without leaving the page or losing their place. A good tab set reads instantly: you can see all the sections at once, you know which one you are in, switching is immediate, and the layout does not jump as content swaps. Done badly, tabs hide the sections you need, blur which one is active, reload the whole view on every switch, shift everything down when a taller panel loads, and break the moment someone reloads the page or shares the URL. This guide covers the patterns that make tabs and segmented controls genuinely useful: choosing tabs versus a segmented control versus sub-navigation, making the active state unmistakable, keeping switches instant and layout stable, encoding the active tab in the URL, handling overflow when there are too many, and getting keyboard and screen-reader behaviour right — each shown with real SaaS screenshots instead of mockups.

Rakesh Mondal

Rakesh Mondal

Ai Native SaaS UX UI Product Designer

·14 min read
Share

Tabs are one of the most-used and least-discussed controls in SaaS. Open almost any product and they are there: the sections across the top of a settings page, the switcher between Overview, Activity and Members on a record, the row that flips a dashboard between chart and table, the segmented toggle that swaps a list between "Mine" and "All". They do a job that sounds trivial and is not — take one context that has a few distinct facets and let a person move between those facets in place, without a full navigation, without losing scroll position or in-progress work, and without pretending each facet is a separate page. When tabs work you barely notice them; you see every section at once, you always know which one you are in, and switching feels like turning a card over rather than loading a new screen.

Clickup Dashboard screen with real SaaS Collaboration UI patterns - SaaSUI design example
Clickup logo
Clickup
Collaboration·Dashboard
View all

Clickup — a real dashboard screen from the SaaSUI library.

The failure modes are just as ordinary as the pattern. Tabs that hide the very section a person came for behind an overflow menu or off the edge of the screen. An active state so subtle that people cannot tell which tab they are on, so they click around to reorient. A switch that re-fetches and re-renders the whole view, so a control meant to feel instant stalls for a second every time. Content panels of different heights that shove the page up and down as you move between them, undermining the sense that these are peers. And the quiet betrayal of state: you configure a filter on one tab, switch away, come back, and it is gone — or you reload the page and land on the wrong tab, or you share the URL and your teammate sees the default section instead of the one you meant. This guide walks through the patterns mature products use to keep tabs fast, legible and trustworthy — each shown with real SaaS screenshots so you can see how shipped tools actually solve them.

Choose tabs, a segmented control, or sub-navigation deliberately

Before styling anything, the real decision is which control the situation calls for, because tabs, segmented controls and sub-navigation look similar and mean different things. Tabs are for a small set of peer sections within a single object or context — the facets of one record, one settings area, one dashboard — where all the sections belong together and a person will move among them. A segmented control is a tighter cousin: a compact, mutually-exclusive switch, usually two to four options, that changes how the same content is shown rather than which section you are viewing (list versus board, day versus week versus month, chart versus table). Sub-navigation is for sections that are really separate destinations — different URLs, different data, sometimes different permissions — that happen to live under one area; those deserve nav links or a side menu, not tabs, because treating destinations as tabs breaks the browser model and the mental model at once. The products that feel coherent pick the control that matches the relationship: peers of one thing get tabs, a view-mode toggle gets a segmented control, and genuinely distinct destinations get navigation. Getting this choice right upstream removes most of the awkwardness people try to style away later.

Close Crm Dashboard screen with real SaaS CRM UI patterns - SaaSUI design example
Close Crm logo
Close Crm
CRM·Dashboard
View all

Close Crm — a real dashboard screen from the SaaSUI library.

Make the active tab unmistakable

The single most important job of a tab set is to answer, without a moment of doubt, "which section am I in?" — and it is the thing weak implementations most often get wrong. An active tab needs more than one differentiating signal, because any single cue can be missed: the winning pattern pairs a clear indicator (an underline or filled pill on the active tab) with a genuine weight and colour contrast against the inactive tabs, so the current section reads as selected even at a glance and even for someone who does not perceive the accent colour. Inactive tabs should look clearly interactive but plainly secondary, so the set reads as "here are the sections, and this is the one you are on" rather than a row of equally-weighted buttons. The contrast between active and inactive is doing the real work; a common mistake is making the accent so gentle, or the inactive state so dark, that the two blur together and people lose their place. When the active tab is unmistakable, a person never has to click a tab just to find out where they already are.

Coda Dashboard screen with real SaaS Document Management UI patterns - SaaSUI design example
Coda logo
Coda
Document Management·Dashboard
View all

Coda — a real dashboard screen from the SaaSUI library.

Keep switching instant and the layout stable

A tab exists to feel faster than navigating, so the two things that most define its quality are speed and stability. Speed means a tab switch should feel immediate — the target of well under a fifth of a second that separates "instant" from "loading" — which usually argues for rendering already-loaded panels the moment they are selected and treating any data a tab needs as something to fetch quietly, with the panel showing its own inline loading state rather than blocking the switch. The switch itself deserves restraint: a quick crossfade or a moving indicator is plenty, and animating the whole panel in and out on every click makes a frequently-used control feel slow and unserious. Stability is the other half. Panels of different heights that push the surrounding page up and down as you switch are one of the most jarring small failures in SaaS UI, because it makes tabs feel unreliable and can move a button out from under a cursor mid-click. Mature implementations reserve or stabilise the content area so the tab row and the frame around it stay put, and only the panel contents change. Instant switching with a stable frame is what makes a set of tabs feel like facets of one object rather than a sequence of pages.

CommandBar Dashboard screen with real SaaS App Experience UI patterns - SaaSUI design example
CommandBar logo
CommandBar
App Experience·Dashboard
View all

CommandBar — a real dashboard screen from the SaaSUI library.

Decide what tab content should preserve versus reset

Speed is not only about first render; it is about whether a tab remembers. When a person configures something on a tab — a filter, a sort, a half-typed note, a scroll position deep in a long panel — and then switches away and back, the expectation for most working surfaces is that the tab is where they left it, not reset to defaults. Blowing that state away on every switch quietly punishes exactly the power users who move between tabs most. The craft is deciding, per tab, what should persist (view configuration, in-progress input, selection) and what should legitimately refresh (time-sensitive data, which can reload in the background while the old content stays visible). The safe default is to preserve interaction state and refresh data quietly, so switching tabs feels like glancing at another facet of the same object rather than starting over each time.

Put the active tab in the URL

A tab is part of where a person is, and the products that respect that encode the active tab in the URL rather than keeping it only in memory. The payoff is large and mostly invisible until it is missing: reloading the page keeps you on the tab you were reading instead of dropping you back to the default; the browser back button steps between tabs the way a person expects; and a link a teammate shares opens on the exact section they meant — "look at the Members tab" actually lands on Members. Without URL state, all three break in small, trust-eroding ways: a refresh loses your place, back exits the whole view, and a shared link is a shrug. The pattern is simple — reflect the active tab as a query parameter or path segment, restore it on load, and update it as the user switches — and it costs little, but it is the difference between tabs that behave like a real location and tabs that are a purely visual toggle. For any tab set a person might link to, bookmark, or return to, URL-encoded state should be the default, not an enhancement.

Confluence Dashboard screen with real SaaS Document Management UI patterns - SaaSUI design example
Confluence logo
Confluence
Document Management·Dashboard
View all

Confluence — a real dashboard screen from the SaaSUI library.

Handle overflow before the tabs run off the screen

Tabs are comfortable at a handful and start to strain as the count grows, and how a product handles that growth — especially on narrow and mobile widths — separates a considered tab set from one that simply breaks. The first defence is editorial: if a context needs eight or ten tabs, that is often a sign the sections should be grouped or that some belong in sub-navigation rather than a flat row. When many peer tabs genuinely are needed, the reliable patterns are horizontal scrolling with a clear affordance that more tabs exist off-screen, or a "more" overflow menu that collects the extras while keeping the most-used tabs visible — never tabs that silently wrap into a second confusing row or vanish past the edge with no hint they are there. Whatever the mechanism, the active tab must always be reachable and visible, scrolling into view when selected, so a person is never stuck on a section they cannot see. Handling overflow deliberately is what lets a tab set survive real-world content — long labels, many sections, small screens — without turning into a guessing game.

Cycle Dashboard screen with real SaaS App Experience UI patterns - SaaSUI design example
Cycle logo
Cycle
App Experience·Dashboard
View all

Cycle — a real dashboard screen from the SaaSUI library.

Make tabs keyboard- and screen-reader-accessible

Tabs are a defined interaction pattern with real expectations, and honouring them is what makes the control work for keyboard and assistive-technology users rather than only for a mouse. The established behaviour is a roving focus: the tab row is a single tab stop, arrow keys move between tabs, and Enter or Space activates — so a keyboard user reaches the tabs with one Tab press and steps through sections with arrows, instead of tabbing through every tab individually. Under the hood, the tab list, the tabs and their panels need the right roles and relationships so a screen reader announces "tab, 2 of 4, selected" and moves focus into the correct panel on activation. And accessibility here is not only about ARIA: the active state must be distinguishable without relying on colour alone (the shape or weight cue from earlier does double duty), and focus must be clearly visible as it moves. Products that implement the full pattern make tabs feel native and effortless to everyone; products that build tabs out of plain clickable divs leave keyboard users unable to reach half the interface. The good news is this is a solved, well-specified pattern — the work is choosing to implement it rather than reinventing a control that only responds to a click.

The details that separate a trustworthy tab set from a row of buttons

As with most SaaS patterns, each decision is simple on its own; the quality comes from getting the whole set right together. These are the behaviours mature tab and segmented-control implementations share.

  • The control matches the relationship: peer sections of one object get tabs, a view-mode switch gets a segmented control, and genuinely separate destinations get sub-navigation — not tabs.
  • The active tab is unmistakable, carrying at least two signals (an indicator plus weight/colour contrast) so the current section reads at a glance and without relying on colour alone.
  • Switching is instant — well under ~200ms — with any needed data fetched quietly behind an inline panel loader rather than blocking the switch.
  • Transitions are restrained (a quick crossfade or moving indicator), not a full panel animation on every click.
  • The layout stays stable across tabs: the frame and tab row hold their position and only the panel contents change, so nothing jumps.
  • Tabs preserve interaction state (filters, input, selection, scroll) by default and refresh only time-sensitive data, quietly, in the background.
  • The active tab lives in the URL, so reload, back/forward and shared links all land on the right section.
  • Overflow is handled deliberately — horizontal scroll with an affordance or a "more" menu — and the active tab is always reachable and scrolled into view.
  • The full keyboard/ARIA tab pattern is implemented: roving focus, arrow-key movement, correct roles, visible focus, and focus moved into the active panel.

Common SaaS tab & segmented-control mistakes

  • Using tabs for genuinely separate destinations (different data, URLs or permissions), which breaks the browser model and the mental model at once.
  • An active state so subtle — or an inactive state so dark — that people cannot tell which tab they are on and click around to reorient.
  • Re-fetching and re-rendering the entire view on every switch, so a control meant to feel instant stalls each time.
  • Content panels of different heights that shove the page up and down as you switch, sometimes moving a button out from under the cursor.
  • Discarding filters, input or scroll position whenever a person leaves and returns to a tab, punishing the power users who switch most.
  • Keeping the active tab only in memory, so a reload, the back button and shared links all drop people on the default section.
  • Too many tabs that wrap into a confusing second row or run off-screen with no scroll affordance or overflow menu.
  • Tabs built from plain clickable divs with no roving focus, roles or arrow-key support, leaving keyboard and screen-reader users stranded.

Frequently asked questions

When should I use tabs versus a segmented control?

Use tabs when you are dividing one context into a few peer sections that each have their own content — the Overview, Activity and Members of a record, or the sections of a settings area — and a person will move among them to do different things. Use a segmented control when you are switching how the same content is presented rather than which section you are in: list versus board, day versus week versus month, chart versus table. The practical tells are size and meaning. A segmented control is compact, holds two to four mutually-exclusive options, and changes a view mode; tabs are a wider row of labelled sections, each with a distinct panel behind it. If the options change what you are looking at, they are probably tabs; if they change how you are looking at the same thing, a segmented control usually reads better. When in doubt, ask whether the choices are "sections of this object" (tabs) or "ways to render this object" (segmented control).

Should the active tab be stored in the URL?

For any tab set a person might reload, bookmark, link to, or return to, yes — the active tab should live in the URL, as a query parameter or path segment. Encoding it there gives you three behaviours people quietly expect: a page reload keeps them on the tab they were reading, the browser back button steps between tabs instead of exiting the whole view, and a shared link opens on the exact section the sender meant. Keeping the active tab only in component memory breaks all three in small, trust-eroding ways. The rare exception is a lightweight, ephemeral toggle inside a transient surface — a segmented control in a popover, say — where nobody would reasonably link to a specific state; there, in-memory is fine. But for the tabs on a page a person navigates to, URL-encoded state should be the default rather than an afterthought.

How many tabs are too many?

There is no hard number, but comfort drops quickly past roughly five to seven peer tabs, and the strain shows first on narrow and mobile screens where a long row cannot fit. If a context seems to need eight or ten tabs, treat that as a design signal rather than a styling problem: often some of those sections are really separate destinations that belong in sub-navigation, or several can be grouped under fewer, better-named tabs. When many peer tabs genuinely are necessary, do not let them wrap into a confusing second row or run off the edge — use horizontal scrolling with a clear affordance that more exist, or a "more" overflow menu that keeps the most-used tabs visible, and always scroll the active tab into view. The goal is that a person can see the sections available and reach any of them, including the one they are on, regardless of how many there are or how wide their screen is.

Study real SaaS tabs and segmented controls in the SaaSUI library

Every pattern above is easier to apply when you can see how real products solved it. Browse real tab and segmented-control implementations — unmistakable active states, instant and stable switching, URL-driven sections, overflow handling, and view-mode toggles — from shipped SaaS applications like Linear, Notion, Stripe, Asana and other tab-heavy tools in the SaaSUI.Design library, with real screenshots instead of mockups, to study how mature products keep tabs fast to read, stable to switch, and trustworthy to return to.

Rakesh Mondal

Written by

Rakesh Mondal

Ai Native SaaS UX UI Product Designer

Connect on LinkedIn

Interested in sponsoring SaaSUI.Design? Learn about sponsorship options →