Skip to content

feat(guides): rebuild the hub as a directory, and restore the theme's font tokens - #2345

Merged
bruno-andrade-azion merged 8 commits into
release/new-azion-docsfrom
feature/guides-update-rebased
Sep 11, 2026
Merged

bruno-andrade-azion merged 8 commits into
release/new-azion-docsfrom
feature/guides-update-rebased

Conversation

@bruno-andrade-azion

@bruno-andrade-azion bruno-andrade-azion commented Sep 11, 2026 •

Copy link
Copy Markdown
Contributor

Summary

  • The guides hub becomes a directory. It was rendering in the reading shell — a docs rail beside a page that carries its own filter column, an "On this page" outline over a card grid, a prose measure the grid must not take. It now gets its own layout (selected by namespace, the way pricing already is, so both language editions switch together) and a complete state surface: skeleton cards while the catalog resolves, an error state with retry, and an empty state that says what to try next.

  • Font tokens work again. * { font-family: 'Sora' } in base.css was unlayered, so it outranked every utility in @layer utilities, and matched every element directly, defeating inheritance. That silently forced Sora over text-overline-*, text-big-number-* and font-mono. The base family already comes from the theme's --default-font-family via preflight, so the declaration was pure redundancy.

  • The Copy prompt button shows all four agent marks again. AgentMark's template wraps its v-if/v-else in eslint pragma comments; a comment is a root node in a dev build, so the component renders as a fragment and Vue silently drops the consumer's class. size-(--size-5) never landed, the marks fell back to 24px, and three of the four were clipped by the button's overflow-hidden.

  • The theme switch moves into the sidebar rail footer, where it is reachable from anywhere in the rail instead of below the fold. Also: two footer links that 404'd, and the docs home's spacing taken from theme tokens.

How to test

  1. pnpm install — required, the webkit patch hash changed (Sidebar footer region).
  2. pnpm dev, open /en/documentation/.
  3. The DOCS mark beside the logo renders in Proto Mono, not Sora — 12px, 1.6px tracking, uppercase. Check in both themes.
  4. Open /en/documentation/guides/ — no docs rail, no "On this page" outline, the card grid takes the full content width, and the masthead matches the docs home's rung for rung.
  5. In the sidebar, the light/dark switch sits in the rail's footer bar, on the same baseline the top bar starts on.
  6. On the home hero, the Copy prompt button shows four agent marks at 20px, none clipped (button ~251px). Before: 24px marks, three clipped.
  7. Footer → "How to start" resolves to /en/documentation/fundamentals/ and "Release Notes" to /en/documentation/changelog/. Both 404'd before.

Notes

  • Run pnpm install — patches/@aziontech__webkit@5.0.0.patch changed, so the lockfile's patch hash moved with it.
  • Overlaps refactor(styles): consolidate the css entry on webkit.css, dropping the duplicate tailwind root #2342. That PR imports the theme with important, which makes .text-overline-sm emit !important and would mask this bug where the token sits directly on the element. It does not cover the inherited case — a token on a container, text in a child — because * matches the child directly and no !important on an ancestor can beat that. Verified both cases; the fixes are complementary, and this one removes the cause rather than relying on important-mode propagation staying in place.
  • The AgentMark fix is for a bug on release/new-azion-docs, not one this branch caused — it arrived with 94a766ebe, which added the eslint pragma comments. It is dev-only: production strips template comments, the root collapses to a single element, and inheritance works. Verified by compiling the SFC both ways (Fragment root: true in dev, false in prod). Included here rather than split out because it is a one-file, nine-line fix to a visibly broken control on the page this PR rebuilds. AgentCompareTable's size-4 was being dropped the same way and is fixed too.
  • Rebased onto release/new-azion-docs @ a5c1fc62. Most conflicts were the tree-wide prettier pass; GuidesHome.vue was resolved by taking this branch's version after confirming upstream's change there was formatting-only.
  • No breaking changes, no permalink changes, no new dependencies. i18n strings added for both published languages.
  • astro check reports 32 pre-existing errors, none in files this branch touches (all verified byte-identical to the base): Analytics.astro, rehype-doc-table.ts, both 404 pages, astro.config.ts.

🤖 Generated with Claude Code

