Co je Lily?
Bezplatný návrhový systém s otevřeným kódem, který klade přístupnost na první místo: potká vás tam, kde programujete, a ustoupí z cesty, když ho nepotřebujete.
Stručně
Lily je katalog webových komponent, z nichž každá je implementována v osmi bezhlavých variantách (HTML, Svelte, React, Vue, Angular, Blazor, Nunjucks a Web Components), a k tomu sada kompletních ukázkových aplikací, které ukazují, jak je stylovat.
Bezhlavé verze neobsahují žádné CSS. Poskytují sémantické HTML, role a stavy ARIA, podporu klávesnice a vlastnosti vhodné pro internacionalizaci. Vizuální návrh přinášíte vy.
Návrhové principy
Přístupné
Každá komponenta vychází ze sémantického HTML. ARIA se přidává jen tam, kde samotné HTML vzor nevyjádří. Komponenty míří na WCAG 2.2 AAA — barvy, rozestupy, fokus i navigace klávesnicí jsou všechny zohledněny.
Skládatelné
Lily upřednostňuje malé komponenty s jediným účelem, které do sebe zapadají. Složené vzory se opakují stále dokola:
Nav → List → ListItem— pro drobečkovou navigaci, seznamy obsahu, akordeonová menu, stromová menu a stránkováníForm → Field → Input— pro jakékoli rozvržení formuláře se štítky, nápovědami a chybamiTable → Head/Body/Foot → Row → Data— pro tabulky, kalendáře, Ganttovy diagramy a kanbanové tabuleBar → BarButton— pro panely nástrojů, panely karet, panely úloh, panely akcí a panely nabídekPicker → PickerButton— pro výběry barev, výběry hodnocení, výběry motivů
Internacionalizovatelné
Ani jediný řetězec viditelný uživateli není zapsán napevno. Štítky, zástupné texty, chybové zprávy, texty tlačítek — vše jsou parametry. Zapojte vlastní překladový systém a Lily mluví jakýmkoli jazykem, kterým mluvíte vy.
Bezhlavé
Bezhlavé komponenty mají žádné CSS, žádné bloky
<style> , žádné návrhové tokeny, které jste si nevybrali. Zpřístupňují jediný název třídy v kebab-case na každém kořenovém prvku, takže je můžete cílit, jak chcete — sémantické CSS, Tailwind, CSS-in-JS, je to na vás.
Kompletní ukázky
Ukázkové aplikace ukazují, jak komponenty stylovat pro skutečné použití — jaké návrhové tokeny nastavit, jaké varianty přidat, jak skládat stránky. Jsou to plnohodnotné aplikace SvelteKit, Next.js, Nuxt, Blazor a Eleventy, ne jen pískoviště.
Zdroje inspirace
Lily čerpá vzory a jazyk z záměrně široké sady návrhových systémů:
- 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
Licence
Lily je vícelicencovaný: BSD, MIT, Apache-2.0, GPL-2.0 nebo GPL-3.0. Vyberte si licenci, která vyhovuje vašemu projektu. Pokud nevyhovuje žádná, ozvěte se nám.
Kontakt
Vedoucí projektu: Joel Parker Henderson — joel@joelparkerhenderson.com.
Našli jste chybu, máte nápad, chcete přispět komponentou? Otevřete issue nebo pull request na GitHub.
Stav: Lily je zcela nová práce a vítáme spolupráci, vedení i zpětnou vazbu. Věci se budou měnit a vyvíjet.