Skip to content

Conversation

@jamiehenson
Copy link
Member

@jamiehenson jamiehenson commented Nov 10, 2025

Also embodies WEB-4685 and WEB-4687. Combining them is suboptimal from a reviewing perspective but they're all kinda interlinked as a review entity.

Description

This PR implements redesigns for the three core navigation components: LeftSidebar, RightSidebar, and Header. It's the first wave of changes to come as part of the wider "docs redesign" epic. As such, this doesn't go into main, but web-4684-docs-redesign, which will hold this and all related PRs to come.

From a technical perspective it's somewhat of a simplification:

  • LeftSidebar has broken away from using the ably/ui Accordion component in favour of a more targeted usage of Radix Accordion primitives, which simplifies things as we're no longer forcing round pegs into square holes for the sake of component centralisation. This is part of a wider move to separate docs out as its own design system entity.
  • RightSidebar loses the language selector (moved) and the external links (llm links moved, GH links removed)
  • Header also moves away from ably/ui lessening a dependency on Header and also using Radix primitives for greater control.

Testing

https://ably-docs-web-4684-docs-8femuv.herokuapp.com/docs/

Acceptance criteria: looks and acts like the Figma.

Expectations: this review is mostly about the technicals - the whole picture will be presented to devex/design when all is ready. Given that there are many parts to this overall work and a merge here won't go to prod, it's more about ensuring that the bones are good rather than it being a 100% ready-to-go piece of work. That said, there's nothing I'm knowingly leaving out here.

Resources:

@coderabbitai
Copy link

coderabbitai bot commented Nov 10, 2025

Important

Review skipped

Auto reviews are disabled on this repository.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. 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.

✨ Finishing touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch web-4684-docs-nav-update

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

@jamiehenson jamiehenson marked this pull request as draft November 10, 2025 15:12
@jamiehenson jamiehenson force-pushed the web-4684-docs-nav-update branch from a0842b5 to 9bb0c18 Compare November 10, 2025 16:14
@jamiehenson jamiehenson added the review-app Create a Heroku review app label Nov 10, 2025
@ably-ci ably-ci temporarily deployed to ably-docs-web-4684-docs-8femuv November 10, 2025 16:16 Inactive
@jamiehenson jamiehenson changed the title feat: Add redesigned navigation components [WEB-4684] Core navigation component redesign Nov 10, 2025
@jamiehenson jamiehenson temporarily deployed to ably-docs-web-4684-docs-8femuv November 10, 2025 16:36 Inactive
@jamiehenson jamiehenson temporarily deployed to ably-docs-web-4684-docs-8femuv November 10, 2025 16:45 Inactive
@jamiehenson jamiehenson had a problem deploying to ably-docs-web-4684-docs-8femuv November 10, 2025 16:56 Failure
@jamiehenson jamiehenson temporarily deployed to ably-docs-web-4684-docs-8femuv November 10, 2025 17:13 Inactive
@@ -0,0 +1,156 @@
---
Copy link
Member Author

Choose a reason for hiding this comment

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

This is purely to showcase stepped headings. Don't review, it will be binned

@jamiehenson jamiehenson marked this pull request as ready for review November 11, 2025 12:24
@jamiehenson jamiehenson force-pushed the web-4684-docs-nav-update branch from 0d1606c to 3141514 Compare November 11, 2025 12:26
@jamiehenson jamiehenson temporarily deployed to ably-docs-web-4684-docs-8femuv November 11, 2025 12:26 Inactive
return (
<AblyHeader
nav={
<div className="flex items-center justify-between h-16 px-6 fixed w-full z-50 bg-neutral-000 dark:bg-neutral-1300 border-b border-neutral-300 dark:border-neutral-1000">
Copy link
Member Author

@jamiehenson jamiehenson Nov 11, 2025

Choose a reason for hiding this comment

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

The inflation in file size here is largely due to abandoning the Header component from ably/ui, this however gives us considerably more control and leads to less complexity in the bigger picture (particularly considering this header looks/feels like a mix between the voltaire header and the dash header). There's more code here, but it's simpler.

};
// Tailwind 'md' breakpoint from tailwind.config.js
const MD_BREAKPOINT = 1040;
const CLI_ENABLED = false;
Copy link
Member Author

Choose a reason for hiding this comment

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

Hard-coded for now, because there's no immediate scope for this being a thing

@jamiehenson jamiehenson changed the title [WEB-4684] Core navigation component redesign [WEB-4684] Core navigation component redesign (LeftSidebar, Header, RightSidebar) Nov 11, 2025
</button>
</Tooltip.Trigger>
<Tooltip.Portal>
<Tooltip.Content className={tooltipContentClassName}>Open CLI</Tooltip.Content>
Copy link
Contributor

@aralovelace aralovelace Nov 11, 2025

Choose a reason for hiding this comment

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

This is just a question, when using radix I tend to import them like

import {
	Tooltip,
	TooltipContent,
} from "radix";

Then I use <TooltipContent> what is the difference between not importing and using custom abstraction. or just preference?

Copy link
Member Author

Choose a reason for hiding this comment

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

It doesn't matter really, it's just two ways of accessing things off a JS object. You can destructure it like how you're doing it, or import one thing and access things off of it like I'm doing here, the resulting difference is minimal.

I've borrowed this approach from Radix's own documentation, it makes sense here I think because we're accessing a sizeable number of things that are all parts of one larger whole, instead of a small number of entities of varying uses and types.

Copy link
Contributor

@aralovelace aralovelace left a comment

Choose a reason for hiding this comment

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

This is such a nice sidebar navigation! very easy to navigate and sleek

One thing I noticed when I go to certain page and select another language in the codebox and refresh its not found

https://www.loom.com/share/99a11000030642e1877149342abcbb10

Copy link
Member

@kennethkalmer kennethkalmer left a comment

Choose a reason for hiding this comment

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

This looks fantastic @jamiehenson 🤩

Some questions inlined, and then this strange thing I was while checking things out in Safari's responsive design mode...

Screenshot 2025-11-12 at 11 43 52

@jamiehenson
Copy link
Member Author

Thanks @kennethkalmer / @aralovelace.

@aralovelace: I wouldn't worry about language selection for now - that functionality is being reinstated in the UI in the header PR and nothing in this PR should change any of that.

@kennethkalmer: that's more of a design limitation but well raised, I'll just hide the tabbed menu visually before it borks

@jamiehenson jamiehenson temporarily deployed to ably-docs-web-4684-docs-8femuv November 12, 2025 12:48 Inactive
@jamiehenson
Copy link
Member Author

I've addressed the various comments here, and also changed the conditions where left sidebar items are bolded (not on active ancestor, but on the dumber condition of the child accordion being open) - this was done on a hunch and is modifiable in future.

Copy link
Member

@kennethkalmer kennethkalmer left a comment

Choose a reason for hiding this comment

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

Good bones as they say

@jamiehenson jamiehenson merged commit c967a27 into web-4684-docs-redesign Nov 12, 2025
6 checks passed
@jamiehenson jamiehenson deleted the web-4684-docs-nav-update branch November 12, 2025 13:46
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

review-app Create a Heroku review app

Development

Successfully merging this pull request may close these issues.

5 participants