Temos
„Lily“ komponentai turi stabilius klasių kablius ir nulį CSS — taigi tema yra tiesiog stilių lentelė. Šis vadovas eina nuo „susiekite vieną bylą“ iki „leiskite naudotojui keisti temą vykdymo metu, su išsaugojimu“.
Ką sukursite
Programa, kurios visą išvaizdą naudotojas gali keisti — pradedant viena susieta stilių lentele ir baigiant išsaugomu temos perjungikliu vykdymo metu — per maždaug 15 minučių.
Prieš pradedant
Pirmiausia užbaikite sistemos vadovą savo technologijų rinkiniui pirmiausia, kad turėtumėte nedidelę „Lily“ formą temai pritaikyti. Viskas čia veikia visose septyniose sistemose; kodo pavyzdžiai rodo „Svelte“ ir paprastą HTML.
1 žingsnis — Susiekite paruoštą temą
themes/ kataloge yra 45 savarankiškos stilių lentelės. Nukopijuokite jas į savo programos statinius išteklius ir susiekite vieną:
<link rel="stylesheet" href="/assets/themes/united-kingdom-national-health-service-england-for-patients.css" />
Rinkinio akcentai:
-
Viešasis sektorius — NHS England / Scotland / Wales, kiekviena pacientams ir specialistams skirtomis versijomis; GOV.UK (
united-kingdom-government-digital-service); USWDS (united-states-web-design-system). - Tiekėjų įkvėptos —
adobe-spectrum,mozilla-protocol. -
Bendrosios paskirties —
light,dark,nord,dracula,wireframe,corporate,synthwaveir daug kitų.
Patikrinkite savo darbą: perkraukite puslapį. Tas pats žymėjimas, kurį sukūrėte sistemos vadove, dabar visiškai apipavidalintas — mygtukai, laukai, žymos, fokuso žiedai. Tai padarė viena HTML eilutė — kiekvienas komponentas liko būtent toks, koks buvo.
2 žingsnis — Pakeiskite bet ką
Temos parinkikliai apgaubti :where(...)kuris turi nulinį specifiškumą — taigi bet kuri jūsų parašyta taisyklė laimi, paprastai:
/* After the theme link: your brand button, everything else themed */
.button {
background: #7c3aed;
border-radius: 9999px;
}
3 žingsnis — Perjungimas vykdymo metu su theme-picker
theme-picker pagalbininkas yra bekūnis piktogramos mygtukas + listbox, valdantis visą temos gyvavimo ciklą: jis įkelia pasirinktą stilių lentelę pakeisdamas vieną valdomą <link>
(parsisiunčiama tik aktyvi tema), nustato
data-theme="{slug}" dokumente ir pasirinktinai išsaugo localStorage. Čia rodomas „Svelte“; „React“, „Vue“, „Angular“, HTML, „Nunjucks“ ir „Blazor“ portai atitinka sutartis po sutarties:
<script>
import ThemePicker from "@lilydesignsystem/svelte-theme-picker";
</script>
<ThemePicker
label="Theme"
themesUrl="/assets/themes/"
themes={["light", "dark", "nord", "wireframe"]}
storageKey="my-app-theme"
/>
Tai visa integracija. Klaviatūros elgesys seka WAI-ARIA APG listbox šabloną; pats valdiklis yra bekūnis (klasės kablys
.theme-picker), todėl perima bet kurią aktyvią temą.
Patikrinta 2026-08-29: būtent šis fragmentas buvo sukompiliuotas pagal paskelbtą 0.1.1 paketą per
svelte/server.
4 žingsnis — Reaguokite į temą savo CSS
Kadangi pagalbininkas nustato data-theme dokumento šaknyje, jūsų pačių stiliai gali šakotis pagal tai:
[data-theme="dark"] .site-logo { filter: invert(1); }
Pastabos apie atvaizdavimą serveryje
Pagalbininkas atlieka visus DOM rašymus sistemos mount/effect gyvavimo cikle, todėl pagal konstrukciją saugus SSR. Kad išvengtumėte blykstelėjimo pirmojo piešimo metu, serveryje atvaizduokite <link> ir
data-theme pradinės temos (pavyzdžiui, iš slapuko) — „Svelte“ pagalbininko saugykla pristato vykdomą „SvelteKit“ slapuko pavyzdį, o kiti katalogai dokumentuoja tą patį šabloną savo technologijų rinkiniams.
Tolesni žingsniai
- Nuostatų pagalbininkai — tas pats šablonas kalbai, teksto dydžiui, bendrinimui ir datos/laiko įvedimui.
- Prisidėkite tema — kiekviena yra viena savarankiška stilių lentelė, taikanti klasių kablius; žr. prisidėjimą.
Klausimų pakeliui? Pagalbos puslapis pilnas atsakymų — o jei kuris nors žingsnis galėtų būti aiškesnis, pasakykite mums ir mielai patobulinsime vadovą.