<workflowRun _class='org.jenkinsci.plugins.workflow.job.WorkflowRun'><action _class='hudson.model.CauseAction'><cause _class='com.cloudbees.jenkins.GitHubPushCause'><shortDescription>Started by GitHub push by younex1</shortDescription></cause></action><action></action><action _class='org.jenkinsci.plugins.workflow.libs.LibrariesAction'></action><action></action><action></action><action _class='hudson.plugins.git.util.BuildData'><buildsByBranchName><refsremotesoriginmain _class='hudson.plugins.git.util.Build'><buildNumber>13</buildNumber><marked><SHA1>595e2c473bdb201384ea147d00098a5c8786b811</SHA1><branch><SHA1>595e2c473bdb201384ea147d00098a5c8786b811</SHA1><name>refs/remotes/origin/main</name></branch></marked><revision><SHA1>595e2c473bdb201384ea147d00098a5c8786b811</SHA1><branch><SHA1>595e2c473bdb201384ea147d00098a5c8786b811</SHA1><name>refs/remotes/origin/main</name></branch></revision></refsremotesoriginmain></buildsByBranchName><lastBuiltRevision><SHA1>595e2c473bdb201384ea147d00098a5c8786b811</SHA1><branch><SHA1>595e2c473bdb201384ea147d00098a5c8786b811</SHA1><name>refs/remotes/origin/main</name></branch></lastBuiltRevision><remoteUrl>https://github.com/younex1/blut24-landing.git</remoteUrl><scmName></scmName></action><action></action><action _class='org.jenkinsci.plugins.workflow.cps.EnvActionImpl'></action><action></action><action></action><action _class='org.jenkinsci.plugins.displayurlapi.actions.RunDisplayAction'></action><action _class='org.jenkinsci.plugins.pipeline.modeldefinition.actions.RestartDeclarativePipelineAction'></action><action></action><action _class='org.jenkinsci.plugins.workflow.job.views.FlowGraphAction'></action><action></action><action></action><action></action><building>false</building><displayName>#13 595e2c4</displayName><duration>26227</duration><estimatedDuration>28038</estimatedDuration><fullDisplayName>blut24-landing #13 595e2c4</fullDisplayName><id>13</id><keepLog>false</keepLog><number>13</number><queueId>5469</queueId><result>SUCCESS</result><timestamp>1785239626779</timestamp><url>https://jenkins.younex.de/job/blut24-landing/13/</url><changeSet _class='hudson.plugins.git.GitChangeSetList'><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>app/components/LangFlag.vue</affectedPath><affectedPath>app/components/SectionHero.vue</affectedPath><affectedPath>app/locales/de.ts</affectedPath><affectedPath>app/components/RegistrationDialog.vue</affectedPath><affectedPath>app/components/SiteHeader.vue</affectedPath><affectedPath>app/locales/en.ts</affectedPath><commitId>595e2c473bdb201384ea147d00098a5c8786b811</commitId><timestamp>1785239613000</timestamp><author><absoluteUrl>https://jenkins.younex.de/user/info</absoluteUrl><fullName>info</fullName></author><authorEmail>info@younex.de</authorEmail><comment>Language switch becomes a borderless flag menu; free-of-charge block moves into the dialog

The switch showed both languages permanently inside a bordered group, spending
header width and visual weight on a control almost nobody touches. It is now a
borderless trigger carrying only the CURRENT language — flag, code and a caret —
that opens a small menu with the alternatives and a tick against the active one.
Chrome appears only on hover, focus or open.

Still two real buttons, so the site-wide focus ring and keyboard operation are
unchanged; aria-haspopup/aria-expanded describe the menu and each entry carries
aria-current. The menu closes on outside click, on Escape and after choosing, and
both listeners are attached only while it is open and removed on unmount.

Flags moved into their own LangFlag component: the Union Jack needs a clipPath and
the glyph now renders up to three times on one page, so a shared literal id would
have made every instance clip against the first one's rect. Drawn as SVG rather
than flag emoji, which do not render as flags on Windows at all.

The free-of-charge block moves out of the hero and into the foot of the
registration dialog, after the form — the cost question is what someone asks once
they have seen how much they are being asked for. Its copy moved from hero.* to
dialog.* to match. The dialog's header subtitle said the same thing directly under
a heading that already reads "Kostenlos … registrieren", so it is dropped rather
than repeated twice in one panel.

Hero grid switched from items-center to items-start, so the "Blutkonserven-Plattform"
eyebrow and the top edge of the stock-matrix card now share a top line.

Co-Authored-By: Claude Opus 5 &lt;noreply@anthropic.com&gt;
</comment><date>2026-07-28 13:53:33 +0200</date><id>595e2c473bdb201384ea147d00098a5c8786b811</id><msg>Language switch becomes a borderless flag menu; free-of-charge block moves into the dialog</msg><path><editType>add</editType><file>app/components/LangFlag.vue</file></path><path><editType>edit</editType><file>app/locales/de.ts</file></path><path><editType>edit</editType><file>app/components/SectionHero.vue</file></path><path><editType>edit</editType><file>app/locales/en.ts</file></path><path><editType>edit</editType><file>app/components/RegistrationDialog.vue</file></path><path><editType>edit</editType><file>app/components/SiteHeader.vue</file></path></item><kind>git</kind></changeSet><culprit><absoluteUrl>https://jenkins.younex.de/user/info</absoluteUrl><fullName>info</fullName></culprit><inProgress>false</inProgress><nextBuild><number>14</number><url>https://jenkins.younex.de/job/blut24-landing/14/</url></nextBuild><previousBuild><number>12</number><url>https://jenkins.younex.de/job/blut24-landing/12/</url></previousBuild></workflowRun>