Skip to content

The sign-in redirect, the introduction, and the two typefaces - #103

Merged
kisielewski merged 6 commits into
mainfrom
feat/sign-in-redirect
Sep 6, 2026
Merged

The sign-in redirect, the introduction, and the two typefaces#103
kisielewski merged 6 commits into
mainfrom
feat/sign-in-redirect

Conversation

@kisielewski

Copy link
Copy Markdown
Member

The redirect. /login and /register may go straight to a provider. Four
things suppress it: ?admin=true; ?error= — a refused federated sign-in
bounced back to the provider that refused it is an unbounded loop through a
third party with nothing on screen, on an ordinary path; an instance that has
not answered; and a session that already exists.

The introduction, above the installation's own front page, for a visitor who
is not signed in. instance.showHero governs it. Every word is this Client's,
and nothing in it is a fixed colour, so an installation with its own palette
does not get one panel in the product's blue.

A way in may be a provider. A registration link is drawn wherever there is
one — local sign-ups or a register redirect. The registration screen's refusal
panel still asks the local flag, because reaching it means the redirect was
suppressed and the form there would be one the Server refuses.

The mark is inlined, and it has to be. An SVG referenced from <img> cannot
see this page's @font-face — measured: through an <img> the wordmark came
out in a system fallback, wider than its own viewBox, with the last letters
clipped. Inter is font-display: block for the same measurement, because a swap
would flash exactly that.

Lato is sent rather than named, merged as a layer between the test-id theme
and the installation's branding, so an operator naming a family still wins. The
licences travel with the build now: dist/ carried four font files and no OFL.

Polish keeps its one-letter words on the line — 289 values gain a
non-breaking space. Six checks reddened and the fix was not to undo the
typography: each was comparing on the space class rather than on the words.
One of them turned up a separate defect — a whitespace normaliser written \s
inside a template literal, where the backslash is dropped, so the browser was
sent /s+/g and replaced the letter.

check:ui 51 of 51, and twelve sabotages, each of which reddens the assertion
it was written against.

A full page load, because the journey leaves the application. Four things
suppress it: ?admin=true, ?error= — a refused federated sign-in bounced back to
the provider that refused it is an unbounded loop — an instance that has not
answered, and a session that already exists.

The account screen gains the button its accountUrl was always carrying and
nothing rendered. The fake gains the two fields, and the settings method now
takes the type the panel sends, which is why showLocalSignIn was being dropped.
…ovider

The typeface is sent rather than named: four faces, byte for byte the ones the
Keycloak theme ships, merged as a layer between the test ids and the
installation's branding so an operator naming a family still wins.

The home page opens with what the software is, above what the installation is,
for a signed-out visitor. Every word is this Client's, and nothing in it is a
fixed colour.

A registration link is drawn wherever there is a way in — local sign-ups or a
register redirect. The registration screen's refusal panel still asks the local
flag, because reaching it means the redirect was suppressed.

The public bar marks the entry the reader is on. The maintenance page gains the
drawing and still offers nothing to press.
Both illustrations are `AlgoJudge-Assets/illustrations/` byte for byte. The
placeholder's ground is white again, which the navigation hides in its light box
and a dark document does not — a drawing made for paper behaving like one, and
the comment beside the import says so rather than the opposite.

The introduction is at least the window less the shell's own chrome, so it is a
screen rather than a strip above a document. `svh` and not `vh`, because on a
telephone `vh` is the height with the browser's bars hidden and the tiles would
start below the fold. The row takes the slack so it lands around the sentence
rather than as one band above the tiles.

The check measures the fill against the window rather than against a number.
`algojudge-text.svg` carries the wordmark as a <text> in Inter 600. An SVG
referenced from <img> renders in a document of its own and cannot see this
page's @font-face — measured: through an <img> it came out in a system fallback,
wider than its viewBox, with the last letters clipped. So it is inlined, and
Inter is `font-display: block` because a swap would flash exactly that.

Half again as large in both bars, and shifted 6.5% of its own height. Their
boxes were already level to a hundredth of a pixel; the drawing inside was not,
because the gavel reaches further above the letters than the descenders reach
below. Rasterised, the ink was 1.25px high and is now 0.25px, which is one step
of the measurement.

The licences travel with the build now. `dist/` carried four Lato files and no
OFL, because a file that only sits in `src/` is never emitted; two files, since
Inter's copyright line is not Lato's.
289 values gain a non-breaking space after a, i, o, u, w and z.

Six checks reddened, and the fix is not to undo the typography: each was
comparing on the space *class* rather than on the words, so each now folds the
hard space before matching. In `verify-runner-tags` the fold is in the field,
switch and card helpers, so every lookup in that script is covered rather than
the one that happened to redden.

`verify-external-content` had a separate defect the same measurement found: its
whitespace normaliser was written `\s` inside a template literal, where the
backslash is dropped, so the browser was sent `/s+/g` and replaced the letter.
It passed only because the phrases asserted below carry no "s" beside a space.
Two columns to five, and the picture takes its column exactly rather than
bleeding past it. The sentence is short enough to carry a narrow measure; the
drawing is what the page is seen by before it is read.
@kisielewski
kisielewski merged commit 400cdd8 into main Sep 6, 2026
3 checks passed
@kisielewski
kisielewski deleted the feat/sign-in-redirect branch September 6, 2026 14:11
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