Vad är Lily?
Ett gratis, tillgänglighetsfokuserat designsystem med öppen källkod som möter dig där du kodar – och håller sig undan när du inte behöver det.
Kort version
Lily är en katalog med webbkomponenter, var och en implementerad i åtta huvudlösa varianter (HTML, Svelte, React, Vue, Angular, Blazor, Nunjucks och Web Components) samt en uppsättning färdiga exempelappar som visar hur de kan formges.
De huvudlösa versionerna levereras med noll CSS. De ger dig semantisk HTML, ARIA-roller och -tillstånd, tangentbordsstöd och egenskaper som underlättar internationalisering. Du står för den visuella designen.
Designprinciper
Tillgänglig
Varje komponent utgår från semantisk HTML. ARIA läggs bara till där HTML ensamt inte kan uttrycka mönstret. Komponenterna siktar på WCAG 2.2 AAA – färger, avstånd, fokus och tangentbordsnavigering har alla beaktats.
Sammansättbar
Lily föredrar små komponenter med ett enda syfte som passar ihop. Sammansatta mönster återkommer gång på gång:
Nav → List → ListItem– för brödsmulor, innehållsförteckningar, dragspelsmenyer, trädmenyer och sidnumreringForm → Field → Input– för alla formulärlayouter med etiketter, tips och felTable → Head/Body/Foot → Row → Data– för tabeller, kalendrar, Gantt-diagram och kanbantavlorBar → BarButton– för verktygsfält, flikfält, aktivitetsfält, åtgärdsfält och menyfältPicker → PickerButton– för färgväljare, betygsväljare och temaväljare
Internationaliserbar
Inte en enda användarvänd sträng är hårdkodad. Etiketter, platshållare, felmeddelanden och knapptexter är alla parametrar. Koppla in ditt eget översättningssystem så talar Lily vilket språk du än gör.
Huvudlös
Huvudlösa komponenter har ingen CSS, inga
<style> -block och inga designtokens du inte själv valt. De exponerar ett enda klassnamn i kebab-case på varje rotelement så att du kan rikta in dig på dem hur du vill – semantisk CSS, Tailwind, CSS-in-JS, du bestämmer.
Färdiga exempel
Exempelapparna visar hur komponenterna formges för verklig användning – vilka designtokens som ska sättas, vilka variationer som ska läggas till och hur sidor sätts ihop. De är fullständiga SvelteKit-, Next.js-, Nuxt-, Blazor- och Eleventy-appar, inte bara sandlådor.
Inspirationskällor
Lily hämtar mönster och språk från en medvetet bred uppsättning designsystem:
- 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
Licens
Lily har flera licenser: BSD, MIT, Apache-2.0, GPL-2.0 eller GPL-3.0. Välj den licens som passar ditt projekt. Fungerar ingen av dem, hör av dig.
Kontakt
Projektledare: Joel Parker Henderson – joel@joelparkerhenderson.com.
Hittat en bugg, har du en idé eller vill du bidra med en komponent? Öppna ett ärende eller en pull request på GitHub.
Status: Lily är ett alldeles nytt arbete och vi välkomnar samarbete, vägledning och återkoppling. Saker kommer att förändras och utvecklas.