egermano and others added 7 commits September 11, 2026 19:04
`* { font-family: 'Sora' }` was unlayered, so it outranked Tailwind's
`@layer utilities` regardless of specificity, and matched every element
directly, defeating inheritance. Together that silently forced Sora over
`text-overline-*`, `text-big-number-*` and `font-mono` — the other
properties of those tokens still applied, which is why it read as "the
mono font is broken" rather than "the token is broken".

The base family already comes from the theme's `--default-font-family`
via Tailwind preflight on `html`, so the declaration was redundant.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
`/products/azion-platform-overview/` and `/products/release-notes/` both
404 — the pages live at the permalinks declared in their own frontmatter,
`/fundamentals/` and `/changelog/`. Verified 200 on both local and the
preview deploy.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
The light/dark control lived in the site footer, which put it below the
fold on every docs page. It now sits in the Sidebar's footer slot, where
it is reachable from anywhere in the rail.

Patches webkit's Sidebar so the footer region is a bar rather than a
padded block — one row at the header's own height with a top rule, so the
rail ends on the baseline the top bar starts on. That also lets DocsSidebar
drop its `--rail-w` style override and the eslint-disable it needed.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
The catalog only ever drew its happy path. It now covers the full state
surface: a Skeleton card grid while the 351 rows resolve, an error
Message with a retry action, and an EmptyState that explains what to try
next instead of stating the negative and stopping.

Adds the four strings each state needs, in both published languages.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
The guides hub is a catalog, not a document, but it was rendering in the
reading shell: a docs rail beside a page that already carries its own
filter column, an "On this page" outline over a card grid, and a prose
measure the grid must not take.

Adds DocsDirectoryLayout, selected by namespace the way pricing already
is, so both language editions switch together. BaseLayout grows a
`primarySidebar` prop to suppress the rail; the hub draws the docs home's
masthead instead, taking its lede from the page's own MDX so the sentence
and its link stay in the file a translator edits.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
The section step was written as bare Tailwind numbers that resolved to
the right place by luck. It now names `--spacing-16` / `--spacing-24`,
the theme's own primitive rungs above where the semantic scale tops out.

The closing prev/next pair also carried `px-container` — a different
measure from the content above it — so "Next page" sat ~35px inside the
last card it followed. Both blocks now read one COLUMN constant, so
neither can drift from the other again.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Formatting only, no behaviour change.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
The template's v-if/v-else pair is wrapped in eslint pragma comments. A
comment counts as a root node in a dev build, which makes the component
a fragment — and Vue silently drops automatic attribute inheritance on a
fragment. Every class passed in was discarded.

On the docs home that meant CopyPromptButton's `size-(--size-5)` never
landed, so the four agent marks rendered at their intrinsic 24px, over-
flowed the button and were clipped by its `overflow-hidden`: three of the
four were invisible. AgentCompareTable's `size-4` was being dropped the
same way.

Production strips template comments, so the root collapses to a single
element and the bug disappears there — which is what kept it hidden.
Owning the root with inheritAttrs + $attrs removes the dependency on how
many nodes the compiler happens to emit.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@bruno-andrade-azion
bruno-andrade-azion merged commit a225626 into release/new-azion-docs Sep 11, 2026
8 checks passed
@bruno-andrade-azion
bruno-andrade-azion deleted the feature/guides-update-rebased branch September 11, 2026 22:42
lucas-langeloh-azion added a commit that referenced this pull request Oct 2, 2026
…atch forward

5.3.0 ships the Menu and Sidebar SSR fixes the sidebar needs (aziontech/webkit,
ENG-48323). Dropping the patch outright broke the release: every MDX page with
<DocSteps>/<DocStep> (238 files) threw "useDocStepsContext must be used within
DocSteps" in SSR and its HTML truncated. So the hunks that existed for 5.0.0
move to a 5.3.0 patch unchanged. None of the ENG-48323 changes are in it;
removing the patch is left for its own piece of work.

Carried hunks, by origin:
- #2340: DocPageHeader lastUpdatedLabel/locale; DocProse, Dropdown and Tooltip
  Teleport disabled until mounted (with the use-mounted export); DocStep and
  DocSteps without a provider; MenuSubTrigger icon on inline rows; TabViewPanel
  requestAnimationFrame guard
- #2345: Sidebar footer as a bar
- #2390: NavigationMenu viewport measured at scale 1 under important mode

Two hunks were re-applied by hand on 5.3.0: the package.json export (its
neighbour moved from .js to .ts) and the viewport scale (a max-size cap now
sits around it).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

2 participants