AetherOS und die zehn Apps werden noch gebaut. Zu haben ist noch nichts – Start geplant für Sommer 2027. Was noch kommt
Die Designsprache

Ultra Chrome Pixel Glass

Der Name ist englisch und bleibt es — er ist kein Werbespruch, sondern eine Bauanleitung in drei Wörtern. Chrome ist das Material: Glas, das Licht von oben bekommt. Pixel ist die Bewegung: Alles entsteht aus Punkten und löst sich wieder in Punkte auf. Glass ist die Regel dahinter: Eine Fläche zeigt, was hinter ihr liegt, statt es zuzudecken.

Das hier ist nicht fertig — und wird es nie sein. Diese Seite beschreibt einen Stand, keinen Abschluss. Manches darauf ist seit Wochen unverändert, anderes wurde heute geändert, weil jemand hingesehen und gesagt hat, dass es falsch aussieht. Genau so ist es entstanden, und genau so geht es weiter.

Woraus alles besteht

Es gibt keine Farbe auf dieser Webseite, die irgendwo einzeln aufgeschrieben steht. Alles kommt aus einer Handvoll Marken, und die stehen an einer Stelle: css/kopf/farben.css. Wer das Licht ändert, ändert es überall.

Der Verlauf --k-verlauf

Blau nach Violett. Er ist das einzige Bunt, das es gibt — und er tritt nie als Fläche auf, sondern immer als Licht: auf einer Schrift, an einer Kante, in einem Balken.

Die Mulde --k-vertieft

Der Grund jedes Kastens. Oben ein heller Streifen, quer ein feiner Streif, unten dunkler als die Platte — so sieht eine Fläche aus, die in etwas hineingedrückt ist.

Die Platte --k-menue

Was über etwas liegt statt in etwas: Klappmenüs, Fenster, die Bedienung im Vollbild. Sie ist durchsichtig und weichgezeichnet — ohne die Unschärfe wäre sie kein Glas, sondern nur eine blasse Farbe.

Drei Helligkeiten --k-text · -leise · -still

Statt Farben für Bedeutungen. Was zählt, steht hell da; was einordnet, leiser; was man selten braucht, am leisesten. Diese drei ersetzen auf der ganzen Webseite jede Ampel.

Das Glas

Sechs Anläufe hat es gebraucht, und jeder einzelne endete mit demselben Satz: „Sieht immer noch nicht so richtig nach Glas aus." Was am Ende geholfen hat, war keine Geschmacksfrage, sondern eine Beobachtung: Licht kommt von oben, geht durch das Glas hindurch und tritt unten wieder aus.

so sieht es aus
  • ObenDie hellste Kante. Dort trifft das Licht auf.
  • SeitlichFast unsichtbar. Dort geht das Licht vorbei.
  • UntenHeller als die Seiten — und das ist der ganze Trick. Eine dunkle Unterkante macht aus Glas sofort Plastik, weil Plastik kein Licht durchlässt.
  • DarunterEin kurzer, harter Schatten. Er sagt, dass die Scheibe aufliegt und nicht schwebt.

Der Glanz wurde erst richtig, als der Kontrast nicht mehr über die ganze Fläche gerechnet wurde, sondern an der Stelle, an der der Text steht — bei 30 bis 70 Prozent Höhe. Nachgemessen brachte das beides gleichzeitig: mehr Glanz (0,152 statt 0,086) und besseren Kontrast (5,18 statt 4,59).

Dieselbe Scheibe auf sechs Gründen

Glas kann man nicht auf einer Farbe beurteilen. Es lebt davon, was dahinter liegt — deshalb steht hier sechsmal exakt derselbe Kasten, nur mit einem anderen Grund darunter. Wenn eine Scheibe auf allen sechs funktioniert, ist sie richtig gebaut.

Diese sechs verändern sich nicht mit dem Aussehen der Seite. Sie sind Proben, und ein Muster, das sich mitverändert, ist kein Muster. Eine Runde lang taten sie es doch: Im hellen Aussehen war „Auf Schwarz" weiß, „Über Text" weiß, „Auf einem Muster" weiß — fünf von sechs Gründen fielen zu derselben Fläche zusammen, und der ganze Vergleich sagte nichts mehr.

Auf Schwarzder Normalfall
Auf einem Scheinwie im Einstieg
Auf dem Verlaufder härteste Fall
Über Texthier zählt die Unschärfe
Auf einem Musterzeigt jede Kante
Auf Helldieselbe Scheibe, gedreht

