Themes: Wähle ein Erscheinungsbild oder bring dein eigenes mit.
Ein Theme ist eine einzelne kleine JSON-Datei. Sie enthält Farben, Schrift, Form, Erscheinungsbild und eine Terminalpalette. ColliePWA liefert vier davon mit, und du kannst weitere aus einer Datei auf deinem Telefon importieren.
01/Was es ist
Ein Theme ist eine Datei für das Erscheinungsbild.
Ein Theme benennt die Farben der App, einmal für eine helle Hälfte und einmal für eine dunkle Hälfte. Es kann auch eine Schriftart, eine Schriftart für Titel, eine Form, ein Erscheinungsbild und die Farben der Terminal-Spiegelung benennen. Form und Erscheinungsbild sind zehn Wörter, etwa radius, shadow und density. Das Layout, die Tippflächen und die Bedeutung eines Status bleiben, wie sie sind; blockiert ist also in jedem Theme weiterhin blockiert.
Jeder Wert in einer Datei ist ein festgelegtes Wort oder eine geprüfte Farbe. Die Datei kann keinen Code ausführen, und sie kann keine Datei, keine Schriftart und kein Bild laden.
Ein Theme und Darstellung sind zwei Einstellungen. Das Theme legt fest, welche Farben verwendet werden. Darstellung legt fest, welche Hälfte angezeigt wird: System, Hell oder Dunkel.
02/Auswählen
Wähle ein Theme in den Einstellungen aus.
Öffne die Einstellungen, dann Darstellung, und tippe auf ein Theme. Es wird sofort ohne Neuladen angewendet, und beim nächsten Öffnen von ColliePWA ist bereits das erste Bild in diesem Theme. Ein Fingertipp auf Collie stellt den Standard wieder her.
Ein Theme, das eine Schriftart benennt, legt deine Schriftart einmalig fest. Du kannst sie danach weiterhin auf der Karte Schriftart ändern.
Collie
Schriftart: Aldrich
Das vertraute Erscheinungsbild: neutrale Grautöne, mit Aldrich als Schriftart.
Nightwatch
Schriftart: IBM Plex Sans
flat · bold · strong · band · heavy
Für das Telefon im nächtlichen Bereitschaftsdienst. Eine echt schwarze dunkle Hälfte, flach und kantig, mit dicken Linien, einem gedämpften Bernstein-Akzent und einem gedämpften Bernstein-Band hinter der Kopfzeile und den Leisten.
Terminalpalette
Daylight
Schriftart: Geist
Titel: Atkinson Hyperlegible Next
round · lifted · roomy · gradient · cards · sentence
Für helle Sonne und Sehschwächen. Fließtext mit AAA-Kontrast, runde geräumige Karten, eine Seite, die sich zum Fuß hin verschiebt, und Statusfarben von Blau bis Orange statt von Rot bis Grün.
Terminalpalette
Harbour
Schriftart: Atkinson Hyperlegible Next
Titel: Space Grotesk
soft · lifted · grain · thin
Für Leute, die aus dem Terminal kommen. Kaltes Blaugrau mit einem blaugrünen Akzent, weiche Ecken, eine feine Körnung und dünne Symbole sowie eine Solarized-basierte Terminalpalette auf einem fast schwarzen Blau.
Terminalpalette
03/Importieren
Importiere ein Theme aus einer Datei.
- 1Lege eine Theme-Datei auf deinem Telefon ab. Sie endet auf
.jsonund ist kleiner als 64 KiB. - 2Öffne in den Einstellungen unter Erscheinungsbild die Theme-Karte, tippe auf Importieren und wähle die Datei aus.
- 3Lies die Vorschau. Sie zeigt die Farben beider Hälften, die Form, die Terminalfarben und einen Kontrastbericht. Ein schwacher Kontrast zeigt eine Warnung, und du kannst das Theme trotzdem anwenden. Eine Datei, die gegen die Regeln verstößt, wird abgelehnt, und nichts ändert sich.
Ein Theme ändert, wie die App aussieht, und sonst nichts. Es kann keinen Code ausführen, keine Dateien laden und keinen Server erreichen.
Ein Gerät speichert bis zu acht importierte Themes. Es gibt keinen Import über einen Link, und Themes synchronisieren sich nicht zwischen Geräten.
04/Schreiben
Schreibe dein eigenes.
Der schnellste Start ist ein mitgeliefertes Theme. Exportiere es, ändere id und name, bearbeite die Farben, die Form-Wörter oder die Terminalpalette und importiere es wieder. Ein importiertes Theme kann nicht die ID eines mitgelieferten Themes verwenden.
Dies ist eine gekürzte harbour.json, eine Datei der Version 2. Die ...-Zeilen stehen für die ausgelassenen Teile.
{
"version": 2,
"id": "harbour",
"name": "Harbour",
"author": "Collie",
"light": {
"background": "oklch(0.95 0.01 235)",
"foreground": "oklch(0.26 0.025 250)",
"card": "oklch(0.985 0.004 235)",
"...": "..."
},
"dark": {
"background": "oklch(0.21 0.018 250)",
"foreground": "oklch(0.93 0.012 240)",
"card": "oklch(0.255 0.02 252)",
"...": "..."
},
"fonts": { "ui": "atkinson", "display": "grotesk" },
"surface": {
"radius": "soft",
"shadow": "lifted",
"density": "default",
"weight": "default",
"border": "default",
"ground": "grain",
"chrome": "page",
"rows": "rules",
"icons": "thin",
"labels": "caps"
},
"ansi": {
"0": "#073642",
"1": "#f0504a",
"2": "#859900",
"...": "..."
}
}Die 43 Token
Eine Theme-Datei darf nur diese Token in vier Gruppen benennen. Eine Datei mit einem anderen Schlüssel wird abgelehnt.
| Gruppe | Was sie färbt | Token |
|---|---|---|
| Oberflächen und Textfarben21 | Die Seite, Karten, Kopf- und Leistenbereiche, Text, Schaltflächen, Rahmen und der Fokusring. |
|
| Status6 | Die Agentenzustände und die Info-Farbe. |
|
| Syntax6 | Die Textfarben in Diffs und Code. |
|
| Host-Identität10 | Die Farben, die deine Rechner voneinander unterscheiden. |
|
Form und Erscheinungsbild
Der surface-Block enthält zehn Wörter. Jedes stammt aus einer festen Liste, und ein weggelassenes Token behält seinen Standardwert, das erste Wort seiner Liste. Eine freie Zahl wird nie akzeptiert, ein Theme kann also keine Tippfläche beschädigen.
radius- Die Ecke einer Karte, einer Zeile, eines Felds und einer Schaltfläche.
sharpsoftround
shadow- Der Schatten unter hervorgehobenen Bedienfeldern.
defaultflatlifted
density- Wie viel Platz innerhalb und zwischen Steuerelementen liegt.
defaultroomy
weight- Wie dick Text in Medium und Semibold dargestellt wird.
defaultbold
border- Die Breite einer Haarlinie.
defaultstrong
ground- Die Seite hinter allem: flach, ein weicher Verlauf oder eine feine Körnung.
flatgradientgrain
chrome- Die Kopfzeile und die Leisten: auf der Seitenfarbe oder auf einem eigenen Band.
pageband
rows- Eine Liste als eine umrahmte Gruppe mit Trennlinien oder als eine Karte für jede Zeile.
rulescards
icons- Die Strichstärke jedes Symbols.
defaultthinheavy
labels- Kleine Abschnittsbeschriftungen, in Großbuchstaben oder mit großem Anfangsbuchstaben.
capssentence
Terminalpalette
Der ansi-Block enthält 18 Farben oder keine: die 16 Terminalfarben, ink und ground. Jede ist #rrggbb oder oklch(L C H), und jede durchläuft eine Prüfung.
- Werte
- Ein Wert ist eine Farbe:
#rrggbb,#rrggbbaaoderoklch(L C H), mit/ Afür die Deckkraft. L reicht von 0 bis 1, C von 0 bis 0.5 und H von 0 bis 360, jeweils als reine Zahlen. - Hälften
- Gib
light,darkoder beides an. Eine Hälfte, die du auslässt, wird Token für Token aus Collie ergänzt. - Schriftarten
- Das optionale
fonts.uibenennt eine der Schriftarten, die ColliePWA mitbringt. Das optionalefonts.displaybenennt eine für Titel. Keine andere Schriftart wird akzeptiert. - Was abgelehnt wird
- Ein Schlüssel außerhalb der Liste, eine andere Version als 1 oder 2, ein Wert, der keine Farbe und kein Form-Wort ist,
var(),url()oder eine andere Funktion, die ID eines mitgelieferten Themes und eine Datei über 64 KiB. Die Meldung benennt die Ursache, und nichts wird angewendet. - Version
versionist 1 oder 2. Eine Datei mit einemsurface-Block, einemfonts.display-Schriftschnitt oder einemansi-Block gibt 2 an. Eine version-2-Datei erfordert ColliePWA 1.22.0 oder neuer.
05/Teilen
Exportieren und teilen.
Der Export schreibt das aktive Theme als .collie-theme.json-Datei. Sende sie an jemanden oder bewahre sie in einem Repository auf, und die Person importiert sie auf dieselbe Weise wie du.