Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
127 commits
Select commit Hold shift + click to select a range
b699746
Seed the agent team for the apps-page redesign
jeswr Apr 23, 2026
9359a3d
Replace vague 'here' link text in FAQ
jeswr Apr 23, 2026
7f1f014
refactor(apps): migrate inline style block to apps.css
jeswr Apr 23, 2026
3d00e9f
feat(apps): add hero block with primary Get-a-Pod CTA
jeswr Apr 23, 2026
a6d4772
feat(apps): add search input and restructure filter toolbar
jeswr Apr 23, 2026
610adb1
build(lint): wire up htmlhint on source HTML
jeswr Apr 23, 2026
1f28bb1
fix(apps): make toolbar responsive and ensure nested chrome reset wins
jeswr Apr 23, 2026
45910c4
Replace vague 'here' / 'read more' link text in newsletter posts
jeswr Apr 23, 2026
c49d2a3
Correct misleading 'tips on organising' link text to match destination
jeswr Apr 23, 2026
98dd6af
feat(apps): group tiles by category with sticky anchor TOC
jeswr Apr 23, 2026
6b59d77
build(lint): add stylelint + pa11y-ci configuration
jeswr Apr 23, 2026
fbff3ef
Fix vague link text and duplicate event id in events/archive.html
jeswr Apr 23, 2026
6e7220e
build(lint): make lint:a11y self-contained via http-server + start-se…
jeswr Apr 23, 2026
019cd88
Add rel='noopener noreferrer' and class='external-link' to default la…
jeswr Apr 23, 2026
a4e6ae9
fix(apps): address roborev findings on category grouping
jeswr Apr 23, 2026
e0d4fd3
build(lint): wire pa11y JSON output so the failure artifact is populated
jeswr Apr 23, 2026
b47ce66
fix(apps): TOC clicks also clear search + top-apps toggle
jeswr Apr 23, 2026
e997a15
feat(apps): featured row + tile polish (hover lift, chevron, logo slot)
jeswr Apr 23, 2026
7f9197f
fix(apps): hide featured row while filter active; tighten star a11y
jeswr Apr 23, 2026
4c825c2
feat(apps): responsive + reduced-motion pass, dark-mode deferred
jeswr Apr 23, 2026
d04c91c
fix(apps): reduced-motion also neutralises chevron hover transform
jeswr Apr 23, 2026
db48806
Rewrite apps.html hero copy for plain-language welcome
jeswr Apr 23, 2026
ae2244e
Refine Editor's picks blurb and remove resolved copy TODOs
jeswr Apr 23, 2026
603db60
Tighten every app tile description to active voice, one-sentence form
jeswr Apr 23, 2026
e56d802
Convert remaining tile taglines from noun phrases to active-voice sen…
jeswr Apr 23, 2026
5ae30db
Reframe inclusion criteria as developer guidance and trim disclaimer
jeswr Apr 23, 2026
8bf69a8
Add three more personas for the follow-up round on PR #960
jeswr Apr 23, 2026
6507f0c
Add Playwright + axe-core dev infra for visual QA
jeswr Apr 23, 2026
edb2f40
a11y: add rel=noopener noreferrer to external links on 8 small pages
jeswr Apr 23, 2026
d08b328
a11y: add rel=noopener noreferrer to external links in code_of_conduct
jeswr Apr 23, 2026
4f63786
a11y: add rel=noopener noreferrer to external links in specification …
jeswr Apr 23, 2026
8ad17ff
a11y: add rel=noopener noreferrer to external links in team page
jeswr Apr 23, 2026
a64c258
a11y: add rel=noopener noreferrer to external links in FAQ
jeswr Apr 23, 2026
33efadb
a11y: add rel=noopener noreferrer to external links in for_developers
jeswr Apr 23, 2026
2880ed5
a11y: add rel=noopener noreferrer to external links in get_a_pod
jeswr Apr 23, 2026
5c5a4a4
a11y: add rel=noopener noreferrer to external links in press (batch 1/3)
jeswr Apr 23, 2026
e5c2110
a11y: add rel=noopener noreferrer to external links in press (batch 2/3)
jeswr Apr 23, 2026
079abf6
a11y: add rel=noopener noreferrer to external links in press (batch 3/3)
jeswr Apr 23, 2026
541d645
a11y: add rel=noopener noreferrer to 2019-08-22 post (batch 1/2)
jeswr Apr 23, 2026
008e79f
Broaden theme-designer scope to include about.html + SVG rewrites
jeswr Apr 23, 2026
9ebbc96
a11y: add rel=noopener noreferrer to 2019-08-22 post (batch 2/2)
jeswr Apr 23, 2026
d8bd1f0
a11y: add rel=noopener noreferrer to 2019-08-29 post (batch 1/2)
jeswr Apr 23, 2026
049ee32
a11y: add rel=noopener noreferrer to 2019-08-29 post (batch 2/2)
jeswr Apr 23, 2026
a768993
a11y: add rel=noopener noreferrer to 2019-09-05 post (batch 1/2)
jeswr Apr 23, 2026
99d76dc
a11y: add rel=noopener noreferrer to 2019-09-05 post (batch 2/2)
jeswr Apr 23, 2026
94f79ff
a11y: add rel=noopener noreferrer to 2019 posts (remaining 20 files)
jeswr Apr 23, 2026
23b9d58
a11y: add rel=noopener noreferrer to 2020 posts
jeswr Apr 23, 2026
70e87b2
a11y: add rel=noopener noreferrer to 2021 posts
jeswr Apr 23, 2026
0f6c47a
Add smoke spec for six top-level pages
jeswr Apr 23, 2026
d970880
Pin six PR-960 regressions as test.fixme on /apps
jeswr Apr 23, 2026
6eba9a4
Fix sticky-TOC + mobile-overflow + reduced-motion regression specs
jeswr Apr 23, 2026
d7edea8
Normalise identity-matrix transforms + assert tile selector exists
jeswr Apr 23, 2026
a0f8124
Add dark-mode contrast spec gated on theme tokens shipping
jeswr Apr 23, 2026
bbf2630
Wire visual-qa workflow on pull_request
jeswr Apr 23, 2026
cb7ad96
Prefer roborev --agent codex over --agent copilot --model gpt-5.4
jeswr Apr 23, 2026
efb1bb3
Add screenshot baseline spec for /apps (baselines to be generated in CI)
jeswr Apr 23, 2026
d24b300
Re-inject animation-suppression after mobile navigation
jeswr Apr 23, 2026
3653c11
Add /about to the smoke + dark-mode e2e page list
jeswr Apr 23, 2026
0cb5574
Scope apps-tile chevron pseudo-element to direct-child anchor
jeswr Apr 23, 2026
6567a34
Stop hero CTAs and tile headers overflowing at 375px
jeswr Apr 23, 2026
3a6eb83
Extend tile-header mobile-wrap rules to no-JS fallback list
jeswr Apr 23, 2026
569dd82
Align apps toolbar labels and controls on a shared baseline
jeswr Apr 23, 2026
602a923
Pin toolbar checkbox to input row; cover search label in test
jeswr Apr 23, 2026
07f4dc9
Add solid-site-test-watcher + decouple Playwright from commit loop
jeswr Apr 23, 2026
cc8e3cb
Isolate watcher in a dedicated worktree + fix fast-forward before revert
jeswr Apr 23, 2026
5315401
Watcher: keep detached HEAD + refresh deps on lockfile change
jeswr Apr 23, 2026
c430fdf
Layer sticky category TOC above tiles, below site header
jeswr Apr 23, 2026
e1148e9
Revert "Layer sticky category TOC above tiles, below site header"
jeswr Apr 23, 2026
757273f
Watcher: exclude screenshots.spec.ts from the in-session test run
jeswr Apr 23, 2026
a05252d
Layer sticky category TOC above tiles, below site header
jeswr Apr 23, 2026
2d69005
Retire orphan "Browser" category; move SolidFocus to Productivity
jeswr Apr 23, 2026
92ab1a7
Watcher: use /bin/cat (macOS 14+ dropped /usr/bin/cat)
jeswr Apr 23, 2026
ac2d49c
Address roborev findings on sticky-TOC offset and header z-index
jeswr Apr 23, 2026
73ebcb6
Revert "Address roborev findings on sticky-TOC offset and header z-in…
jeswr Apr 23, 2026
7310a8b
Add data-category-intro slot + JS wiring under each heading
jeswr Apr 23, 2026
181489a
Revert "Add data-category-intro slot + JS wiring under each heading"
jeswr Apr 23, 2026
9ac09f7
Reapply "Address roborev findings on sticky-TOC offset and header z-i…
jeswr Apr 23, 2026
6fa1a1b
Reapply sticky-TOC fixup + data-category-intro slot (watcher was lying)
jeswr Apr 23, 2026
5b81442
Lint: ignore playwright-report/ + test-results/ artifacts
jeswr Apr 23, 2026
7f41a00
Introduce :root design tokens + dark-mode scaffold in base.css
jeswr Apr 23, 2026
c286d66
Migrate header / footer / breadcrumb / banner to design tokens
jeswr Apr 23, 2026
8383467
Migrate apps.css to site-wide design tokens
jeswr Apr 23, 2026
834fe4a
Add theme toggle button + no-flash bootstrap script
jeswr Apr 23, 2026
2c047f0
Address roborev findings on theme toggle: mobile visibility, chrome s…
jeswr Apr 23, 2026
f0a4d76
Migrate homepage.css to tokens + introduce .page-hero primitive
jeswr Apr 23, 2026
f9189cf
Add hero to about.html + dark-mode safe tour illustration wrapper
jeswr Apr 23, 2026
a7f6c65
Add page hero to get_a_pod.html
jeswr Apr 23, 2026
3eefb7d
Add page hero to for_users / for_developers / for_organisations
jeswr Apr 23, 2026
35249a6
Add page hero to community.html
jeswr Apr 23, 2026
34d8aba
Rewrite site icons to use fill=currentColor + dark-mode filter fallback
jeswr Apr 23, 2026
bd0bf65
Restore FontAwesome attribution on chevron-right + calendar-days icons
jeswr Apr 23, 2026
e46bfb4
Fill in per-category intros on apps.html
jeswr Apr 23, 2026
71d2467
Finalise hero copy on about.html
jeswr Apr 23, 2026
f2b5e4f
Finalise hero copy on get_a_pod.html
jeswr Apr 23, 2026
39405b6
Finalise hero copy on for_users / for_developers / for_organisations
jeswr Apr 23, 2026
ddd342f
Finalise hero copy on community.html
jeswr Apr 23, 2026
0163c83
Make dark mode opt-in + fix double-icon visibility on the toggle
jeswr Apr 23, 2026
3570afe
Patch theme-color meta inline before first paint for opted-in dark
jeswr Apr 23, 2026
93795cd
Pin category TOC to the side of the apps grid instead of on top
jeswr Apr 23, 2026
eabac2a
Sidebar TOC: :has() guard for no-JS + tablet horizontal-scroll pills
jeswr Apr 23, 2026
652964c
Sticky toolbar + replace TOC pills with a plain grid of links
jeswr Apr 24, 2026
b99f759
Fix TOC focus indicator + JS-measure the toolbar sticky offset
jeswr Apr 24, 2026
9d5640f
Retire toolbar; put search + sticky sidebar together on the left
jeswr Apr 24, 2026
8163f1f
Make Pod-service tiles clickable + add "Browse the apps" CTA
jeswr Apr 24, 2026
4a2f8da
Collapse nav to Get Started + Learn more + Get Involved; reorganise f…
jeswr Apr 24, 2026
5a0f786
Remove duplicate Get started with Solid tiles from for_users page
jeswr Apr 24, 2026
4e81135
Stop re-darkening header + footer in dark mode
jeswr Apr 24, 2026
bda2db5
Remove redundant 'Browse the apps' ghost CTA from /apps hero
jeswr Apr 24, 2026
60b2a66
Rewrite /apps hero CTA as self-explanatory; drop note paragraph
jeswr Apr 24, 2026
218e784
Drop 'Filters the grid as you type' hint from /apps search
jeswr Apr 24, 2026
e4fa7bf
Remove Apps from Get Involved nav dropdown
jeswr Apr 24, 2026
917a1ce
Stop rendering duplicate page title; promote hero headline to h1
jeswr Apr 24, 2026
15d3754
Remove Solid Hackathon from event banner (tickets sold out)
jeswr Apr 24, 2026
8b628a5
Tighten header nav rhythm: breathing room for Get Started CTA
jeswr Apr 24, 2026
ecd0fd3
Remove inaccurate cross-provider portability claims
jeswr Apr 24, 2026
fb32af6
Use margin-right on CTA item for consistency with repo conventions
jeswr Apr 24, 2026
fcbdee5
Remove breadcrumbs from every page
jeswr Apr 24, 2026
f96879a
Prevent theme toggle from overlapping hamburger when mobile menu is open
jeswr Apr 24, 2026
d97b311
Drop Open Data Institute name from the community page hero lede
jeswr Apr 24, 2026
9501263
Balance the homepage hero: figure hugs the right, equal columns
jeswr Apr 24, 2026
52142e5
Hero layout fixes: flex split, stop floating page.image on hero pages…
jeswr Apr 24, 2026
efb7d49
Unstage Claude Code agent infrastructure from the branch
jeswr Apr 24, 2026
52e298f
Fix hero width alignment + restore images on remaining hero pages
jeswr Apr 24, 2026
c87a2ee
Point Get Started CTAs straight at /get_a_pod; drop footer duplicate
jeswr Apr 24, 2026
1a5bbb5
Move server implementations + app-listing criteria to /for_developers…
jeswr Apr 24, 2026
e593a26
Add provider disclaimer on /get_a_pod; retarget "raise an issue" link…
jeswr Apr 24, 2026
afb95a7
Promote solidcommunity.net to first Pod provider with ODI stewardship…
jeswr Apr 24, 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
69 changes: 69 additions & 0 deletions .github/workflows/lint.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,69 @@
name: lint

