Skip to content

docs: add tabbed navigation (Documentation / Release notes) - #2718

Merged
claudiacodacy merged 10 commits into
masterfrom
docs/tabbed-navigation
Aug 11, 2026
Merged

docs: add tabbed navigation (Documentation / Release notes)#2718
claudiacodacy merged 10 commits into
masterfrom
docs/tabbed-navigation

Conversation

@claudiacodacy

Copy link
Copy Markdown
Contributor

Summary

  • Adds navigation.tabs/navigation.tabs.sticky and splits the top-level nav into two tabs: Documentation (unchanged existing nav) and Release notes (release notes + special thanks, as before).
  • Keeps the sidebar collapsed by default, matching current behavior (navigation.expand is not enabled).
  • Keeps the accompanying sidebar/header CSS refinements (padding, icon specificity fix, focus-visible fix, tab bar styling) and the mobile drawer scroll/focus fix in docs-theme.js.

Closes #2711

Test plan

  • mkdocs serve locally; verified both tabs render with correct icons
  • Verified sidebar sections are collapsed by default on desktop
  • Verified "Special thanks" appears under the Release notes tab with its heart icon
  • Verified mobile drawer opens on the active tab without the off-screen scroll issue

🤖 Generated with Claude Code

@claudiacodacy
claudiacodacy requested a review from a team as a code owner July 31, 2026 17:37
@codacy-production

Copy link
Copy Markdown
Contributor

Up to standards ✅

🟢 Issues 0 issues

Results:
0 new issues

View in Codacy

🟢 Metrics 4 complexity · 0 duplication

Metric Results
Complexity 4
Duplication 0

View in Codacy

AI Reviewer: first review requested successfully. AI can make mistakes. Always validate suggestions.

Run reviewer

TIP This summary will be updated as you push new changes.

@github-actions
github-actions Bot temporarily deployed to Netlify July 31, 2026 17:39 Inactive

@codacy-production codacy-production Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

The PR successfully implements tabbed navigation for 'Documentation' and 'Release notes' using MkDocs Material. While the overall analysis shows the changes are up to standards, there is a technical risk associated with the manual scroll and focus management added to docs-theme.js. This file is flagged as complex and currently lacks automated test coverage, which could lead to regressions in mobile navigation.

A primary concern is the CSS implementation in responsive.css; certain selectors are not scoped to the tabbed navigation state (.md-nav--lifted), which would cause layout breakage on the standard sidebar if tabs are ever disabled in mkdocs.yml. Additionally, minor inconsistencies in JavaScript syntax and YAML indentation should be addressed to maintain codebase quality.

About this PR

  • The new manual scroll and focus management logic in docs-theme.js lacks automated integration or regression tests. Given that this file is flagged as complex and lacks coverage, these changes introduce a maintenance risk for mobile UI stability.

Test suggestions

  • Verify mobile drawer scrollLeft is reset to 0 when opened to ensure active tab content is visible.
  • Verify focus management in the mobile drawer prioritizes links within the active tab subtree.
  • Test icon rendering logic in nav-item.html correctly identifies level 2 items when tabs are active.
  • Verify desktop CSS hides redundant top-level labels while keeping them visible on mobile.
  • Automate unit/integration testing for docs/assets/javascripts/docs-theme.js to address complexity and lack of coverage.
Prompt proposal for missing tests
Consider implementing these tests if applicable:
1. Verify mobile drawer scrollLeft is reset to 0 when opened to ensure active tab content is visible.
2. Verify focus management in the mobile drawer prioritizes links within the active tab subtree.
3. Test icon rendering logic in `nav-item.html` correctly identifies level 2 items when tabs are active.
4. Verify desktop CSS hides redundant top-level labels while keeping them visible on mobile.
5. Automate unit/integration testing for `docs/assets/javascripts/docs-theme.js` to address complexity and lack of coverage.

TIP Improve review quality by adding custom instructions
TIP How was this review? Give us feedback

