In-page navigation

In-page navigation is a navigational component for exploring content within a single page. Users can scan the page structure, jump directly to sections, and understand their current position as they scroll.

In-page navigation example

Anatomy

1
Heading
An optional heading that indicates the scope and purpose of the items displayed beneath it. Only be used when it targets a specific content group, not the entire page.
2
Anchor link item
Anchor link items that navigate to corresponding sections, with default, hover, and active states, and an optional secondary level.
3
Active item indicator
A visual indicator that marks the currently visible section. Only one item can be active at a time.
4
Primary item heading
A primary level item heading that maps to H2 headings by default. If the component is manually scoped to a specific content area, the primary level can map to H3 headings instead
5
Secondary item heading
An optional secondary level can be added, which maps to the next heading hierarchy.
6
Collapsed variant
A collapsed navigation bar displaying the current section from the primary-level items on smaller screens, with a chevron button to reveal the expanded variant.
7
Chevron button
A chevron button used to expand and collapse the navigation list.
8
Expanded variant
A full navigation state exposing all anchor links on smaller screens, with a chevron button to collapse the list.
In-page navigation anatomy

Usage

In-page navigation is intended for pages with structured, section-based content where users benefit from an overview of the page and quick access to specific sections.

The in-page navigation can either apply to a full page after the Hero or be manually scoped to specific sections.

When used at a full-page scope, only one instance is allowed per page. When manually scoped, multiple instances may be used as long as their scopes do not overlap.


Full-page and manually scoped instances cannot be used together.

Component structure

  • The component is structured around section headings within the page.
  • Headings in the Hero section are excluded from the in-page navigation.

Usage scope

  • The component can be used for an entire page or manually applied to specific sections or groups of content.
  • When a full-page scope is used, only one component is allowed per page.
  • When scoped to specific sections, multiple components may be used.
    • There is an option to add a Heading on top of the in-page navigation component, which can be helpful in cases where the in-page navigation targets specific sections
    • When multiple manually scoped components are used, their scopes must not overlap.

Component placement

  • It is placed after the Hero section and applies only to content that follows the Hero.
  • On initial load, the component position is fixed.
  • As the user scrolls, the component transitions to sticky positioning once its container reaches the domain/bubble navigation boundary (24px below on desktop).
  • When scoped to specific sections, it starts with the first section and remains sticky until the last section scrolls out of view.
  • Large dimension: The in-page navigation is positioned in the left two-column rail.
  • Small and medium dimension: The component spans the full screen width.

Anchor scroll offset

The scroll anchor offset ensures that the target section heading remains fully visible after in-page navigation interactions. It is determined by whether the domain/bubble navigation is sticky and by the screen size.

Sticky domain/bubble navigation

  • Large dimension: 80px
  • Small and medium dimension: 120px

Fixed domain/bubble navigation

  • Large dimension: 24px
  • Small and medium dimension: 72px

When to use

  • The page has structured, section-based content and users benefit from an overview and quick access to specific sections
  • The page is long-form or content-heavy with clearly defined thematic sections
  • Users need to understand their current position while scrolling
  • Scanning the page structure and navigation between sections improves usability

When not to use

  • Short pages where all the content is visible without scrolling
  • Pages with few sections or no clear heading structure
  • Highly modular or card-like layouts with no clear hierarchy
  • When in-page navigation would add unnecessary complexity without improving usability

Examples

Large dimension, full-page, before scrolling (fixed position)

example.png

Large dimension, full-page, after scrolling (sticky position)

example-2.png

Large dimension, manual scope with the optional Heading

example-4.png

Large dimension with independent scrolling by overflow

example-9.png

Small dimension in the collapsed variant, full-page, before scrolling (fixed position)

example-5.png

Small dimension in the collapsed variant, full-page, after scrolling (sticky position)

example-7.png

Small dimension in the expanded variant, full-page, after scrolling (sticky position)

example-8.png

Small dimension in expanded variant, manual scope with the optional Heading

example-6.png

Properties

Name Type Required Description Constraint Options Default option
Heading string No The heading of the in-page navigation in muted heading style Up to 60 characters - -
Item object Yes The navigation item represented as an object. The hierachy and order of the navigation should be reflected in the object to a maximum of 2 levels deep. - - -
Primary level single select Yes Defines how primary-level navigation items are generated. - - H2 - H3 - only used when the in-page navigation is scoped to specific sections or content group. H2
Secondary level single select No Defines how secondary-level navigation items are generated under the primary level. - - H3 (when primary is H2) - H4 (when primary is H3) H3
Item heading string Yes The item heading as it will appear in the navigation item - - -
Item ID string Yes The ID of the target heading - - -
Scope string No Defines whether the in-page navigation applies to the entire page or is manually limited to a specific sections or content group. - - Full-page - Manual Full page

Change log

WhoWhenWhat
Maximilian Blazek13.02.2026Added links
Isaac Kim23.02.2026Add description, usage guidelines, examples and properties.
Isaac Kim09.02.2026Initial commit