Der letzte Kasten ist der ehrlichste: Im hellen Aussehen kippt die Rechnung um. Das Licht kommt weiter von oben, aber es hellt nicht mehr auf — es verschattet. Wer nur den dunklen Fall baut, merkt das nie.

Der fünfte Anlauf: der Schliff

Vier Fassungen lang war dieses Glas gemaltes Licht — ein Verlauf im Grund, ein paar Linien am Rand, ein Schatten darunter. Das ergibt eine schöne Fläche. Aber es ergibt keine Scheibe, und der Beweis dafür ist unbequem: Es hätte genauso ausgesehen, wenn dahinter eine leere Wand läge.

Woran man Glas tatsächlich erkennt, ist nicht der Glanz, sondern der Rand. Eine Scheibe hat Dicke, und an ihrer Kante wirkt diese Dicke wie eine Linse: Was dahinter liegt, wird dort zusammengestaucht, wird dichter, wird farbiger. Der Rand einer echten Scheibe zeigt einen anderen Ausschnitt der Welt als ihre Mitte. Das kann kein Verlauf nachmachen, so gut man ihn auch abstimmt.

Alle sechs Scheiben oben tragen es seit Fassung fünf: einen zweiten, schmalen Weichzeichner nur am Rand — vier Pixel, stärker gesättigt, eine Spur heller als die Mitte. Am deutlichsten auf dem Muster und über dem Text, weil man dort sieht, wie sich die Kante verschiebt. Auf Schwarz sieht man ihn fast gar nicht, und das ist richtig so: Wo nichts dahinter liegt, gibt es nichts zu brechen.

Genau deshalb tragen ihn auch nur vier Bauformen von 224. Ein Merkzeichen, das auf dem Seitengrund sitzt, hat nichts zu brechen — dort kostet der Schliff eine eigene Ebene im Bildaufbau und liefert dafür ein Pixel Unterschied. Auf schmalen Geräten schaltet er sich ganz ab.

Der sechste Anlauf: es gibt kein neutrales Glas

Bis hierher war jede Aufhellung reines Weiß und jede Abdunklung reines Schwarz. Das klingt sauber und ist der Grund, warum eine Fläche als Lack gelesen wird und nicht als Material. Jede echte Scheibe ist durch ihren Eisenanteil leicht grünblau — man sieht es an der Schnittkante jeder Fensterscheibe.

Der Körper hat deshalb jetzt eine Farbe, und zwar dieselbe Trennung wie die Brechung: Was oben auftrifft, ist kühl; was unten austritt, ist warm, weil es den Körper durchquert hat. Beides so schwach, dass niemand es als Farbe benennen würde.

Am meisten zahlt es sich im hellen Aussehen aus. Dort war der Körper neutrales Schwarz auf Weiß, also Grau — und Grau auf Weiß ist die Zeichnung einer lackierten Platte. Genau so sahen die Proben aus: gebürstetes Metall. Nachgerechnet über #eef2f8 ergibt der neue Wert rgb(225,233,244), der alte war rgb(231,235,241). Kaum dunkler, deutlich kälter — und aus der Platte wird eine Scheibe.

Die Punkte

Nichts auf dieser Webseite blendet ein. Alles entsteht aus Punkten, die sich sammeln, und löst sich wieder in Punkte auf. Es gibt vier Formen davon, und jede beantwortet eine andere Frage.

Der Ring

Zieht sich um einen Kasten, wenn man darauf zeigt. Er sagt: hier kann man zielen. Nicht „hier geht es weiter" — das war ein Missverständnis, das die Reiter lange ohne Antwort gelassen hat.

Zeig auf mich

Der Strich

Legt sich unter ein Wort mitten im Text. Dort, wo ein Ring einen Kasten bräuchte, den es nicht gibt.

Ein Verweis sieht so aus, wenn man ihn berührt.

Der Aufbau

Eine Überschrift setzt sich einmal aus Punkten zusammen, wenn sie ins Bild kommt. Genau einmal — beim zweiten Vorbeirollen passiert nichts mehr.

Die Überschriften auf dieser Seite tun es gerade.

Der Schriftzug

Nur an einer Stelle: der Marke im Kopf. Sie ist das einzige, das sich Buchstabe für Buchstabe zusammensetzt.

Die Schrift

Zwei Familien, und die Aufteilung dazwischen ist streng: Outfit trägt alles, was ruft — Überschriften, Marken, Zahlen. Inter trägt alles, was man liest. Keine dritte Schrift, und keine der beiden übernimmt die Aufgabe der anderen.

