feat(guides): rebuild the hub as a directory, and restore the theme's font tokens - #2345
Merged
bruno-andrade-azion merged 8 commits intoSep 11, 2026
Merged
Conversation
`* { 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>
bruno-andrade-azion
requested review from
a team,
isaque-bock-azion,
marcus-souza-azion and
pedro-ribeiro-azion
as code owners
September 11, 2026 22:19
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>
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).
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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' }inbase.csswas unlayered, so it outranked every utility in@layer utilities, and matched every element directly, defeating inheritance. That silently forced Sora overtext-overline-*,text-big-number-*andfont-mono. The base family already comes from the theme's--default-font-familyvia preflight, so the declaration was pure redundancy.The Copy prompt button shows all four agent marks again.
AgentMark's template wraps itsv-if/v-elsein 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'sclass.size-(--size-5)never landed, the marks fell back to 24px, and three of the four were clipped by the button'soverflow-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
pnpm install— required, the webkit patch hash changed (Sidebar footer region).pnpm dev, open/en/documentation/.DOCSmark beside the logo renders in Proto Mono, not Sora — 12px, 1.6px tracking, uppercase. Check in both themes./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./en/documentation/fundamentals/and "Release Notes" to/en/documentation/changelog/. Both 404'd before.Notes
pnpm install—patches/@aziontech__webkit@5.0.0.patchchanged, so the lockfile's patch hash moved with it.important, which makes.text-overline-smemit!importantand 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!importanton 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.release/new-azion-docs, not one this branch caused — it arrived with94a766ebe, 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: truein dev,falsein 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'ssize-4was being dropped the same way and is fixed too.release/new-azion-docs@a5c1fc62. Most conflicts were the tree-wide prettier pass;GuidesHome.vuewas resolved by taking this branch's version after confirming upstream's change there was formatting-only.astro checkreports 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