Skip to content

AnchorNav

A page outline that follows the section in view.

Live — this one is real

Introduction

Navigation follows the document.

Details

Every item is a native fragment link.

Usage

import { AnchorNav } from "mizu-ui";

export function Example() {
  return (
    <div>
      <AnchorNav
        items={[
          { id: "anchor-intro", label: "Introduction" },
          { id: "anchor-details", label: "Details" },
        ]}
      />
      <section id="anchor-intro">
        <h3>Introduction</h3>
        <p>Navigation follows the document.</p>
      </section>
      <section id="anchor-details">
        <h3>Details</h3>
        <p>Every item is a native fragment link.</p>
      </section>
    </div>
  );
}

Source & setup

Import mizu-ui/styles.css once. Fonts are optional via mizu-ui/fonts.css. Override --mizu-* tokens or use className for local styling. Uses native React and CSS; install the package peers for root imports.

Inspect navigation/Navigation.tsx

Source is included in the npm package under src/navigation/Navigation.tsx.

Open full source ↗

Props

PropTypeDefaultDescription
items{id: string; label: string}[]—Existing document section ids.
labelstring—Landmark name.

Accessibility

Native fragment links work without an observer. IntersectionObserver marks the visible location and disconnects on unmount.

Motion

Native scrolling; respects the document's scrolling settings.

Works alongside