Repository navigation
Fix the docs site's Fulldev Scan findings - #31
Merged
Merged
Conversation
- Theme tokens take the Fulldev colours in light and dark mode, so white text on the primary passes contrast. Links use the foreground in dark mode and code blocks sit on the card colour. - The sidebar inset is a div and the sidebar a labelled nav, so the page has one top-level main and no content outside landmarks. - Netlify sends Content-Security-Policy: frame-ancestors 'self'. - The homepage carries WebSite JSON-LD with Fulldev as publisher. - The build writes /llms.txt from the docs navigation and frontmatter. - Analytics starts after the load event and an idle callback. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
✅ Deploy Preview for fulldev-sitex ready!
To edit notification comments on pull requests, go to your Netlify project configuration. |
silveltman
marked this pull request as ready for review
October 17, 2026 21:19
silveltman
added a commit
that referenced
this pull request
Oct 19, 2026
…nt docs to Fulldev UI (#34) Follows up on last night's Fulldev Scan of sitex.full.dev, and moves the component documentation to Fulldev UI: Sitex is the framework, and Fulldev UI holds the React components. ## Changes 1. **Markdown versions.** Every page has a Markdown version at its path with `.md`, the homepage at `/index.md`, as on full.dev and ui.full.dev. The build plugin in `apps/docs/vite.config.ts` (`markdown()`, which also writes llms.txt) serves each MDX file as written; the homepage's hero and features, which its layout renders from the frontmatter, follow as Markdown. Each page links its version with `<link rel="alternate" type="text/markdown">`, and llms.txt links to the `.md` files. Netlify serves `.md` as `text/markdown`; `netlify.toml` adds `X-Robots-Tag: noindex` for them, like ui.full.dev. The scan probes the alternate link, `/path.md` and `/index.md`, so it finds them. No `Accept: text/markdown` negotiation: full.dev and ui.full.dev do not have it either, and on Netlify it would need an edge function. 2. **Site name.** The site's name is Sitex: `og:site_name`, the WebSite structured data (from the globals, not the page title) and llms.txt's heading. The scan's "Business name written in several ways" compares `og:site_name` with the names of organizations that are top-level or the WebSite's `publisher`, `about`, `mainEntity`, `copyrightHolder` or `owner`. Fulldev is now the WebSite's `creator`: it made Sitex, and the site's own name stays Sitex. Page titles are unchanged. 3. **Load time.** `netlify.toml` lets browsers keep the hashed files in `/assets/` for a year (`immutable`), as full.dev and ui.full.dev do for `/_astro/`. They were `max-age=0, must-revalidate`, so every page view checked the stylesheet again before rendering. 4. **Component docs moved to Fulldev UI.** `/docs/components` and its 13 component pages are gone, with their navigation, Markdown versions, llms.txt and sitemap entries. Their framework part (static rendering, client directives, prefetch) is now `/docs/rendering`, where the older rendering addresses point again. The layouts page and the package README point to [Fulldev UI's React components](https://ui.full.dev/react/) for ready-made components. Redirects (301): - `/docs/components` and `/docs/ui/components` to `https://ui.full.dev/react/components/` - `/docs/components/{banner,header,layout,marquee,price,rating,section,theme-toggle,toc,typography}` to the same name under `https://ui.full.dev/react/components/` - `/docs/components/*` (code, gradient, tile) and `/docs/ui` to `https://ui.full.dev/react/` - `/docs/ui/installation` to `https://ui.full.dev/react/docs/installation/` - `/docs/ui/*` still to `/docs/components/:splat`, which then redirects as above ## Not changed - **Component code and registry.** `apps/docs/src/components/ui` stays. The docs site renders with code, header, layout, section, theme-toggle, toc and typography, and `apps/docs/registry.json` still publishes all 13 at `https://sitex.full.dev/r/*.json`; banner, gradient, marquee, price, rating and tile are only in that registry. The framework package uses none of them. Retiring the Sitex registry is a separate decision. - **Unused JavaScript.** Analytics already loads after the load event and idle time (#31); Lighthouse counts it because it downloads within its measuring window. The rest is React in `islandClient`, which the theme toggle on every page needs. - **Render-blocking CSS.** One 14.5 KB (gzip) stylesheet. Removing the delay means inlining CSS, a framework change in `packages/sitex`. full.dev has the same hint. ## Verification - `vp run fix`, `vp run check`, `vp run build` and `changeset status --since=origin/main` pass. - `dist` has 6 pages, each with its `.md`; llms.txt and the sitemap list those 6. - Deploy Preview: every redirect above ends in a 200; `/docs/rendering`, the old rendering addresses and `/r/*.json` answer; `.md` files are `text/markdown`, which the Scan's Markdown test counts as usable; `/assets/*` has `max-age=31536000, immutable`. Previews mark every response noindex, so the `.md` noindex rule shows only in production. - Playwright on the Deploy Preview in Chromium, Firefox and WebKit at 1280 and 390 px: the 6 pages load without errors, every link and Markdown version answers 200, nothing links to `/docs/components`, and the sidebar and mobile navigation list Introduction, Installation, Pages, Layouts and Rendering. 🤖 Generated with [Claude Code](https://claude.com/claude-code) --------- Co-authored-by: Sil Veltman <otis@otis.tailb5cb80.ts.net> Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
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.
Fixes what Fulldev Scan found on sitex.full.dev.
Changes
apps/docs/src/index.csstake the Fulldev colours: light primary#1442e9with white text (7.0:1), text#1d1f24, muted text#555861, background#fbfaf8; dark background#0c0b09, text#f2f1ee, primary#d34110with white text (4.63:1). The homepage button was white on#ff5e00(3.06:1) in the default dark theme. Two follow-on changes keep both modes passing: typography links use the foreground in dark mode (orange text on the dark background is 4.2:1, Fulldev's own rule), and code blocks sit onbg-cardso light syntax colours keep their contrast on the stone page.SidebarInsetrenders adivinstead of a secondmain(markedLocal:in the shadcn copy), so the layout'sLayoutMainis the one top-levelmainand the header becomes the banner. The sidebar's logo and links sit in anavlabelled "Site navigation". Docs app only, so no package release; the changeset is empty like earlier docs-only PRs.netlify.tomlsendsContent-Security-Policy: frame-ancestors 'self', as ui.full.dev does. Nothing in the repo or the fulldev monorepo embeds the docs.WebSitewith Fulldev (https://full.dev) as the publishingOrganization, unless the page sets its ownjsonLd.apps/docs/vite.config.tswrites/llms.txtfrom the sidebar navigation insrc/globals/index.yamland each page's frontmatter: title, URL and description per page, grouped as Docs and Components, in the ui.full.dev format.posthog.tsximports PostHog after the window load event and thenrequestIdleCallback(timeout 1000,setTimeoutfallback), as fulldotdev/ui does.Verification
vp run checkandvp run buildpass.color-contraston.bg-primary, nolandmark-main-is-top-level,landmark-no-duplicate-main,landmark-uniqueorregionleft. Light-mode code had failing syntax colours before; onbg-cardonly the github-light orange#e36209remains (3.5:1, 12 nodes), plus onescrollable-region-focusablecode block on /docs/installation. Both predate this PR and are not in the scan.dist/index.htmlhas the WebSite JSON-LD; docs pages have none.dist/llms.txtlists all 18 docs pages.netlify.tomlonly. The Deploy Preview will show it live.Notes
PNPM_CONFIG_VIRTUAL_STORE_TYPE=isolatedon Macs with pnpm's global virtual store:vitestresolves to vite-plus-test 0.1.24, whose vite-plus-core cannot findvite-plus/bindingfrom the global store. CI and Netlify use the normal store and are unaffected.🤖 Generated with Claude Code