Zum Inhalt springen
ZVV
Marke & Präsenz

Marke & Präsenz

Wie eine ZVV-App dort erscheint, wo sie noch niemand geöffnet hat: in der Link-Vorschau, in der Registerkarte, auf dem Home-Bildschirm. Alles auf dieser Seite ist live — die Karte unten ist dieselbe Route, die Teams abruft.

1 · Die Link-Vorschau

Eine interne Fachanwendung wird selten gesucht — sie wird weitergeleitet. Der erste Kontakt ist damit fast immer diese Karte in einem Chatfenster, nicht die Startseite. Wer sie nicht gestaltet, überlässt die Antwort auf «von wem ist das?» dem Zufall.

Die OG-Karte des Atlas-Showcase: ZVV-Dachlogo und Absender oben, «Atlas» als Titel, Meridian-Globus rechts, die vier Spec-Kapitel in der Fusszeile.
Das echte Logo
Bis v0.2 zeichneten fzdb und der Showcase hier ein weisses Quadrat mit den Buchstaben «ZVV» — einen Logo-Nachbau, den Kapitel 01 §1 verbietet. zvvLogo() zeichnet stattdessen die Geometrie aus assets/zvv-logo.svg.
Die Hausschrift
Satori liest kein WOFF2 — und der ZVV liefert Brown Narrow nur als WOFF2. Ohne Zwischenschritt rendert jede ZVV-Karte in einer Ersatzschrift, unbemerkt, weil sie nur in fremden Oberflächen erscheint.
Die Fusszeile trägt Belege
«8 MVUs: VBZ VBG PAG …» ist nachzählbar. «Die führende Plattform» ist eine Behauptung, die niemand prüfen kann — und deshalb auch niemand glaubt.
app/opengraph-image.tsxtsx
// app/opengraph-image.tsx — der ganze Unterschied zwischen zwei ZVV-Apps
export default function OgImage() {
  return new ImageResponse(
    ogCard({
      title: 'Fahrzeugdatenbank',
      subtitle: 'Asset Management · Lifecycle · Audit-Trail',
      lead: 'Mehrmandanten-Plattform für die acht MVUs des ZVV.',
      domain: 'fzdb.zvv.ch',
      mark: busBlaupause(380),
      fontFamily: OG_FONT_FAMILY,
      footer: { label: '8 MVUs:', items: ['VBZ', 'VBG', 'PAG', 'VZO'] },
    }),
    { ...OG_GROESSE, fonts: OG_FONTS },
  )
}

2 · Das App-Zeichen

Weisses Bildzeichen auf ZVV-blauer Kachel. Die Kachel ist bei allen gleich, das Zeichen nie — nebeneinander sind sie als Familie erkennbar und trotzdem einzeln unterscheidbar. Menschen erkennen ungleich besser, als sie erinnern.

Atlas
FZDB
Mailer
Tama
32 px
16 px
DateiWas ohne sie passiert
app/icon.svgDer Browser zeigt ein leeres Blatt. In einer Leiste mit dreissig Registerkarten ist die App nicht auffindbar.
app/apple-icon.tsxiOS liest kein SVG. Safari erzeugt stattdessen einen verkleinerten Bildschirmabzug der Startseite als Symbol — der häufigste stille Ausfall der Kette.
app/manifest.tsChrome nimmt den Seitentitel als Symbolnamen und schneidet ihn nach etwa zwölf Zeichen ab — «ZVV Fahrzeugd…».
Ein Radius-Faktor, keine zwei Pixelwerte

Die Eckenrundung ist 22 % der Kantenlänge, nicht eine feste Zahl. Sonst trägt dieselbe App in der Registerkarte eine andere Form als auf dem Startbildschirm — genau das war in fzdb der Fall (6/32 gegen 36/180).

app/apple-icon.tsxtsx
// app/apple-icon.tsx
export default function AppleIcon() {
  return new ImageResponse(
    appleIcon({ glyph: atlasKachel(112), kuerzel: 'ATLAS' }),
    { ...size, fonts: OG_FONTS },
  )
}

3 · Logo-Anwendung

Recipe

Zwei Dateien, ein Schutzraum, ein Mindestmass je Flächenart — und ein Verbot, das immer wieder verletzt wird.

Schutzraum: ≥ 25 % der Logo-Höhe, rundherum
ZVV
11 px frei bei 44 px Logohöhe
Fahrzeugdatenbank
✗ Trennstrich und App-Name stehen im Schutzraum

