Tosú le Lily

Roghnaigh creat, cloin an monorepo agus oscail a leabharlann gan cheann nó a aip shamplach, agus tosaigh ar do leathanaigh féin a chumadh. An fearr leat conair threoraithe? Tosaigh leis na teagasc.

Suiteáil

Tá Lily i monorepo Git amháin, le comhadlann do leabharlann gan cheann, do phacáistí cúntóra agus d’aip shamplach gach creata. Is é an bealach is tapúla le triail a bhaint as ná an monorepo a chlónáil agus an leabharlann gan cheann do do chruach a oscailt:

git clone https://github.com/LilyDesignSystem/lily-design-system
cd lily-design-system/lily-design-system-react-headless
pnpm install

Oibríonn an patrún céanna do na creataí eile:

  • @lilydesignsystem/html-headless — níl aon suiteáil de dhíth; cóipeáil na comhaid .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 install
  • lily-design-system-blazor-headless — dotnet build

Tá na leabharlanna gan cheann deartha le clónáil nó le gabháil isteach — caith leis an bhfoinse mar fhoinse na fírinne agus cóipeáil an méid atá uait. cúntóirí sainroghanna a sheoltar mar phacáistí insuiteáilte le píblíne tógála agus foilsithe (npm do chreataí JS, NuGet do Blazor).

Úsáid comhpháirt gan cheann

Seolann comhpháirteanna gan cheann HTML séimeantach, ARIA agus airíonna — ach gan CSS. Seo Button i ngach creat:

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" }) }}

Úsáid sampla stílithe

Cuimsíonn na haipeanna samplacha CSS, bealaí agus leathanaigh taispeána iomlána. Is é an bealach is tapúla le triail a bhaint as ná aip shamplach SvelteKit, Next, Nuxt, Analog nó Eleventy a thosú agus féachaint ar an taispeántas ag /components.

git clone https://github.com/LilyDesignSystem/lily-design-system
cd lily-design-system/lily-design-system-svelte-sveltekit-examples
pnpm install
pnpm run dev

Ansin oscail http://localhost:5173 agus brabhsáil /components.

Stíliú agus comharthaí dearaidh

Rindreáiltear gach comhpháirt le haicme amháin i kebab-case ar a heilimint fréimhe. Mar shampla, rindreáiltear <Button> mar <button class="button">. Stílígh é mar is mian leat:

.button {
  background: var(--my-primary);
  color: #fff;
  padding: 0.75rem 1.5rem;
  border-radius: 0.5rem;
}
.button:hover { background: var(--my-primary-hover); }

Is é pailéad dathanna réamhshocraithe Lily (a úsáidtear sna haipeanna samplacha):

  • Príomhúil: #2563eb
  • Contúirt: #dc2626
  • Rabhadh: #f59e0b
  • Rath: #16a34a
  • Cúlra an leathanaigh: #f9fafb
  • Cúlra an chárta: #ffffff

Moltaí iad seo, ní riachtanais. Cuir pailéad do bhranda féin ina n-ionad agus leanann Lily go sásta.

Téamaí réamhdhéanta

Nach bhfuil tú ag iarraidh CSS a scríobh ón tús? Seolann Lily 57 téama tagartha neamhspleách sa chomhadlann themes/ . Is bileog stíle amháin gach ceann a dhíríonn ar chrúcaí aicme Lily — nasc í agus tá tú stílithe:

<link rel="stylesheet" href="/assets/themes/united-kingdom-government-digital-service.css" />

Clúdaíonn an tacar:

  • Earnáil phoiblí — NHS England, NHS Scotland agus NHS Wales (gach ceann i leaganacha d’othair agus do chleachtóirí), GOV.UK GDS, agus an U.S. Web Design System.
  • Spreagtha ag díoltóirí — Adobe Spectrum, Mozilla Protocol.
  • Úsáid ghinearálta — light, dark, nord, dracula, wireframe, agus tríocha eile nó mar sin.

Úsáideann roghnóirí téama :where(...), mar sin bíonn do CSS féin i gcónaí ar dhroim an bhua i sonraíocht. Péireáil iad leis an gcúntóir theme-picker thíos le haghaidh athraithe ag am rite, nó lean an teagasc na dtéamaí.

Cúntóirí sainroghanna

