ស្បែក

សមាសភាគ Lily មាន class hook ស្ថិរភាព និង CSS សូន្យ — ដូច្នេះស្បែកគ្រាន់តែជាសន្លឹករចនាប័ទ្ម។ មេរៀននេះចាប់ពី “ភ្ជាប់ឯកសារមួយ” ទៅ “អនុញ្ញាតឱ្យអ្នកប្រើប្តូរស្បែកពេលដំណើរការ រក្សាទុក”។

អ្វីដែលអ្នកនឹងសាងសង់

កម្មវិធីដែលអ្នកប្រើអាចផ្លាស់ប្តូររូបរាងទាំងមូល — ចាប់ផ្តើមជាមួយសន្លឹករចនាប័ទ្មភ្ជាប់មួយ បញ្ចប់ជាមួយឧបករណ៍ប្តូរស្បែកពេលដំណើរការដែលស្ថិតស្ថេរ — ក្នុងរយៈពេលប្រហែល ១៥ នាទី។

មុនពេលអ្នកចាប់ផ្តើម

បញ្ចប់ មេរៀនក្របខណ្ឌ ជាមុនសម្រាប់ស្ទែករបស់អ្នក ដើម្បីឱ្យអ្នកមានទម្រង់ Lily តូចមួយដើម្បីដាក់ស្បែក។ អ្វីៗទាំងអស់នៅទីនេះដំណើរការក្នុងក្របខណ្ឌទាំងប្រាំពីរ; គំរូកូដបង្ហាញ Svelte និង HTML ធម្មតា។

ជំហាន ១ — ភ្ជាប់ស្បែករួចជាស្រេច

themes/ ថតផ្ទុកសន្លឹករចនាប័ទ្មឯករាជ្យ ៤៥។ ចម្លងវាទៅទ្រព្យឋិតិតរបស់កម្មវិធីអ្នក ហើយភ្ជាប់មួយ៖

<link rel="stylesheet" href="/assets/themes/united-kingdom-national-health-service-england-for-patients.css" />

ចំណុចសំខាន់នៃសំណុំ៖

  • វិស័យសាធារណៈ — NHS England / Scotland / Wales នីមួយៗក្នុងកំណែសម្រាប់អ្នកជំងឺ និងអ្នកអនុវត្ត; GOV.UK (united-kingdom-government-digital-service); USWDS (united-states-web-design-system).
  • បំផុសដោយអ្នកលក់ — adobe-spectrum, mozilla-protocol.
  • គោលបំណងទូទៅ — light, dark, nord, dracula, wireframe, corporate, synthwaveហើយច្រើនទៀត។

ពិនិត្យការងាររបស់អ្នក៖ ផ្ទុកទំព័រឡើងវិញ។ ម៉ាកអាប់ដូចគ្នាដែលអ្នកបានសាងសង់ក្នុងមេរៀនក្របខណ្ឌឥឡូវមានរចនាប័ទ្មពេញលេញ — ប៊ូតុង វាលបញ្ចូល ស្លាក រង្វង់ផ្តោត។ HTML មួយជួរបានធ្វើអ្វីៗទាំងនេះ — សមាសភាគនីមួយៗនៅដដែលដូចមុន។

ជំហាន ២ — បដិសេធអ្វីក៏បាន

ឧបករណ៍ជ្រើសស្បែកត្រូវបានរុំក្នុង :where(...)ដែលមានភាពជាក់លាក់សូន្យ — ដូច្នេះច្បាប់ណាមួយដែលអ្នកសរសេរឈ្នះ យ៉ាងសាមញ្ញ៖

/* After the theme link: your brand button, everything else themed */
.button {
  background: #7c3aed;
  border-radius: 9999px;
}

ជំហាន ៣ — ការប្តូរពេលដំណើរការជាមួយ theme-picker

