BOX Virtual ist die virtuelle AeroLogic — Cargo-Gelb, Slate und die Boeing 777F. Dieses Brandbook definiert Logo, Farben, Typografie und alle Anwendungen der Marke.
BOX Virtual simuliert AeroLogic — das Joint Venture von DHL Express und Lufthansa Cargo. Eine Flotte, ein Muster, eine Mission: Fracht, pünktlich, weltweit. Die Marke ist so klar wie ihr Vorbild — hell, technisch, auf den Punkt.
Präzise, ruhig, operativ. Kurze Sätze, Fakten vor Adjektiven. Cargo-Vokabular ist willkommen (Manifest, Rotation, Nightshift), aber nie aufgesetzt. Englisch für Claims und Headlines, Deutsch oder Englisch im Fließtext — konsistent pro Kanal.
Zwei Register. Das oben gilt für Headlines auf den Grafiken und für Texte auf der Website. Social-Captions sind kurz, direkt und offen begeistert — echte Freude am Hobby, Fragen ans Publikum, die Screenshots der Community im Mittelpunkt. Operativ im Bild, menschlich im Text. Verbindliche Referenz sind die captionExamples in design-tokens/box.json.
BOX Virtual ist ein Fan-Projekt und nicht mit AeroLogic affiliiert — der Hinweis steht in jedem Footer und jedem Profil. Innerhalb der Familie ist BOX die Gelb-Marke: LH trägt Navy, LX trägt Rot, BOX trägt Cargo-Gelb.
Die offizielle Wortmarke ist das kursive „BoxVirtual“ mit dem gelben Slash davor — „Box“ in Slate, „Virtual“ in Cargo-Gelb, 12° Neigung. Sie wird immer komplett eingesetzt und nie neu gesetzt oder getrennt.


Cargo-Gelb auf viel Weiß — dazu Slate aus der Wortmarke und Tarmac für die Nacht. Klick kopiert den Hex-Wert.
#FFCC00#3E474B#212529#14181B#F2F4F5#E2E6E8#6A767C#1C2226Eine Schrift, alle Gewichte: Mulish — dieselbe Schrift wie beim Vorbild, frei lizenziert (SIL OFL 1.1) und deshalb komplett im Repo. Hierarchie entsteht über Gewicht, Größe und Versalien.
Fünf Elemente, ein Winkel: Alles Diagonale im System steht bei 12° — dem Winkel der Wortmarke.