on:
pull_request:
types: [opened, synchronize, reopened]
branches:
- main

concurrency:
group: lint-${{ github.ref }}
cancel-in-progress: true

jobs:
html-css:
name: htmlhint + stylelint
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4

- name: Set up Node.js
uses: actions/setup-node@v4
with:
node-version: '20'
cache: 'npm'

- name: Install npm dependencies
run: npm ci

- name: Lint HTML (htmlhint)
run: npm run lint:html

- name: Lint CSS (stylelint)
run: npm run lint:css

a11y:
name: pa11y-ci (WCAG2AA)
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4

- name: Set up Ruby
uses: ruby/setup-ruby@v1
with:
bundler-cache: true

- name: Set up Node.js
uses: actions/setup-node@v4
with:
node-version: '20'
cache: 'npm'

- name: Install npm dependencies
run: npm ci

- name: Build Jekyll site
run: bundle exec jekyll build

- name: Run pa11y-ci against built site
run: npm run lint:a11y:ci

- name: Upload pa11y report (always)
if: always()
uses: actions/upload-artifact@v4
with:
name: pa11y-report
path: pa11y-report.json
if-no-files-found: ignore
66 changes: 66 additions & 0 deletions .github/workflows/visual-qa.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
name: visual-qa

on:
pull_request:
types: [opened, synchronize, reopened]
branches:
- main

