Témák
A Lily komponenseinek stabil osztálykampóik vannak és nulla CSS — így egy téma csak egy stíluslap. Ez az oktatóanyag az „egy fájl hivatkozásától” a „hagyd, hogy a felhasználó futásidőben témát váltson, tartósan elmentve” állapotig vezet.
Mit fogsz építeni
Egy alkalmazás, amelynek a teljes megjelenését a felhasználó megváltoztathatja — egyetlen hivatkozott stíluslappal kezdve, tartós futásidejű témaváltóval végezve — nagyjából 15 perc alatt.
Mielőtt elkezdenéd
Előbb fejezd be a keretrendszer-oktatóanyagot a saját technológiai készletedhez először, hogy legyen egy kis Lily-űrlapod a témázáshoz. Itt minden működik mind a hét keretrendszerben; a kódminták Svelte-et és sima HTML-t mutatnak.
1. lépés — Hivatkozz egy kész témára
themes/ könyvtár 45 önálló stíluslapot tartalmaz. Másold őket az alkalmazásod statikus erőforrásai közé, és hivatkozz egyre:
<link rel="stylesheet" href="/assets/themes/united-kingdom-national-health-service-england-for-patients.css" />
A készlet kiemelései:
-
Közszféra — NHS England / Scotland / Wales, mindegyik betegközpontú és szakemberközpontú változatban; GOV.UK (
united-kingdom-government-digital-service); USWDS (united-states-web-design-system). - Szállítók által ihletett —
adobe-spectrum,mozilla-protocol. -
Általános célú —
light,dark,nord,dracula,wireframe,corporate,synthwaveés még sok más.
Ellenőrizd a munkádat: töltsd újra az oldalt. Ugyanaz a jelölés, amelyet a keretrendszer-oktatóanyagban építettél, most teljesen stílusos — gombok, mezők, címkék, fókuszgyűrűk. Egyetlen HTML-sor tette — minden komponens pontosan olyan maradt, amilyen volt.
2. lépés — Írj felül bármit
A témaszelektorok ebbe vannak csomagolva: :where(...)aminek nulla a specificitása — így bármelyik szabály, amit írsz, nyer, egyszerűen:
/* After the theme link: your brand button, everything else themed */
.button {
background: #7c3aed;
border-radius: 9999px;
}
3. lépés — Futásidejű váltás a theme-pickerrel
theme-picker segéd egy fej nélküli ikongomb + listbox, amely a téma teljes életciklusát birtokolja: betölti a kiválasztott stíluslapot egyetlen felügyelt <link>
cseréjével (csak az aktív témát tölti le), beállítja a
data-theme="{slug}" értéket a dokumentumon, és igény szerint tartósan elmenti ide: localStorage. Itt Svelte látható; a React, Vue, Angular, HTML, Nunjucks és Blazor portok szerződésről szerződésre megfelelnek:
<script>
import ThemePicker from "@lilydesignsystem/svelte-theme-picker";
</script>
<ThemePicker
label="Theme"
themesUrl="/assets/themes/"
themes={["light", "dark", "nord", "wireframe"]}
storageKey="my-app-theme"
/>
Ez a teljes integráció. A billentyűzet-viselkedés a WAI-ARIA APG listbox-mintát követi; maga a vezérlő fej nélküli (osztálykampó
.theme-picker), így átveszi, bármelyik téma aktív.
Ellenőrizve 2026-08-29: pontosan ez a kódrészlet le lett fordítva a közzétett 0.1.1 csomaggal szemben ezzel:
svelte/server.
4. lépés — Reagálj a témára a saját CSS-edben
Mivel a segéd beállítja a data-theme értéket a dokumentum gyökerén, a saját stílusaid is elágazhatnak rá:
[data-theme="dark"] .site-logo { filter: invert(1); }
Megjegyzések a szerveroldali rendereléshez
A segéd minden DOM-írást a keretrendszer mount/effect életciklusán belül végez, így szerkezetéből adódóan SSR-biztonságos. Az első kirajzolás villanásának elkerüléséhez renderelj a szerveren <link> és
data-theme a kezdeti témához (például egy sütiből) — a Svelte segéd tárolója futtatható SvelteKit sütipéldát tartalmaz, a többi katalógus pedig ugyanezt a mintát dokumentálja a saját technológiai készletéhez.
További lépések
- Beállítási segédek — ugyanaz a minta a nyelvhez, szövegmérethez, megosztáshoz és dátum-/időbevitelhez.
- Járulj hozzá egy témával — mindegyik egy önálló stíluslap, amely az osztálykampókat célozza; lásd a közreműködést.
Kérdésed akad útközben? A súgóoldal tele van válaszokkal — és ha egy lépés érthetőbb lehetne, szólj nekünk és szívesen javítjuk az oktatóanyagot.