Verlauf: Bewegungsart als Sinnbild statt als Wort
"Eingelagert"/"Ausgelagert"/"Korrektur" standen als Textbadge in einer eigenen Spalte - in der schmalen Ansicht als dritte beschriftete Zeile je Eintrag. Jetzt eine getoente Kachel mit Icon: Kiste mit Pfeil hinein, Kiste mit Pfeil heraus, Stapel mit Stift (aus open-box (1).svg, open-box.svg, edit-server.svg). Die Farbe traegt dieselbe Bedeutung wie vorher das Badge - gruen rein, orange raus, neutral Korrektur; Titel und aria-label behalten das Wort. Die Dashboard-Karte bekommt dabei das Layout aus der Skizze: Kachel links, Zeitpunkt ueber Produkt, ohne Tabelle. Die Verlaufs-SEITE bleibt eine Tabelle - dort stehen noch Menge und Benutzer -, dort weicht nur das Wort der Kachel. Die Icon-Komponente kann jetzt auch GEFUELLTE Grafiken mit eigenem viewBox; die vorhandenen sind Strichzeichnungen (fill:none, stroke:currentColor) und vertragen sich damit nicht. Die Pfaddaten sind per Skript aus den SVGs uebernommen, nicht abgetippt. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
24
web/src/components/BewegungIcon.jsx
Normal file
24
web/src/components/BewegungIcon.jsx
Normal file
@@ -0,0 +1,24 @@
|
||||
import Icon from "./Icon";
|
||||
|
||||
/**
|
||||
* Die Art einer Bestandsbewegung als Sinnbild statt als Wort.
|
||||
*
|
||||
* Kiste mit Pfeil hinein (Einlagern), Kiste mit Pfeil heraus (Auslagern),
|
||||
* Stapel mit Stift (Korrektur). Die Kachel traegt dieselbe Bedeutung wie
|
||||
* frueher die Farbe des Badges – gruen rein, orange raus, neutral Korrektur.
|
||||
*
|
||||
* 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: "einlagern", out: "auslagern", adjust: "korrektur" };
|
||||
const TON = { in: "ein", out: "aus", adjust: "" };
|
||||
|
||||
export default function BewegungIcon({ typ, size = 18 }) {
|
||||
const wort = LABEL[typ] || typ;
|
||||
return (
|
||||
<span className={`bewegung-icon ${TON[typ] || ""}`} title={wort} aria-label={wort} role="img">
|
||||
<Icon name={ICON[typ] || "package"} size={size} />
|
||||
</span>
|
||||
);
|
||||
}
|
||||
Reference in New Issue
Block a user