Skip to content
Success

Changes

Summary

  1. Language switch becomes a borderless flag menu; free-of-charge block moves into the dialog (commit: 595e2c4) (details)
Commit 595e2c473bdb201384ea147d00098a5c8786b811 by info
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 <noreply@anthropic.com>
(commit: 595e2c4)
The file was addedapp/components/LangFlag.vue
The file was modifiedapp/locales/de.ts (diff)
The file was modifiedapp/components/SectionHero.vue (diff)
The file was modifiedapp/locales/en.ts (diff)
The file was modifiedapp/components/RegistrationDialog.vue (diff)
The file was modifiedapp/components/SiteHeader.vue (diff)