Files
werkator/docs/prs/2026-09-08-PR#39-ui-small-corrections.md
d6823815d5 ui: small corrections after v1.3.0 — tab scrollbar, clickable overview entries, Imprint and Privacy, tellable watch/critical (#39)
The tab row no longer turns its 1 px underline overhang into a scrollbar on the
desktop; an overview entry opens its repository wherever it is clicked; the footer
carries Imprint and Privacy from server.impressumUrl and the new server.privacyUrl;
the System page's watch is a yellower amber and its critical a red clearly redder
than the clay of a failed build.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Co-authored-by: mhoennig <michael@hoennig.de>
Reviewed-on: #39
2026-09-08 20:47:51 +02:00

4.4 KiB

WARNING: This document describes only the change applied in this PR. It may already be outdated once the next PR is merged. Historic PR-documentation is not maintained along with new PRs — treat it as a snapshot, not as current documentation.

The Problem

Four small things showed on the first day of v1.3.0:

  • The row of view tabs (Latest, Branches, History) showed a vertical scrollbar on the desktop — not scrollable, just sitting at the edge: the active tab's underline overhangs the row by one pixel, and the row was overflow-x: auto, which turns any overflow into scrollbars.
  • On the Repositories page only the repository's name was a link; the rest of the entry, which holds no other control, did nothing when clicked.
  • The footer had one link, Impressum (Legal Disclosure), and none for the privacy policy; the author's sites carry Imprint and Privacy on the right.
  • On the System page the watch amber and the critical clay were hard to tell apart.

Non-Goals

  • No other visual change; the palette otherwise stays as RFC 0001 specifies it.
  • Failed builds keep their clay; only the System page's critical level gets the redder tone, because there it stands next to watch.

The Scenarios

Feature: small corrections to the new UI

So that every page links the legal pages the way the author's sites do.

  • Given server.impressumUrl and server.privacyUrl are configured (instance-level, ~/.werkator.yml on a multi-repository instance)
  • When any page renders
  • Then the footer's right side links Imprint and Privacy, each opening in a new tab
    • and an empty URL hides its link; with both empty the right side is empty.
Verified by

Scenario#39.02: the whole overview entry opens the repository

So that a reader can click anywhere in the entry, not only on the name.

  • Given the Repositories page
  • When the reader clicks anywhere in an entry that is not a link, without selecting text
  • Then the browser opens that repository's Latest view
    • and the name stays a real link for the keyboard and for opening in a new tab
    • and an entry re-rendered by werkator.js behaves the same.
Verified by

Scenario#39.03: no scrollbar on the tabs, and two tellable levels

  • Given a desktop viewport
  • When a repository view renders
  • Then the tab row shows no scrollbar; on a phone it still scrolls sideways when the tabs do not fit.
  • Given the System page with a gauge at watch and one at critical
  • Then watch is a yellow amber and critical a red clearly redder than the clay of a failed build, in both color schemes.
Verified by
  • Stylesheet only; checked in the browser, light and dark.

The Solution

  • werkator.css: the tab row loses overflow-x: auto on the desktop and keeps it on the phone with overflow-y: hidden and a 1 px bottom padding for the underline's overhang; .repo gets a pointer cursor and a hover ground; new tokens --amber (yellower), --crit/--crit-soft (red) used by the System page's critical level, the overloaded verdict and the upgrade advice.
  • ServerConfig.privacyUrl, the init template and docs/configuration.md gain the key; UiController puts it on the model; the footer fragment renders Imprint and Privacy.
  • repos.html writes the entry's data-url; werkator.js sets it on re-rendered entries and opens it on a click that hits no link and selects no text.

Additional Changes

  • Version 1.3.1 and its release-notes entry, since this is what gets deployed.
  • On mih09 the instance file gets server.impressumUrl and server.privacyUrl pointing at the author's pages.