calmDOWN (kurz CD) ist ein offener Dokumentstandard für barrierefreie, visuell rendierbare und dynamische Textdokumente. CD ist kein Ersatz für Markdown, sondern ein eigenständiges Format für strukturierte Dokumente, bei denen Zugänglichkeit, Lesbarkeit und semantische Stabilität zentral sind.
CD ist als offener Ersatz für statische Formate wie PDF gedacht, ohne deren Einschränkungen.
Lizenz: BSD License Version: 1.0
Grundprinzipien
Inhalte sind unveränderlich
Reader dürfen nur Properties, nicht den Text selbst verändern
Barrierefreiheit ist Pflicht, nicht optional
Darstellung ist Reader-gesteuert, nicht autor-gesteuert
Quelltext bleibt lesbar und zugänglich
Dynamik erfolgt über deklarative Regeln und JSON-Daten
Trennung von Inhalt und Darstellung
Textinhalt bleibt immer identisch
Farben, Boxen, Kontraste und Darstellungsmodi dürfen angepasst werden
Foreground und Background müssen Kontrastregeln erfüllen
Kein Reader darf Text ersetzen, umformen oder vereinfachen
Beispiel nicht erlaubt: Ersetzen von Zeichen oder Wörtern („O → I“)
Beispiel erlaubt: Ändern einer blauen Box zu grau bei hohem Kontrastbedarf, Kontrast-Regeln Werden überprüft und wenn nicht passen wird die Anweisung nicht ausgeführt.
Syntax-Grundlagen
Anweisungen
Alle Anweisungen stehen in [ ]
Jede Anweisung endet explizit
[ # ] beendet eine Anweisung und setzt den Zustand zurück
Beispiel:
[#red]Roter Text[#]
Textformatierung
[b]Fett [#, i]Italic [#, u]Underline [#]
Formatierungen sind explizit, kombinierbar und eindeutig.
Überschriften und Struktur
[h1] Titel [h2] Überschrift
Mit Anker:
[h2, Einleitung] Einführung
Anker werden vom Reader automatisch zu einer verlinkten Übersicht verarbeitet und erhalten eine ID.
Subline:
[su] Untertitel oder Beschreibung
Seitenstruktur
\n (Zeilenumbruch) ist bindend
Reader dürfen Textfluss nicht umordnen
Seitenumbrüche werden explizit gesetzt
[Break] Seitenumbruch
Boxen
[BOX Background, Foreground, Radius, Margin] Text in einer Box [#BE]
Alle Parameter optional
Werte werden vom Root geerbt
Einzelne Werte können explizit überschrieben werden (Margin=...)
Bilder und Medien
![Emoji=warn]
Darstellung abhängig vom Reader-Modus:
Visuell:
Screenreader: „warn“
Text-only: !!
Bild mit Beschreibung:
[img=source]Alt-Text [#, sub]Bildbeschreibung[#]
Links und Accessibility
[Link=Pfad]Sichtbarer Text [#, scr]Screenreader-Text[#]
Zusätzliche Accessibility-Anweisungen:
[Scr] Screenreader-Text [Aria=Label]
ARIA ist Teil des Standards, nicht optional.
Kontextabhängige Darstellung (If)
CD erlaubt deklarative Darstellungsregeln abhängig vom Reader-Kontext:
[@if Screen.W <= 500 || Mode==Screenreader then Image.view=ALT_MODE !]
Keine Inhaltslogik
Keine Zustandsänderung
Nur Darstellungsregeln
Typische Nutzung: Am Anfang des Dokuments.
Dynamische Inhalte und Formulare
Variablen:
%%TYPELEN_NAME%
Beispiel:
%%TEXT50_USERNAME%
Ohne Längenangabe: TEXT = 150 Zeichen
Unterstützte Typen
TEXT
DATE
NUMBER
CHECKBOX
TEXTBOX
RADIOBOX
COMBOBOX
MULTICBOX
LIST
Datenhaltung
Werte werden nicht im Text gespeichert
JSON-Datenbereich am Dokumentende:
Aus obrige Variable %TEXT50_USERNAME% wird. Wen optional ist muss nach dem Name ein Doppelpunkt dran, zum Beispiel: %DATE_Optional:% diese Variable ist optional
###Data###
{
version="1.0",
author="Kschattenfeld"
contact="...",
submit= [
{ type="mail", format="json", mail="foo@bar.local" },
{ type="http", format="post", address="https://foo.bar/local/post.php"},
],
content= [
{ size=50, name="USERNAME", content="KSchattenfeld", mandatory=true, type="text" },
{ name="Optional", content=timestamp, type="date", mandatory=false, format="dd.mm.yyyy" }],
}Variablen bleiben immer an derselben Textposition
Nur der Reader tauscht Inhalte zur Anzeige aus
Alle Boxen, Auswahlfelder und komplexen Elemente werden vollständig über JSON beschrieben.
Zielsetzung
calmDOWN wurde entworfen für:
barrierefreie Dokumente
Screenreader-Nutzung als Normalfall
konsistente Darstellung über unterschiedliche Reader
langfristige Archivierung
menschenlesbaren Quelltext
Accessibility ist kein Zusatz, sondern Kernbestandteil des Formats.
Status
Version 1.0 Stabiler Basisstandard