تخطّي إلى المحتوى الرئيسي

السمات المسبقة

تُدمج @lh-ui/share خمسة ألواح ألوان مسبقة الإعداد بالنمط الصيني، وتستهلكها @lh-ui/react كما هي. وتُغيِّر القوالب المسبقة متغيّرات الألوان --lh-* فقط، وهي مستقلة عن وضعَي الفاتح/الداكن (useLhTheme).

قائمة القوالب المسبقة​

الاسمالوصف
cerblueأزرق خزفي (افتراضي)
songhuaأخضر الصنوبر
zhushaزنجفر
shuimoرسم الحبر
goldenذهبي

التبديل وقت التشغيل​

استخدم useLhPresetTheme للتبديل. تُكتب متغيّرات القالب المسبق في <style id="lh-preset-theme"> (على مستوى :root)، فتنطبق على كامل التطبيق:

import { useLhPresetTheme } from '@lh-ui/react'

function PresetSwitcher() {
const { preset, setPreset, presets } = useLhPresetTheme()

return (
<select value={preset} onChange={(e) => setPreset(e.target.value as never)}>
{presets.map((p) => (
<option key={p.name} value={p.name}>
{p.name}
</option>
))}
</select>
)
}

القيم المُرجَعة:

الحقلالنوعالوصف
presetThemePresetNameاسم القالب المسبق الحالي
setPreset(name) => voidتبديل القالب المسبق (يُكتَب بشكل متزامن في localStorage)
presetsThemePreset[]قائمة بجميع القوالب المسبقة
themeVarsRecord<string, string>متغيّرات متوافقة مع ConfigProvider للقالب الحالي (أُزيلت بادئة --lh- من المفاتيح)

الربط مع ConfigProvider​

يمكن تمرير القيمة المُرجَعة themeVars مباشرةً إلى LhConfigProvider، ليقتصر تأثير القالب المسبق على الشجرة الفرعية بدل التطبيق كله:

import { LhConfigProvider, useLhPresetTheme } from '@lh-ui/react'

function App() {
const { themeVars } = useLhPresetTheme({ initialPreset: 'zhusha' })
return (
<LhConfigProvider themeVars={themeVars}>
<YourApp />
</LhConfigProvider>
)
}

منع الوميض (FOUC)​

تُسلسِل هذه الموقع في وقت البناء «اسم القالب المسبق ← نص الأنماط» في سكربت متزامن داخل HTML head، فتُطبَّق القيمة المُذكَّرة في localStorage قبل أول رسم، لتفادي وميض اللون الافتراضي قبل التبديل عند التحديث. والإعداد في PRESET_FOUC_SCRIPT ضمن docs/docusaurus.config.ts.

لا يمكن استخدام النمط المضمَّن

تُكتب متغيّرات القالب المسبق في عنصر <style> فقط، لا في document.documentElement.style: فالخصوصية المضمَّنة 1,0,0,0 تطغى دائمًا على ورقة الأنماط، مما يجعل الصفحة تقرأ القيمة المضمَّنة القديمة عند تبديل القالب وقت التشغيل، وتطغى على كتلة متغيّرات الوضع الداكن بأكملها في var-dark.scss.