So passen Sie das Innere von GLPI mit CSS pro Einheit an

CSS pro Einheit ist der native und upgradesichere Weg, die visuelle Identität ins Innere von GLPI zu bringen. Wir zeigen, wo Sie es anwenden, ein Beispielthema (Iron-Man-Palette) nur im Menü, eine Tabelle, was Sie anpassen und was Sie nie anfassen sollten, und die Falle mit Hotlinks auf externe Bilder, die unter CSP bricht.

In diesem Artikel7 Abschnitte

Eine Marke endet nicht auf der Anmeldeseite. Wenn ein Kunde seine visuelle Identität im Inneren von GLPI möchte, im Menü und in der täglichen Navigation, ist CSS pro Einheit der tragfähige Weg und nicht noch ein weiteres Theme-Plugin, welches gepflegt werden muss. Ein Geheimnis liegt nicht darin, schönes CSS zu schreiben, sondern darin, auszuwählen, was Sie NICHT anpassen, um den Betrieb nicht zu stören. In diesem Leitfaden zeigen wir, wie Sie ein internes Thema anwenden (wir verwenden eine von Iron Man inspirierte Palette in Rot und Gold) und dabei Formulare, Statusfarben und Kennzahlen im nativen Standard von GLPI belassen.

Warum CSS pro Einheit und kein Theme-Plugin

Jedes visuelle Plugin wird zur Wartungsschuld: Bei jedem Update von GLPI hoffen Sie, dass ein Thema kompatibel bleibt. CSS pro Einheit hat diese Kosten nicht. Es ist nativ, wird in der Datenbank gespeichert (nicht in einer Datei, die ein Update überschreibt) und übersteht deshalb Updates des Kerns. Und weil es pro Einheit gilt, kann jede Niederlassung, jede Abteilung oder jeder Kunde eine eigene Identität haben, mit rekursiver Vererbung von übergeordneten zu untergeordneten Einheiten.

Im Betrieb von Kundeninstallationen ist genau dies der entscheidende Unterschied: null zusätzliche Abhängigkeiten, die bei jeder Version neu validiert werden müssen. Sie liefern visuelle Identität und fügen der Liste von Dingen, die beim nächsten Upgrade kaputtgehen können, kein weiteres Teil hinzu.

Wo GLPI CSS speichert

In GLPI befindet sich ein Feld für benutzerdefiniertes CSS der Einheit unter Setup > Entities > [your entity] > UI customization (die genaue Bezeichnung variiert je nach Version). Fügen Sie CSS ein, speichern Sie und laden Sie die internen Seiten neu. Da der Inhalt in der Datenbank gespeichert wird, ist er nicht betroffen, wenn ein Update Systemdateien ersetzt, und ein Rollback ist einfach: Stellen Sie den vorherigen Text wieder her.

Die rekursive Vererbung ist ein Detail, welches Arbeit spart: Legen Sie die Basisidentität in der Stammeinheit fest und überschreiben Sie sie in untergeordneten Einheiten nur, wenn Sie eine Variante brauchen. Wenn Sie eine bestimmte Einheit isolieren möchten, wenden Sie CSS direkt auf sie an.

Ein tragfähiger Umfang: Menü ja, Betrieb nein

Die Regel, die wir auf die harte Tour gelernt haben, ist einfach: Umfangreiche visuelle Anpassungen nur in nicht operativen Bereichen. Seitenmenü und Topbar tragen Identität und keine Datenbedeutung; Statusfarben, SLA-Badges und Formularfelder hingegen tragen Informationen, die ein Techniker in Millisekunden entschlüsselt. An diesen Farben zu drehen, sabotiert die Lesbarkeit der Seite.

UI-ElementAnpassen?Warum
Seitenmenü (Navigation)JaIdentitätsbereich; trägt keine Datensemantik
Topbar / KopfzeileMit VorsichtHintergrundfarbe ok; Status- und Suchsymbole beibehalten
FormularkartenNeinFokus auf Eingabe und Lesbarkeit vor Ästhetik
Statusfarben (neu, zugewiesen, gelöst)NieEin Techniker liest den Status an der Farbe, bevor er den Text liest
SLA-Badges und KennzahlenNieRot bei überschrittenem SLA muss rot bleiben
Primäre AktionsschaltflächeMit VorsichtKann thematisiert werden, wenn AA-Kontrast erhalten bleibt

CSS des Themas (nur das Innere)

Folgendes ist der Kern des Themas, angewendet auf Menü und Navigation. Beachten Sie den abschließenden Kommentar: Was wir weglassen, ist ebenso wichtig wie das, was wir gestalten.

/* GLPI interior theme - Iron Man palette (red and gold)
   Apply at: Setup > Entities > [your entity] > UI customization
   Golden rule: menu and navigation only. No forms, no status. */

:root {
  --ns-iron-red-900: #250108;
  --ns-iron-red-500: #bc1023;
  --ns-iron-gold-500: #d4a017;
  --ns-iron-text:    #fff6da;

  /* Logo served FROM WITHIN GLPI - never hotlink an external site */
  --glpi-logo-light: url("/pics/client-brand.png");
  --glpi-logo-dark:  url("/pics/client-brand.png");
}

