- magick.css ist ein nahezu classless CSS-Framework in einer einzelnen Datei und zielt auf Webdokumente im Stil von „Notizen eines Magiers“ ab, die gut lesbar sind und Informationen klar vermitteln
- Es funktioniert auf allen Bildschirmgrößen und kann ohne JavaScript genutzt werden, sodass es sich leicht direkt auf statische Dokumente oder schlanke HTML-Seiten anwenden lässt
- Die Installation ist per CDN, durch direktes Einbinden der Datei oder per npm import möglich; außerdem wird eine Konfiguration zusammen mit
normalize.css beschrieben
- Die Grundstruktur ist eine gut lesbare, spaltenorientierte Struktur rund um
und; mit `` und sidenote lassen sich ergänzende Erläuterungen neben dem Fließtext platzieren
- Die meisten Standard-HTML-Elemente werden gestylt; Funktionen, die zusätzliche Struktur benötigen, wie sidenotes und Zeilennummern für Code, werden über separate Klassen bereitgestellt
Ziel und Charakter von magick.css
- magick.css ist ein minimalistisches, größtenteils classless CSS-Framework
- Es steckt in einer einzelnen Datei; über Kommentare im CSS lassen sich die Gründe für Designentscheidungen nachvollziehen
- Visuell schafft es eine elegante und zugleich spielerische magische Atmosphäre, wobei Lesbarkeit und Informationsvermittlung im Vordergrund stehen
- Es behält Aussehen und Funktion auf allen Geräten und Bildschirmgrößen bei und funktioniert ohne JavaScript
- Inspiriert wurde es von LaTeX, alten TTRPG-Regelbüchern, concrete.css, Tufte CSS und der brutalistischen Ethik von „usability as design“
Installation und Nutzung
- Für den schnellsten Test fügt man im HTML-`` zwei CDN-Stylesheets hinzu
- Alternativ kann man die Datei
magick.css aus dem Repository herunterladen und wie normales CSS einbinden
- In JavaScript-Projekten installiert man es per npm und importiert es anschließend
npm install normalize.css magick.css
import 'normalize.css'
import 'magick.css'
- Die zu 99 % classless gehaltene Struktur ist darauf ausgelegt, sich leicht auf bestehende HTML5-Dokumente anwenden zu lassen
Lesefokussiertes Layout
- Für responsive Spalten wird empfohlen, den gesamten Inhalt mit
zu umschließen und längere Texte in aufzuteilen
- Eine typische Dokumentstruktur besteht darin, innerhalb von
ein, mehrere und ein zu platzieren
- Auch ohne diese Struktur kann magick.css lediglich für Typografie und gestylte Komponenten verwendet werden
- Zusätzliche Informationen werden mit dem Tag `` dargestellt
- Wenn mitten im Text zusätzlicher Kontext eingefügt werden soll, verwendet man sidenote; die Nummerierung erfolgt automatisch
Styling grundlegender HTML-Elemente
- Die Typografie umfasst Überschriften, Absätze, Links, Hervorhebungen, Unterstreichungen, Kleingedrucktes, Inline-Code und mehr
- Überschriften unterhalb von `` werden von magick.css nicht gestylt
- Niedrigere Heading-Ebenen werden eher als für Spezialzwecke denn als Teil der Hierarchie betrachtet
- Bei Bedarf können Nutzer sie selbst stylen
- Listen bleiben schlicht, damit sie den Inhalt nicht stören
- Ungeordnete Listen
- Geordnete Listen
- Definitionslisten
- Tabellen verwenden ein klares und knappes Styling, damit der Fokus auf den Daten liegt
- Formulare und Eingabeelemente können einzeln oder innerhalb eines form verwendet werden
- Texteingaben sind vielseitig einsetzbar, daher gibt es keine starke Vorgabe zu Größe oder Platzierung
- Bei Checkboxen und Radio-Buttons wird erwartet, dass das label nach dem input steht
- forms sind so gestylt, dass sie wie handschriftliche Notizen auf Papier wirken und die Aufmerksamkeit der Nutzer auf sich ziehen
Medien, Code und Zitate
- Bilder und Videos können alleinstehend platziert oder innerhalb von `` mit einer Bildunterschrift dargestellt werden
- Ein alleinstehendes `` wird bei ausreichendem Platz in natürlicher Größe angezeigt und weder gestreckt noch verzerrt
- Mit
und lassen sich Medien stärker hervorheben und um Kontext ergänzen
- Für Inline-Code verwendet man
; große Codeblöcke verwenden eine Struktur, bei der ein `` umschließt
- Auch Code-Snippets können als figure dargestellt werden
- Zitate verwenden ``
- Quellenangaben werden mit `` innerhalb des blockquote ergänzt
- Texte, bei denen die Formatierung wichtig ist, etwa Gedichte, können mit `` umschlossen werden
Funktionen mit separaten Klassen
- Einige Funktionen benötigen eine spezielle class und sind daher von der zentralen classless-Funktionsweise von magick.css getrennt
- Um eine sidenote in den Text einzufügen, ergänzt man sowohl die Referenzposition als auch den Inhalt der sidenote
Sidenote Content.
- Auf Mobilgeräten wandert die sidenote in die Hauptspalte
- Um Zeilennummern in Code- oder pre-Blöcken anzuzeigen, muss ein `` mit den jeweiligen Zeilennummern eingefügt werden
- Das Einfügen der Zeilennummern kann nach Wunsch manuell, per JavaScript oder serverseitig erfolgen
Projektlinks
- Wenn es gefällt, kann man dem Projekt auf GitHub einen Star geben
- Wer an weiteren Arbeiten interessiert ist, kann dem Discord beitreten
1 Kommentare
Hacker-News-Kommentare
Mir gefällt, wie die handschriftliche Schrift in den Eingabebereichen mit den organischen Serifen zusammenspielt, dazu die sorgfältig ausbalancierte Zeilenhöhe und Schriftstärke
Code für Interessierte: https://github.com/wintermute-cell/magick.css/blob/master/ma...
Ich wünschte, es gäbe auch Custom Checkboxes und Radio Buttons. Im Moment reißen nur diese beiden einen aus der Immersion, der Rest ist wirklich hervorragend. Vielleicht bringt es mich endlich dazu, den Blog zu bauen, an den ich schon lange denke
Sie passt so gut, dass man sie fast gar nicht bewusst wahrnimmt
Man sieht, dass das schließende Tag header ist, nicht main
Ich wollte schnell sehen, wie es aufgebaut ist, musste aber ein paar zusätzliche Schritte gehen, um an die Quelle zu kommen. Zumindest ein klickbarer Link direkt zur unverarbeiteten Form wäre gut
Seltsamerweise spricht mich dieses Gefühl wirklich an
Dazu sieht auch dieser extrem minimalistische Look mit fast nur HTML, wie bei alten Websites von Uni-Professoren, ziemlich cool aus
Ich wünschte, persönliche Blogs wären populärer
Zumindest in meinen Texten bilden Bilder und Text eine zusammenhängende Erzählung, egal ob es technische Texte sind oder nicht. Bilder neu anzuordnen und woandershin zu verschieben ergibt genauso wenig Sinn, wie das mit Absätzen zu tun
Eigentlich sollte man überhaupt nichts komplett in Großbuchstaben setzen. Das ist wie Unterstreichen eine Hervorhebungsmethode aus der Schreibmaschinenzeit, als man nur eine einzige Schriftart nutzen konnte
Großbuchstaben sehen einander zu ähnlich. Weil die Buchstabenhöhe kaum variiert, wird das Lesen fürs Auge schwieriger. Bei gemischter Groß- und Kleinschreibung gibt es Unterlängen wie bei y, p, j und Oberlängen wie bei b, d, t, dadurch entsteht Variation und der Text lässt sich leichter erfassen
Für Hervorhebungen sollte man besser Größe, Schriftstärke oder Kursivschrift verwenden
Aber genau dadurch entsteht auch ein eigenständiger Stil
Ich glaube, mir gefällt es trotzdem
Ziemlich gute allgemeine Frameworks findet man leicht, aber wenn man etwas mit klar erkennbarem Charakter will, wird es deutlich schwieriger
https://www.mcsweeneys.net/articles/im-comic-sans-asshole
Besonders die geringere Stärke in Kombination mit dem Dark Theme macht den Text ziemlich unangenehm zu lesen
Statt sie vernünftig zu behandeln, hat Google am Ende eine Nutzerstudie mit 800 Personen durchgeführt und kam zu dem Schluss: „Texteingabefelder sollten wie Texteingabefelder aussehen“: https://medium.com/google-design/the-evolution-of-material-d...
Ich habe früher mal eines gebaut, aber vermutlich ist es nicht so gut wie dieses: https://elementcss.neocities.org