Skip to content

feat(banner): always show the license banner, on a brand-hue tint - #124

Merged
datlechin merged 1 commit into
mainfrom
feat/banner-always-shown
Oct 22, 2026
Merged

datlechin merged 1 commit into
mainfrom
feat/banner-always-shown

Conversation

@datlechin

Copy link
Copy Markdown
Member

Summary

  • The license banner cannot be closed any more: the dismiss button, the "Have a license? Hide this" link, lib/banner.ts, the tablepro:banner-dismissed record, banner.version and the head script that read the record are removed. Every reader sees the band on every page it belongs on. The only browser-side rule left is /ios for a reader on an iPhone or iPad.
  • Its ground is a left-to-right wash of the brand hue over the page colour: color-mix(in oklab, --accent 14% → 6%, --background) under a rule of --accent 30% in --rule (app.css). A tint, not a fill: --foreground text and the --accent-text link measure 17.5:1 / 5.1:1 on the strongest stop in light and 14.5:1 / 8.2:1 in dark, within the design system's pairs. Mixed in oklab on purpose: the neutral tokens write hue 0, and an oklch mix came out pink. Forced colours drop the gradient.
  • The privacy policy drops the storage key in all 12 languages; updatedAt moves to 2026-10-22. controls.dismiss and banner.licensed leave the catalogs. Analytics keeps license_banner_view / license_banner_click without parameters and loses license_banner_dismiss. Docs (architecture.md, design-system §5.3.17, sitemap, rebuild tables) follow.

Test plan

  • vendor/bin/pint --dirty, npm run typecheck, npm run test:js (280 pass)
  • TopBannerTest rewritten: "cannot be closed" and the tint are pinned; LegalPagesTest, PublicContractsTest, SiteChromeTest, device.test.ts updated
  • Full Pest suite: only the three known local-drift failures (PageChunkTest stale manifest, IntegrationsDataTest missing opis/json-schema), unrelated
  • Screenshots from the dev server at 1440 and 390, light and dark; pixel-sampled the band to confirm the warm hue
  • SSR group runs in CI

Follow-ups

  • TableProApp/license: the thank-you page stops writing tablepro:banner-dismissed (companion PR).
  • GA4 Admin: the event-scoped custom dimension version stops receiving data and can be archived.
  • Server .env: a BANNER_VERSION line, if present, is now ignored and can be deleted.

🤖 Generated with Claude Code

The banner can no longer be closed: the dismiss button, the "Have a
license?" link, the stored record (`tablepro:banner-dismissed`), its
version and the head script that read it are gone, so every reader sees
it on every page it belongs on. The one browser-side rule left is /ios
for a reader on an iPhone or iPad, whose app has no license.

Its ground is a left-to-right wash of the brand hue over the page colour
(14% to 6% of --accent, mixed in oklab so the neutrals' hue 0 does not
pull it towards red, under a rule in the same hue), within the design
system's text contrast pairs in both themes.

The privacy policy no longer lists the storage key, in every language,
and its date moves to 2026-10-22. Config, the shared prop, the catalogs,
analytics (no dismiss event, no version parameter), docs and tests follow.
@datlechin
datlechin merged commit 09adcd3 into main Oct 22, 2026
4 checks passed
@datlechin
datlechin deleted the feat/banner-always-shown branch October 22, 2026 13:14
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant