Eine Biene als Wappen, an allen vier Stellen
Aus dem Quadrat links in beiden Leisten wird eine Pixelbiene von der Seite: braune Streifen, schwarze Beine, Fluegel mit Kerbe. Sie steht in genau einem Raster (tools/biene.py, 16x16 Zeichen); daraus entstehen SVG, PNG und eine Fassung aus Schriftzeichen. SVG statt PNG in den Leisten: Die HoneyBar laeuft in fremden Apps, und ob ein <img> dort laedt, entscheidet deren CSP. Markup kann niemand blockieren. Im System-Fenster und ueber dem Startlauf steht die Biene aus Schriftzeichen — beides sind Textflaechen, ein Bild darin waere ein Fremdkoerper. Das Wappen liegt an drei Stellen (Datei, Modul, HoneyBar-Zeile), weil die Leiste nichts nachladen kann. TestWappenIstUeberallDasselbe haelt sie gleich.
This commit is contained in:
1 parent
aec042a8c9
commit
3f8b98b869
14 files changed
+301
-10
No files matched your search
@@ -184,6 +184,57 @@ in beiden: Menüleiste, Palette, Einstellungen, App-Liste.
|
||||
**Tasten:** `M` Betriebsart · `S` Einstellungen · `?` Hilfe ·
|
||||
`Esc` schließt Startmenü, oberstes Fenster oder Dialog — in dieser Reihenfolge.
|
||||
|
||||
## Das Wappen
|
||||
|
||||
Links in beiden Leisten sitzt eine Pixelbiene — seitlich, mit braunen Streifen,
|
||||
schwarzen Beinen und Flügeln mit Kerbe. Sie ersetzt das `■`, das dort seit dem
|
||||
ersten Tag stand.
|
||||
|
||||
**Sie steht an genau einer Stelle:** `tools/biene.py`, als 16 × 16 Zeichen, ein
|
||||
Zeichen je Pixel. Daraus entstehen alle Fassungen:
|
||||
|
||||
```
|
||||
python3 tools/biene.py
|
||||
```
|
||||
|
||||
| Ausgabe | wohin |
|
||||
|---|---|
|
||||
| `web/img/biene.svg` | Favicon |
|
||||
| `web/js/biene.js` | Menüleiste des Schreibtischs (`BIENE_SVG`), System-Fenster und Startlauf (`BIENE_ASCII`) |
|
||||
| `web/img/biene-256.png`, `-32.png` | Doku und Vorschau |
|
||||
|
||||
In die HoneyBar ist dieselbe SVG-Zeile **einkopiert** — sie ist eine einzelne
|
||||
Datei ohne zweite Anfrage. Ein Test (`TestWappenIstUeberallDasselbe`) hält die
|
||||
drei Kopien zusammen; wer das Raster ändert, lässt das Skript laufen und
|
||||
kopiert die Zeile neu.
|
||||
|
||||
**Warum SVG und nicht PNG?** Die HoneyBar läuft in *fremden* Apps. Ein `<img>`
|
||||
holte dort eine Datei von HoneyOS, und ob das erlaubt ist, entscheidet die CSP
|
||||
der fremden App (`img-src`). Markup kann niemand blockieren, es braucht keine
|
||||
zweite Anfrage, und es ist mit 2,6 kB kleiner als das PNG.
|
||||
|
||||
**Warum bleibt sie gelb?** In der grünen und der eisblauen Röhre wechselt alles
|
||||
die Farbe mit — die Biene nicht. Ein Zeichen, das die Farbe wechselt, ist ein
|
||||
Symbol wie *wolke*; eines, das seine Farbe behält, ist ein Wappen. Der eine
|
||||
warme Fleck liest sich als „das hier ist das System selbst".
|
||||
|
||||
### Und aus Schriftzeichen
|
||||
|
||||
Im System-Fenster und über dem Startlauf steht dieselbe Biene aus `#`, `:` und
|
||||
`-`. Beides sind Textflächen — ein Bild darin wäre ein Fremdkörper, wie ein
|
||||
Foto in einer Tabelle. So wird aus dem System-Fenster ein **neofetch**.
|
||||
|
||||
Zwei Dinge stecken in der Umsetzung, die man nur durch Ausprobieren findet: Ein
|
||||
Zeichen ist etwa halb so breit wie hoch, ein Pixel muss also **zwei Zeichen**
|
||||
breit sein. Und Blockzeichen (`█ ▓ ▒`) sehen im Editor perfekt aus, hinterlassen
|
||||
im Browser aber feine Fugen zwischen den Zellen — der Körper wird zur Waffel.
|
||||
Gewöhnliche Schriftzeichen behaupten gar nicht erst, eine Fläche zu sein.
|
||||
|
||||
Dass ausgerechnet die **Seitenansicht** als Text funktioniert, ist kein Zufall:
|
||||
Ihre Streifen laufen senkrecht, also bleibt jede Textzeile ein
|
||||
zusammenhängendes Stück Körper. Von vorn zerfällt die Biene in Streifen und
|
||||
liest sich wie ein Strichcode.
|
||||
|
||||
## Widgets
|
||||
|
||||
Ein Widget ist eine **Beschreibung**, kein Kasten in der `index.html`:
|
||||
|
||||
Reference in new issue
Block a user