Im Schutzraum steht nichts — kein App-Name, kein Trennstrich, keine Kante eines Nachbarelements. Häufigster Verstoss: eine Topbar, in der das Logo bündig an der Trennlinie zur Navigation klebt.

Mindestmass je Flächenart

Auf einer Markenfläche steht die Marke für sich — Login, Deckblatt, Mail-Kopf, Print. Dort gilt eine Mindestbreite.

Desktop120 px
ZVV
Mobil80 px
ZVV
Anwendungs-Chrome

Topbar, Sidebar-Kopf, Footer — dort ist das Logo Herkunftsmarker neben dem App-Namen, nicht Absender. Gemessen wird die Höhe, weil sie das ist, was ein Band beschränkt.

Chrome43 × 20 px · Höhe ≥ 20 px
ZVV

Die 80/120 px sind ein Präsenz-Minimum, keine Lesbarkeitsschwelle. Auf die Chrome angewandt fordern sie ein 83 px hohes Band — das ist keine Topbar mehr. Beide Fassungen liegen im DOM und schalten per Klasse um; nicht per JavaScript nachladen, das flackert beim ersten Rendern.

Der Fall, der immer wieder passiert: der Nachbau
ZVV
Zürcher Verkehrsverbund
✗ Erfundene Wortmarke — falsche Proportionen, falsche Schrift, kein Bildzeichen
ZVVZürcher Verkehrsverbund
✓ Die kanonische Datei, über zvvLogo() auch in `next/og`

Der Grund für den Nachbau ist immer derselbe: Es sieht so aus, als stünde in einer OG-Karte kein Logo zur Verfügung — kein CSS, kein Zugriff auf /zvv-logo.svg. Es steht aber zur Verfügung. Wenn du das Logo gerade zeichnest statt es zu laden, ist es der falsche Weg — auch wenn das Ergebnis gut aussieht.

4 · Prüfung

Recipe

Ein Fehler auf diesen Flächen ist besonders teuer, weil ihn niemand sieht: Sie erscheinen nur in fremden Oberflächen, und Teams und Slack cachen eine Karte für Tage. Wer den Fehler bemerkt, sieht ihn bereits verteilt. Deshalb steht hier mehr Maschine als anderswo.

Satori-FalleVerhalten
Mehrere Kinder ohne display: flexLaufzeitfehler — die Route liefert 500
className statt stylestill ignoriert, Karte rendert ungestyltschweigt
display: gridstill zu Block, Layout kipptschweigt
Relative Bild-URLBild fehlt stillschweigt

pruefeSatori() ist exportiert und nicht intern: jede ZVV-App soll ihre eigene Karte damit prüfen, nicht nur Atlas die seine.

tests/og.test.tsts
import { pruefeSatori } from '@zvvch/atlas/brand'

it('rendert satori-sicher', () => {
  expect(pruefeSatori(meineKarte())).toEqual([])
})
Zwei Schritte, die niemand macht
  1. Das PNG ansehen — ist es die Hausschrift? Steht das echte Logo oben?
  2. Auf einem echten iPhone zum Home-Bildschirm hinzufügen — Zeichen oder Bildschirmabzug?

Genau dort sitzen die stillen Fehler.

5 · Wirkung — und ihre Grenze

Kapitel 14

Wirkung ist erlaubt, wo sie hilft, eine wahre Aussage ankommen zu lassen. Sie ist verboten, wo sie eine Entscheidung erzeugt, die ohne sie anders ausgefallen wäre. Bei einer öffentlichen Stelle fehlt das Korrektiv des Wettbewerbs — Nutzende können nicht abstimmen, indem sie gehen.

1Erste Fläche
Wie sieht der Link in einem Teams-Chat aus? Nicht: wie sieht die Startseite aus.
2Wiedererkennung
Ist das Symbol in einer Leiste mit dreissig Registerkarten in einer Sekunde findbar?
3Prüfbarkeit
Steht auf jeder Marketing-Fläche mindestens eine Angabe, die jemand nachzählen kann?
4Schluss
Was sieht jemand nach dem Speichern? Was nach einem Fehler kurz davor?
5Voreinstellungen
Welche sind gesetzt, und ist an jeder erkennbar, dass sie gesetzt ist?
6Grenze
Würde diese Person dieselbe Entscheidung treffen, wenn sie wüsste, wie die Oberfläche gestaltet wurde?