// 11 examples

CSS Navigation Examples

Navigation is the part of a site people use without thinking about it, which is exactly why it repays being built carefully. Menus that open on hover, tabs that swap panels, breadcrumbs that show depth, and drawers that slide in on a phone all come from a small set of CSS features: :hover, :target, :focus-within, and the state a hidden checkbox or radio can hold.

The examples below cover those patterns and the ones that react to scrolling, such as headers that shrink and indicators that track which section you are reading. Each page explains what the pattern can and cannot do without script, including the cases where a keyboard user would be left behind. A phone-width pass through all 11 nav examples in October 2026 caught the hover dropdown reaching past the viewport in every engine, so its hidden menu is now clipped at the screen edge.

Reading Progress
The Future of CSS Scroll-driven animations tie progress directly to scroll position, no JavaScript. The browser maps the scroll range automatically.
Navigation Advanced

Scroll Spy Indicator

A reading progress bar that tracks scroll position using CSS scroll-driven animations.
Contents
Intro
Install
Usage
API
Intro
Sidebar uses position: sticky to stay visible while content scrolls.
Install
No dependencies. Copy CSS into your project.
Navigation Beginner

Sticky Sidebar

A sidebar that sticks to the viewport while scrolling using position: sticky.
Overview
Features
Pricing
Support
Overview
Vertical tabs organize content into logical sections. Click a tab label to switch panels.
Navigation Intermediate

Vertical Tabs

Vertical tabbed navigation using radio inputs and the :checked pseudo-class.
A
AJ
Alice JohnsonDesign
AM
Alex MorrisEngineering
AW
Amy WuMarketing
B
BC
Ben CarterEngineering
BL
Beth LeeDesign
C
CK
Chris KimProduct
CM
Clara MillsDesign
D
DJ
Dana JonesMarketing
DS
Drew SmithEngineering
Navigation Beginner

Sticky Section Headers

Section headings that pin to the top of the scroll area as you scroll past them, contacts-list style, in pure CSS.