Skip to content

feat(auth): the gateway says what the product is - #541

Merged
haksungjang merged 2 commits into
mainfrom
feat/w16-c-login-gateway
Jul 29, 2026
Merged

feat(auth): the gateway says what the product is#541
haksungjang merged 2 commits into
mainfrom
feat/w16-c-login-gateway

Conversation

@haksungjang

Copy link
Copy Markdown
Contributor

W16-c. The sign-in page was a card floating on an empty canvas — the page any CRUD app ships, and the first screen anyone sees. It is now a split: the form keeps its column, and beside it an ink panel names the product and three things that are true about it.

Why ink

The panel is the same surface as the post-login global bar. Signing in should read as entering the product, not as crossing from a marketing page into a different application, and reusing --topbar-* means the contrast on that surface is already measured rather than invented here. The mark's teal appears on it — the accent whitelist covers the gateway, and --brand-on-ink is the teal built for ink (9.52:1 on --topbar).

What it says

Checkable, not atmospheric:

  • Apache-2.0 and self-hosted — source and findings stay on the operator's infrastructure
  • vulnerability data from NVD, OSV and GHSA, with EPSS scores and the CISA known-exploited catalogue
  • SBOMs in CycloneDX and SPDX, from the same scan the user triages

A gateway that promises a feeling instead is a page readers learn to skip. Each of those three is a claim the product either honours or does not, and a unit test pins them so one cannot quietly stop being true.

Narrow viewports

Below lg the panel is not rendered. A phone has no room for a brand column beside a form, and stacking them would bury the form under a screenful of copy — the compact lockup above the card already carries the identity. Measured at 390 px: zero horizontal overflow, and the narrow gate passes.

Documentation drift fixed on the way

The design-system doc has listed --brand-strong since W14, but the token was removed from the stylesheet when it turned out nothing painted with it (tokenConsumers.test.ts fails on a token no call site uses — an unused colour is a contrast promise nobody has checked). And --brand-on-ink was documented as "global bar only", which this change makes untrue. Both corrected in EN and KO.

Gates

a11y passes on login (the ink panel's text uses the measured --topbar-* scale), narrow-viewport passes, 174 unit tests across the auth pages and shared components green, tsc clean, token-lint holds at 130, ko-style 0 findings.

Visual baselines need recapturing — login is one of the eight, and it is the only pre-auth one.

The sign-in page was a card floating on an empty canvas — the same page any
CRUD app ships, and the first screen anyone sees. It is now a split: the form
keeps its column, and beside it an ink panel names the product and three
things that are true about it.

The panel is the same ink surface as the post-login global bar, deliberately.
Signing in should read as entering the product, not as crossing from a
marketing page into a different application, and reusing `--topbar-*` means
the contrast on that surface is already measured rather than invented here.
The mark's teal appears on it — the accent whitelist covers the gateway, and
`--brand-on-ink` is the teal built for ink.

What the panel says is checkable, not atmospheric: Apache-2.0 and self-hosted;
vulnerability data from NVD, OSV and GHSA with EPSS and CISA KEV; SBOMs in
CycloneDX and SPDX. A gateway that promises a feeling instead is a page
readers learn to skip, and none of those three can quietly stop being true
without a test noticing.

Below `lg` the panel is not rendered at all. A phone has no room for a brand
column beside a form, and stacking them would bury the form under a
screenful of copy — the compact lockup above the card already carries the
identity. Verified at 390 px: zero horizontal overflow.

Two documentation drifts fixed while in the design-system doc: `--brand-strong`
has been listed since W14 but was removed from the stylesheet when it turned
out nothing painted with it, and `--brand-on-ink` was documented as
"global bar only", which this change makes untrue.
Captured on the Linux runner via the ui-gates dispatch. Login is the one that
changed; the other seven re-render byte-identically under
--update-snapshots=all.

The a11y baseline is unchanged: the panel's text sits on --topbar-* whose
contrast on ink is already measured, so it adds no violations.
@haksungjang
haksungjang merged commit e3eef23 into main Jul 29, 2026
26 checks passed
@haksungjang
haksungjang deleted the feat/w16-c-login-gateway branch July 29, 2026 05:29
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