docs: comet docs design overhaul- phase 1#4353
Conversation
|
Thank you @pranamya123 . Could you add further screenshots with before and after changes? |
| } | ||
|
|
||
|
|
||
| # -- $COMET_VERSION substitution ------------------------------------------- |
672858a to
6fc267a
Compare
|
I think the mobile layout has an issue @pranamya123 |
Thank you for this comment, I made the design responsive to all devices and redeployed, could you please check now in the same netlify link? @coderfender |
|
Thank you. It looks good now |
110a232 to
e85fa47
Compare
…nd section scoping Visual + interaction overhaul of the published docs site, layered on top of pydata_sphinx_theme so the existing search index, theme switcher, and toctree generation all continue to work. Key changes: - Section-scoped sidebar: when a top-level tab is active, the sidebar shows only that section's contents. Eliminates the redundancy of repeating the top-nav items in the left rail. - Click-to-toggle expand/collapse arrows on every nav group (independent of page navigation). Uses real <button> elements + aria-expanded for accessibility. - In-sidebar live search filter with character-level highlighting. Replaces the redirect-to-/search.html flow for sidebar lookups; full-text search via Sphinx still works as before. - Right-side page TOC re-enabled, auto-hidden on pages with fewer than 3 H2 anchors so it doesn't waste space on short reference pages. - Breadcrumb trim: hide the home icon (logo handles it) and the redundant section-index breadcrumb item; shorten the verbose "Comet X.Y.Z User Guide" version label to just "X.Y.Z". - Footer: structured 3-column footer (Documentation / Community / Apache) with the project logo, tagline, copyright, and trademark notice. - \$COMET_VERSION substitution moved into conf.py via a source-read hook so that local Sphinx builds match what build.sh produces; previously the literal "\$COMET_VERSION" leaked into page titles, breadcrumbs, and the toctree caption when building directly from source/. Files: conf.py register comet-ux.js + page-toc + version hook _templates/docs-sidebar.html cap toctree depth at 3 (no double-nesting) _templates/layout.html structured project footer _static/comet-ux.js all client-side enhancements (new file) _static/theme_overrides.css visual theme + sidebar/footer/TOC styles
… edited the footer to less content/noise,
e85fa47 to
9926d3b
Compare
- Promote Apache DataFusion Comet to the hero H1 (was a small eyebrow) - Mention Comet in the terminal install demo - Fix html_title leaking as visible text on the User Guide page - Restore Use Commodity Hardware section - Keep sidebar consistent across all User Guide pages so clicking a Dev Snapshot child does not reload the sidebar with a different tree - Fix admonition icon overlapping the title text Older version docs render correctly once merged; they require docs/build.sh to run generate-versions.py, which Netlify previews skip.
9926d3b to
328f8b6
Compare
|
Thanks @coderfender — addressed in 328f8b6:
|
|
Hi @andygrove, this PR is now ready for review. You can test out the new UI in https://rainbow-cranachan-f70262.netlify.app/ . Please let me know your feedback. TIA! |
coderfender
left a comment
There was a problem hiding this comment.
Left comments on missing content
Thanks @coderfender — confirming no content is missing. What you're
I took a UX judgement call here: the user would expect to stay anchored on the Development Snapshot sidebar item with its child items opened under it, instead of having the whole sidebar replaced and feeling like they navigated to a different site. That said, if the team prefers main's switching behavior over the consistent-tree approach, happy to revert.
I tried running the Maven step locally to verify it too, but hit a separate build issue (proto-generated classes not on the spark module's classpath — reproduces on a clean This PR doesn't touch either build step, the visual styling layers on top of whatever content the pipeline produces.
One option is to merge these docs changes behind a feature flag, and test them out with the real build values, and only then turn it on when we feel confident with it. |
|
Thanks @pranamya123. I plan on starting to test this out with local builds soon. |
|
@coderfender Maven build on my local is a success now, I verified the content on Comet Configuration Settings and Aggregate Expressions pages, please find the attached screenshots. |
- Code blocks: make all syntax tokens render light on the dark code background. Un-themed tokens (console prompt, names, output) were inheriting Pygments' light-theme dark colors and turning invisible. - Hero terminal: fix double-spaced lines (display:block plus literal newlines in the <pre> caused two breaks per line) and tighten line-height. - Keep the article's left edge stable whether or not the right-side TOC is shown. - Use the full ASF license header on theme_overrides.css so Apache RAT passes.
|
Hi @andygrove, thank you for your feedback. I addressed both the issues in the latest commit (2d3e760). Reduced the vertical spacing in the terminal block:
And fixed the font color so the text is legible in both themes: |





























Key changes:
This is the first phase of a design overhaul for the Comet docs site. The goal is to bring it closer to the conventions of modern dev-doc sites (Stripe, Linear, Vercel, Anthropic) without changing any prose content — every change here is layered on top of pydata_sphinx_theme, so the existing search index, theme switcher, mobile drawer, and toctree generation all keep working unchanged.
🔗 Live preview: https://rainbow-cranachan-f70262.netlify.app/
Which issue does this PR close?
Closes #.
Rationale for this change
What changes are included in this PR?
The homepage is now a dedicated landing page rather than just the User Guide index. The content is borrowed from the existing Comet Overview page, happy to take suggestions on what to keep, cut, or reword.
The left sidebar got the biggest rework. It's now section-scoped: when you're on a User Guide page, the sidebar shows only User Guide content, not the four top-nav items repeated as headers. Each group toggles independently (with proper aria-expanded), and you can have multiple open at once. The sidebar also has an in-place search filter: typing in the search box hides non-matching items and highlights the matched characters live, instead of submitting the form and redirecting you to /search.html. Full-document search via the standard Sphinx index still works the same way.
A few smaller things came together with that:
A "Home" tab in the top navigation
A right-side page TOC that auto-shows on pages with 3+ H2 headings and hides on short reference pages, so it doesn't leave an empty rail
Breadcrumbs trimmed from 5 segments to 3, dropped the home icon (the logo handles it) and the redundant Comet User Guide parent, plus shortened the verbose Comet 0.16.0-SNAPSHOT User Guide label to just 0.16.0-SNAPSHOT
A quiet, structured footer used on every page (was previously the pydata default)
Project orange (#e8650a) is now the only accent color across the site, buttons, focus rings, active states, links, all consistent
There was one real build bug worth calling out: $COMET_VERSION was being substituted only inside build.sh, so anyone running sphinx-build source build/html directly (local dev, IDE preview, etc.) would see the literal placeholder in page titles, breadcrumbs, and the toctree caption. I moved that substitution into conf.py via a source-read hook, so local Sphinx builds now match what production produces.
Accessibility: every new interactive element has proper ARIA, the focus rings are now a custom orange ring instead of the browser's default pink/purple, and the terminal cursor blink in the hero respects prefers-reduced-motion.
Preview-only caveats
A few things look incomplete on the Netlify preview but render correctly
in production. They depend on extra build steps in
docs/build.shthatthe preview environment doesn't run:
Older Versions group in the User Guide sidebar is empty
→ populated by
generate-versions.py, which clones the released-branchdocs from GitHub
11 auto-generated reference pages are empty:
Configuration Settings(configs.md)Compatibility → Expression Compatibility(Aggregate, Array, Cast, Date/Time, Map, Math, Misc, String, Struct, URL)
→ populated by
./mvnw -Pgenerate-docs, which reads Spark/Comet sourceannotations and fills in the
<!--BEGIN:...-->markers in the markdownThis PR doesn't touch either of those build steps; the visual styling
applies normally once they're populated by Apache CI on merge.
Phase 2 (separate PR)
A few things I deliberately scoped out for review velocity:
Content review across all pages
Re-evaluating which top-nav items earn their place
Interactive / animated graphs on the homepage
BEFORE

AFTER

With the right side page TOC

How are these changes tested?
Verified with
generate-versions.pyRan the script locally to populate the older-version directories (the
same script
docs/build.shruns in CI). All three User Guide groupsshow up correctly with their nested content:
(the user guide sidebar with all groups)
Auto-generated tables (configs, expression compatibility)
The Maven
./mvnw -Pgenerate-docsstep fills in the<!--BEGIN:...-->markers on the configs and expression-compatibility pages. I attempted to run it locally but hit a separate build issue unrelated to this PR (missing proto-generated classes on the spark module's classpath, which reproduces on a clean checkout of main). Apache CI doesn't hit this, so those tables will populate normally on merge. The visual styling inthis PR applies on top of whatever content the build produces.
Deployed the UI on netlify and manually tested it out- https://rainbow-cranachan-f70262.netlify.app/
In the next PRs, the plan is to add more unit tests.