Skip to content

fix(island): the pinned band's ground is pinned with its ink - #1214

Merged
ExtraToast merged 1 commit into
mainfrom
fix/the-ground-follows-the-ink
Sep 7, 2026
Merged

fix(island): the pinned band's ground is pinned with its ink#1214
ExtraToast merged 1 commit into
mainfrom
fix/the-ground-follows-the-ink

Conversation

@ExtraToast

@ExtraToast ExtraToast commented Sep 7, 2026

Copy link
Copy Markdown
Contributor

Closes #984.

Why

.band-swipe--pinned pins the dark treatment inside a swipeable band, so a photograph is never filtered by a wash that follows the viewer's theme. It overrides seven properties — ground, pit, surface, raised, hairline, chalk, ash.

A custom property built out of another is substituted where it is declared, not where it is read. --band-ground is built from --color-pit on .island, above the pinned band:

.island { --band-ground: color-mix(in oklab, var(--color-pit) 86%, transparent); }

So in the light theme the ink inside the band flipped to chalk while the wash it sits on kept the viewer's pale. White text on a pale ground, live on the esports pages whenever a light-theme visitor opens a slice.

How

The pinned block rebuilds --band-ground from the pinned pit, and says why: anything in the island layer derived from those seven properties belongs in that block for the same reason.

I checked what else derives from that family rather than assuming the ticket's list was complete. Two properties do: --band-ground, and --accent-ink on the board page.

The one I did not change

--accent-ink is built from --accent and --color-chalk. The board band is not pinned — grep finds band-swipe--pinned applied only by SeasonSwipe — so it resolves against the viewer's theme and is correct today. Changing it now would be fixing a bug that does not exist.

What it gets instead is a comment beside it saying what to do if that band is ever pinned, because the failure is silent: the text simply becomes hard to read, and nothing errors. #978 found this exact shape by extending the pinning to the board band, which is how the bug was noticed at all.

Verification

Test first, and it fails for the stated reason before the fix:

expect(pinnedGround).not.toBe(pageGround)

The new e2e case reads --band-ground off the pinned swipe and off the island in the light theme and asserts they differ — the pinned one is built from the pinned pit, so it cannot be what the light page computed for itself.

esports-island, esports-band-behaviour and boards on chromium — 62 passed, 9 skipped. yarn vitest run — 189 files, 1627 tests. typecheck and eslint clean.


Diff breakdown added removed, scaled to the largest row.

frontend                                           +34     -0    3
  production         ████████████                  +11     -0    2
  e2e tests          ██████████████████████████    +23     -0    1

──────────────────────────────────────────────────────────────────
production                                         +11     -0
tests                                              +23     -0  2.09 test lines per prod line
total (hand-written)                               +34     -0  3 files

A custom property built out of another is substituted where it is declared, not
where it is read. `--band-ground` is built from `--color-pit` on `.island`,
above `.band-swipe--pinned`, so inside the pinned band the ink flipped to chalk
while the wash kept the light theme's pale: white text on a pale ground,
reachable today on the esports pages whenever a light-theme visitor opens a
slice.

The band rebuilds it from the pinned pit, and the block says that anything
derived from those seven properties belongs there for the same reason.

`--accent-ink` on the board page is built from `--color-chalk` too. The board
band is not pinned — only the esports swipe applies that class — so it resolves
against the viewer and is correct today. The comment beside it says what to do
if that changes, since the failure is silent.

Closes #984
@ExtraToast ExtraToast added the bug Something isn't working label Sep 7, 2026
@ExtraToast ExtraToast self-assigned this Sep 7, 2026
@ExtraToast
ExtraToast merged commit 63b45f5 into main Sep 7, 2026
25 checks passed
@ExtraToast
ExtraToast deleted the fix/the-ground-follows-the-ink branch September 7, 2026 17:18
@github-actions github-actions Bot mentioned this pull request Sep 7, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bug Something isn't working

Projects

None yet

Development

Successfully merging this pull request may close these issues.

The band's pinned dark treatment does not reach the grounds it is meant to pin

1 participant