{# Grundgerüst im Gestaltungssystem „Messung“ (Stufe 2): Leitseite „/“ und die Infoseiten (Hilfe, Über uns, Rechtstexte). Lädt NICHT timbre.css, sondern static/start.css (Fundament) und je Seitenart eine Datei dazu (Block `css`, z. B. static/info.css); beide erzeugt werkzeuge/tokens_bauen.py aus design/tokens.json. Die Arbeitsansichten bleiben auf basis.html und timbre.css. Kopf: dieselben Makros wie basis.html (templates/kopf.html, Navigation Runde 2) mit den Stufen des Rasters (1184/768, angemeldet Reiterleiste unter 744 px wie basis.html) und dem Lampen-Schalter. Fuß: Links, Sprachen, Erscheinungsbild (Besuch), Lampen-Schalter als Text. Schriften per preload (font-display optional in start.css: nichts rückt nach). #} {% include "themafarbe.html" %} {% block titel %}{{ t.titel }}{% endblock %} {# Skripte mit defer (07.11.2026, Ladezeit am Handy): Merker bis DOMContentLoaded. Die früher synchronen Skripte (navigation.js, tagliste.js …) warten damit weiter auf DOMContentLoaded statt in der defer-Phase (readyState „interactive“) sofort zu starten. #} {# Tonart-Schreibweise (07.11.2026): zentraler Helfer TimbreTonart vor allen anderen Skripten (liest ) #} {% if not (nutzer and gesperrt) %}{% endif %} {# Kopf-Skript (24.10.2026, static/tageszeit.js inline, VOR dem CSS): löst „Nach Tageszeit“ auf, übernimmt beim Besuch die gemerkte Wahl (localStorage „timbre.erscheinungsbild“) und setzt theme-color – vor dem ersten Zeichnen, kein Flackern #} {# Desktop-App v2: im App-Fenster nicht – der Besuch-Block würde Player, Stützwerte und aktive Tag List verwerfen, sobald die Fenster-Sitzung kurz fehlt (Übergabe läuft). Kontowechsel erkennt dort static/desktop.js (Hash der sub). #} {% if ist_besucher and not desktop_app %}{% endif %} {% block preload %}{% endblock %}{% if menue_c and desktop_app and nutzer and not gesperrt %}{% endif %} {% block css %}{% endblock %} {# Vollbild vom Home-Bildschirm (29.10.2026): ältere iOS-Fassungen brauchen das Apple-Meta, Statusleiste „default“ (dunkle Schrift auf hell bzw. umgekehrt, die Seite beginnt darunter – mit „black-translucent“ stünde weiße Schrift auf hellen Designs); static/vollbild.js öffnet fremde Verweise dort im Browser. #} {% if not (nutzer and gesperrt) %}{% endif %} {# navigation.js wie in basis.html: Esc und Klick daneben schließen die Aufklapper im Kopf, angemeldet dazu Reiterleiste, „Mehr“ und Taste „/“. Die Warteseite (angemeldet, ohne Freigabe) bleibt ohne Skript – ihre Aufklapper sind
. #} {% if not (nutzer and gesperrt) %}{% endif %} {# Desktop-App v2 (28.10.2026): Brücke window.timbreDesktop (Feature-Erkennung, Downloads, Anmeldung im App-Fenster) – auf jeder Seite, klein #} {% if not (nutzer and gesperrt) %}{% endif %} {# Formulare im App-Fenster (30.10.2026): Abmelden im Kopf über die Brücke – wie basis.html #} {% if desktop_app and nutzer and not gesperrt %} {% endif %} {% if sprachfassungen %} {% for k, _ in sprachen %}{% endfor %} {% endif %}{% block kopf %}{% endblock %} {# Statuszeile und Tag List wie in basis.html: nur angemeldet und freigegeben #} {% if nutzer and not gesperrt %}{% if status_speicher %}{% endif %} {# Ampel-Formen für tagliste.js (TimbreAmpel), wie basis.html #} {# Navileiste: das zentrale „+“ (27.10.2026), wie in basis.html #} {# Home „Teller“ (28.10.2026): Merker des zuletzt gehörten Tracks, wie in basis.html #}{% endif %} {# Tutorial „Kniffe“ (29.10.2026): Kniffe im Kontext und Taste ? (klein, defer); der Einstieg „Kurz reingehört“ nur, solange er fällig ist #} {% if nutzer and not gesperrt %} {% if einstieg_faellig(eb) %} {% endif %}{% endif %} {{ t.sprung_inhalt }} {% block lampe %}{% endblock %} {% set L = t.leit %} {% import "kopf.html" as kopfmakros with context %} {% macro lampenknopf(klasse) %}{% endmacro %} {% call kopfmakros.kopfleiste("1184") %}{% if lampe_an %} {% endif %}{% endcall %}
{% block inhalt %}{% endblock %}
{{ kopfmakros.reiter() }} {# Player wie in basis.html (nur mit verbundenem Speicher und eingeschaltetem Abspielen): läuft auf den Infoseiten weiter #} {{ kopfmakros.player() }} {% if ist_besucher %}{% endif %} {% if lampe_an %}{% endif %} {% block skripte %}{% endblock %}