Was ist Lily?
Ein kostenloses, quelloffenes Designsystem mit Barrierefreiheit an erster Stelle, das Sie dort abholt, wo Sie programmieren – und Ihnen aus dem Weg geht, wenn Sie es nicht brauchen.
Die Kurzfassung
Lily ist ein Katalog von Webkomponenten, die jeweils in acht Headless-Varianten umgesetzt sind (HTML, Svelte, React, Vue, Angular, Blazor, Nunjucks und Web Components), dazu eine Reihe sofort einsetzbarer Beispiel-Apps, die zeigen, wie man sie gestaltet.
Die Headless-Versionen liefern null CSSaus. Sie bieten semantisches HTML, ARIA-Rollen und -Zustände, Tastaturunterstützung und für die Internationalisierung geeignete Props. Das visuelle Design bringen Sie mit.
Gestaltungsprinzipien
Barrierefrei
Jede Komponente beginnt bei semantischem HTML. ARIA kommt nur dort hinzu, wo HTML allein das Muster nicht ausdrücken kann. Die Komponenten zielen auf WCAG 2.2 AAA – Farben, Abstände, Fokus und Tastaturnavigation werden alle berücksichtigt.
Kombinierbar
Lily bevorzugt kleine Komponenten mit nur einem Zweck, die sich zusammenstecken lassen. Zusammengesetzte Muster tauchen immer wieder auf:
Nav → List → ListItem– für Brotkrumennavigation, Inhaltsverzeichnisse, Akkordeonmenüs, Baummenüs und SeitennummerierungForm → Field → Input– für jedes Formularlayout mit Beschriftungen, Hinweisen und FehlernTable → Head/Body/Foot → Row → Data– für Tabellen, Kalender, Gantt-Diagramme und Kanban-BoardsBar → BarButton– für Werkzeugleisten, Tab-Leisten, Taskleisten, Aktionsleisten und MenüleistenPicker → PickerButton– für Farbwähler, Bewertungswähler und Themenwähler
Internationalisierbar
Keine einzige für Nutzer sichtbare Zeichenkette ist fest codiert. Beschriftungen, Platzhalter, Fehlermeldungen, Schaltflächentexte – alles sind Parameter. Binden Sie Ihr eigenes Übersetzungssystem ein, und Lily spricht jede Sprache, die Sie sprechen.
Headless
Headless-Komponenten haben kein CSS, keine
<style> -Blöcke und keine Design-Tokens, die Sie nicht selbst gewählt haben. Sie stellen auf jedem Wurzelelement einen einzigen Klassennamen in Kebab-Case bereit, sodass Sie sie gestalten können, wie Sie möchten – semantisches CSS, Tailwind, CSS-in-JS, Ihre Entscheidung.
Sofort einsetzbare Beispiele
Die Beispiel-Apps zeigen, wie die Komponenten für den echten Einsatz gestaltet werden – welche Design-Tokens zu setzen sind, welche Varianten hinzukommen und wie man Seiten zusammensetzt. Es sind vollständige SvelteKit-, Next.js-, Nuxt-, Blazor- und Eleventy-Apps, nicht nur Sandkästen.
Inspirationsquellen
Lily übernimmt Muster und Sprache aus einer bewusst breit gewählten Gruppe von Designsystemen:
- NHS UK Design System
- GOV.UK Design System
- U.S. Web Design System (USWDS)
- ONSdigital design system
- Design System AU (Australian Government)
- Mozilla Protocol
- Adobe Spectrum
- Ant Design
- Wonderflow Wanda
- DaisyUI
- shadcn/ui
- Reuters graphics components
Lizenz
Lily ist mehrfach lizenziert unter BSD, MIT, Apache-2.0, GPL-2.0 oder GPL-3.0. Wählen Sie die Lizenz, die zu Ihrem Projekt passt. Falls keine davon passt, nehmen Sie Kontakt auf.
Kontakt
Projektleiter: Joel Parker Henderson – joel@joelparkerhenderson.com.
Einen Fehler gefunden, eine Idee oder eine Komponente beizutragen? Eröffnen Sie ein Issue oder einen Pull Request auf GitHub.
Status: Lily ist ganz neu, und wir freuen uns über Zusammenarbeit, Anleitung und Rückmeldungen. Vieles wird sich bewegen und weiterentwickeln.