Zum Inhalt
Hey AlbertMarke und Designsystem
Als MarkdownEnglishEN

Grundlagen

Zeichen

Ein Satz aus Strichzeichen, eingefärbt über die Textfarbe. Feste Sach-Rollen sagen, was eine Sache ist – vom Auto für die Fahrt bis zum Fragezeichen für Alberts Vorschlag. Kein Emoji, nirgends.

Zeichen sind bei uns Strichzeichen: 2 px Strich, runde Enden, keine Füllung. Ein Zeichen steht neben Text und macht ihn schneller erfassbar. Den Text ersetzt es nicht.

Der Satz

Jedes Zeichen lässt sich als SVG herunterladen. Alle zusammen liegen im Paket:

Sach-Rollen

Manche Zeichen haben eine feste Bedeutung. Das Zeichen sagt, was für eine Sache eine Karte ist. Diese Zuordnung wird nicht getauscht.

Im Code heißt das Zeichen nach seiner Rolle, nicht nach seiner Datei: <Icon name="fahrt" /> statt <Icon name="car-front" />. So bleibt die Bedeutung an einer Stelle, im Bauteil Icon.

Wie Zeichen stehen

  • Im Kartenkopf steht das Zeichen der Sache links in einem hellen Kreis: 26 px auf dem Mac, 24 px auf dem iPhone (Bauteil SachSymbol). Rechts stehen die Punkte der Menschen. Sonst nichts im Kopf.
  • Eingefärbt wird über currentColor. Das Zeichen trägt die Textfarbe seines Elternteils. So schaltet es mit dem Modus um und kommt in Screenshots und Exporten mit.
  • Inline gerendert, nie als Bild-URL. Die Pfade liegen in components/bausteine/zeichen.js, Quelle bleiben die SVG-Dateien in assets/icons/.
  • Dekorativ ohne titel: Das Zeichen bekommt aria-hidden, weil der Text daneben steht. Steht ein Zeichen allein, etwa in einem runden Knopf, braucht es einen titel oder ein Label am Knopf.

Icon

components/bausteine/Icon.jsx
fahrtschulesportessenarztmusikfreudefamilieritualschwimmenvorschlagtaler

Ein Zeichen aus dem Lucide-Satz — für alles, was ein Symbol braucht.

<Icon name="fahrt" groesse={16} titel="Fahrt" />
  • name nimmt eine Sach-Rolle (fahrt, schule, sport, essen, arzt, musik, freude, familie, ritual, schwimmen, vorschlag) oder direkt einen Lucide-Dateinamen (bell, search, plus).
  • Das Zeichen wird inline gerendert und über stroke: currentColor eingefärbt — es trägt also die Textfarbe seines Elternteils und kommt in Screenshots und Exporten mit.
  • Quelle sind die Dateien in assets/icons/; components/bausteine/zeichen.js hält ihren Pfad-Inhalt. Kommt ein Zeichen dazu: Datei nach assets/icons/ legen und zeichen.js neu erzeugen — nie ein SVG von Hand zeichnen.
  • Ohne titel ist das Zeichen dekorativ (aria-hidden) — richtig, weil neben jedem Zeichen Text steht.
Typen (.d.ts)
/** Zeichen aus dem Lucide-Satz, inline gerendert und über `stroke` eingefärbt. */
export interface IconProps {
  /** Sach-Rolle ("fahrt", "schule", "essen", "familie", "ritual", "vorschlag", ...) oder Lucide-Dateiname ("bell"). */
  name: string;
  /** Kantenlänge in px. Standard 16. */
  groesse?: number;
  /** Strichstärke. Standard 2 — wie im Satz. */
  strich?: number;
  /** Strichfarbe. Standard currentColor. */
  farbe?: string;
  /** Wenn gesetzt, wird das Zeichen für VoiceOver benannt; sonst ist es dekorativ. */
  titel?: string;
  style?: React.CSSProperties;
}
export function Icon(props: IconProps): JSX.Element | null;
export const SACHEN: Record<string, string>;

SachSymbol

components/bausteine/SachSymbol.jsx
Mac · 26
Auf farbiger Karte

Der helle Kreis mit dem Zeichen der Sache – immer links im Kartenkopf, nie woanders.

<SachSymbol art="fahrt" titel="Fahrt" />

Was für eine Sache es ist, sagt dieses Symbol; wer dabei ist, sagen die Punkte rechts (Punktgruppe); was für eine Art es ist, sagt die Kartenfarbe. Kein Menü, kein Chevron im Kopf.

Typen (.d.ts)
/** Zeichen der Sache in einem hellen Kreis - steht links im Kartenkopf. */
export interface SachSymbolProps {
  /** Sach-Rolle: "fahrt" | "schule" | "sport" | "essen" | "arzt" | "musik" | "freude" | "familie" | "ritual" | "vorschlag" | "schwimmen". */
  art?: string;
  /** Kreisdurchmesser in px. Standard 26 (Mac), 24 auf dem iPhone. */
  groesse?: number;
  /** Auf farbigen Karten - haelt den Kreis hell. */
  aufFarbe?: boolean;
  titel?: string;
  style?: React.CSSProperties;
}
export function SachSymbol(props: SachSymbolProps): JSX.Element;

Keine Emoji

Es gibt keine Emoji. Nicht in der App, nicht auf der Website, nicht in Social Media, nicht in Mails. Auch keine Unicode-Zeichen als Ersatz für ein Zeichen, etwa Sterne, Häkchen oder Pfeile aus der Schrift.

Als Textzeichen erlaubt sind genau vier:

ZeichenWofürBeispiel
→von – nach, in FahrtenSportplatz Nord → Zuhause
·Trenner in einer Zeile16:40 · Handball, Halle Süd
›AblagepfadWichtiges › Versicherungen
–Halbgeviertstrich, mit Leerzeichen14:00 – 14:30

Ein Zeichen fehlt

Kein eigenes Zeichnen. Fehlt ein Zeichen, wird es aus demselben Satz geholt:

  1. Die SVG-Datei aus dem Satz nach packages/design-system/assets/icons/ legen.
  2. components/bausteine/zeichen.js neu erzeugen.
  3. Braucht das Zeichen eine Bedeutung, die Sach-Rolle in SACHEN im Bauteil Icon eintragen.

Kurz