Deutsch
Über dieses Handbuch

Dieses Handbuch gehört zur Vorlage Example für QuartzControl. Es erklärt die Vorlage und führt zugleich alles vor, was sie kann.

Der Text hier kommt aus einer Markdown-Datei, nicht aus der Konfiguration.

Code

Inline

Von Haus aus ein Kasten mit Rahmen. In dieser Vorlage eine Tönung ohne Rahmen — genug zur Trennung, zu wenig zur Unterbrechung. Etwas kleiner gesetzt (0.9em), weil die Mono neben der Textschrift sonst zu groß wirkt.

Blöcke

Die Fläche kommt von der Vorlage, nicht vom Syntax-Thema: keepBackground: false sorgt dafür, dass shiki nur die Zeichenfarben setzt. Nur so passt der Block in beiden Farbschemata.

Sie ist seit dem 05.09.2026 heller als die übrige Tönung und hat dafür einen eigenen Token (--tpl-surface-code, hell #F1EFE9, dunkel weiter lightgray). Ein Block ist eine große Fläche, und die Tönung, die für ein Wort Inline-Code richtig ist, macht aus zwanzig Zeilen eine graue Platte. Gemessen, was das bringt:

Farbeauf der alten Flächeauf der neuen
Text (#24292E)10,69 : 112,76 : 1
Blau (#005CC5)4,59 : 15,47 : 1
Violett (#6F42C1)4,75 : 15,66 : 1
Orange (#E36209)2,54 : 13,04 : 1

Bezahlt wird das mit Trennung: Die Fläche steht jetzt nur noch 1,12 : 1 gegen den Seitengrund statt 1,34 : 1. Deshalb bekommt der Block seinen Rahmen aus --tpl-rule — genau der Farbe, die vorher seine Füllung war.

Fünf Farben des Syntax-Themas sind korrigiert

Der hellere Grund reichte nicht. Gezählt wurde deshalb über die ganze gebaute Site: jeder --shiki-light- und --shiki-dark-Wert auf allen 333 Seiten, mit seiner Häufigkeit und seinem Kontrast gegen die Codefläche. Fünf Paare fielen durch:

Farbewofürvorherjetzt
#22863A hellZeichenketten, Tags (206×)4,02 : 1#1F7A35 — 4,69 : 1
#D73A49 hellSchlüsselwörter (112×)3,98 : 1#CA2938 — 4,70 : 1
#E36209 hellKonstanten, CSS-Variablen (82×)3,04 : 1#B04C07 — 4,70 : 1
#6A737D hellKommentare (4×)4,19 : 1#636B74 — 4,70 : 1
#6A737D dunkelKommentare (4×)2,74 : 1#949CA4 — 4,74 : 1

Jede Korrektur behält Farbton und Sättigung und ändert nur die Helligkeit — github-light liest sich weiterhin als github-light. Es ist dasselbe, was diese Vorlage mit Quartz’ Callout-Farben tut.

Geprüft werden sie seitdem bei jedem Lauf: --check-contrast liest die fünf Werte aus content.scss und misst sie gegen --tpl-surface-code. Aus 78 Paaren sind 83 geworden; mit dem dreizehnten Callout, der seit dem 05.09.2026 nicht mehr übersprungen wird, und zwei Rändern von Bedienelementen sind es heute 93.

Wie das technisch geht

shiki schreibt die Farbe inline an jedes einzelne <span> (style="--shiki-light:#E36209;--shiki-dark:#FFAB70;"), und eine Inline-Deklaration schlägt jede Autorenregel, die nicht !important ist. Überschrieben wird deshalb die Variable, nicht color — dann macht Quartz’ eigene Hell-Dunkel-Umschaltung weiter, was sie soll.

Was das nicht abdeckt: eine Sprache, deren Tokens eine zehnte Farbe erzeugen, käme ungemessen herein. Die Zählung ist wiederholbar — --shiki-light: aus public/ greppen.

Lange Zeilen brechen nicht um, sondern scrollen im Block.

Das Sprachlabel

Oben links steht die Sprache — als ::after im Stylesheet, nicht als Element. Es landet damit nicht in einer Kopie und nicht in der Vorlesereihenfolge.

Der Kopier-Button

Von Haus aus erscheint er nur beim Überfahren mit dem Zeiger — auf einem Smartphone ist er damit unerreichbar.

In dieser Vorlage erscheint er bei Hover, bei Fokus und dauerhaft auf Geräten ohne Zeiger (@media (hover: none)). Er misst 44 px, während das Symbol darin klein bleibt. Versteckt wird er über opacity, nie über display — sonst wäre er für die Tastatur gar nicht da.

Und er ist nur das Symbol: kein Rahmen, keine Fläche. Sein Zustand ist die Farbe des Symbols, von gray auf dark.

Die Ausnahme von der Schichtungsregel

„Alles in custom.scss steht ungeschichtet und gewinnt deshalb gegen die Plugin-Stile“ — für Komponenten-CSS stimmt das, für Ressourcen-Stylesheets nicht. Quartz liefert die Gestaltung dieses Buttons in static/resource-style-….css aus, ungeschichtet und nach index.css verlinkt. Bei gleicher Spezifität gewinnt damit die spätere Regel:

.clipboard-button { float: right; border: 1px solid; border-color: var(--dark);
                    background-color: var(--light); margin: .3rem; padding: .4rem }

Gemessen an der gebauten Seite: Der Button meldete weiterhin einen 1-px-Rahmen und --light dahinter, obwohl jede Regel dieser Vorlage border: none und background: transparent sagte. Ein Nachfahre im Selektor (pre .clipboard-button) entscheidet es.

Hervorgehobene Zeilen

Fläche und Balken links. Eine Tönung allein ist auf einem ohnehin getönten Block zu schwach.

Welche Variablen hier greifen

Diese 22 Variablen liest der Abschnitt body-code in content.scss. Ändern lassen sie sich in QuartzControl unter Stile → Variablen — ohne eine Zeile CSS.

VariableWertgilt außerdem für
--codeFont"Noto Sans Mono", ui-monospace, SFMono-Re…4 weitere Komponenten
--dark#17171A · dunkel #FCFCFA13 weitere Komponenten
--darkgray#333333 · dunkel #DDDDDD18 weitere Komponenten
--gray#5F5F5F · dunkel #A1A1A122 weitere Komponenten
--headerFont"Noto Sans", system-ui, "Segoe UI", Robot…15 weitere Komponenten
--secondary#1463A3 · dunkel #699DC319 weitere Komponenten
--tpl-accent-bar3px6 weitere Komponenten
--tpl-motion150ms ease13 weitere Komponenten
--tpl-radius-md8px17 weitere Komponenten
--tpl-radius-sm4px10 weitere Komponenten
--tpl-rulevar(--lightgray) = #DDDDDD19 weitere Komponenten
--tpl-rule-width1px25 weitere Komponenten
--tpl-space-2xs0.25rem16 weitere Komponenten
--tpl-space-lg1.5rem12 weitere Komponenten
--tpl-space-md1rem18 weitere Komponenten
--tpl-space-xs0.5rem20 weitere Komponenten
--tpl-surfacevar(--lightgray) = #DDDDDD6 weitere Komponenten
--tpl-surface-codecolor-mix(in srgb, var(--lightgray) 40%, … · dunkel var(--lightgray)nur hier
--tpl-surface-tintvar(--highlight) = rgba(42, 78, 108, 0.10)14 weitere Komponenten
--tpl-target44px12 weitere Komponenten
--tpl-text-xs0.78rem10 weitere Komponenten
--tpl-tracking-caps0.06em6.4 – Variablen, 3.1 – Bases

Diese Tabelle ist erzeugt: Sie wird aus den Stylesheets gelesen, nicht von Hand gepflegt.

Weiterlesen

Diese Seite gehört zu Example — der Beispielvorlage für QuartzControl. Ein Überblick über alle Bereiche steht auf der Startseite.

Auf einem schmalen Bildschirm ist die Navigation oben eingeklappt.