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
4.4 KiB
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.
Related Links
- PR#35 — the design and PR#37 — the Repositories page, which this PR corrects after their first day in use.
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 wasoverflow-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 carryImprintandPrivacyon the right. - On the System page the
watchamber and thecriticalclay 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
Scenario#39.01: the footer carries Imprint and Privacy
So that every page links the legal pages the way the author's sites do.
- Given
server.impressumUrlandserver.privacyUrlare configured (instance-level,~/.werkator.ymlon a multi-repository instance) - When any page renders
- Then the footer's right side links
ImprintandPrivacy, each opening in a new tab- and an empty URL hides its link; with both empty the right side is empty.
Verified by
- UiControllerTest — latest view renders rows with badge, Gitea links, artifact link, actions, and token (asserts both links)
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.jsbehaves the same.
Verified by
- UiControllerTest — the Repositories page lists every served repository as the overview sorts them (asserts the entry's
data-url) - The click itself is script behaviour, checked in the browser.
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
watchand one atcritical - Then
watchis a yellow amber andcriticala 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 losesoverflow-x: autoon the desktop and keeps it on the phone withoverflow-y: hiddenand a 1 px bottom padding for the underline's overhang;.repogets 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 theupgradeadvice.ServerConfig.privacyUrl, theinittemplate anddocs/configuration.mdgain the key;UiControllerputs it on the model; the footer fragment rendersImprintandPrivacy.repos.htmlwrites the entry'sdata-url;werkator.jssets 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.impressumUrlandserver.privacyUrlpointing at the author's pages.