Hvad er Lily?
Et gratis designsystem med åben kildekode og tilgængelighed i højsædet, der møder dig dér, hvor du koder – og holder sig af vejen, når du ikke har brug for det.
Den korte version
Lily er et katalog over webkomponenter, som hver især er implementeret i otte hovedløse varianter (HTML, Svelte, React, Vue, Angular, Blazor, Nunjucks og Web Components) samt et sæt færdige eksempelapps, der viser, hvordan de kan stilles.
De hovedløse versioner leveres med nul CSS. De giver dig semantisk HTML, ARIA-roller og -tilstande, tastaturunderstøttelse og props, der egner sig til internationalisering. Det visuelle design tager du med.
Designprincipper
Tilgængelig
Hver komponent tager udgangspunkt i semantisk HTML. ARIA lægges kun oven på, hvor HTML alene ikke kan udtrykke mønstret. Komponenterne sigter mod WCAG 2.2 AAA – farver, afstand, fokus og tastaturnavigation tages alle i betragtning.
Sammensættelig
Lily foretrækker små komponenter med ét formål, der passer sammen. Sammensatte mønstre går igen igen:
Nav → List → ListItem– til brødkrummer, indholdsfortegnelser, harmonikamenuer, træmenuer og sidetalForm → Field → Input– til alle formularlayouts med etiketter, hjælpetekster og fejlTable → Head/Body/Foot → Row → Data– til tabeller, kalendere, Gantt-diagrammer og kanbantavlerBar → BarButton– til værktøjslinjer, fanelinjer, opgavelinjer, handlingslinjer og menulinjerPicker → PickerButton– til farvevælgere, vurderingsvælgere og temavælgere
Kan internationaliseres
Ikke en eneste brugervendt streng er hårdkodet. Etiketter, pladsholdere, fejlmeddelelser og knaptekster er alle parametre. Sæt dit eget oversættelsessystem ind, så taler Lily ethvert sprog, du gør.
Hovedløs
Hovedløse komponenter har ingen CSS, ingen
<style> -blokke og ingen designtokens, som du ikke selv har valgt. De udstiller ét enkelt klassenavn i kebab-case på hvert rodelement, så du kan målrette dem, som du vil – semantisk CSS, Tailwind, CSS-in-JS, det er op til dig.
Færdige eksempler
Eksempelapps viser, hvordan komponenterne stilles til rigtig brug – hvilke designtokens der skal sættes, hvilke varianter der skal tilføjes, og hvordan sider sammensættes. De er fuldgyldige SvelteKit-, Next.js-, Nuxt-, Blazor- og Eleventy-apps, ikke blot sandkasser.
Inspirationskilder
Lily henter mønstre og sprog fra en bevidst bred samling designsystemer:
- 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 flere licenser: BSD, MIT, Apache-2.0, GPL-2.0 eller GPL-3.0. Vælg den licens, der passer til dit projekt. Hvis ingen af dem fungerer, så tag kontakt.
Kontakt
Projektleder: Joel Parker Henderson – joel@joelparkerhenderson.com.
Har du fundet en fejl, har du en idé, eller vil du bidrage med en komponent? Opret en issue eller en pull request på GitHub.
Status: Lily er helt nyt arbejde, og vi byder samarbejde, vejledning og feedback velkommen. Tingene vil ændre sig og udvikle sig.