Files
Vorrania/web/src/components/BewegungIcon.jsx
Scarriffle ad3100462b Verlauf: klarere Bewegungs-Icons, Spalte nach vorn
Die beiden Kisten unterschieden sich nur in einem kleinen Pfeil. Bei 18 px war
das nicht zu trennen - erkannt hat man sie allein an der Farbe, und die war
gerade wegen der Wertung (gruen rein, orange raus) rausgeflogen. Ohne Farbe
blieb nichts uebrig, woran man sie auseinanderhaelt.

Jetzt die Strich-Icons checkin/checkout/edit: grosser Pfeil auf eine Linie zu
bzw. von ihr weg, Stift fuer die Korrektur. Dieselben Zeichen wie auf den
Ein-/Auslagern-Knoepfen, also schon vertraut, und auch klein eindeutig - die
Richtung liegt im Zeichen statt in der Farbe.

Auf der Verlaufsseite steht die Spalte jetzt an erster Stelle; sie sagt in
einem Blick worum es geht und braucht als Zeichen kaum Breite.

Der gefuellte Icon-Zweig in Icon.jsx wird damit nicht mehr gebraucht und ist
raus. Die SVG-Quellen bleiben unter brand/icons/ liegen - das README sagt jetzt
ausdruecklich, dass sie ungenutzt sind, warum, und wie man sie zurueckholt.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-16 12:48:25 +02:00

30 lines
1.1 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
import Icon from "./Icon";
/**
* Die Art einer Bestandsbewegung als Sinnbild statt als Wort.
*
* Grosser Pfeil auf eine Linie zu (Einlagern), von ihr weg (Auslagern), Stift
* (Korrektur) dieselben Zeichen wie auf den Ein-/Auslagern-Knoepfen.
*
* Vorher standen hier zwei gefuellte Kisten, die sich NUR in einem kleinen
* Pfeil unterschieden. Bei 18 px war das nicht zu trennen; erkannt hat man sie
* allein an der Farbe und die trug mit Gruen/Orange eine Wertung, die es
* nicht geben soll. Auslagern ist kein Missstand.
*
* Deshalb: eine Farbe fuer alle drei, die Richtung liegt im Zeichen selbst.
*
* Titel und aria-label behalten das Wort: fuer Screenreader und fuer alle, die
* ein Sinnbild nicht auf Anhieb lesen.
*/
const LABEL = { in: "Eingelagert", out: "Ausgelagert", adjust: "Korrektur" };
const ICON = { in: "checkin", out: "checkout", adjust: "edit" };
export default function BewegungIcon({ typ, size = 19 }) {
const wort = LABEL[typ] || typ;
return (
<span className="bewegung-icon" title={wort} aria-label={wort} role="img">
<Icon name={ICON[typ] || "package"} size={size} />
</span>
);
}