dark mode v2
This commit is contained in:
+7
-11
@@ -1,24 +1,20 @@
|
||||
/**
|
||||
* تابع برای دریافت رنگ مناسب آیکونها بر اساس theme
|
||||
* @param variant - نوع رنگ: 'primary' یا 'muted'
|
||||
* @returns رنگ مناسب برای theme فعلی
|
||||
* منبع رنگ آیکونها بر اساس متغیرهای CSS تم
|
||||
* - primary: از `--primary`
|
||||
* - muted: از `--muted-foreground`
|
||||
* استفاده از متغیرهای CSS باعث میشود با تغییر تم، رنگها بدون نیاز به رفرش بروزرسانی شوند.
|
||||
*/
|
||||
export const getIconColor = (
|
||||
variant: "primary" | "muted" = "primary"
|
||||
): string => {
|
||||
// تشخیص theme از document
|
||||
const isDark = document.documentElement.classList.contains("dark");
|
||||
|
||||
if (variant === "muted") {
|
||||
return isDark ? "#9ca3af" : "#6b7280"; // خاکستری متوسط
|
||||
return "var(--muted-foreground)";
|
||||
}
|
||||
|
||||
// primary color
|
||||
return isDark ? "#ffffff" : "#000000"; // سفید برای dark، سیاه برای light
|
||||
return "var(--primary)";
|
||||
};
|
||||
|
||||
/**
|
||||
* Hook برای استفاده در React components
|
||||
* Hook ساده برای دسترسی به رنگها؛ به دلیل استفاده از CSS vars، نیازی به context نیست
|
||||
*/
|
||||
export const useIconColor = () => {
|
||||
return {
|
||||
|
||||
Reference in New Issue
Block a user