Give scroll regions inside the page the design system's scrollbar #208

Merged
cruelacid merged 2 commits from worktree-nec-150-scrollbars into main 2026-09-29 09:49:47 +01:00
Owner

Task: NEC-150

The docs sidebar, code blocks and wide tables on nectenda.com showed the operating system's scrollbar in the middle of a styled page. The Nectenda Design System now defines an in-page scrollbar — --scrollbar-* tokens, the .nx-scroll utility and guidelines/scrollbars.html — and the site applies it to every inner scroll region. The page's own scrollbar stays the browser's.

  • 6px thumb in a 10px gutter, --radius-sm, no track; thumb ≥3:1 on page, surface and raised in both themes (--border-strong was 1.5–2:1)
  • two engines: WebKit pseudo-elements under @supports, standard scrollbar-color for Firefox
  • site/docs.test.mjs fails if a guide page has a pre, table or sidebar without .nx-scroll (mutation-checked)
  • sync-design-assets.mjs regenerated the identity copy and the plugin token block (tokens only, nothing in the plugin uses them yet)

Previewed locally on the docs and pricing pages before this PR.

Changelog

NONE

🤖 Generated with Claude Code

https://claude.ai/code/session_01NnpsVLx9NmMG2N2nJnA8mR

Task: NEC-150 The docs sidebar, code blocks and wide tables on nectenda.com showed the operating system's scrollbar in the middle of a styled page. The Nectenda Design System now defines an in-page scrollbar — `--scrollbar-*` tokens, the `.nx-scroll` utility and `guidelines/scrollbars.html` — and the site applies it to every inner scroll region. The page's own scrollbar stays the browser's. - 6px thumb in a 10px gutter, `--radius-sm`, no track; thumb ≥3:1 on page, surface and raised in both themes (`--border-strong` was 1.5–2:1) - two engines: WebKit pseudo-elements under `@supports`, standard `scrollbar-color` for Firefox - `site/docs.test.mjs` fails if a guide page has a `pre`, `table` or sidebar without `.nx-scroll` (mutation-checked) - `sync-design-assets.mjs` regenerated the identity copy and the plugin token block (tokens only, nothing in the plugin uses them yet) Previewed locally on the docs and pricing pages before this PR. ## Changelog NONE 🤖 Generated with [Claude Code](https://claude.com/claude-code) https://claude.ai/code/session_01NnpsVLx9NmMG2N2nJnA8mR
Give scroll regions inside the page the design system's scrollbar
Some checks failed
Release note / release-note (pull_request) Successful in 13s
CI / build (pull_request) Failing after 1m50s
CI / promote (pull_request) Has been cancelled
CI / e2e (pull_request) Has been cancelled
f09db62f13
The docs sidebar, code blocks and wide tables showed the operating system's
scrollbar in the middle of a styled page. The design system now defines one
(--scrollbar-* tokens, .nx-scroll, guidelines/scrollbars.html): a 6px thumb
in a 10px gutter, no track, 3:1 or better on every surface in both themes.
The page's own scrollbar stays the browser's.

The site renderers add .nx-scroll to every pre and table they emit, and to
the sidebar and pricing table; a test fails if one is missed.

Task: NEC-150

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01NnpsVLx9NmMG2N2nJnA8mR
Regenerate the status page stylesheet from the new tokens
All checks were successful
Release note / release-note (pull_request) Successful in 13s
CI / build (pull_request) Successful in 4m50s
CI / e2e (pull_request) Successful in 5m26s
CI / promote (pull_request) Has been skipped
Deploy site / deploy (push) Successful in 55s
CI / build (push) Successful in 5m10s
CI / e2e (push) Successful in 5m39s
CI / promote (push) Successful in 31s
b68e4f26cb
It is built from site/static/tokens.css, and a test holds the committed
copy to what the build produces.

Task: NEC-150

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01NnpsVLx9NmMG2N2nJnA8mR
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
Nectenda/nectenda!208
No description provided.