concurrency:
group: visual-qa-${{ github.ref }}
cancel-in-progress: true

jobs:
playwright:
name: Playwright (visual + functional QA)
runs-on: ubuntu-latest
timeout-minutes: 20
steps:
- name: Checkout
uses: actions/checkout@v4

- name: Set up Ruby
uses: ruby/setup-ruby@v1
with:
bundler-cache: true

- name: Set up Node.js
uses: actions/setup-node@v4
with:
node-version: '20'
cache: 'npm'

- name: Install npm dependencies
run: npm ci

- name: Build Jekyll site
run: bundle exec jekyll build

# Playwright browsers are intentionally NOT installed via a
# postinstall hook so contributors running only lint never pay
# the download cost. We install on demand here.
- name: Install Playwright browsers
run: npx playwright install --with-deps chromium firefox

- name: Run Playwright suite
run: npm run test:e2e:ci
env:
CI: 'true'

- name: Upload Playwright HTML report
if: always()
uses: actions/upload-artifact@v4
with:
name: playwright-report
path: playwright-report/
if-no-files-found: ignore
retention-days: 14

- name: Upload Playwright raw results (traces, videos, screenshots)
if: failure()
uses: actions/upload-artifact@v4
with:
name: playwright-results
path: test-results/
if-no-files-found: ignore
retention-days: 14
9 changes: 9 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -8,3 +8,12 @@ _site
vendor
rdfa/node_modules
rdfa/package-lock.json
node_modules
.cache
pa11y-report.json

