feat(ui): Savanna and Cloud Classic theme, scoped so other docs stay the same - #47
Conversation
Introduce the theme-cloud stylesheet for Savanna and Cloud Classic, switch docs typography to Inter, Outfit, and JetBrains Mono, refine navigation and tabs, add page-level copy and view-in-LLM actions, and rebuild ui-bundle.zip.
Add videoblock.css and a 09-video-player.js click-to-play overlay, wire videoblock.css into site.css, and rebuild build/ui-bundle.zip so the theme ships the new video styling and behavior.
Remove the 760px cap so embedded videos use the full article column and rebuild ui-bundle.zip for production.
The cloud/Savanna theme now lives in src/ on main so CI can rebuild the cloud bundle, but other product docs still consume build/ui-bundle.zip. Restore that shared default bundle to the pre-theme build; only build/ui-bundle-cloud.zip carries the cloud theme.
On every push to main, build the UI with gulp, refresh build/ui-bundle-cloud.zip from source, commit it back to main (with [skip ci] to avoid loops), then ping the Netlify build hook so cloud-docs rebuilds with the latest Savanna/Cloud theme. The shared ui-bundle.zip is left untouched so other product docs are unaffected.
Harden the cloud bundle workflow so it can never leak the cloud theme into the shared build/ui-bundle.zip that other product docs consume: restore the neutral ui-bundle.zip after gulp rebuilds it, stage only ui-bundle-cloud.zip by explicit path, and add a tripwire that fails the run if the shared bundle is ever staged.
Make the gulp bundle filename configurable via UI_BUNDLE_FILENAME so CI emits build/ui-bundle-cloud.zip directly instead of building ui-bundle.zip and copying it. The shared ui-bundle.zip is never produced by the cloud build, so other product docs stay on their current look. Default behavior (ui-bundle.zip) is unchanged.
…bundle Move cloud-specific styling into theme-cloud.css, add Roboto typefaces, and drop the separate ui-bundle-cloud.zip gulp/CI path so this branch publishes the default ui-bundle.zip.
Scope page-actions CSS and JS to .theme-cloud, load Inter/Outfit only from the cloud stylesheet, and use one is-cloud-theme helper so the shared default bundle stays unchanged for every other component.
Keep build/ui-bundle.zip tracked so cloud-docs can still fetch the published bundle; ignore everything else gulp leaves in build/.
|
Closing this. A new PR will be opened from |
Savanna notes use page-role release-notes, so the cloud theme selectors must match that class.
|
@Tushar-TG-14 Please review this and merge. Thanks. |
|
@ngarakapati
|
|
has-current-page.js was unused. npm install now matches package.json so typeface-roboto is in the lock again, and the packed zip still includes Roboto plus the cloud fonts.
|
|
@ngarakapati Thanks, that addresses the build/dependency concerns. One remaining check from my side: can we do a quick validation of at least one existing non-Cloud product with the new ui-bundle.zip before merge, to confirm the default theme, navigation, fonts, and Edit this page behavior are unchanged? Since this is the shared production bundle, I'd prefer to have that regression check explicitly confirmed. For the page actions, can we confirm that the production cloud-docs deployment will generate and publish the .md version of every Savanna and Cloud Classic page? Since Copy page and the ChatGPT/Claude/Cursor actions depend on that URL, we want to make sure this isn't only true for the current Netlify preview/playbook. |
|
@Tushar-TG-14 I did that check with GSQL against this ui-bundle.zip. GSQL stays on the current look. No theme-cloud class, still Roboto, classic left nav, and Edit this page is still there. None of the new page actions or cloud nav show up. On the same build, Savanna and Cloud Classic do get the new theme, so the split is working as expected. On the .md files: the cloud-docs playbook already generates a .md copy for every Savanna and Cloud Classic page. That's in the committed antora-playbook.yml, so once the companion cloud-docs PR is merged, the production Netlify build from that repo will publish those URLs. Copy page and the ChatGPT / Claude / Cursor links only run on those two products, and they point at those .md files. Other docs are not getting markdown pages from this. |
Summary
This updates the shared Antora UI so Savanna and Cloud Classic pages get a new look, while every other product (Server, GraphStudio, GSQL, Insights, and the rest) keeps the current default theme.
The new look only turns on when the page is Savanna or Cloud Classic. Those pages get a
theme-cloudclass. All of the new colors, fonts, nav pills, video player, and “Copy page” actions are tied to that class. If a page is not Savanna or Cloud Classic, none of this styling runs.What readers will notice on Savanna and Cloud Classic
What does not change for other docs
doc.css,nav.css, andvars.cssare left as they are onmainbuild/ui-bundle.zip) is used for the whole docs site. We do not need a separateui-bundle-cloud.zipanymore, because the theme is scoped in CSS instead of a second zipOther changes
build/ui-bundle.zipis still tracked so production can fetch it.Merge order
Merge this PR first, then merge the companion cloud-docs PR. Production builds fetch
build/ui-bundle.zipfromtigergraph/antora-uionmain.This replaces the older closed PR: #45
Test plan
npx gulp build && npx gulp bundle:packsucceedsantora-playbook.local.ymltheme-cloud) still looks like today’s default docsbuild/ui-bundle.zipis the bundle cloud-docs points at (notui-bundle-cloud.zip)