هر تصمیم بصری یک متغیر CSS (custom property) است که از توکنهای طراحی W3C تولید میشود. کامپوننتها فقط از توکنهای معنایی مثل --nui-color-accent-solid استفاده میکنند؛ پس تغییر یک توکن، ظاهر همهٔ کامپوننتهایی را که از آن استفاده میکنند تغییر میدهد.
روشن و تیره
بهطور پیشفرض، ترجیح سیستمعامل حالت را تعیین میکند. با data-nui-theme حالت را روی هر عنصری ثابت کنید و تمها را آزادانه تودرتو کنید.
<html data-nui-theme="dark">
<!-- Everything here is dark… -->
<aside data-nui-theme="light">…except this panel.</aside>
</html>data-nui-theme="light"data-nui-theme="dark"بازنویسی توکنها
توکنها داخل @layer nui قرار دارند، پس CSS معمولی اپ شما آنها را بازنویسی میکند. آنها را برای کل اپ روی :root تنظیم کنید، یا برای بخشی از اپ روی هر عنصر دلخواه.
/* The whole app */
:root {
--nui-color-accent-solid: oklch(0.52 0.16 150);
--nui-radius-md: 0.75rem;
}
/* One part of it */
.checkout {
--nui-color-accent-solid: var(--nui-color-success-solid);
}پالت رنگ برند شما
طیفهای رنگی تولیدشدهاند. یک فام (hue) را در packages/tokens/scripts/palette.ts تغییر دهید و دوباره تولید کنید: اسکریپت هر رنگ را از نو با فضای sRGB تطبیق میدهد و کنتراست هر جفت متن و پسزمینه را دوباره بررسی میکند.
# After changing a hue in packages/tokens/scripts/palette.ts
pnpm --filter @needless-ui/tokens palette
pnpm build:tokens