theme-picker ជំនួយការគឺជាប៊ូតុងរូបតំណាង + ប្រអប់បញ្ជីគ្មានក្បាលដែលជាម្ចាស់វដ្តជីវិតស្បែកទាំងមូល៖ វាផ្ទុកសន្លឹករចនាប័ទ្មដែលបានជ្រើសរើសដោយប្តូរមួយ <link> ដែលគ្រប់គ្រង (មានតែស្បែកសកម្មប៉ុណ្ណោះដែលត្រូវបានទាញយក) កំណត់ data-theme="{slug}" នៅលើឯកសារ ហើយជាជម្រើសរក្សាទុកទៅ localStorage។ Svelte បានបង្ហាញនៅទីនេះ; ច្រក React, Vue, Angular, HTML, Nunjucks និង Blazor ត្រូវគ្នាកិច្ចសន្យាដោយកិច្ចសន្យា៖

<script>
  import ThemePicker from "@lilydesignsystem/svelte-theme-picker";
</script>

<ThemePicker
  label="Theme"
  themesUrl="/assets/themes/"
  themes={["light", "dark", "nord", "wireframe"]}
  storageKey="my-app-theme"
/>

នោះជាការរួមបញ្ចូលទាំងមូល។ អាកប្បកិរិយាក្តារចុចធ្វើតាមលំនាំប្រអប់បញ្ជី WAI-ARIA APG; ការគ្រប់គ្រងខ្លួនឯងគ្មានក្បាល (class hook .theme-picker) ដូច្នេះវាយកស្បែកណាដែលសកម្ម។

បានផ្ទៀងផ្ទាត់ 2026-08-29៖ កំណាត់ពិតប្រាកដនេះត្រូវបានចងក្រងប្រឆាំងនឹងកញ្ចប់ដែលបានបោះពុម្ព 0.1.1 តាមរយៈ svelte/server.

ជំហាន ៤ — ឆ្លើយតបនឹងស្បែកក្នុង CSS ផ្ទាល់ខ្លួនរបស់អ្នក

ដោយសារជំនួយការកំណត់ data-theme នៅលើឫសឯកសារ រចនាប័ទ្មផ្ទាល់ខ្លួនរបស់អ្នកអាចចេញសាខាលើវា៖

[data-theme="dark"] .site-logo { filter: invert(1); }

កំណត់ចំណាំសម្រាប់ការបង្ហាញលើម៉ាស៊ីនមេ

ជំនួយការអនុវត្តការសរសេរ DOM ទាំងអស់ក្នុងវដ្តជីវិត mount/effect របស់ក្របខណ្ឌ ដូច្នេះវាសុវត្ថិភាព SSR តាមការរចនា។ ដើម្បីជៀសវាងការភ្លឹបភ្លែតនៅការគូរដំបូង សូមបង្ហាញ <link> និង data-theme នៃស្បែកដំបូងលើម៉ាស៊ីនមេ (ឧទាហរណ៍ពី cookie) — ឃ្លាំងជំនួយការ Svelte ដឹកជញ្ជូនឧទាហរណ៍ cookie SvelteKit ដែលអាចដំណើរការបាន ហើយកាតាឡុកផ្សេងទៀតចងក្រងឯកសារលំនាំដូចគ្នាសម្រាប់ស្ទែករបស់ពួកគេ។

ជំហានបន្ទាប់

  • ជំនួយការចំណូលចិត្ត — លំនាំដូចគ្នាសម្រាប់ភាសា ទំហំអក្សរ ការចែករំលែក និងការបញ្ចូលកាលបរិច្ឆេទ/ពេលវេលា។
  • ចូលរួមចំណែកស្បែក — នីមួយៗជាសន្លឹករចនាប័ទ្មឯករាជ្យមួយដែលកំណត់គោលដៅ class hook; មើល ការចូលរួមចំណែក.

មានសំណួរតាមផ្លូវ? ទំព័រជំនួយ ពេញដោយចម្លើយ — ហើយប្រសិនបើជំហានណាអាចច្បាស់ជាងនេះ ប្រាប់យើង ហើយយើងនឹងកែលម្អមេរៀនដោយអំណរ។