Comment thread theme/stylesheets/responsive.css Outdated
Comment thread theme/stylesheets/navigation.css
Comment thread mkdocs.yml Outdated
Comment thread docs/assets/javascripts/docs-theme.js Outdated
@github-actions
github-actions Bot temporarily deployed to Netlify July 31, 2026 17:53 Inactive
claudiacodacy and others added 4 commits August 11, 2026 12:18
Introduces navigation.tabs and restructures the nav into four top-level
tabs (Product, Management, Developer Tools, Release Notes) with matching
sidebar icon and styling changes.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Scale the tabs down to two: Documentation (the existing nav, unchanged)
and Release notes (release notes plus special thanks, as before).
Drops the Product/Management/Developer Tools split and its icon
remapping, and restores the sidebar's original collapsed-by-default
behavior now that navigation.expand isn't enabled.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Scope the tab-label-hiding and top-item-styling selectors to
.md-nav--lifted (matching the pattern already used two rules below)
instead of .md-nav--primary, use const instead of var in docs-theme.js,
and fix the Reporting sub-list indentation in mkdocs.yml.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
@claudiacodacy
claudiacodacy force-pushed the docs/tabbed-navigation branch from e79b7b4 to 3494927 Compare August 11, 2026 11:24
@github-actions
github-actions Bot temporarily deployed to Netlify August 11, 2026 11:26 Inactive
Puts it as the last top-level item in the Documentation tab, with
its heart icon restored, instead of under Release notes.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
@github-actions
github-actions Bot temporarily deployed to Netlify August 11, 2026 11:37 Inactive
Safari doesn't implement scrollbar-gutter, so the existing stable-gutter
rule is a no-op there and the primary nav rail visibly narrows once a
scrollbar appears. Force overflow-y: scroll as a Safari-only fallback,
detected via the hanging-punctuation feature (Safari-exclusive since 2016).
@github-actions
github-actions Bot temporarily deployed to Netlify August 11, 2026 12:42 Inactive
…avior

Fixes a scroll jump on search open (scroll-padding-top on <html> caught the
search trigger's own focus() call, not just anchor jumps) by moving the
sticky-header offset to per-heading scroll-margin-top instead.

Aligns the desktop header to the content grid below it (logo/search/right
cluster columns match sidebar/content/toc) when a sidebar is visible, restores
the search backdrop blur, and repositions the search popup to overlap the
header on desktop instead of opening as a second, disconnected search bar.

Fixes the mobile search close button, which was permanently hidden behind a
hardcoded icon override, and fixes the click-outside-to-close overlay not
covering the full viewport on any breakpoint — caused by .md-header's
backdrop-filter turning it into a containing block for the fixed-position
search panel, so `inset: 0` resolved against the header's own short box
instead of the viewport.

Adds a border-bottom to the mobile header to match the divider line desktop
gets from the (hidden-on-mobile) tabs bar.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
@github-actions
github-actions Bot temporarily deployed to Netlify August 11, 2026 14:45 Inactive
Icons the Cloud and Self-hosted sections (matching the pattern used
throughout the Documentation tab), and the Release notes intro page.
Fixes the meta.icon nav template branch, which pointed at Material's
unvendored icon set and never actually rendered, to use the same
vendored-ionicons macro as sidebar_icons.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
@github-actions

github-actions Bot commented Aug 11, 2026

Copy link
Copy Markdown
Contributor

Overall readability score: 53.9 (🟢 +0)

File Readability
index.md 80.62 (🟢 +0)
View detailed metrics

🟢 - Shows an increase in readability
🔴 - Shows a decrease in readability

File Readability FRE GF ARI CLI DCRS
index.md 80.62 84.78 7.24 10.1 9.15 6.25
  🟢 +0 🟢 +0 🟢 +0 🟢 +0 🟢 +0 🟢 +0

Averages:

  Readability FRE GF ARI CLI DCRS
Average 53.9 42.91 10.94 12.37 12.29 8.03
  🟢 +0 🟢 +0 🟢 +0 🟢 +0 🟢 +0 🟢 +0
View metric targets
Metric Range Ideal score
Flesch Reading Ease 100 (very easy read) to 0 (extremely difficult read) 60
Gunning Fog 6 (very easy read) to 17 (extremely difficult read) 8 or less
Auto. Read. Index 6 (very easy read) to 14 (extremely difficult read) 8 or less
Coleman Liau Index 6 (very easy read) to 17 (extremely difficult read) 8 or less
Dale-Chall Readability 4.9 (very easy read) to 9.9 (extremely difficult read) 6.9 or less

@github-actions
github-actions Bot temporarily deployed to Netlify August 11, 2026 15:08 Inactive
@github-actions
github-actions Bot temporarily deployed to Netlify August 11, 2026 15:16 Inactive
hide: - toc sets the native [hidden] attribute on the secondary
sidebar, which Material's :not([hidden]) selector doesn't match, so
the article lost its 1.2rem right margin and rendered 6.4px wider
than every other page.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
@github-actions
github-actions Bot temporarily deployed to Netlify August 11, 2026 15:42 Inactive
@claudiacodacy
claudiacodacy merged commit 8ece5a2 into master Aug 11, 2026
5 checks passed
@claudiacodacy
claudiacodacy deleted the docs/tabbed-navigation branch August 11, 2026 15:44
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants