Čo je Lily?
Bezplatný dizajnový systém s otvoreným kódom, ktorý kladie prístupnosť na prvé miesto: stretne vás tam, kde programujete, a ustúpi z cesty, keď ho nepotrebujete.
Stručne
Lily je katalóg webových komponentov, z ktorých každý je implementovaný v ôsmich bezhlavých variantoch (HTML, Svelte, React, Vue, Angular, Blazor, Nunjucks a Web Components), a k tomu sada kompletných ukážkových aplikácií, ktoré ukazujú, ako ich štýlovať.
Bezhlavé verzie neobsahujú žiadne CSS. Poskytujú sémantické HTML, roly a stavy ARIA, podporu klávesnice a vlastnosti vhodné na internacionalizáciu. Vizuálny dizajn prinášate vy.
Dizajnové princípy
Prístupné
Každý komponent vychádza zo sémantického HTML. ARIA sa pridáva len tam, kde samotné HTML vzor nevyjadrí. Komponenty cielia na WCAG 2.2 AAA — farby, rozostupy, fokus aj navigácia klávesnicou sú všetky zohľadnené.
Skladateľné
Lily uprednostňuje malé komponenty s jediným účelom, ktoré do seba zapadajú. Zložené vzory sa opakujú stále dokola:
Nav → List → ListItem— pre omrvinkovú navigáciu, zoznamy obsahu, akordeónové ponuky, stromové ponuky a stránkovanieForm → Field → Input— pre akékoľvek rozloženie formulára so štítkami, nápovedami a chybamiTable → Head/Body/Foot → Row → Data— pre tabuľky, kalendáre, Ganttove diagramy a kanbanové tabuleBar → BarButton— pre panely nástrojov, panely kariet, panely úloh, panely akcií a panely ponúkPicker → PickerButton— pre výbery farieb, výbery hodnotenia, výbery tém
Internacionalizovateľné
Ani jediný reťazec viditeľný používateľom nie je zapísaný napevno. Štítky, zástupné texty, chybové hlásenia, texty tlačidiel — všetko sú parametre. Zapojte vlastný prekladový systém a Lily hovorí akýmkoľvek jazykom, ktorým hovoríte vy.
Bezhlavé
Bezhlavé komponenty majú žiadne CSS, žiadne bloky
<style> , žiadne dizajnové tokeny, ktoré ste si nevybrali. Sprístupňujú jediný názov triedy v kebab-case na každom koreňovom prvku, takže ich môžete cieliť, ako chcete — sémantické CSS, Tailwind, CSS-in-JS, je to na vás.
Kompletné ukážky
Ukážkové aplikácie ukazujú, ako štýlovať komponenty pre skutočné použitie — aké dizajnové tokeny nastaviť, aké varianty pridať, ako skladať stránky. Sú to plnohodnotné aplikácie SvelteKit, Next.js, Nuxt, Blazor a Eleventy, nie len pieskoviská.
Zdroje inšpirácie
Lily čerpá vzory a jazyk zo zámerne širokej sady dizajnových systémov:
- 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
Licencia
Lily je viaclicencovaný: BSD, MIT, Apache-2.0, GPL-2.0 alebo GPL-3.0. Vyberte si licenciu, ktorá vyhovuje vášmu projektu. Ak nevyhovuje žiadna, ozvite sa nám.
Kontakt
Vedúci projektu: Joel Parker Henderson — joel@joelparkerhenderson.com.
Našli ste chybu, máte nápad, chcete prispieť komponentom? Otvorte issue alebo pull request na GitHub.
Stav: Lily je celkom nová práca a vítame spoluprácu, vedenie aj spätnú väzbu. Veci sa budú meniť a vyvíjať.