Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
29 commits
Select commit Hold shift + click to select a range
5c5c5ec
docs: migrate docs and blog front end to Primer
IEvangelist Nov 9, 2026
096e7ec
docs: restore Squad identity on Primer with hub-style blog
IEvangelist Nov 9, 2026
2a22a88
docs: slim arrow-less scrollbars with fading gutter
IEvangelist Nov 9, 2026
e86884f
docs: wider scrollbars with a more visible gutter
IEvangelist Nov 9, 2026
4ded337
docs: drop redundant GitHub link from desktop nav
IEvangelist Nov 9, 2026
74dfef8
docs: add blog pagination and make search results replace the Latest row
IEvangelist Nov 9, 2026
e0620b8
docs: redesign site search dialog
IEvangelist Nov 9, 2026
7c53908
docs: match hub controls, filters and type scale on the blog
IEvangelist Nov 9, 2026
bd39b73
docs: restyle site search with Primer overlay and ActionList patterns…
IEvangelist Nov 9, 2026
ff4f8da
docs: larger blurred search modal with scroll lock, blog empty state,…
IEvangelist Nov 9, 2026
cc667a8
docs: collapsible sidebar sections, sidebar tracks current page, acce…
IEvangelist Nov 9, 2026
14bfeb8
docs: pager link spans full width when there is no previous or next page
IEvangelist Nov 9, 2026
6d4cc20
docs: hierarchical breadcrumbs for docs and blog; omit for root pages
IEvangelist Nov 9, 2026
41487d0
docs: give the landing hero more breathing room and an asymmetric des…
IEvangelist Nov 9, 2026
16f9e92
docs: Escape closes search in one press; add clear button in the input
IEvangelist Nov 9, 2026
fabd135
docs: widen landing hero terminal column
IEvangelist Nov 9, 2026
52174c7
docs: reserve scrollbar gutter so scrollbars do not reflow content
IEvangelist Nov 9, 2026
ce1afff
docs: fix lockfile registry hosts, search reset on quick reopen, sche…
IEvangelist Nov 9, 2026
1034202
docs: add screenshot capture CLI for visual review
IEvangelist Nov 9, 2026
22df279
docs: write review screenshots to visual-review/ without deleting tra…
IEvangelist Nov 9, 2026
8a583b8
Merge dev into primer docs branch
IEvangelist Nov 9, 2026
13c32a4
Merge dev into primer docs branch
IEvangelist Nov 9, 2026
aa54eb9
docs: address review feedback
IEvangelist Nov 9, 2026
6a5a834
docs: render breadcrumbs that target the current page as plain text
IEvangelist Nov 9, 2026
02517fe
docs: remove Clear filters button from blog sidebar
IEvangelist Nov 9, 2026
9f5d68e
docs: polish pass (secondary CTA contrast, blockquote border, sidebar…
IEvangelist Nov 9, 2026
d3cec7d
docs: more vertical spacing between landing page sections
IEvangelist Nov 9, 2026
f4b44d1
Merge dev into primer docs branch
IEvangelist Nov 10, 2026
c81e4f3
docs: use the Linux-generated docs/.astro/content.d.ts so the CI work…
IEvangelist Nov 10, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 9 additions & 0 deletions docs/.astro/collections/blog.schema.json
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,15 @@
"date": {
"type": "string"
},
"hero": {
"type": "string"
},
"wave": {
"type": [
"number",
"null"
]
},
"tags": {
"type": "array",
"items": {
Expand Down
2 changes: 2 additions & 0 deletions docs/.gitignore
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
node_modules/
dist/
.astro/
visual-review/
test-results/
14 changes: 12 additions & 2 deletions docs/README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Squad Docs

The documentation site for Squad, built with [Astro](https://astro.build/), [Tailwind CSS](https://tailwindcss.com/), and [Pagefind](https://pagefind.app/) for search.
The documentation site for Squad, built with [Astro](https://astro.build/), [Primer](https://primer.style/) (`@primer/css` + `@primer/primitives`), and [Pagefind](https://pagefind.app/) for search.

## Prerequisites

Expand Down Expand Up @@ -78,7 +78,7 @@ docs/
│ ├── navigation.ts # Sidebar navigation structure
│ ├── pages/ # Astro page routes
│ ├── plugins/ # Remark plugins (link rewriting)
│ └── styles/ # Global CSS (Tailwind)
│ └── styles/ # Primer imports + token-based site CSS
├── public/ # Static assets (images)
└── dist/ # Build output (gitignored)
```
Expand All @@ -103,3 +103,13 @@ Post content here.
```

Blog posts are automatically discovered and listed on the blog index page.

## Styling and accessibility

- UI is built from [Primer](https://primer.style/) classes and design tokens; site-specific rules live in `src/styles/site.css` and use tokens only (no raw colors).
- Color mode uses Primer's `data-color-mode` (`auto` by default; the toggle stores `light`/`dark` in `localStorage`).
- `npm run test:e2e` includes axe-core WCAG A/AA checks in light and dark mode (`tests/a11y.spec.mjs`). Start `npm run preview -- --port 4321` first. The API reference specs need generated TypeDoc pages.

## Visual review screenshots

`npm run build && npm run screenshots` captures every layout page (landing, blog index and states, blog post, docs pages, 404, search dialog, mobile drawer) on mobile (390px), tablet (820px) and desktop (1440px) in light and dark mode into `docs/visual-review/` (gitignored) and writes `visual-review/index.html` as a gallery. Options: `--base`, `--out`, `--full-height`, `--only home,blog-post`. It starts `astro preview` itself if nothing is listening, and exits non-zero if any capture logged a console error.
9 changes: 4 additions & 5 deletions docs/astro.config.mjs
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
import { defineConfig } from 'astro/config';
import tailwindcss from '@tailwindcss/vite';
import sitemap from '@astrojs/sitemap';
import { remarkRewriteLinks } from './src/plugins/remark-rewrite-links.mjs';
import { rehypePagefindAttrs } from './src/plugins/rehype-pagefind-attrs.mjs';
import { rehypeA11y } from './src/plugins/rehype-a11y.mjs';
import { createRequire } from 'module';

const require = createRequire(import.meta.url);
Expand All @@ -12,7 +12,6 @@ export default defineConfig({
base: '/squad/',
integrations: [sitemap()],
vite: {
plugins: [tailwindcss()],
define: {
__VERSION__: JSON.stringify(process.env.SQUAD_VERSION || require('../package.json').version),
__COMMIT_SHA__: JSON.stringify(process.env.GITHUB_SHA || 'local'),
Expand All @@ -21,11 +20,11 @@ export default defineConfig({
},
markdown: {
remarkPlugins: [remarkRewriteLinks],
rehypePlugins: [rehypePagefindAttrs],
rehypePlugins: [rehypePagefindAttrs, rehypeA11y],
shikiConfig: {
themes: {
light: 'github-light',
dark: 'github-dark',
light: 'github-light-high-contrast',
dark: 'github-dark-high-contrast',
},
},
},
Expand Down
Loading
Loading