Theme the scrollbars for light and dark mode#574
Merged
Conversation
App scrollbars fell back to the heavy OS/browser default, off-theme against the design system. Add an in-theme scrollbar block to the generated design-system stylesheet: thumb is the --subtle ink at rest and --muted on hover (per-theme tokens, so light/dark flip for free), transparent track, 4px square-ish corners, thin Firefox form. Sourced from globalsCss() in the brand generator and regenerated into packages/ui/src/styles/globals.css; both apps/web and apps/apex import it, so they cannot drift. Issue: AP-388 Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
There was a problem hiding this comment.
Risk: simple
Decision: approve
Ticket triage
- Intended change: Theme app scrollbars (web + apex) so they use design-system tokens and look correct in both light and dark mode instead of the OS default.
- Scope match: Yes. Adds scrollbar styling to
globalsCss()in@agent-paste/brandand regeneratespackages/ui/src/styles/globals.css, which bothapps/webandapps/apeximport via@agent-paste/ui/styles.css.
Review findings
- Blocking: None.
- Non-blocking: Global
* { scrollbar-* }is the usual pattern for cross-browser theming; published artifact iframes remain out of scope per AP-328, as noted in the ticket.
Merge checklist
- Ticket linked: AP-388 linked in PR body and commit.
- Scope matches: Presentational CSS only; matches acceptance criteria (token ladder, square-ish corners, Firefox + WebKit).
- Checks green: Validate, Postgres smoke, Secret scan, CodeQL, CodeRabbit all pass.
- Tests/docs appropriate:
packages/ui/test/globals-css.test.tssnapshot guards generator ↔ shipped stylesheet sync. - No blocking findings: —
- No high-risk areas: No auth, billing, secrets, infra, or migrations touched.
- Merge-safe: Yes.
Final comment
Straightforward design-system CSS with the established generator + snapshot workflow. Token-based thumb/track colors will follow theme switches via --subtle / --muted. Good to merge.
Sent by Cursor Automation: First Pass PR Reviewer
|
agent-paste PR preview resources were cleaned up. The shared Preview GitHub Environment is retained for future preview deploys. |
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
App scrollbars (web + apex) fell back to the heavy OS/browser default — an off-theme black-on-white bar against the design system. The repo had no scrollbar styling at all. This themes them so they read as part of the surface ladder and flip with light/dark mode.
Changes
globalsCss()inpackages/brand/src/index.tsand regenerated intopackages/ui/src/styles/globals.css(bothapps/webandapps/apeximport it, so they can't drift).--subtleink at rest,--mutedon hover (per-theme tokens → light/dark work for free); transparent track; 10px wide; 4px (--radius-md) square-ish corners; 2px transparent inset viabackground-clip: padding-box.scrollbar-width: thin+scrollbar-color.Risk: LOW
@agent-paste/brandgenerator + generated@agent-paste/uisnapshot). Presentational CSS only, no logic.* { scrollbar-* }rule cannot reach artifact iframes (unrelated to AP-328 viewer clipping).Test plan
pnpm verify(104 tasks, 261 script tests green; includes the ui snapshot generated-artifact check)pnpm test:coverage(exit 0, thresholds hold)ziw-code-review: APPROVE, no findingsIssue: AP-388
@coderabbitai ignore