Aerona
Outfit 800 · −3 % Sperrung

Sie steht eng und schwer. Eine Überschrift ist hier kein größerer Fließtext, sondern eine andere Sache: Sie soll aus einem Meter Entfernung als Form erkennbar sein, nicht als Wort.

Aerona
Inter 400 · 1,8-fache Zeilenhöhe

Sie steht offen und ruhig. Für eine Webseite, auf der die Texte lang sind und ehrlich sein sollen, ist Lesbarkeit keine Nebensache — sie ist der Inhalt.

Die Größen, wie sie wirklich gesetzt sind

Abgelesen an dieser Seite, nicht aus einer Tabelle abgeschrieben. Zwischen zwei Stufen liegt immer ein deutlicher Sprung: Wer sie um zwei Pixel auseinanderlegt, hat keine Hierarchie, sondern Unruhe.

57,6 pxTitel — einmal je Seite, Outfit 800, Sperrung −1,73 px
33,6 pxAbschnitt — Outfit 800, Sperrung −0,67 px
16,8 pxZwischentitel — Outfit 700, ohne Sperrung
16 pxFließtext — Inter 400, Zeilenhöhe 28,8 px
14,4 pxFußnote — Inter 400, dieselbe Zeilenhöhe wie Kleingedrucktes
11,2 pxMarke — Inter 800, Versalien, Sperrung +1,46 px

Die Sperrung dreht mit der Größe das Vorzeichen. Große Schrift bekommt negative Sperrung, kleine positive. Das ist keine Geschmacksfrage: Bei 57 px reißen die normalen Abstände die Wortform auseinander, bei 11 px in Versalien kleben die Buchstaben zusammen. Beides ist derselbe Fehler, nur in verschiedene Richtungen.

Die Schriften liegen im Projekt

Beide werden aus dem eigenen Ordner geladen, nicht von einem fremden Dienst. Das ist keine Vorsicht, sondern die Grundregel des ganzen Hauses: Was zu Aerona gehört, kommt von Aerona.

Zwei Kleinigkeiten daran haben Zeit gekostet. Erstens werden nur die lateinischen Schnitte vorgeladen — Kyrillisch, Griechisch und Vietnamesisch wären 74 KB vor dem ersten Bild, die die meisten Besucher nie brauchen. Zweitens braucht ein <link rel="preload"> für Schriften zwingend das Wort crossorigin, auch bei eigenen Dateien: Ohne es lädt der Browser sie zweimal — einmal fürs Vorladen, einmal fürs Setzen.

Die Farbe

Es gibt genau eine. Blau nach Violett, und das war es. Alles andere auf dieser Webseite ist Schwarz, Weiß und was dazwischen liegt.

--k-verlauf
--k-verlauf-a
--k-verlauf-b

Sie tritt nie als Fläche auf

Das ist die eigentliche Regel, und sie ist wichtiger als der Ton selbst. Der Verlauf erscheint als Licht: auf einer Schrift, an einer Kante, in einem Balken, unter einem Menüpunkt. Nie als angemalter Kasten.

Ein bunter Kasten behauptet Wichtigkeit, ohne sie zu begründen. Licht behauptet nichts — es zeigt, wo etwas ist. Der Unterschied klingt klein und ist der Grund, warum diese Webseite bei einer einzigen Farbe nicht arm aussieht.

Der Winkel wird gerechnet, nicht gesetzt

Die Ruhelage ist 135 Grad. Aber js/verlauf-licht.js schreibt sie je Element neu, nach dessen Lage im Bild: Links steht die Fläche flacher, rechts steiler. Damit läuft das Licht über die ganze Seite hinweg aus einer Richtung, statt in jedem Kasten dieselbe Schräge zu wiederholen.

Eine Falle steckt darin, und sie hat einmal zugeschlagen: var(--k-winkel, 135deg) löste im Browser zu 0deg auf statt zu 135 — der Verlauf lief senkrecht statt schräg. Ein Merkmal, das immer gesetzt ist, braucht keinen Ersatzwert; der Ersatzwert war der Fehler.

Und im Hellen ist es ein anderes Blau

#60a5fa verschwindet auf hellem Grund fast, und #a855f7 flimmert darauf. Im hellen Aussehen steht deshalb eine Stufe tiefer: #2563eb nach #7c3aed. Dieselbe Farbe, andere Helligkeit — sonst wäre es dieselbe Zahl mit zwei verschiedenen Wirkungen.

Was stattdessen die Bedeutung trägt