Tá ocht roghnóir bheaga ag gach creat, gach ceann acu ina phacáiste lily-design-system-{framework}-{package} dá chuid féin (agus picker-bar a chuireann le chéile iad). Is cnaipe deilbhín gan cheann gach ceann a osclaíonn preabfhuinneog — bosca liosta, liosta naisc, foirm cuardaigh nó (do date-time-picker) dialóg roghnóra dáta — ní <select>dúchasach; tá sé sábháilte do SSR; agus ní sheolann CSS:

  • theme-picker — luchtaíonn bileoga stíle téamaí ag am rite trí <link>bainistithe a mhalartú, socraíonn data-theme ar an doiciméad, agus sábhálann go marthanach in localStorage.
  • locale-picker — socraíonn lang agus dir (le brath RTL uathoibríoch) ionas gur féidir le do leabharlann i18n leanúint; ní aistríonn sé aon rud leis féin.
  • text-size-picker — socraíonn data-text-size ar an doiciméad; mapálann do CSS gach luach ar mhéid cló.
  • motion-picker — socraíonn data-motion ar an doiciméad, ag tosú ó shocrú gluaiseachta laghdaithe an chuairteora; socraíonn do CSS agus do scripteanna cad a chuirfear faoi chois.
  • search-picker — cnaipe deilbhín a osclaíonn réimse cuardaigh; nascleanann an tíolacadh chuig leathanach cuardaigh. Tá seilbh aige ar ghníomh, ní ar shainrogha.
  • link-picker — deilbhín tí a osclaíonn roghchlár de na naisc leathanaigh a shainíonn d’aip (Baile, Fúinn, Déan teagmháil linn, Polasaí príobháideachais, …). Tá seilbh aige ar ghníomh, ní ar shainrogha.
  • share-picker — osclaíonn sé an bileog chomhroinnte dhúchasach nó liosta cuspóirí a sholáthraíonn an tomhaltóir, móide cóipeáil an URL. Tá seilbh aige ar ghníomh, ní ar shainrogha: ní chuireann sé aon rud i bhfeidhm, ní shábhálann sé aon rud.
  • date-time-picker — réimse téacs móide dialóg roghnóra dáta APG do dháta, d’am, nó don dá cheann. Tá seilbh aige ar luach foirme, ní ar shainrogha: aistrítear an teaghrán ISO anonn is anall go <input type="date">.
git clone https://github.com/LilyDesignSystem/lily-design-system
cd lily-design-system/lily-design-system-svelte-theme-picker

Is é an chatalóg Svelte an tagairt chanónach; comhoiriúnaíonn calafoirt React, Vue, Angular, HTML, Nunjucks, Web Components agus Blazor léi conradh ar chonradh. Féach an teagasc na gcúntóirí.

Inrochtaineacht

Díríonn na comhpháirteanna ar WCAG 2.2 AAA. Leanann siad na patrúin seo:

  • Eilimintí HTML séimeantacha seachas <div>s.
  • <label for="id"> ginearálta a nascann lipéid le hionchuir.
  • aria-labelledby / aria-describedby le haghaidh trasthagairtí.
  • aria-invalid + aria-errormessage le haghaidh staideanna earráide.
  • role="alert" agus aria-live le haghaidh ábhar dinimiciúil.
  • aria-pressed, aria-expanded, aria-current le haghaidh staide.
  • Roving tabindex le haghaidh greillí.

Soláthraíonn an tomhaltóir táscairí fócais d’aon ghnó — ní tharraingíonn Lily fáinne fócais réamhshocraithe a bhíonn i gcoimhlint le do dhearadh. Coinníonn na haipeanna samplacha bunlíne ghlan axe-core ar fud a mbealaí go léir.

Idirnáisiúnú

Is airí é gach lipéad, sealbhóir áite, teachtaireacht earráide agus téacs cnaipe. Níl aon teaghráin scríofa go docht. Plugáil isteach an creat aistrithe is rogha leat — Paraglide, i18next, vue-i18n, react-intl, comhaid .resx, rud ar bith.

I gcás dátaí, uimhreacha agus airgeadraí, glacann na comhpháirteanna le teaghráin réamhfhormáidithe: déanann tú an fhormáidiú le Intl.DateTimeFormat / Intl.NumberFormat / do leabharlann is fearr leat agus cuireann tú an toradh ar aghaidh.

