Conversation
`src/app/globals.css` styles the scrollbar with `::-webkit-scrollbar` and friends,
which Chromium honours and Firefox ignores completely — so the app has a themed
scrollbar in Chrome and the platform default in Firefox. The issue points at the
right block: lines 23-38.
Firefox needs the standard properties, and they are inherited, so one declaration
on the root covers the document:
html {
scrollbar-width: thin;
scrollbar-color: var(--scrollbar-thumb) var(--scrollbar-track);
}
`thin` is the closest match to the 10px the webkit block sets. Firefox has no hover
state for the thumb, so `--scrollbar-thumb-hover` stays a Chromium-only refinement
rather than something the two engines can share.
The four values moved into custom properties because both syntaxes need the same
colours, and hard-coding `#2a2f2d` twice is how they drift apart — which is this
issue's failure mode, one engine styled and the other not. `--scrollbar-thumb`
matches `app.border`'s dark value in `src/lib/theme.ts`.
Verified by compiling the stylesheet with the project's own postcss pipeline
(`@tailwindcss/postcss`, the plugin the build uses) and reading the output instead
of the source:
scrollbar-width: thin
scrollbar-color: var(--scrollbar-thumb) var(--scrollbar-track)
--scrollbar-thumb: #2a2f2d
--scrollbar-thumb-hover: #3a413e
--scrollbar-track: transparent
--scrollbar-size: 10px
::-webkit-scrollbar-thumb { background: var(--scrollbar-thumb); ... }
All four webkit rules survive the move to variables, so the change is purely
additive and nothing about the Chromium rendering changes.
`next build` could not be used as the check: it fails with a webpack error that
originates in `src/hooks/useLockFlow.ts`, a file this commit does not touch
(`git diff origin/main -- src/hooks/useLockFlow.ts` is empty), so the failure is
not from this change. Worth looking at separately — it means the app cannot be
built from a clean checkout of main.
✅ Deploy Preview for spiffy-melomakarona-eb1e8a ready!
To edit notification comments on pull requests, go to your Netlify project configuration. |
❌ Deploy Preview for smart-drop failed.
|
(cherry picked from commit df3163e)
|
Added one more commit: a lockfile sync that is not about this PR's own subject, but is the reason every Netlify check on this PR was red.
That is why the six checks on this PR ("Header rules", "Pages changed", "Redirect rules" — the two deploy previews each report three) were failing: they report the preview failing to build, and the preview cannot build while the install is refused. It is repo-wide, not specific to this branch. The commit adds The dependency is real, not stale: This commit is also on the other three open PRs from the same base (#490, #491, #493) so their previews can go green independently of this one merging. |
|
Update on the checks, since they now tell a clearer story: #492 is fully green (both deploy previews, header/redirect rules), and this one is still red — but not for the reason it was. This branch carries the lockfile sync, so the install no longer aborts. What is left is the defects that live on I am deliberately not copying those fixes here: they would duplicate #492, and when it merges this branch picks them up on rebase. If you would rather each PR stand alone and be green today, say so and I will cherry-pick them in. |
Closes #474
What changes
src/app/globals.cssstyles the scrollbar with::-webkit-scrollbarand friends. Chromium honours those; Firefox ignores them entirely, so the app has a themed scrollbar in Chrome and the platform default in Firefox. The issue points at the right block.Firefox needs the standard properties, and they are inherited, so one declaration on the root covers the document:
thinis the closest match to the 10px the webkit block sets. Firefox has no hover state for the thumb, so--scrollbar-thumb-hoverstays a Chromium-only refinement rather than something the two engines can share — worth knowing before someone reports the hover effect as missing on Firefox.The four values moved into custom properties, because both syntaxes need the same colours and hard-coding
#2a2f2dtwice is exactly how they drift apart. That is this issue's failure mode — one engine styled, the other forgotten — so removing the duplication seemed worth the three extra lines.--scrollbar-thumbmatchesapp.border's dark value insrc/lib/theme.ts; if you would rather have one source of truth, the CSS variable could read from the theme instead of restating the hex, but I did not want to restructure the theme in a scrollbar fix.Verification
Compiled the stylesheet with the project's own postcss pipeline (
@tailwindcss/postcss, the plugin the build uses) and read the output rather than the source:All four webkit rules survive the move to variables, so the change is purely additive: nothing about the Chromium rendering changes, and the Firefox path now exists.
next buildcould not be used as the check — it fails on a webpack error that originates insrc/hooks/useLockFlow.ts, a file this PR does not touch (git diff origin/main -- src/hooks/useLockFlow.tsis empty). Worth its own issue, since it means the app cannot be built from a clean checkout ofmain; happy to dig in if you want, but I did not want to bundle it here.One thing I did not do: there is no automated check that Firefox picks these up, because there is no Firefox in this repo's test setup. If the visual-regression suite ever runs a second project,
scrollbar-width/scrollbar-colorcould be asserted there; a unit test would only be asserting my own string.