Skip to content

Add roadmap link to header and footer navigation#700

Merged
yamcodes merged 11 commits intomainfrom
copilot/add-link-to-roadmap
Jan 5, 2026
Merged

Add roadmap link to header and footer navigation#700
yamcodes merged 11 commits intomainfrom
copilot/add-link-to-roadmap

Conversation

Copy link
Contributor

Copilot AI commented Jan 5, 2026

Add Roadmap Link with External Link Icon ✅

  • Add "Roadmap" link to header navigation in home layout
  • Add "Roadmap" link to header navigation in docs layout
  • Add "Roadmap" link to homepage footer section
  • Add external link icon (↗) to all roadmap links
  • Run tests to ensure no regressions (107 tests passed)
  • Verify changes visually with screenshots
  • Address feedback to add external link icons
  • Run code review (passed with no comments)
  • Run security scan (passed with 0 alerts)

Summary

Successfully added the roadmap link (#683) with external link icons to the site navigation and footer, addressing all feedback.

Changes Made:

Commit 1 (6546c5c): Initial implementation

  • Added "Roadmap" link to home layout header navigation
  • Added "Roadmap" link to docs layout sidebar navigation
  • Added "Roadmap" link to homepage footer (using ExternalLink component)

Commit 2 (826c256): Added external link icons

  • Added external: true property to home layout roadmap link
  • Added external: true property to docs layout roadmap link
  • Footer already had external link icon via ExternalLink component

Visual Confirmation:

Homepage with external link icon:
Homepage

Docs page with external link icon in sidebar:
Docs

The roadmap link now appears with the external link icon (↗) in:

  • Header navigation on homepage
  • Sidebar navigation on all docs pages
  • Footer section on homepage

Quality Checks:

✅ All 107 tests passed
✅ Code review passed with no comments
✅ Security scan passed with 0 alerts
✅ All feedback addressed

Original prompt

This section details on the original issue you should resolve

<issue_title>Add link to roadmap</issue_title>
<issue_description>Add a link to our roadmap, ideally by enriching the footer section or adding it to the header.</issue_description>

Comments on the Issue (you are @copilot in this section)


💡 You can make Copilot smarter by setting up custom instructions, customizing its development environment and configuring Model Context Protocol (MCP) servers. Learn more Copilot coding agent tips in the docs.

Summary by CodeRabbit

  • New Features

    • Added Roadmap link to navigation and documentation, providing easy access to feature roadmap information.
  • Style

    • Restructured and enhanced external link styling with automatic icon decorations for improved visual consistency across light and dark themes.

✏️ Tip: You can customize this high-level summary in your review settings.

@changeset-bot
Copy link

changeset-bot bot commented Jan 5, 2026

⚠️ No Changeset found

Latest commit: a06e36e

Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.

This PR includes no changesets

When changesets are added to this PR, you'll see the packages that this PR includes changesets for and the associated semver types

Click here to learn what changesets are, and how to add one.

Click here if you're a maintainer who wants to add a changeset to this PR

@coderabbitai
Copy link
Contributor

coderabbitai bot commented Jan 5, 2026

Important

Review skipped

Bot user detected.

To trigger a single review, invoke the @coderabbitai review command.

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Walkthrough

This PR adds a Roadmap link to navigation by replacing the GitHub link in home layout with a Roadmap link (GitHub issue 683), removing the GitHub link from docs layout, adding it to base config, and expanding external-link styling in CSS for dark mode and navigation contexts.

Changes

Cohort / File(s) Summary
Layout & Navigation Configuration
apps/www/app/(home)/layout.tsx, apps/www/app/docs/layout.tsx, apps/www/app/layout.config.tsx
Reorganized GitHub link placement: removed from docs layout, added to base layout config, replaced with Roadmap link in home layout pointing to GitHub issue 683. Spread baseOptions.links to include additional navigation entries.
External Link Styling
apps/www/app/globals.css
Expanded external-link icon styling with new rules for dark mode contexts, navigation areas (#nd-nav, #nd-subnav), and flex containers. Added not(:has(img)) guards and inline SVG decorations. Adjusted hover states, padding, and background-image properties across themes.
Documentation Content
apps/www/content/docs/arkenv/meta.json
Added section divider and new Roadmap navigation link (GitHub issue 683) to documentation pages array.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~22 minutes

Possibly related PRs

  • #676: Modifies apps/www/app/globals.css to broaden external-link icon selectors and add dark-mode variants for link display.
  • #621: Modifies layout and config files affecting GitHub/link configuration and baseOptions structure.
  • #645: Adjusts external-link arrow and indicator styling in apps/www/app/globals.css using similar CSS selector patterns.

Poem

🐰 A roadmap link hops into view,
GitHub's place in nav shifts true,
External arrows dance anew,
Dark mode styling shines on through! 🗺️

Pre-merge checks and finishing touches

❌ Failed checks (1 warning)
Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. You can run @coderabbitai generate docstrings to improve docstring coverage.
✅ Passed checks (4 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title 'Add roadmap link to header and footer navigation' accurately summarizes the main change, describing the addition of a roadmap link to navigation areas.
Linked Issues check ✅ Passed The PR successfully implements all requirements from issue #699: adds a roadmap link (GitHub issue 683), places it in both header and footer navigation for site-wide discoverability.
Out of Scope Changes check ✅ Passed All changes are directly related to adding the roadmap link and implementing external-link styling; no out-of-scope modifications detected.

Comment @coderabbitai help to get the list of available commands and usage tips.

Co-authored-by: yamcodes <2014360+yamcodes@users.noreply.github.com>
Copilot AI changed the title [WIP] Add link to roadmap in footer or header Add roadmap link to header and footer navigation Jan 5, 2026
Copilot AI requested a review from yamcodes January 5, 2026 08:49
@yamcodes yamcodes marked this pull request as ready for review January 5, 2026 17:16
@github-actions github-actions bot added the www Improvements or additions to arkenv.js.org label Jan 5, 2026
@arkenv-bot
Copy link
Contributor

arkenv-bot bot commented Jan 5, 2026

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Review Updated (Asia/Almaty)
arkenv Ready Ready Preview, Comment Jan 6 2026, 1:15 AM (Asia/Almaty)

@yamcodes
Copy link
Owner

yamcodes commented Jan 5, 2026

@copilot good work so far, however, I expect it to have the "External link" icon (top right arrow).

See the external-link.tsx file for reference.

Co-authored-by: yamcodes <2014360+yamcodes@users.noreply.github.com>
Copy link
Contributor Author

Copilot AI commented Jan 5, 2026

@copilot good work so far, however, I expect it to have the "External link" icon (top right arrow).

See the external-link.tsx file for reference.

Added the external link icon (↗) by setting external: true in the link configuration. Fixed in commit 826c256.

Homepage with external link icon:
Homepage

Docs page with external link icon:
Docs

Warning

Firewall rules blocked me from connecting to one or more addresses (expand for details)

I tried to connect to the following addresses, but was blocked by firewall rules:

  • fonts.googleapis.com
    • Triggering command: /usr/local/bin/node /usr/local/bin/node /home/REDACTED/work/arkenv/arkenv/node_modules/.pnpm/next@16.1.1_@babel&#43;core@7.28.5_@opentelemetry&#43;api@1.9.0_@playwright&#43;test@1.57.0_react-d_f42438f6717e44ec3de5d0c1806f5fb0/node_modules/next/dist/server/lib/start-server.js (dns block)
  • https://api.github.com/repos/yamcodes/arkenv
    • Triggering command: /usr/local/bin/node /usr/local/bin/node /home/REDACTED/work/arkenv/arkenv/node_modules/.pnpm/next@16.1.1_@babel&#43;core@7.28.5_@opentelemetry&#43;api@1.9.0_@playwright&#43;test@1.57.0_react-d_f42438f6717e44ec3de5d0c1806f5fb0/node_modules/next/dist/server/lib/start-server.js (http block)

If you need me to access, download, or install something from one of these locations, you can either:

@github-actions github-actions bot added the docs Improvements or additions to documentation label Jan 5, 2026
@yamcodes
Copy link
Owner

yamcodes commented Jan 5, 2026

@coderabbitai review

@coderabbitai
Copy link
Contributor

coderabbitai bot commented Jan 5, 2026

✅ Actions performed

Review triggered.

Note: CodeRabbit is an incremental review system and does not re-review already reviewed commits. This command is applicable only when automatic reviews are paused.

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 0

🧹 Nitpick comments (1)
apps/www/app/globals.css (1)

71-138: Consider consolidating duplicate selector blocks.

The sidebar and navigation external link styling repeats similar rule sets across three contexts ([data-radix-scroll-area-viewport], #nd-nav, #nd-subnav). While functional, this increases maintenance effort—changes to icon styling require updates in multiple locations.

🔎 Refactoring approach

Consider grouping selectors with comma separation or extracting common properties into CSS custom properties:

/* Example: Combine common base rules */
[data-radix-scroll-area-viewport] a[target="_blank"]:not([data-no-arrow]):not(:has(img)):not(:has(> svg:only-child)),
#nd-nav a[target="_blank"]:not([data-no-arrow]):not(:has(img)):not(:has(> svg:only-child)),
#nd-subnav a[target="_blank"]:not([data-no-arrow]):not(:has(img)):not(:has(> svg:only-child)) {
	background-image: none !important;
	padding-right: 0 !important;
	display: inline-flex;
	align-items: center;
	gap: 0 !important;
}

/* Then handle layout-specific differences if needed */
[data-radix-scroll-area-viewport] a[target="_blank"]:not([data-no-arrow]):not(:has(img)):not(:has(> svg:only-child)) {
	display: flex; /* sidebar-specific */
}

Alternatively, use a shared CSS custom property for the icon SVG data URI to reduce duplication in the ::after rules.

📜 Review details

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 37d0475 and 062ed6f.

📒 Files selected for processing (5)
  • apps/www/app/(home)/layout.tsx
  • apps/www/app/docs/layout.tsx
  • apps/www/app/globals.css
  • apps/www/app/layout.config.tsx
  • apps/www/content/docs/arkenv/meta.json
💤 Files with no reviewable changes (1)
  • apps/www/app/docs/layout.tsx
🧰 Additional context used
📓 Path-based instructions (3)
**/*.{ts,tsx}

📄 CodeRabbit inference engine (.cursor/rules/coding-guidelines.mdc)

**/*.{ts,tsx}: Prefer type over interface for type definitions in TypeScript
Use TypeScript 5.1+ features when appropriate
Leverage const type parameters for better inference in TypeScript
Use JSDoc comments for public APIs
Use tabs for indentation (configured in Biome)
Use double quotes for strings (configured in Biome)
Organize imports automatically (Biome handles this)
Avoid explicit types when TypeScript can infer them (noInferrableTypes error)
Use as const where appropriate for immutable values (useAsConstAssertion error)
Don't reassign function parameters (noParameterAssign error)
Place default parameters last in function signatures (useDefaultParameterLast error)
Always initialize enum values (useEnumInitializers error)
Declare one variable per statement (useSingleVarDeclarator error)
Avoid unnecessary template literals (noUnusedTemplateLiteral error)
Prefer Number.parseInt over global parseInt (useNumberNamespace error)
Use kebab-case for TypeScript filenames (e.g., create-env.ts)
Use camelCase for function names (e.g., createEnv)
Use PascalCase for type names (e.g., ArkEnvError)
Use UPPER_SNAKE_CASE for environment variables and constants
Include examples in JSDoc comments when helpful for public APIs
Document complex type logic with JSDoc comments
Use ArkEnvError for environment variable validation errors
Provide clear, actionable error messages that include the variable name and expected type

**/*.{ts,tsx}: Use createEnv(schema) function (or default import as arkenv) to create validated environment objects in TypeScript
Use built-in validators (host, port, url, email) from ArkEnv when available instead of custom ArkType schemas
Provide default values for optional environment variables using ArkType syntax (e.g., 'boolean = false')
Use ArkEnvError for environment variable errors instead of generic Error types
For environment schema definition, use ArkType string literal syntax for enumerated values (e.g., "'deve...

Files:

  • apps/www/app/layout.config.tsx
  • apps/www/app/(home)/layout.tsx
**/*.tsx

📄 CodeRabbit inference engine (.cursor/rules/coding-guidelines.mdc)

Use self-closing JSX elements (useSelfClosingElements error)

Files:

  • apps/www/app/layout.config.tsx
  • apps/www/app/(home)/layout.tsx
apps/www/**/*.{ts,tsx,js,jsx}

📄 CodeRabbit inference engine (apps/www/.cursor/rules/posthog-integration.mdc)

apps/www/**/*.{ts,tsx,js,jsx}: If using TypeScript, use an enum to store feature flag names. If using JavaScript, store feature flag names as strings to an object declared as a constant to simulate an enum. Use UPPERCASE_WITH_UNDERSCORE naming convention for enum/const object members.
If a custom property for a person or event is referenced in two or more files or two or more callsites in the same file, use an enum or const object with UPPERCASE_WITH_UNDERSCORE naming convention, similar to feature flags.

Files:

  • apps/www/app/layout.config.tsx
  • apps/www/app/(home)/layout.tsx
🧠 Learnings (1)
📚 Learning: 2025-12-25T21:14:15.510Z
Learnt from: yamcodes
Repo: yamcodes/arkenv PR: 616
File: apps/www/app/(home)/page.tsx:18-18
Timestamp: 2025-12-25T21:14:15.510Z
Learning: In projects using fumadocs-ui's HomeLayout, do not render a top-level <main> inside page components because HomeLayout already provides a main landmark with id="nd-home-layout". Ensure that page.tsx (and other pages that compose HomeLayout) return content without wrapping a new <main>, and rely on HomeLayout's landmark for accessibility. If a page needs a landmark, use subregions like <section> or <div role="region"> inside the existing main, but avoid duplicate main elements. Verify that HomeLayout is used and that the id remains unique.

Applied to files:

  • apps/www/app/(home)/layout.tsx
🧬 Code graph analysis (1)
apps/www/app/(home)/layout.tsx (1)
apps/www/app/layout.config.tsx (1)
  • baseOptions (13-29)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (6)
  • GitHub Check: test-e2e (e2e)
  • GitHub Check: test-e2e (a11y)
  • GitHub Check: test-build (latest)
  • GitHub Check: test-build (lts/*)
  • GitHub Check: test-typesafety
  • GitHub Check: Deploy-Preview
🔇 Additional comments (6)
apps/www/content/docs/arkenv/meta.json (1)

21-23: LGTM! Clean addition of the Roadmap link.

The separator and Roadmap link follow the existing navigation structure and syntax conventions in this file.

apps/www/app/globals.css (2)

25-42: LGTM! Consistent underline styling for external links.

The [data-external-link] selectors properly extend the underline treatment to match article links.


46-69: LGTM! External link arrow icons properly styled.

The [data-external-link] attribute support is consistently integrated with existing external link styling, including proper dark mode variants.

apps/www/app/layout.config.tsx (2)

20-28: LGTM! Well-structured and accessible link configuration.

The centralized GitHub link configuration follows fumadocs-ui conventions, and the aria-label on the icon ensures proper accessibility for screen reader users.


1-1: No action needed; package is already at the latest version.

The import statement is correct, and @icons-pack/react-simple-icons@13.8.0 is already the latest available version on npm. No update or security concern to address.

apps/www/app/(home)/layout.tsx (1)

9-21: LGTM! Clean integration of Roadmap link with centralized navigation.

The Roadmap link is properly configured with external: true to trigger external link styling, and the spread of baseOptions.links cleanly incorporates the centralized GitHub link. The nullish coalescing operator provides safe fallback handling.

…variables and adjust flex display for links.
@yamcodes yamcodes merged commit 6183031 into main Jan 5, 2026
15 checks passed
@yamcodes yamcodes deleted the copilot/add-link-to-roadmap branch January 5, 2026 20:19
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

docs Improvements or additions to documentation www Improvements or additions to arkenv.js.org

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Add link to roadmap

2 participants