Qu'est-ce que Lily ?
Un système de conception gratuit, open source et pensé d'abord pour l'accessibilité, qui vous rejoint là où vous codez — et s'efface quand vous n'en avez pas besoin.
La version courte
Lily est un catalogue de composants web, chacun décliné en huit versions headless (HTML, Svelte, React, Vue, Angular, Blazor, Nunjucks et Web Components), accompagné d'applications d'exemple complètes qui montrent comment les mettre en forme.
Les versions headless ne livrent aucun CSS. Elles vous donnent du HTML sémantique, des rôles et états ARIA, la prise en charge du clavier et des propriétés adaptées à l'internationalisation. Vous apportez le design visuel.
Principes de conception
Accessible
Chaque composant part du HTML sémantique. ARIA n'est ajouté que là où le HTML seul ne peut pas exprimer le motif. Les composants visent WCAG 2.2 AAA : couleurs, espacements, focus et navigation au clavier sont tous pris en compte.
Composable
Lily privilégie de petits composants à usage unique qui s'emboîtent. Les motifs composés reviennent sans cesse :
Nav → List → ListItem— pour les fils d'Ariane, les tables des matières, les menus accordéon, les menus en arborescence et la paginationForm → Field → Input— pour toute mise en page de formulaire avec libellés, indications et erreursTable → Head/Body/Foot → Row → Data— pour les tableaux, calendriers, diagrammes de Gantt et tableaux kanbanBar → BarButton— pour les barres d'outils, d'onglets, de tâches, d'actions et de menusPicker → PickerButton— pour les sélecteurs de couleur, de notation et de thème
Internationalisable
Aucune chaîne visible par l'utilisateur n'est écrite en dur. Libellés, textes indicatifs, messages d'erreur, texte des boutons : tout est paramétrable. Branchez votre propre système de traduction et Lily parle la langue que vous parlez.
Headless
Les composants headless n'ont aucun CSS, aucun bloc <style>, aucun jeton de design que vous n'avez pas choisi. Ils exposent un seul nom de classe en kebab-case sur chaque élément racine, pour que vous puissiez les cibler comme vous le souhaitez — CSS sémantique, Tailwind, CSS-in-JS, à vous de choisir.
Des exemples complets
Les applications d'exemple montrent comment mettre en forme les composants pour un usage réel : quels jetons de design définir, quelles variantes ajouter, comment composer les pages. Ce sont de vraies applications SvelteKit, Next.js, Nuxt, Blazor et Eleventy, pas de simples bacs à sable.
Sources d'inspiration
Lily puise ses motifs et son vocabulaire dans un ensemble délibérément large de systèmes de conception :
- Système de conception NHS UK
- Système de conception GOV.UK
- Système de conception web des États-Unis (USWDS)
- Système de conception d'ONSdigital
- Design System AU (gouvernement australien)
- Mozilla Protocol
- Adobe Spectrum
- Ant Design
- Wonderflow Wanda
- DaisyUI
- shadcn/ui
- Composants graphiques de Reuters
Licence
Lily est sous licences multiples : BSD, MIT, Apache-2.0, GPL-2.0 ou GPL-3.0. Choisissez celle qui convient à votre projet. Si aucune ne vous convient, contactez-nous.
Contact
Responsable du projet : Joel Parker Henderson — joel@joelparkerhenderson.com.
Vous avez trouvé un bogue, une idée, l'envie de proposer un composant ? Ouvrez un ticket ou une demande de fusion sur GitHub.
État : Lily est un travail tout neuf et nous accueillons volontiers la collaboration, les conseils et les retours. Les choses vont bouger et évoluer.