Apa itu Lily?
Sistem desain gratis, sumber terbuka, dan mengutamakan aksesibilitas yang menemui Anda di tempat Anda menulis kode — dan menyingkir saat Anda tidak membutuhkannya.
Versi singkat
Lily adalah katalog komponen web, masing-masing diimplementasikan dalam delapan varian headless (HTML, Svelte, React, Vue, Angular, Blazor, Nunjucks, dan Web Components), ditambah sekumpulan aplikasi contoh lengkap yang menunjukkan cara menatanya.
Versi headless tidak menyertakan CSS sama sekali. Versi ini memberi Anda HTML semantik, peran dan status ARIA, dukungan papan ketik, dan properti yang ramah internasionalisasi. Anda membawa desain visualnya.
Prinsip desain
Aksesibel
Setiap komponen berawal dari HTML semantik. ARIA hanya ditambahkan di tempat HTML saja tidak dapat mengungkapkan polanya. Komponen menargetkan WCAG 2.2 AAA — warna, jarak, fokus, dan navigasi papan ketik semuanya dipertimbangkan.
Dapat dikomposisi
Lily mengutamakan komponen kecil berfungsi tunggal yang saling menyambung. Pola gabungan muncul berulang kali:
Nav → List → ListItem— untuk breadcrumb, daftar isi, menu akordeon, menu pohon, dan penomoran halamanForm → Field → Input— untuk tata letak formulir apa pun dengan label, petunjuk, dan galatTable → Head/Body/Foot → Row → Data— untuk tabel, kalender, bagan Gantt, dan papan kanbanBar → BarButton— untuk bilah alat, bilah tab, bilah tugas, bilah aksi, dan bilah menuPicker → PickerButton— untuk pemilih warna, pemilih penilaian, dan pemilih tema
Dapat diinternasionalisasi
Tak satu pun teks yang tampil bagi pengguna ditulis langsung di dalam kode. Label, teks placeholder, pesan galat, teks tombol — semuanya parameter. Pasang sistem terjemahan Anda sendiri dan Lily berbicara dalam bahasa apa pun yang Anda gunakan.
Headless
Komponen headless tidak memiliki CSS, tidak ada blok <style>, tidak ada token desain yang tidak Anda pilih. Komponen ini mengekspos satu nama kelas kebab-case pada setiap elemen akar sehingga Anda dapat menargetnya sesuka Anda — CSS semantik, Tailwind, CSS-in-JS, terserah Anda.
Contoh lengkap
Aplikasi contoh menunjukkan cara menata komponen untuk penggunaan nyata — token desain apa yang diatur, variasi apa yang ditambahkan, cara menyusun halaman. Semuanya aplikasi SvelteKit, Next.js, Nuxt, Blazor, dan Eleventy yang utuh, bukan sekadar tempat uji coba.
Inspirasi
Lily mengambil pola dan bahasa dari sekumpulan sistem desain yang sengaja dipilih beragam:
- Sistem Desain NHS UK
- Sistem Desain GOV.UK
- Sistem Desain Web AS (USWDS)
- Sistem desain ONSdigital
- Design System AU (Pemerintah Australia)
- Mozilla Protocol
- Adobe Spectrum
- Ant Design
- Wonderflow Wanda
- DaisyUI
- shadcn/ui
- Komponen grafis Reuters
Lisensi
Lily berlisensi ganda di bawah BSD, MIT, Apache-2.0, GPL-2.0, atau GPL-3.0. Pilih lisensi yang cocok untuk proyek Anda. Jika tak satu pun cocok, hubungi kami.
Kontak
Pemimpin proyek: Joel Parker Henderson — joel@joelparkerhenderson.com.
Menemukan bug, punya ide, ingin menyumbangkan komponen? Buka isu atau pull request di GitHub.
Status: Lily adalah karya yang masih baru dan kami menyambut kolaborasi, bimbingan, dan masukan. Banyak hal akan bergerak dan berkembang.