<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Css on Liftoff</title><link>https://hugo-liftoff.kevinhorst.de/de/tags/css/</link><description>Recent content in Css on Liftoff</description><generator>Hugo</generator><language>de</language><lastBuildDate>Fri, 15 May 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://hugo-liftoff.kevinhorst.de/de/tags/css/index.xml" rel="self" type="application/rss+xml"/><item><title>Ein Performance-Budget, das man einhält</title><link>https://hugo-liftoff.kevinhorst.de/de/articles/a-performance-budget/</link><pubDate>Fri, 15 May 2026 00:00:00 +0000</pubDate><guid>https://hugo-liftoff.kevinhorst.de/de/articles/a-performance-budget/</guid><description>&lt;p&gt;Ein Performance-Budget funktioniert nur, wenn es kurz genug ist, um im
Kopf zu bleiben. Für eine Inhaltsseite reichen drei Zahlen.&lt;/p&gt;
&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;Budget&lt;/th&gt;
					&lt;th&gt;Zielwert&lt;/th&gt;
					&lt;th&gt;Was es sprengt&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;Requests pro Seite&lt;/td&gt;
					&lt;td&gt;unter 10&lt;/td&gt;
					&lt;td&gt;Webfonts, Analytics&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;CSS&lt;/td&gt;
					&lt;td&gt;unter 30 kB&lt;/td&gt;
					&lt;td&gt;Utility-Frameworks&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;JavaScript&lt;/td&gt;
					&lt;td&gt;unter 10 kB&lt;/td&gt;
					&lt;td&gt;alles mit Build-Schritt&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;Liftoff gibt sein JavaScript für drei Dinge aus: den Theme-Umschalter,
die Copy-Buttons an Codeblöcken und den Blueprint-Filter. Alle drei
bleiben ohne Skripte benutzbar, und nur deshalb dürfen sie überhaupt
existieren.&lt;/p&gt;</description></item><item><title>Dark Mode, der das System respektiert</title><link>https://hugo-liftoff.kevinhorst.de/de/articles/dark-mode-defaults/</link><pubDate>Fri, 08 May 2026 00:00:00 +0000</pubDate><guid>https://hugo-liftoff.kevinhorst.de/de/articles/dark-mode-defaults/</guid><description>&lt;p&gt;Ein Umschalter, der für alle erst mal dunkel startet, ist eine
Geschmacksfrage im Gewand eines Features. Liftoff liest zuerst
&lt;code&gt;prefers-color-scheme&lt;/code&gt; und schreibt erst dann nach &lt;code&gt;localStorage&lt;/code&gt;, wenn
jemand tatsächlich ein Schema wählt.&lt;/p&gt;
&lt;div class="codeblock"&gt;
 &lt;div class="codeblock__head"&gt;
 &lt;span class="codeblock__lang"&gt;js&lt;/span&gt;
 &lt;button type="button" class="codeblock__copy" data-action="copy-code" aria-label="Kopieren"&gt;Kopieren&lt;/button&gt;
 &lt;/div&gt;
 &lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-js" data-lang="js"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kr"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;stored&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;localStorage&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;getItem&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;liftoff.theme&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kr"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;system&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;matchMedia&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;(prefers-color-scheme: light)&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nx"&gt;matches&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;Diese Reihenfolge ist der Punkt. Wer sein System hell eingestellt hat,
bekommt eine helle Seite, ohne dass kurz Dunkel aufblitzt. Wer danach
bewusst auf Dunkel wechselt, behält Dunkel, auch wenn sich das System
später ändert: Eine ausdrückliche Wahl schlägt eine abgeleitete.&lt;/p&gt;</description></item><item><title>Über Design-Tokens</title><link>https://hugo-liftoff.kevinhorst.de/de/articles/design-tokens/</link><pubDate>Sat, 02 May 2026 00:00:00 +0000</pubDate><guid>https://hugo-liftoff.kevinhorst.de/de/articles/design-tokens/</guid><description>&lt;p&gt;Liftoff legt seine Palette, sein Spacing und die Typografie als CSS
Custom Properties auf &lt;code&gt;:root&lt;/code&gt; offen. Konsument:innen können das Theme
anpassen, ohne es zu forken.&lt;/p&gt;
&lt;h2 id="override-pattern"&gt;Override-Pattern&lt;/h2&gt;
&lt;p&gt;Lege eine kleine CSS-Datei in &lt;code&gt;assets/css/&lt;/code&gt; deiner Seite ab und binde
sie nach dem Theme-Bundle ein.&lt;/p&gt;
&lt;div class="codeblock"&gt;
 &lt;div class="codeblock__head"&gt;
 &lt;span class="codeblock__lang"&gt;css&lt;/span&gt;
 &lt;button type="button" class="codeblock__copy" data-action="copy-code" aria-label="Kopieren"&gt;Kopieren&lt;/button&gt;
 &lt;/div&gt;
 &lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-css" data-lang="css"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="nd"&gt;root&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nv"&gt;--color-accent&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mh"&gt;#ff7a59&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nv"&gt;--color-bg&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mh"&gt;#0d0a0a&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;Der Light-Mode ist Opt-in über &lt;code&gt;data-theme=&amp;quot;light&amp;quot;&lt;/code&gt; am &lt;code&gt;&amp;lt;html&amp;gt;&lt;/code&gt;-Element.
Der eingebaute Toggle merkt sich die Wahl in &lt;code&gt;localStorage&lt;/code&gt;, Fallback
ist &lt;code&gt;prefers-color-scheme&lt;/code&gt;.&lt;/p&gt;
&lt;h2 id="warum-nicht-tailwind"&gt;Warum nicht Tailwind&lt;/h2&gt;
&lt;p&gt;Für ein Theme, das als Hugo-Modul ausgeliefert wird, ist eine
Node-Toolchain Reibung. Reines CSS mit Variablen bringt keine
Abhängigkeiten und bleibt lesbar.&lt;/p&gt;</description></item></channel></rss>