Drei Helligkeiten. --k-text für das, was zählt, --k-text-leise für das, was einordnet, --k-text-still für das, was man selten braucht. Diese drei ersetzen auf der ganzen Webseite jede Ampel.

Was zählt, steht hell da.

Was einordnet, steht leiser.

Was selten gebraucht wird, am leisesten.

Sieben Seiten hatten einmal eine eigene Seitenfarbe — Türkis, Gold, Grün, Rosé, Himmelblau, Violett, Bernstein. Keine davon hat überlebt, und jede aus einem anderen Grund. Das war der teuerste Teil des ganzen Umbaus und der, den man am Ende am wenigsten sieht.

Hell und Dunkel

Zwei vollständige Sätze Marken, nicht ein Satz mit einem Filter darüber. Das ist der Unterschied zwischen einem hellen Aussehen und einer dunklen Seite, die man umgedreht hat.

Markedunkelhell
--k-grund#000000#ffffff
--k-text#ffffff#000000
--k-rand-obenweiß 50 %weiß 100 %
--k-rand-seiteweiß 8,5 %schwarz 12 %
--k-rand-untenweiß 20 %schwarz 20 %
--k-schliffHelligkeit 1,14Helligkeit 0,97

Die drei markierten Zeilen sind die interessanten: Dort dreht sich das Vorzeichen um, nicht nur der Wert. Eine Glaskante gegen Helles gesehen ist die dunklere Stelle, nicht die hellere — wer jede Fassung nur im Dunkeln baut, dreht dort zwangsläufig am falschen Regler.

Kein Aufblitzen beim Laden

Die Wahl muss stehen, bevor das erste Bild gezeichnet wird. Deshalb setzt ein winziges Stück Code direkt im Kopf der Seite das Merkmal data-thema — lange bevor irgendein Stilblatt oder Skript geladen ist. Wer das erst später täte, zeigte jedem Besucher eine Zehntelsekunde die falsche Tageszeit. Genau daran erkennt man eine nachträglich angeschraubte Umschaltung.

Die Wahl gehört dem Besucher

Beim ersten Mal fragt die Seite das Betriebssystem. Sobald jemand selbst umschaltet, gilt seine Entscheidung — auch wenn das System später etwas anderes sagt. Umgekehrt wäre bevormundend: Wer nachts eine helle Seite will, hat dafür einen Grund.

Der Wechsel ist ein Moment, kein Zustand

Ein Kreis wächst aus dem Schalter über die Seite, 620 Millisekunden, und danach ist Ruhe. Die neue Tageszeit liegt oben und wächst heraus; die alte steht darunter still. Blendet man stattdessen über, sieht man beide Fassungen halb durchscheinend übereinander, und das sieht nach Fehler aus.

Zwei Dinge liefen lange gegen diese eine Bewegung an, und beide waren unsichtbar, bis jemand sagte, es zuckelt. Erstens hatten Kopf und Fuß für den Seitenwechsel eigene Namen — als eigene Ebenen wurden sie nicht mit der Blende weggeschnitten, sondern sprangen sofort um, während der Rest noch aufwischte. Zweitens tragen 121 Elemente einen Farbübergang für den Zeiger; beim Umschalten liefen sie alle gleichzeitig, mitten in der Fläche, die die Blende gerade aufdeckte. Beides steht jetzt still, solange gewischt wird.

Wie schnell etwas geht

Die Dauern standen einmal in neun Dateien einzeln. Sie waren alle verschieden, und keine davon war begründet. Heute stehen sie an einer Stelle — js/bewegung.js — und jede hat eine Aufgabe.

140 msschnell — für Kleinigkeiten, ein Zeichen im Text
240 msnormal — Zustände, die umschalten
420 msruhig — alles, worauf man zielt
1800 msAufbau — bis ein Ring ganz herum ist
2600 msAnkunft — eine Überschrift, die sich setzt

Die Regeln