/* Side menu - safe area to theme */
#navbar-menu, .sidebar, aside[role="navigation"] {
  background: linear-gradient(180deg, #220307 0%, #170206 48%, #110104 100%) !important;
  border-right: 1px solid rgb(212 160 23 / 18%) !important;
}
.sidebar #navbar-menu .nav-link { color: var(--ns-iron-text) !important; }

/* Active item in gold - still inside navigation */
.sidebar #navbar-menu .nav-item .nav-link.active {
  color: #fff8e3 !important;
  background: linear-gradient(90deg, rgb(212 160 23 / 22%), rgb(212 160 23 / 6%));
  border-left: 3px solid var(--ns-iron-gold-500);
}

/* We deliberately do NOT touch: status colors, SLA badges,
   forms and operational cards. They stay in GLPI native style. */

Die Falle aus der Praxis: externe Bilder und zu viel !important

Der häufigste Fehler, den wir in Kundenthemen korrigieren, sind Hotlinks auf externe Bilder. Jemand fügt in CSS einen Hintergrund oder ein Logo ein, welches auf eine beliebige Website im Internet zeigt, und am Testtag funktioniert es. Später bricht es aus drei Gründen, immer im ungünstigsten Moment: Die Content Security Policy (CSP) blockiert externes img-src, der Drittanbieter-Host fällt aus oder beschränkt den Zugriff, oder GLPI läuft unter HTTPS und ein Bild unter HTTP wird zu gemischtem Inhalt und vom Browser verworfen.

Im Betrieb haben wir ein Thema gesehen, welches sein Logo von einem öffentlichen Bild-CDN holte; an einem Freitagabend verschärfte der Kunde seine CSP, und die Kopfzeile erschien in Produktion ohne Logo. Die Ursache war nicht GLPI, sondern der Hotlink. Seitdem gilt eine strenge Regel: Jedes visuelle Asset wird aus GLPI selbst ausgeliefert (Bildordner des Systems oder über ein Plugin verteilt) oder bei kleinen Logos als Data-URI eingebettet. Der zweite Fehler ist, !important über .form-control und die Statusfarben zu verteilen, was Dunkelmodus und Lesbarkeit zerstört. Beschränken Sie !important auf ein Menü.

Checkliste vor der Veröffentlichung

  1. Kopieren Sie vor dem Überschreiben aktuelles CSS der Einheit in eine Rollback-Datei.
  2. Wenden Sie es zuerst in einer Testeinheit an, nie direkt in der Stammeinheit der Produktion.
  3. Gehen Sie Dashboard, Ticketliste, Ticketformular, Benutzer und Berichte durch.
  4. Testen Sie Dunkelmodus und mobile Ansicht des Themas.
  5. Bestätigen Sie, dass alle Assets intern sind (kein externer Hotlink).
  6. Prüfen Sie den Kontrast der Texte zum Hintergrund (Ziel: WCAG AA).

Mit diesem Umfang liefert ein Thema Identität und bleibt für den Betrieb unsichtbar: Ein Menü gehört dem Kunden, und der Rest von GLPI bleibt ein GLPI, welches ein Techniker bereits zu lesen weiß.

Nächster Schritt

Anpassungen der Oberfläche sind Teil des Betriebs, den wir zusammen mit NexTool leisten. Wenn Sie die Identität von GLPI vereinheitlichen möchten, ohne den Betrieb zu gefährden, sprechen Sie mit unserem Team.


Geprüft vom Team von NexTool Solutions.

Häufig gestellte Fragen

GLPI erlaubt es, pro Einheit ein benutzerdefiniertes CSS einzufügen, welches Seitenmenü, Kopfzeile und interne visuelle Elemente beeinflusst, ohne den Kern zu ändern oder ein Theme-Plugin zu installieren. Beschränken Sie den Umfang auf Navigationsbereiche und erhalten Sie Formulare und Statusfarben.

Ja. CSS wird in der Datenbank gespeichert, in der Konfiguration der Einheit, und nicht in Systemdateien. Da Updates Dateien ersetzen und nicht die Konfiguration, bleibt ein Thema nach einem Upgrade erhalten.

Ja. Jede Einheit kann ihr eigenes CSS haben, mit rekursiver Vererbung von der übergeordneten an die untergeordneten Einheiten. So sind unterschiedliche visuelle Identitäten pro Niederlassung, Abteilung oder Kunde im selben GLPI möglich.

Wir empfehlen es nicht. Hotlinks auf externe Bilder brechen, wenn die Content Security Policy (CSP) den Host blockiert, wenn die Drittanbieter-Website ausfällt oder durch gemischte Inhalte unter HTTPS. Liefern Sie Assets aus GLPI selbst aus oder verwenden Sie Data-URIs für kleine Logos.

Überschreiben Sie nie die Statusfarben der Tickets, die SLA-Badges und die Formularfelder. Diese Farben tragen Informationen, die ein Techniker vor dem Text liest; sie zu ändern, verschlechtert die Benutzerfreundlichkeit. Beschränken Sie umfangreiches CSS auf Menü und Topbar.

Brauchen Sie Hilfe?