Dechrau gyda Lily
Dewiswch fframwaith, clonïwch y repo headless neu'r ap enghreifftiol, a dechreuwch gyfansoddi eich tudalennau eich hun. Yn well gennych lwybr wedi'i arwain? Dechreuwch gyda'r tiwtorialau.
Gosod
Cyhoeddir Lily fel repos Git ar wahân ar gyfer pob fframwaith. Y ffordd gyflymaf o'i drio yw clonio'r repo headless ar gyfer eich pentwr:
git clone https://github.com/LilyDesignSystem/lily-design-system-react-headless
cd lily-design-system-react-headless
pnpm install
Mae'r un patrwm yn gweithio ar gyfer y fframweithiau eraill:
@lilydesignsystem/html-headless— dim angen gosod; copïwch ffeiliau.html@lilydesignsystem/svelte-headless—pnpm install@lilydesignsystem/react-headless—pnpm install@lilydesignsystem/vue-headless—pnpm install@lilydesignsystem/angular-headless—pnpm install@lilydesignsystem/nunjucks-headless—pnpm installlily-design-system-blazor-headless—dotnet build
Cynlluniwyd y llyfrgelloedd headless i'w clonio neu eu hymgorffori — trinwch y ffynhonnell fel y ffynhonnell gwirionedd a chopïwch yr hyn sydd ei angen arnoch. Mae'r cynorthwywyr dewisiadau hefyd yn cael eu cludo fel pecynnau y gellir eu gosod, gyda llinell adeiladu a chyhoeddi (npm ar gyfer y fframweithiau JS, NuGet ar gyfer Blazor).
Defnyddio cydran headless
Mae cydrannau headless yn cludo HTML semantig, ARIA, a phriodweddau — ond dim CSS. Dyma Fotwm ym mhob fframwaith:
HTML
<button class="button" type="button" aria-label="Save">
Save
</button>
Svelte
<script>
import Button from "lily-design-system-svelte-headless/components/Button/Button.svelte";
</script>
<Button onclick={save}>Save</Button>
React
import Button from "lily-design-system-react-headless/components/Button";
<Button onClick={save}>Save</Button>
Vue
<script setup>
import Button from "lily-design-system-vue-headless/components/Button.vue";
</script>
<Button @click="save">Save</Button>
Angular
import { Button } from "@lilydesignsystem/angular-headless";
@Component({
imports: [Button],
template: `<lily-button (click)="save()">Save</lily-button>`,
})
Blazor
<Button OnClick="Save">Save</Button>
Nunjucks
{% from "components/button/macro.njk" import button %}
{{ button({ text: "Save", type: "button" }) }}
Defnyddio enghraifft wedi'i harddullio
Mae'r apiau enghreifftiol yn cynnwys CSS, llwybrau, a thudalennau arddangos
llawn. Y ffordd gyflymaf i arbrofi yw cychwyn yr ap enghreifftiol
SvelteKit, Next, Nuxt, Analog, neu Eleventy a gweld yr arddangosiad yn
/components.
git clone https://github.com/LilyDesignSystem/lily-design-system-svelte-sveltekit-examples
cd lily-design-system-svelte-sveltekit-examples
pnpm install
pnpm run dev
Yna agorwch http://localhost:5173 a phorwch /components.
Arddullio a thocynnau dylunio
Mae pob cydran yn rendro gydag un dosbarth kebab-case ar ei helfen wraidd.
Er enghraifft, mae <Button> yn rendro <button class="button">.
Arddullwch hi sut bynnag y dymunwch:
.button {
background: var(--my-primary);
color: #fff;
padding: 0.75rem 1.5rem;
border-radius: 0.5rem;
}
.button:hover { background: var(--my-primary-hover); }
Palet lliwiau rhagosodedig Lily (a ddefnyddir yn yr apiau enghreifftiol) yw:
- Cynradd:
#2563eb - Perygl:
#dc2626 - Rhybudd:
#f59e0b - Llwyddiant:
#16a34a - Cefndir tudalen:
#f9fafb - Cefndir cerdyn:
#ffffff
Awgrymiadau yw'r rhain, nid gofynion. Amnewidiwch nhw gyda phalet eich brand eich hun a bydd Lily yn dod yn ei flaen yn hapus.
Themâu parod
Ddim eisiau ysgrifennu CSS o'r dechrau? Mae Lily yn cludo 45 thema gyfeirio annibynnol yn y cyfeiriadur themes/ Mae pob un yn un daflen arddull sy'n targedu bachau dosbarth Lily — cysylltwch â hi ac rydych wedi'ch arddullio:
<link rel="stylesheet" href="/assets/themes/united-kingdom-government-digital-service.css" />
Mae'r set yn cynnwys:
- Sector cyhoeddus — GIG Lloegr, GIG yr Alban, a GIG Cymru (amrywiadau sy'n wynebu cleifion ac sy'n wynebu ymarferwyr ar gyfer pob un), GOV.UK GDS, a System Dylunio Gwe yr Unol Daleithiau.
- Wedi'u hysbrydoli gan werthwyr — Adobe Spectrum, Mozilla Protocol.
- Pwrpas cyffredinol — light, dark, nord, dracula, wireframe, a thri deg a mwy yn ychwaneg.
Mae dewiswyr themâu yn defnyddio :where(...), felly mae eich
CSS eich hun bob amser yn ennill o ran penodolrwydd. Pârwch nhw â'r
cynorthwyydd theme-picker isod ar gyfer newid wrth redeg, neu
dilynwch y tiwtorial themeiddio.
Cynorthwywyr dewisiadau
Mae gan bob fframwaith gatalog *-helpers cydymaith gydag wyth
dewiswr bach (a picker-bar sy'n eu cydosod). Mae pob un yn
fotwm eicon headless sy'n agor ffenestr naid — rhestrfocs, rhestr o
gysylltiadau, ffurflen chwilio, neu (ar gyfer date-time-picker) deialog
dewis dyddiad — nid <select> brodorol; mae'n ddiogel
ar gyfer SSR; ac nid yw'n cludo unrhyw CSS:
-
theme-picker — yn llwytho taflenni arddull themâu wrth redeg trwy
gyfnewid
<link>a reolir, yn gosoddata-themear y ddogfen, ac yn dewisol yn cadw ilocalStorage. -
locale-picker — yn gosod
langadir(gyda chanfod RTL awtomatig) fel y gall eich llyfrgell i18n ddilyn; nid yw'n cyfieithu ei hun. -
text-size-picker — yn gosod
data-text-sizear y ddogfen; mae eich CSS yn mapio pob gwerth i faint ffont. -
motion-picker — yn gosod
data-motionar y ddogfen, gan ddechrau o osodiad symudiad llai'r ymwelydd; mae eich CSS a'ch sgriptiau yn penderfynu beth i'w atal. - search-picker — botwm eicon sy'n agor maes chwilio; mae cyflwyno yn llywio i dudalen chwilio. Mae'n berchen ar weithred, nid dewis.
- link-picker — eicon cartref sy'n agor dewislen o'r cysylltiadau tudalen y mae eich ap yn eu diffinio (Hafan, Amdanom Ni, Cysylltu â Ni, Polisi Preifatrwydd, …). Mae'n berchen ar weithred, nid dewis.
- share-picker — yn agor y daflen rannu frodorol neu restr cyrchfannau a ddarperir gan y defnyddiwr, ynghyd â chopïo'r URL. Mae'n berchen ar weithred, nid dewis: nid yw'n gosod dim, nid yw'n cadw dim.
-
date-time-picker — maes testun ynghyd â deialog
dewis dyddiad APG ar gyfer dyddiad, amser, neu'r ddau. Mae'n berchen ar
werth ffurflen, nid dewis: mae'r llinyn ISO yn teithio'n ôl ac ymlaen i
<input type="date">.
git clone https://github.com/LilyDesignSystem/lily-design-system-svelte-helpers
Catalog Svelte yw'r cyfeirnod canonaidd; mae porthladdoedd React, Vue, Angular, HTML, Nunjucks, Web Components, a Blazor yn cyfateb iddo cytundeb wrth gytundeb. Gweler y tiwtorial cynorthwywyr.
Hygyrchedd
Mae cydrannau'n anelu at WCAG 2.2 AAA. Maen nhw'n dilyn y patrymau hyn:
- Elfennau HTML semantig yn hytrach na
<div>s generig. <label for="id">yn cysylltu labeli â mewnbynnau.aria-labelledby/aria-describedbyar gyfer croesgyfeiriadau.aria-invalid+aria-errormessagear gyfer cyflyrau gwall.role="alert"andaria-livear gyfer cynnwys deinamig.aria-pressed,aria-expanded,aria-currentar gyfer cyflwr.tabindexcrwydrol ar gyfer gridiau.
Mae dangosyddion ffocws yn cael eu darparu gan y defnyddiwr yn fwriadol — nid yw Lily byth yn paentio cylch ffocws rhagosodedig sy'n gwrthdaro â'ch dyluniad. Mae'r apiau enghreifftiol yn cadw llinell sylfaen axe-core lân ar draws eu llwybrau.
Rhyngwladoli
Mae pob label, dalfan, neges gwall, a thestun botwm yn briodwedd. Nid oes unrhyw linynnau wedi'u codio'n galed. Gollyngwch eich fframwaith cyfieithu dewisol i mewn — Paraglide, i18next, vue-i18n, react-intl, ffeiliau .resx, unrhyw beth.
Ar gyfer dyddiadau, rhifau, ac arian cyfred, mae'r cydrannau'n derbyn
llinynnau wedi'u fformatio ymlaen llaw: rydych chi'n fformatio gyda Intl.DateTimeFormat /
Intl.NumberFormat / eich llyfrgell ddewisol ac yn pasio'r canlyniad.
Mae'r cynorthwyydd locale-picker yn arwyddo'r locale a
ddewiswyd i'ch llyfrgell i18n trwy osod lang a
dir ar wraidd y ddogfen.
Profi
Mae pob is-brosiect fframwaith yn cludo ei brofion ei hun gan ddefnyddio ei bentwr idiomatig:
- HTML: WebDriverIO yn rhedeg porwyr go iawn.
- Svelte: Vitest +
@testing-library/svelte. - React: Vitest +
@testing-library/react. - Vue: Vitest +
@testing-library/vue. - Angular: Vitest + TestBed (via the Analog Vite plugin).
- Nunjucks: Vitest with a render helper.
- Blazor: bUnit.
Mae profion yn defnyddio paswyr adeiledig Vitest yn unig — byth
jest-dom paswyr. Mae hyn yn cadw'r cyfresi profion yn gludadwy.
Mae'r apiau enghreifftiol yn ychwanegu cyfresi Playwright o un pen i'r
llall, llinellau sylfaen hygyrchedd axe-core, a ysgubiad porthladd
gweld ymatebol.
Asiantau AI
Mae'r wefan hon yn cyhoeddi llms.txt and llms.json yn ei gwraidd — map wedi'i guradu o'i thudalennau pwysicaf, ar gyfer unrhyw offeryn sy'n dilyn confensiwn llms.txt.
Mae'r monorepo canonaidd hefyd yn cludo dau
Sgil Claude:
lily-design-system-skill, sgil pwrpas cyffredinol sy'n cwmpasu cysyniadau,
terminoleg, a phatrymau cyfansoddi Lily ar gyfer unrhyw un sy'n adeiladu
gyda'r system, a lily-design-system-maintainer-skill,
sgil technegol sy'n cwmpasu cynllun ffeiliau gofynnol y monorepo a'r
offer ar gyfer unrhyw un sy'n gweithio arno. Mae'r ddau yn byw yng ngwraidd y
monorepo canonaidd.
Datrys problemau
Mae cydran yn rendro ond yn edrych heb ei harddullio
Dyna headless yn gweithio fel y bwriadwyd — nid oes CSS yn dod gyda'r gydran. Naill ai ysgrifennwch CSS yn erbyn dosbarth kebab-case y gydran (a ddangosir ar bob tudalen catalog) neu cysylltwch ag un o'r 45 thema barod.
Nid yw fy CSS i'n ymddangos yn berthnasol dros thema
Dylai fod — mae dewiswyr themâu wedi'u lapio mewn :where(...),
sydd â phenodolrwydd sero. Os yw rheol yn dal i golli, gwiriwch fod eich
taflen arddull yn llwytho ar ôl <link> y thema a bod y
dewisydd yn cyfateb mewn gwirionedd i fachyn dosbarth y gydran.
Mae pnpm install yn methu gyda gwall cymar neu fersiwn
Defnyddiwch pnpm cyfredol (v10+) a Node 22+. Mae pob repo yn pinio ei
fersiynau fframwaith yn package.json; os yw eich cadwyn
offer fyd-eang yn hŷn, pnpm env use --global lts yw'r
ateb cyflymaf.
Mae darllenydd sgrin yn cyhoeddi'r enw anghywir ar gyfer rheolydd
Gwiriwch briodwedd label gofynnol y gydran — mae cydrannau
heb destun gweladwy angen un, ac mae aria-label /
aria-labelledby a ddarperir gan y defnyddiwr ac a basiwyd
drwy rest-props yn ennill yn fwriadol dros y gwifrau adeiledig. Mae
pob tudalen catalog yn dogfennu cytundeb ARIA y gydran.
Nid yw'r cynorthwyydd theme-picker yn newid taflenni arddull
Cadarnhewch fod themesUrl yn pwyntio at gyfeiriadur y gall y
porwr ei nôl (gwasanaethwch y ffeiliau themes/ fel asedau
statig) a bod slugs y themâu yn eich priodwedd themes yn
cyfateb i enwau'r ffeiliau. Mae'r cynorthwyydd yn cyfnewid
href un
<link data-lily-theme-picker> a reolir — archwiliwch
ef mewn devtools i weld yr URL sy'n cael ei ofyn amdano.
Mae rhywbeth arall wedi torri
Agorwch issue gydag atgynhyrchiad lleiaf ar y repo perthnasol yn github.com/LilyDesignSystem — neu gweler cymuned a chymorth.
Cyfrannu
Mae Lily yn ifanc ac yn croesawu cydweithio. Y cyfraniadau mwyaf defnyddiol ar hyn o bryd yw:
- Cydrannau newydd (yn enwedig patrymau o systemau dylunio sefydledig).
- Themâu newydd — mae pob un yn un daflen arddull annibynnol, PR cyntaf wedi'i gwmpasu'n dda.
- Gwell arddullio enghreifftiau — dangoswch yr hyn sy'n bosibl.
- Cyfieithiadau o linynnau'r apiau enghreifftiol.
- Adroddiadau namau gydag atgynhyrchiad lleiaf.
- Archwiliadau hygyrchedd gyda darllenwyr sgrin a thechnoleg gynorthwyol.
Agorwch issues a PRs yn erbyn y repo perthnasol yn github.com/LilyDesignSystem.
Cymuned a chymorth
- Cwestiynau ac adroddiadau namau — agorwch issue ar y repo perthnasol yn github.com/LilyDesignSystem.
- E-bost — mae'r cynhaliwr yn darllen joel@joelparkerhenderson.com ac yn croesawu cydweithio, arweiniad, ac adborth.
- Drychau — mae Lily hefyd yn cael ei wthio i Codeberg and GitLab, fel y gallwch gymryd rhan o'r efail sydd orau gennych.
- Ymddygiad — mae'r prosiect yn dilyn cod ymddygiad safonol; byddwch yn garedig, rhagdybiwch ewyllys da.
Cwestiynau cyffredin
Pam headless yn lle wedi'i arddullio?
Mae cydrannau wedi'u harddullio ymlaen llaw yn gyfleus — nes nad ydyn nhw'n cyfateb i'ch brand. Mae cydrannau headless ychydig yn fwy o waith ymlaen llaw ond yn rhoi rheolaeth lwyr i chi dros y dyluniad gweledol. Mae'r apiau enghreifftiol a'r 45 thema yn dangos ffyrdd o'u harddullio; gallwch gymryd y rheini neu eu hamnewid yn llwyr. Mae'r ddadl hirach ar Pam Lily.
Pam cymaint o gydrannau?
Nod Lily yw cwmpasu'r patrymau sydd eu hangen ar y rhan fwyaf o apiau heb eich gorfodi i'w hadeiladu o'r dechrau — gan gynnwys pethau dyfnach fel mewnbynnau dynodwyr cenedlaethol a straeon sgrolio golygyddol. Mae'r catalog yn tynnu o ddwsin o systemau dylunio sefydledig ynghyd â gwaith gwreiddiol — gweler Amdanom.
Alla i ddefnyddio Lily gyda Tailwind?
Gallwch. Mae pob cydran yn datgelu un dosbarth gwraidd kebab-case ynghyd â
className / class. a ddarperir gan y defnyddiwr. Haenwch
gyfleustodau Tailwind ar ei ben sut bynnag y dymunwch.
Alla i ddefnyddio Lily gyda fframweithiau CSS semantig fel DaisyUI?
Gallwch. Mae'r enwau dosbarth kebab-case ar yr elfen wraidd yn gweithio fel bachau CSS semantig. Pârwch Lily â fframwaith semantig a chewch gydrannau wedi'u harddullio ymlaen llaw sy'n dal i barchu ARIA ac i18n.
Oes pecyn npm?
Mae'r cynorthwywyr dewisiadau yn cael eu cludo fel pecynnau gyda llinell gyhoeddi npm/NuGet. Cynlluniwyd y llyfrgelloedd cydrannau headless i'w clonio neu eu hymgorffori — y ffynhonnell yw'r cynnyrch, fel y gallwch ddarllen, tocio, a bod yn berchen ar yn union yr hyn rydych chi'n ei gludo. Mae cyhoeddi i'r gofrestrfa ar gyfer y llyfrgelloedd headless yn parhau ar y map ffordd.
Pam aml-drwyddedig?
Mae gan wahanol brosiectau anghenion trwydded gwahanol. Mae BSD ac MIT yn ganiataol, mae gan Apache-2.0 grant patent, ac mae'r opsiynau GPL yn cefnogi copileft. Dewiswch pa un bynnag sy'n addas i'ch sefyllfa.
Sut ydw i'n adrodd nam neu ofyn am nodwedd?
Agorwch issue ar y repo GitHub perthnasol, neu anfonwch e-bost i joel@joelparkerhenderson.com.