Cargo hat die besseren Bilder: Tarmac bei Nacht, Hochlader an der 777F, ULDs im Regen. Keine Kabinen, keine Passagiere — Operation statt Reise.
777F am Hochlader, Nightshift-Szenen in LEJ, Rollfeld-Perspektiven, Simulator-Screenshots in Golden Hour oder Nacht. Immer mit Kontext — Fracht, Gerät, Bewegung.
Für Dark-Templates: Foto in Slate-Duotone (Grauwert → #14181B bis #98A4AA), darüber ein gelbes Element. Nie gelbes Duotone — Gelb bleibt Grafik, nicht Foto.
Simulator-Shots ohne HUD/UI, Horizont gerade, Motiv im rechten Drittel (links liegt Text). Export ≥ 1920 px Breite.
Profilbilder sind im Alltag winzig — 32 px als Discord-Icon, 48 px in der X-Timeline. Cargo-Gelb trägt auch in dieser Größe. Ein Bild für alle Kanäle: Discord, Instagram, Facebook, TikTok, YouTube, X.
| Plattform | Anzeige (⌀) | Form | Upload |
|---|---|---|---|
| Discord (Server-Icon & Profil) | 48–100 px | Kreis | 1000×1000 PNG |
| 320 px (Feed 32 px) | Kreis | 1000×1000 PNG | |
| Facebook (Seite) | 170 px | Kreis | 1000×1000 PNG |
| TikTok | 200 px | Kreis | 1000×1000 PNG |
| YouTube | 800 px | Kreis | 1000×1000 PNG |
| X / Twitter | 400 px (Timeline 48 px) | Kreis | 1000×1000 PNG |
Ein durchgehendes Bühnenbild — Tarmac-Verlauf mit Slash-Motiv und ULD-Raster — mit weißer Wortmarke, gelber Akzentlinie und Tagline mittig. Ein Layout, in jedem Kanalformat ausgespielt.



| Format | Pixel | Sichere Zone | Einsatz |
|---|---|---|---|
| YouTube Channel Art | 2560×1440 | 1546×423 mittig | Kanal-Header — TV, Desktop und Mobil zeigen je mehr Rand, darum liegen Logo und Tagline in der Zone |
| Discord Server-Banner | 960×540 | vollflächig | Boost-Banner, Einladungs-Header |
| X / Header | 1500×500 | Ränder ~60 px, unten links Profilbild-Überlappung | Profil-Header |
box-virtual.com folgt dem AeroLogic-Muster:
weiß, Eyebrow-Label über der Sektions-Headline, „At a glance“-Zahlenleiste,
Ink-Buttons mit gelbem Text. Versalien bleiben dem Hero vorbehalten —
Sektions-Headlines stehen in Mixed Case (Kapitel 04).
Referenz-Implementierung im Repo box-website.
Standard = das Slash-Template. Serien-Events (z. B. Frankfurt Friday Freight) behalten Bandfarben und Position über alle Ausgaben — Wiedererkennung vor Abwechslung.
Avatar Square Dark, Banner im Nightshift-Stil. Rollen-/Kanalfarben: Gelb `#FFCC00` für Highlights, sonst neutrale Grautöne.
vAMSYS ist das Crew-System, auf dem der Betrieb läuft — Buchung, Dispatch, PIREPs, Ränge. Es ist eine gemietete Halle, keine eigene: einrichten geht, umbauen nicht. Dieses Kapitel hält fest, was sich dort einrichten lässt, mit welchen Mitteln, und wo die Plattform die Marke stoppt. Alles hier folgt den Regeln der Kapitel 03 bis 05 — dieselbe Marke, fremdes Markup.
Zwei Formulare in Orwell steuern alles: Settings → Design → Logo Settings (vier Logo-Slots plus Login-Hintergründe) und Style Settings (zwölf Farb-Paare plus ein eigenes Stylesheet). Ihre Reichweite ist begrenzt.
| Oberfläche | Farb-Paare | Eigenes CSS | Logos |
|---|---|---|---|
| Phoenix (Piloten) | ja | ja | ja |
| Orwell (Staff/HQ) | nein | nein | ja |
| Select-VA-Seite | teilweise | nein | ja |
| Pegasus ACARS | nein | nein | ja |
| Ausgehende E-Mails | nein | nein | ja |
| Hebel | Wo | Reichweite und Haltbarkeit |
|---|---|---|
| 1 · Die zwölf Farb-Paare | Style Settings, Formularfelder | Menü, Topbar, Body, Karten, Tabellenzeilen. Stabil — übersteht Plattform-Updates. |
| 2 · Die Variablen-Rampen | eigenes CSS, :root | Buttons, Badges, Links, Checkboxen, Ringe, Tabs, Panels, Icons — auf allen Seiten gleichzeitig. Ersetzt dutzende Einzel-Overrides. |
| 3 · Einzelne Selektoren | eigenes CSS | Der Rest: .dispatch-*, .map-loader-*, hart kodiertes Indigo, Cyan und Violett in den Buchungs-Bundles. Fragil — nach jedem Update nachprüfen. |
Von stabil nach fragil. Wer bei 3 anfängt, schreibt dutzende !important-Regeln für etwas, das eine Zeile in 2 erledigt hätte.
vAMSYS baut auf Filament auf, und Filament färbt alles über sechs Variablen-Rampen mit je elf Stufen, geschrieben als RGB-Tripel ohne rgb()-Wrapper — nur so funktionieren Tints wie rgba(var(--BOXYellow), .14). Filaments Konvention: 600 ist die Vollton-Fläche, 700 der Hover, 400 Text und Ring im Dunkelmodus.
| Rampe | Standard | BOX Virtual | Begründung |
|---|---|---|---|
| --primary-* | Indigo | 50–300 Gelb-Waschungen · 400 = #FFCC00 · 500 = Slate · 600 = Ink #212529 · 700–950 = Tarmac | Flächen in Ink, die Marke oben, wo der Dunkelmodus sie greift. |
| --info-* | Cyan | die komplette Rampe auf Slate, 400 = Muted dunkel #98A4AA | An --info hängen die großen Sekundär-CTAs (ACARS-Downloads, Profil-Statistik). Slate ist das Grau der Marke — so werden sie ruhig, ohne Selektorenjagd. |
| --gray-* | blaustichig (900 = 29,31,45) | exakt die BOX-Skala: Fog, Line, Muted, Slate, Line dunkel, Tarmac 2, Tarmac | Bewusst nicht desaturiert — anders als bei LX hat BOX absichtlich kühle Neutrale. Der vAMSYS-Standard ist nur das falsche Kühl. |
| --success-* --warning-* --danger-* | Grün / Amber / Rot | unangetastet | Sie tragen Bedeutung quer durch Badges, PIREP-Status und Alerts. Das gilt auch gegen das Brandbook-„kein Rot": Rot als Danger ist eine Statusfarbe, keine Markenfarbe. |
Kapitel 03 in einem Satz: Auf Hell ist die Marke Fläche oder Linie, niemals Text; auf Dunkel darf sie auch Text und Icon sein. Die Kontrastwerte aus box.json gelten in vAMSYS unverändert: Ink auf Gelb 10,2:1, Gelb auf Ink 10,2:1, Gelb auf Tarmac 11,6:1 — Gelb auf Weiß 1,5:1, verboten. Das ist genau umgekehrt zu LX, wo Rot auf Dunkel einen helleren Tint brauchte.
| Element | Hell | Dunkel |
|---|---|---|
| Primär-Button | Ink-Fläche, gelber Text | Rollen getauscht: gelbe Fläche, Ink-Text |
| Sekundär (.btn-info) | Slate-Fläche, weißer Text | Tarmac 2, Fog-Text |
| Ghost / Cancel | Rand Line #E2E6E8 | Rand Muted dunkel #98A4AA — nicht Line dunkel: #2A3238 auf Tarmac 2 sind 1,2:1, als Haarlinie zwischen Zeilen richtig, als sichtbare Kante eines Bedienelements viel zu wenig (6,3:1 erfüllt die 3:1-Regel) |
| Tabellenkopf | Fog-Fläche, 3 px gelbe Signallinie darunter | Tarmac 2, dieselbe gelbe Linie |
| Kennzahl-Kachel | 3 px gelbe Linie oben — das eine dominante Gelb-Element des Dashboards | dito |
| „Ready to dispatch" | gelbe Fläche, Ink-Text — das Cargo-Band, das eine dominante Gelb-Element der Dispatch-Seite | dito |
| Zeilen-Aktion (Papierflieger) | Ink — Gelb wäre hier Text auf Weiß; die Marke kommt beim Hover als gelbe Fläche | Gelb |
| Drei-Punkte-Menü | Muted #6A767C, Gelb nur als Hover-Tint | Muted dunkel #98A4AA |
| Link im Fließtext | Ink-Text mit gelber Unterlänge — das Slash-Prinzip auf Fließtext übersetzt | gelber Text (11,6:1) |
| Aktiver Menüpunkt | gelber Slash links, 12° geneigt — ein gerader Balken wäre ein LX-Zitat | dito |
| Fokusring | Gelb innen plus Ink-Halo außen — reines Gelb auf Weiß sind 1,5:1 und verfehlen die 3:1-Grenze für Nicht-Text-Kontraste | Gelb allein trägt; der Halo wird Tarmac und setzt nur ab |
Trägt die Fläche die Markenfarbe, erbt das Icon die Textfarbe — nie eine zweite setzen. Wer beides färbt, erzeugt einen einfarbigen Klotz: Bei LX wurde das Drei-Punkte-Menü der Dispatch-Tabelle zum vollen roten Quadrat, die Punkte vorhanden, aber unsichtbar. Deshalb: button.fi-color-primary nur mit :not(.fi-icon-btn), und Icon-only-Buttons bekommen nie eine Fläche.
In Filament ist custom kein Synonym für „primary", sondern der generische Platzhalter für jede Farbvariante; die echte Farbe kommt als Inline-Variable (--c-50 … --c-950) am Element an. Immer rgb(var(--c-600, var(--BOXInk))) schreiben. Wer hart färbt, macht Success-, Warning- und Danger-Badges markenfarben — die Statussemantik ist weg.
Die zwei Radius-Stufen aus Kapitel 03 gelten auch in vAMSYS: 4 px für Chips, Buttons, Inputs und Badges, 8 px für Cards, Sections und Modals. Bewusst weder die 2-px-Kante von LX noch die 14-px-Rundung von LH. Bewusst runde Elemente bleiben rund: Avatare, Toggles, Radio und Checkbox. Und alles Diagonale steht bei 12° — --BOXSkew: skewX(-12deg) ist ein Token im Stylesheet, damit kein Winkel je nach Augenmaß entsteht.
LH und LX tragen einen Drei-Stopp-Verlauf. BOX ist die Ausnahme in der Familie (box.json, gradient.canvas): Die Bühne ist flaches Tarmac. Der Hellmodus ist die Heimat — weiße Topbar, Muted-Items, Ink auf aktiv. Der Dunkelmodus ist Tarmac mit gelben Items. Die Farbwähler können ohnehin nur Volltonfarben; wer einen Verlauf wollte, müsste die vier Background-Felder leer lassen und ihn im CSS über html[data-topbar-color=…] setzen. Wir wollen keinen.
Vier Slots, 1800 × 400 px PNG mit Transparenz (SVG wird abgelehnt). Slot 0/1 und 2/3 sind getrennte Uploads — wer nur Phoenix ändert, hat in E-Mails und Orwell weiterhin das alte Logo. Das ist hier der häufigste Fehler. BOXV_Logo.png misst 1779 × 311, wird also mittig auf die 1800 × 400 gesetzt, nie gestreckt.
| Slot | Erscheint in | Datei |
|---|---|---|
| 0 | Phoenix (hell) | BOXV_Logo.png |
| 1 | Phoenix (dunkel) | BOXV_Logo_White.png |
| 2 | Select-VA-Seite, Pegasus (hell), E-Mails, Orwell | BOXV_Logo.png |
| 3 | Select-VA-Seite, Pegasus (dunkel), Orwell (dunkel) | BOXV_Logo_White.png |
| BG | Login-/Register-Hintergrund | 1706 × 1600 px, WebP; mehrere möglich, zufällige Auswahl |
Hier hat BOX den Vorteil gegenüber LX. Die Lufthansa-Schnitte dürfen nicht weitergegeben werden, das LX-Stylesheet darf deshalb nur einen Stack deklarieren. Mulish steht unter der SIL Open Font License 1.1 und darf mitgeliefert werden — die Marke trägt ihre echte Hausschrift auch in vAMSYS. Kapitel 04 verlangt Selbsthosting (kein Google-Fonts-CDN, DSGVO), und eine data:-URI ist die konsequenteste Form davon: kein Fremdserver, keine IP-Übertragung. Der @font-face-Block steht deshalb am Dateiende, damit der lesbare Teil beim Patchen in der Konsole oben bleibt. Ohne ihn fällt der Stack sauber auf Segoe UI / Arial zurück — nichts bricht.
Die typografische Hierarchie wandert mit: Überschriften 800, die große Seiten-Headline in Versalien, Labels und Tabellenköpfe 800 in Versalien mit Tracking, Fließtext 400. Ein Vorbehalt, teuer gelernt: .fi-ta-text-item-label ist in Filament kein Spaltenkopf, sondern der Inhalt jeder Textzelle. In v1.0.0 stand die Klasse in der Eyebrow-Regel und zog jeden Zellinhalt auf Versalien, 800 und breites Tracking — im schmalen NOTAM-Widget lief die Tabelle dadurch über den rechten Rand.
Wo LX seine Alpen hat, hat BOX zwei Elemente aus Kapitel 05 — als inline-SVG oder CSS-Verlauf in einem ::after, ganz ohne Bild-Upload. Weil die Style Settings nur Phoenix erreichen, hängen sie an drei geprüften Phoenix-Ankern: Dashboard (.page-content:has(.swiper)), leere Zustände (.fi-ta-empty-state) und Map-Loader (.map-loader-modal).
| Modus | Motiv | Spezifikation |
|---|---|---|
| dunkel | ULD-Raster | 1-px-Raster, Teilung 72 px, Line dunkel, Deckkraft ≤ 35 %, von oben per Maske eingeblendet |
| hell | Slash-Staffel | drei Bänder bei 12°, Deckkraft 100 / 45 / 18 %, als Eck-Element: auf dem Dashboard unten rechts, in leeren Zuständen oben rechts |
Ein CSS-File je VA; ein neuer Upload ersetzt das alte. Die Datei liegt unter https://cdn.vamsys.xyz/stylesheets/<ULID>.css (26 Zeichen, Crockford-Base32), und der ULID wechselt bei jedem Speichern. Die alte Datei bleibt erreichbar — das, und nur das, ist der Weg zurück. Einen Undo-Knopf gibt es nicht: Ein Revert ist immer ein erneuter Upload.
// Gelb auf Hell — muss auf jeder hellen Seite ein leeres Ergebnis liefern
[...document.querySelectorAll('*')].filter(e => {
const c = getComputedStyle(e);
return /^rgb\(25[0-5], ?2[0-1][0-9], ?[0-9]{1,2}\)$/.test(c.color)
&& e.innerText && e.innerText.trim().length;
}).map(e => ({ tag: e.tagName, cls: e.className, txt: e.innerText.slice(0,30) }));
BOX Virtual, ICAO BOX / IATA 3S. Stylesheet v1.0.3, gebaut auf Brandbook v1.8 und design-tokens/box.json, nach dem markenunabhängigen Leitfaden aus der LX-Umsetzung. Der ULID der Live-Datei wird beim Upload protokolliert, zusammen mit dem Vorgänger — dieses Paar ist der Weg zurück.
BOX Virtual ist ein non-kommerzielles Fan- und Community-Projekt und steht in keiner Verbindung zur AeroLogic GmbH, zur DHL Group oder zur Lufthansa Cargo AG.
© 2026 Box-Virtual.com · Brandbook Version 1.9 · Fragen an das Team im Discord.
Social & Event-Templates
Zwei definierte Template-Stile — Slash für Event-Banner und Nightshift für dunkle Posts — plus Focus Airport und Monats-Cover. Alle Vorlagen in echten Pixeln:
../social-templates/templates.html.Absender-Regeln
Formate
Focus Airport — finale Vorlage
Foto als Held mit den Nightshift-Overlays: umrandetes „FOCUS AIRPORT“, Stadtname in Gelb, ICAO und Monat. Kein Tail — Absender ist das weiße Logo. Pixel-Board:
../social-templates/templates.html.Monats-Cover (Deckblatt)
Gleiche Vorlage wie bei LH und LX, für BOX bewusst reduziert: flacher Tarmac mit ULD-Grid, „FOCUS AIRPORT“ als Wortbild, Monats-Chip und der Swipe-Hinweis im gelben Stencil-Rahmen.
#14181B— kein Foto, kein MotivReel / Story (9:16) — bewegt
Dasselbe Nightshift-Design, aber getaktet — damit das Overlay in Story oder Reel auf einem Videoclip liegen kann. Der schräge Tarmac-Keil mit gelber Schnittkante ist die bewegte Fassung der Slash-Geste; darunter das ULD-Grid, darüber das weiße Logo. Kein Tail — BOX hat keinen Tail als Absender. Die Loop-Vorschau spielt exakt die Timeline aus der Tabelle.
nur letzter Slide
Zwei Modi: Focus-Airport-Karussell (ein Slide pro Stadt des Monats) und Story-Overlay (Kategorie + Headline, max. 2 Zeilen). Blur-Extend verankert das Foto oben, damit die untere Zone als Tarmac-Textebene frei bleibt. Export: „● Aufnahme“ schreibt ein
.webm; das Social Studio rendert dieselbe Datei headless zu MP4.Platzhalter & Generator
{CITY}{ICAO}{MONTH} {YEAR}{PHOTO}{TITLE} / {SUB}Export: PNG, sRGB. Canvas: Event-Banner 1800×1200 (3:2), Feed 1080×1350 (4:5), Story 1080×1920.
Kurzfassung für den Generator
Event-Banner (Slash) = {PHOTO} + 12°-Bänder (Web/Titel/Info/Zusatz, jedes so lang wie sein Text) + Partner-Leiste (vAMSYS · VATSIM · SimBrief) + Logo weiß. · Focus Airport = {PHOTO} + Scrim + Stencil-Eyebrow „FOCUS AIRPORT“ + {CITY} in Gelb + {ICAO} · {MONTH} {YEAR} + Logo weiß — kein Tail. · Monats-Cover = Tarmac + ULD-Grid + FOCUS/AIRPORT-Wortbild + {MON}{YY}-Chip (Ink auf Gelb, skew −12°) + SWIPE-Rahmen. Absender ist immer das weiße BoxVirtual-Logo.
Focus-Generator — Referenzcode
Discord — ein Bild, ein Text
Discord ist nicht Instagram. Anhänge werden in der Timeline auf rund 550 px skaliert, und Hochformat wird im Raster beschnitten — vom 4:5-Cover blieb nur „AIRPORT" senkrecht stehen, und zehn Briefmarken tippt niemand einzeln an. Der Channel bekommt deshalb ein eigenes Format: eine Übersichtsgrafik im Querformat, 1600 × 1000.
Der Text ist für den Channel geschrieben, nicht aus Instagram kopiert: Überschrift, je Airport eine Zeile mit ICAO, Stadt und den Focus-Punkten sowie einer Begründung aus vier bis acht Wörtern. Diese Begründungen schreibt Mistral in einem Aufruf für den ganzen Monat — so unterscheiden sie sich voneinander, statt neunmal derselbe Satzbau zu sein; ICAO, Stadt, Punkte und Struktur bleiben in der Vorlage, das Modell kann also keine Fakten verbiegen. Ohne API-Key oder bei unbrauchbarer Antwort bleibt die schlichte Liste — der Beitrag geht immer raus. Keine Hashtags (im Channel wirkungslos), und der Link steht in spitzen Klammern, damit Discord keine zweite Vorschaukarte unter das Bild hängt.
**6 destinations**, bonus points on every flight — the whole month.
**EDDH** Hamburg · 100 P — river approach right past the Elbe bridges
**LPPT** Lisbon · 100 P — city rooftops and the Tejo on final
**KORD** Chicago · 250 P — dense parallel operations and brisk ATC
Fly to or from any of them and collect. Where are you heading first? 🛫
<https://box-virtual.com>