Sie sind nicht vorher aufgeschrieben worden. Jede einzelne ist entstanden, weil etwas falsch aussah und jemand gefragt hat, warum.

  1. Was ein Ziel ist, antwortet auf Zeigen. Was eine Aussage ist, kommt an. Ein Kasten, der auf Zeigen reagiert, ohne dass man irgendwohin kommt, verspricht etwas, das er nicht hält. Auf einer Seite waren das 290 Kästen auf einmal.
  2. Nichts bewegt sich, ohne gefragt worden zu sein. Vier Bewegungen liefen endlos, vom Laden an: ein pulsender Punkt, ein atmendes Paket, ein schwebender Astronaut, ein blinkender Schreibcursor. Alle vier sind aus.
  3. Eine Farbe, die nichts sagt, ist eine Farbe zu viel. Sieben Seiten hatten eine eigene Seitenfarbe — Türkis, Gold, Grün, Rosé, Himmelblau, Violett, Bernstein. Keine davon hat überlebt, und jede aus einem anderen Grund.
  4. Bewegt wird mit opacity und transform. Alles andere zwingt den Browser, das Bild neu zu malen. Ein Punkteraster über den ganzen Seitenwechsel hat genau daran gezappelt.
  5. Ohne Skript muss die Seite trotzdem lesbar sein. Jede Bewegung ist Zugabe. Fällt sie aus, steht der Inhalt da — nicht ein leerer Kasten.
  6. Wer Bewegung abgestellt hat, bekommt keine. Nicht weniger, sondern keine. Und alles bleibt bedienbar.

Was es bewusst nicht gibt

Keine Ampel

Kein Grün für „fertig", kein Rot für „kaputt". Der Unterschied ist die Helligkeit. Am deutlichsten in der Marktabelle auf „Aerona Office": Wer Konkurrenten rot anmalt und sich selbst hervorhebt, hat aufgehört zu vergleichen.

Keine Schatten als Schmuck

Ein Schatten sagt, wie weit etwas über einer Fläche liegt. Mehr nicht. Farbige Scheine um Kästen gibt es nicht.

Keine Zitatbalken ohne Grund

Von neun sind sieben gefallen. Ein farbiger Balken an einem Absatz, der ohnehin eine eigene Fläche hat, markiert nichts.

Keine Farbe, die nur Stimmung macht

Zwei Ausnahmen, beide begründet: die Farbfelder auf der Aeri-Seite und die Themenpunkte in der Demo. Dort ist die Farbe der Inhalt.

Was daran noch nicht stimmt

Diese Liste steht hier, weil eine Designsprache ohne offene Punkte keine Designsprache ist, sondern eine Broschüre.

  • Nie auf einem echten Gerät geprüft. Die ganze Umstellung ist in einem Vorschaufenster entstanden, das keine Bilder rendert. Jede Bewegung auf dieser Webseite ist gerechnet, nicht gesehen.
  • Der Seitenwechsel ist noch nicht gut. Drei Anläufe, drei echte Fehler beseitigt — und er fühlt sich immer noch nicht richtig an. Die Ursache ist gemessen: 121 Dateien und rund zwei Megabyte pro Seite.
  • Der Gleiter unter dem Menü sitzt kurz falsch. Direkt nach dem Laden um sechzehn Pixel versetzt, bis die Sprachdateien da sind. Drei Lösungswege probiert, keiner nachweisbar.
  • Das alte Bündel lebt noch. css/gebaut.css hängt auf jeder Seite und bringt Regeln mit, von denen kein Seitenblatt etwas weiß. Zweimal hat das etwas versteckt, das längst weg sein sollte.
  • Fünf Dateien sind zu lang. Die eigene Grenze liegt bei dreihundert Zeilen. seite-hell.css hat 2383.
  • Die Fenster bekommen den Schliff nicht. Ein Fenster ist die glasigste Fläche, die es hier gibt, und ausgerechnet es steht nicht auf der Liste: Es scrollt. In einem scrollenden Kasten misst sich der Rand am oberen Ende des Inhalts statt am sichtbaren Ausschnitt — er liefe beim ersten Scrollen nach oben weg und ließe die Scheibe unten offen. Lösbar, aber nicht mit einer Zeile, und ein halb sitzender Rand ist schlechter als gar keiner.

Fertig wird das hier nie. Nicht, weil die Arbeit nicht vorangeht, sondern weil eine Designsprache kein Zustand ist, sondern eine Gewohnheit: bei jeder neuen Seite dieselben Fragen zu stellen und die Antwort auszuhalten, wenn sie unbequem ist.

Die meisten Verbesserungen an dieser Sprache sind nicht am Schreibtisch entstanden, sondern weil jemand auf den Bildschirm gezeigt und gesagt hat: „Das sieht komisch aus." Das ist keine Anekdote, das ist die Methode.

Wie hier gearbeitet wird

🚀 Version 9.0.0

Die Webseite wiegt die Hälfte, das Menü auf dem Telefon ist eine Liste geworden, das Glas ist überall dasselbe — und ein Kasten auf der Startseite sagt, warum hier eine Weile nichts passiert.