Temi
Il-komponenti ta' Lily għandhom ganċijiet tal-klassi stabbli u żero CSS — allura tema hija sempliċement stylesheet. Din it-tutorja tmur minn "evita fajl wieħed" għal "ħalli l-utent ibiddel it-tema waqt it-tħaddim, b'persistenza".
X'se tibni
App li d-dehra kollha tagħha l-utent jista' jibdel — jibda b'stylesheet wieħed marbut, jintemm b'bidla persistenti tat-tema waqt it-tħaddim — f'madwar 15-il minuta.
Qabel ma tibda
Lesti l-ewwel it-tutorja tal-framework għall-istack tiegħek l-ewwel, biex ikollok formola żgħira ta' Lily li tagħtiha tema. Kollox hawn jaħdem fis-seba' frameworks kollha; l-eżempji tal-kodiċi juru Svelte u HTML sempliċi.
Pass 1 — Evita tema lesta
themes/ id-direttorju fih 45 stylesheet indipendenti. Ikkopjahom fl-assi statiċi tal-app tiegħek u evita wieħed:
<link rel="stylesheet" href="/assets/themes/united-kingdom-national-health-service-england-for-patients.css" />
Għoli tas-sett:
-
Settur pubbliku — NHS England / Scotland / Wales, kull wieħed f'verżjonijiet għall-pazjenti u għall-professjonisti; GOV.UK (
united-kingdom-government-digital-service); USWDS (united-states-web-design-system). - Ispirati minn fornituri —
adobe-spectrum,mozilla-protocol. -
Użu ġenerali —
light,dark,nord,dracula,wireframe,corporate,synthwave, u ħafna oħra.
Iċċekkja x-xogħol tiegħek: erġa' ttella' l-paġna. L-istess markup li bnejt fit-tutorja tal-framework issa huwa bi stil sħiħ — buttuni, inputs, tikketti, ċrieki tal-focus. Linja HTML waħda għamlet dan — kull komponent baqa' eżattament kif kien.
Pass 2 — Issostitwixxi kwalunkwe ħaġa
L-għażlieri tat-tema huma mgeżwra fi :where(...)li għandu speċifiċità żero — allura kwalunkwe regola li tikteb tirbaħ, sempliċement:
/* After the theme link: your brand button, everything else themed */
.button {
background: #7c3aed;
border-radius: 9999px;
}
Pass 3 — Bdil waqt it-tħaddim b'theme-picker
theme-picker l-għajnuna hija buttuna-ikona headless + listbox li tgawdi ċ-ċiklu sħiħ tal-ħajja tat-tema: tgħabbi l-istylesheet magħżul billi tbiddel <link>
ġestit wieħed (it-tema attiva biss tinġieb), tiffissa
data-theme="{slug}" fuq id-dokument u b'għażla żżomm f' localStorage. Hawn jidher Svelte; il-ports għal React, Vue, Angular, HTML, Nunjucks u Blazor jaqblu kuntratt b'kuntratt:
<script>
import ThemePicker from "@lilydesignsystem/svelte-theme-picker";
</script>
<ThemePicker
label="Theme"
themesUrl="/assets/themes/"
themes={["light", "dark", "nord", "wireframe"]}
storageKey="my-app-theme"
/>
Dik hija l-integrazzjoni kollha. Il-mġiba tat-tastiera ssegwi l-mudell listbox WAI-ARIA APG; il-kontroll innifsu huwa headless (ganċ tal-klassi
.theme-picker), allura jieħu kwalunkwe tema li tkun attiva.
Ivverifikat fl-2026-08-29: dan is-snippet eżatt ġie kkompilat kontra l-pakkett ippubblikat 0.1.1 permezz ta'
svelte/server.
Pass 4 — Irreaġixxi għat-tema fis-CSS tiegħek stess
Peress li l-għajnuna tiffissa data-theme fuq l-għerq tad-dokument, l-istili tiegħek stess jistgħu jiffurkaw fuqu:
[data-theme="dark"] .site-logo { filter: invert(1); }
Noti għar-rendering fuq is-server
L-għajnuna tagħmel il-kitbiet kollha fid-DOM fiċ-ċiklu tal-ħajja mount/effect tal-framework, allura hija sigura għal SSR b'mod strutturali. Biex tevita tleqqija fl-ewwel pittura, irrendi fuq is-server <link> u
data-theme tat-tema inizjali (pereżempju minn cookie) — ir-repożitorju tal-għajnuna Svelte jinkludi eżempju li jista' jitmexxa ta' cookie għal SvelteKit, u l-kataloġi l-oħra jiddokumentaw l-istess mudell għall-istacks tagħhom.
Passi li jmiss
- Għajnuniet tal-preferenzi — l-istess mudell għal-lingwa, id-daqs tat-test, il-qsim u d-dħul tad-data/ħin.
- Ikkontribwixxi tema — kull waħda hija stylesheet indipendenti waħda li timmira lejn il-ganċijiet tal-klassi; ara il-kontribuzzjoni.
Mistoqsijiet matul it-triq? Il-paġna tal-għajnuna hija mimlija tweġibiet — u jekk pass jista' jkun iktar ċar, għidilna u nħossuna kuntenti ntejbu t-tutorja.