Cuireann an cúntóir locale-picker an logchaighdeán roghnaithe in iúl do do leabharlann i18n trí lang agus dir a shocrú ar fhréamh an doiciméid.

Tástáil

Seolann gach fophroiséad creata a thástálacha féin ag úsáid a chruaiche idiomaí:

  • HTML: WebDriverIO ag rith brabhsálaithe fíor.
  • Svelte: Vitest + @testing-library/svelte.
  • React: Vitest + @testing-library/react.
  • Vue: Vitest + @testing-library/vue.
  • Angular: Vitest + TestBed (tríd an breiseán Analog Vite).
  • Nunjucks: Vitest le cúntóir rindreála.
  • Blazor: bUnit.

Úsáideann na tástálacha matchers ionsuite Vitest amháin — choíche matchers jest-dom . Coinníonn sé seo na sraitheanna tástála iniompartha. Cuireann na haipeanna samplacha sraitheanna ceann go ceann Playwright, bunlínte inrochtaineachta axe-core agus scuabadh fuinneoga amhairc freagrúla leo.

Gníomhairí AI

Foilsíonn an suíomh seo llms.txt agus llms.json ina fhréamh — léarscáil churtha de na leathanaigh is tábhachtaí aige, d’aon uirlis a leanann an gnás llms.txt.

Seolann an monorepo canónach dhá Claude Skills: lily-design-system-skill freisin: scil ghinearálta a chlúdaíonn coincheapa, téarmaíocht agus patrúin chumadóireachta Lily do dhuine ar bith atá ag tógáil leis an gcóras, agus lily-design-system-maintainer-skill, scil theicniúil a chlúdaíonn leagan amach na gcomhad riachtanach agus uirlisí an mhonorepo do dhuine ar bith atá ag obair air. Tá an dá cheann i bhfréamh an mhonorepo chanónaigh.

Fabhtcheartú

Rindreáiltear comhpháirt ach tá cuma gan stíliú uirthi

Sin gan cheann ag obair mar a bhí beartaithe — ní thagann aon CSS leis an gcomhpháirt. Scríobh CSS in aghaidh aicme kebab-case na comhpháirte (le feiceáil ar gach leathanach catalóige) nó nasc ceann de na 57 téama réamhdhéanta.

Is cosúil nach bhfuil mo CSS ag feidhmiú thar théama

Ba chóir dó — tá roghnóirí téama fillte i :where(...), a bhfuil nialas sonraíochta aige. Má chailleann riail fós, seiceáil go luchtaíonn do bhileog stíle tar éis <link> an téama agus go bhfreagraíonn an roghnóir i ndáiríre do chrúca aicme na comhpháirte.

Teipeann ar pnpm install le hearráid piaraí nó leagain

Úsáid pnpm reatha (v10+) agus Node 22+. Greamaíonn gach fophroiséad leaganacha a chreata ina package.jsonféin; má tá do chuasbhóthar uirlisí domhanda níos sine, pnpm env use --global lts is é an réiteach is tapúla.

Fógraíonn an léitheoir scáileáin ainm mícheart ar rialú

Seiceáil airí riachtanach na comhpháirte label — éilíonn comhpháirteanna nach bhfuil téacs infheicthe acu ceann, agus buaigh aria-label / aria-labelledby a sholáthraíonn an tomhaltóir agus a rithtear trí rest-props d’aon ghnó thar an gcáblaí ionsuite. Doiciméadaíonn gach leathanach catalóige conradh ARIA na comhpháirte.

Ní athraíonn an cúntóir theme-picker bileoga stíle

Deimhnigh go themesUrl pointeálann sé ar chomhadlann is féidir leis an mbrabhsálaí a fháil (freastail na comhaid themes/ mar shócmhainní statacha) agus go bhfreagraíonn slugs na dtéamaí i d’airí themes d’ainmneacha na gcomhad. Malartaíonn an cúntóir an href de <link data-lily-theme-picker> bainistithe amháin — scrúdaigh é in uirlisí forbróra chun an URL a iarrtar a fheiceáil.

Tá rud éigin eile briste

Oscail issue le hathchruthú íosta ar github.com/LilyDesignSystem/lily-design-system — nó féach pobal agus tacaíocht.

