093a958dcf
Auf ausdrücklichen Wunsch: Giorgio entfällt vollständig. Das weicht bewusst von §6 des Auftrags ab, der ihn als Personalverwalter und Vorgesetzten vorsah — festgehalten, damit die Abweichung später nachvollziehbar bleibt. Entfernt: Rollendefinition `AGENT_SUPERVISOR`, sein gezeichnetes Porträt, sein Eintrag in der Auslastung und in der Belegschaftsansicht sowie die Erwähnung in der Produkttour. Die Personalverwaltung bleibt unverändert über den Menüpunkt «Meine Agenten» erreichbar — sie brauchte nie eine eigene Person am Bildschirm. Mit Giorgio entfällt auch die einzige Kennzahl, die aus den Freigabevorgängen kam; `computeAgentWorkload` braucht `agentWorkItems` deshalb nicht mehr. Ordner und Komponenten heissen jetzt nach ihrem Inhalt: `components/staff/`, `AgentStaffOverview`, `StaffBackdrop`. «Meetingraum» war seit dem Umbau auf Personenkarten irreführend, und ein falscher Name kostet den Nächsten mehr Zeit als die Umbenennung. Fünf statt sechs Karten heisst Flexlayout statt Dreierraster: drei oben, zwei mittig darunter, gleich breit und ohne Lücke. Die Karten geben ihre Höhe nicht mehr selbst vor — mit `height: 100%` beanspruchte jede die volle Fläche und die zweite Zeile fiel aus dem sichtbaren Bereich. Geprüft: 433 Tests, Typecheck, Build, ESLint, Token-Schwelle (889/925). Browser 1280–1920 px und Tablet: fünf Karten vollständig sichtbar, keine Überlappung, Titel und «Filter & Übersicht» beim Einstieg sichtbar, alle fünf Klicks auf der richtigen Subpage, «Meine Agenten» weiterhin erreichbar, keine Konsolenfehler, keine 404. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
33 lines
1.3 KiB
TypeScript
33 lines
1.3 KiB
TypeScript
import buero from '../../assets/staff/buero.jpg'
|
|
|
|
/**
|
|
* Umgebung der Belegschaftsansicht auf der Startseite (Runde 5, §3).
|
|
*
|
|
* Genau eine Stelle bestimmt, welches Bild hinter den Personenkarten liegt.
|
|
* Ein Austausch ist damit ein Einzeiler; die Herkunft steht in `HERKUNFT.md`
|
|
* neben der Bilddatei.
|
|
*
|
|
* Das Bild ist Umgebung, nicht Motiv: es zeigt ein Büro, damit die digitalen
|
|
* Mitarbeitenden einen Arbeitsplatz haben statt eines leeren Hintergrunds. Der
|
|
* Verlauf darüber nimmt ihm den grössten Teil des Kontrasts — sonst
|
|
* konkurriert jeder Bürostuhl mit den Gesichtern und der Schrift davor.
|
|
*/
|
|
export interface RoomBackdrop {
|
|
src: string
|
|
/** Bildausschnitt bei `object-fit: cover`. */
|
|
focus: string
|
|
/** Verlauf über dem Bild: Lesbarkeit und Übergang zur Objektliste darunter. */
|
|
scrim: string
|
|
}
|
|
|
|
export const ROOM_BACKDROP: RoomBackdrop = {
|
|
src: buero,
|
|
focus: '50% 58%',
|
|
scrim: [
|
|
// Grundton: das Büro tritt weit zurück, die Karten treten hervor.
|
|
'linear-gradient(180deg, rgba(9,14,23,0.84) 0%, rgba(9,14,23,0.76) 52%, rgba(9,14,23,0.92) 100%)',
|
|
// Warmes Streiflicht von links, damit die Fläche nicht tot wirkt.
|
|
'radial-gradient(85% 120% at 10% 6%, rgba(184,151,90,0.18) 0%, rgba(184,151,90,0) 58%)',
|
|
].join(', '),
|
|
}
|