# Playwright — keep baseline PNGs, ignore only failure/diff artefacts
test-results/
playwright-report/
**/*-actual-*.png
**/*-diff-*.png
22 changes: 22 additions & 0 deletions .htmlhintrc
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
{
"tagname-lowercase": true,
"attr-lowercase": true,
"attr-value-double-quotes": true,
"attr-no-duplication": true,
"doctype-first": false,
"tag-pair": true,
"tag-self-close": false,
"spec-char-escape": true,
"id-unique": true,
"src-not-empty": true,
"title-require": true,
"alt-require": true,
"doctype-html5": true,
"inline-style-disabled": false,
"inline-script-disabled": false,
"space-tab-mixed-disabled": "space",
"id-class-ad-disabled": false,
"href-abs-or-rel": false,
"attr-unsafe-chars": true,
"head-script-disabled": false
}
21 changes: 21 additions & 0 deletions .pa11yci
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
{
"defaults": {
"standard": "WCAG2AA",
"runners": ["axe"],
"timeout": 30000,
"wait": 500,
"threshold": 0,
"chromeLaunchConfig": {
"args": ["--no-sandbox", "--disable-dev-shm-usage"]
},
"ignore": []
},
"urls": [
"http://127.0.0.1:4000/",
"http://127.0.0.1:4000/apps",
"http://127.0.0.1:4000/get_a_pod",
"http://127.0.0.1:4000/for_developers",
"http://127.0.0.1:4000/for_users",
"http://127.0.0.1:4000/community"
]
}
37 changes: 37 additions & 0 deletions .stylelintrc.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
{
"extends": ["stylelint-config-standard"],
"rules": {
"no-descending-specificity": null,
"no-duplicate-selectors": null,
"declaration-block-no-redundant-longhand-properties": null,
"declaration-block-no-shorthand-property-overrides": null,
"selector-class-pattern": null,
"selector-id-pattern": null,
"custom-property-pattern": null,
"keyframes-name-pattern": null,
"value-keyword-case": null,
"hue-degree-notation": null,
"color-function-notation": null,
"alpha-value-notation": null,
"shorthand-property-no-redundant-values": null,
"declaration-empty-line-before": null,
"rule-empty-line-before": null,
"comment-empty-line-before": null,
"length-zero-no-unit": null,
"number-max-precision": null,
"font-family-name-quotes": null,
"font-family-no-missing-generic-family-keyword": null,
"media-feature-range-notation": null,
"at-rule-empty-line-before": null,
"color-hex-length": null,
"property-no-vendor-prefix": null,
"value-no-vendor-prefix": null,
"selector-no-vendor-prefix": null,
"at-rule-no-vendor-prefix": null,
"import-notation": null,
"no-empty-source": null,
"color-function-alias-notation": null,
"color-function-notation": null
},
"ignoreFiles": ["assets/css/styles.css"]
}
Loading
Loading