Rannchuidiú

Tá Lily óg agus fáiltíonn sé roimh chomhoibriú. Is iad na rannchuidithe is úsáidí faoi láthair:

  • Comhpháirteanna nua (go háirithe patrúin ó chórais dearaidh bhunaithe).
  • Téamaí nua — is bileog stíle neamhspleách amháin gach ceann, an chéad PR sainmhínithe go maith.
  • Stíliú samplaí níos fearr — taispeáin cad atá indéanta.
  • Aistriúcháin ar theaghráin na n-aipeanna samplacha.
  • Tuairiscí fabhtanna le hathchruthú íosta.
  • Iniúchtaí inrochtaineachta le léitheoirí scáileáin agus teicneolaíocht chúnta.

Oscail issues agus PRs ar github.com/LilyDesignSystem/lily-design-system.

Pobal agus tacaíocht

  • Ceisteanna agus tuairiscí fabhtanna — oscail issue ar github.com/LilyDesignSystem/lily-design-system.
  • R-phost — léann an cothabhálaí joel@joelparkerhenderson.com agus fáiltíonn sé roimh chomhoibriú, treoir agus aiseolas.
  • Scáthanna — brúitear Lily chuig Codeberg agus GitLab freisin, ionas gur féidir leat páirt a ghlacadh ón bhforge is fearr leat.
  • Iompar — leanann an tionscadal cód iompair caighdeánach; bí cineálta, glac go bhfuil dea-chreideamh ann.

CC

Cén fáth gan cheann seachas stílithe?

Tá comhpháirteanna réamhstílithe áisiúil — go dtí nach n-oirfidh siad do do bhranda. Éilíonn comhpháirteanna gan cheann beagán níos mó oibre ar dtús ach tugann siad rialú iomlán duit ar an dearadh amhairc. Taispeánann na haipeanna samplacha agus na 57 téama bealaí chun iad a stíliú; is féidir leat iad sin a ghlacadh nó iad a chur ina n-ionad go hiomlán. Tá an argóint is faide ar Cén fáth Lily.

Cén fáth an oiread sin comhpháirteanna?

Tá sé mar aidhm ag Lily na patrúin a theastaíonn ó fhormhór na n-aipeanna a chlúdach gan iallach a chur ort iad a thógáil ón tús — lena n-áirítear rudaí domhain cosúil le hionchuir aitheantóirí náisiúnta agus scrollytelling eagarthóireachta. Tarraingíonn an chatalóg ó dhosaen córas dearaidh bunaithe móide obair bhunaidh — féach Maidir leis.

An féidir liom Lily a úsáid le Tailwind?

Is féidir. Nochtann gach comhpháirt aicme fréimhe amháin i kebab-case móide className / classa sholáthraíonn an tomhaltóir. Sraith fóntais Tailwind air mar is mian leat.

An féidir liom Lily a úsáid le creataí CSS séimeantacha cosúil le DaisyUI?

Is féidir. Oibríonn na hainmneacha aicme kebab-case ar an eilimint fréimhe mar chrúcaí CSS séimeantacha. Péireáil Lily le creat séimeantach agus faigheann tú comhpháirteanna réamhstílithe a thugann meas fós ar ARIA agus i18n.

An bhfuil pacáiste npm ann?

Seoltar na cúntóirí sainroghanna mar phacáistí le píblíne foilsithe npm/NuGet. Tá na leabharlanna comhpháirteanna gan cheann deartha le clónáil nó le gabháil isteach — is é an fhoinse an tseachadadh, ionas gur féidir leat go beacht an méid a sheolann tú a léamh, a laghdú agus a bheith i seilbh air. Tá foilsiú na leabharlann gan cheann i gcláir fós ar an treochlár.

Cén fáth ilcheadúnais?

Tá riachtanais ceadúnaithe éagsúla ag tionscadail éagsúla. Tá BSD agus MIT ceadaitheach, tá deonú paitinne ag Apache-2.0, agus tacaíonn na roghanna GPL le copyleft. Roghnaigh cibé ceann a oireann do do chás.

Conas a thuairisciú fabht nó gné a iarraidh?

Oscail issue ar thaisclann GitHub, nó seol r-phost chuig joel@joelparkerhenderson.com.