category-colors: کتابخونهای که پالت رنگ نمودار رو بهینه میکنه
خلاصهٔ کاملتر
category-colors یه کتابخونهی جاوااسکریپتیه که پالت رنگ برای دیتاویژوالیزیشن دستهبندیشده میسازه؛ کد پشت مقالهی «چطور کمترین رنگ غلط رو انتخاب کنیم» همینه. معیارهای یه پالت خوب یعنی قابل تشخیص بودن رنگها از هم، دسترسپذیری برای کوررنگی، کنتراست کافی با پسزمینه و هماهنگی بصری، باهم در تضادن، پس کتابخونه هر کدوم رو وزندار میکنه و با simulated annealing دنبال کمترین سازش (least wrong) میگرده. نصبش با npm install category-colors انجام میشه و نود ۲۲.۱۲ یا بالاتر لازم داره.
استفادهی پایه اینطوریه:
const config = createDefaultConfig();
const initialState = prepareInitialState(createDefaultState(), config);
const finalState = runWithOrderOptimization(initialState, config);یه CLI هم داره که با npx category-colors run پالت میسازه و با npx category-colors report یه پالت موجود رو از نظر فاصلهی رنگها بررسی میکنه. ورودی و خروجی هم میتونه رنگ خام باشه، هم CSS، هم فرمت استاندارد توکن طراحی (DTCG).
کتابخونه طوری ساخته شده که فقط چیزی که import میکنی وارد باندل نهایی بشه؛ مثلاً ارزیاب saliency که رنگهایی رو ترجیح میده که راحت بشه اسمشون رو گفت، به تنهایی حدود ۱۵۰ کیلوبایت جدول داده داره و ارزیاب name-difference حدود ۲۶۰ کیلوبایت، پس این دوتا فقط وقتی import بشن وارد کد میشن. رنگها رو میشه کانالبهکانال قفل کرد، مثلاً فقط روشنایی رنگ رو ثابت نگه داشت و بقیه رو بهینه کرد، که برای رعایت رنگ برند همراه با کنتراست کاربردیه.
وزن پیشفرض ارزیابهای کوررنگی تو نسخهی فعلی کمتر از نسخهی قبلیه (۰.۱ برای هر نوع دوکروماتوپی در برابر ۰.۳ قبلی)، ولی سازندههای کتابخونه میگن این کاهش مشکلی نداره؛ چون تنگترین محدودیت همیشه ردیف خاکستری (grayscale) بوده، نه رنگهای قرمز-سبز، و روی ۱۰ آزمایش با ۸ رنگ، حداقل فاصلهی رنگها تو نسخهی جدید حتی کمی بهتر شده (۲۲.۶ در برابر ۱۹.۰).
نکات کلیدی:
- کتابخونه با simulated annealing پالت رنگ برای نمودارهای دستهبندی میسازه، با API و CLI کامل
- نصب: npm install category-colors، نیازمند Node.js نسخهی ۲۲.۱۲ یا بالاتر
- جدولهای دادهی سنگین (saliency حدود ۱۵۰ کیلوبایت، name-difference حدود ۲۶۰ کیلوبایت) فقط با import مستقیم وارد باندل میشن
- میشه هر کانال از رنگ رو جدا قفل کرد، مثلاً رنگین (hue) برند رو ثابت نگه داشت و فقط روشنایی رو بهینه کرد
- وزن ارزیابهای کوررنگی نسبت به نسخهی قبلی کم شده ولی طبق اندازهگیری سازندهها، محدودیت اصلی (حالت خاکستری) همچنان تأمین میشه




