Палитру хотелось сделать вычисляемой, чтобы в будущем, если скажем мы захотим сделать тёмную тему темнее, это не потребовало полной переработки всей палитры.
Были протестированы несколько подходов:
- Рассчет референсной палитры в пространстве LHC, с конвертацией в RGB
- Модель на основе HSL палитры и использование коэффициентов для параметров яркости и насыщенности
- Простое RGB наложение
У варианта 1 очень много сторонников в индустрии, и есть мнение, что это будущее. Это связано с тем, что новые современные дисплеи имеют цветовой охват больше чем sRGB пространство. И поулчается что дизайнерам не доступны почти 30% цветов, которые поддерживают современные экраны. Но на практике, скажем браузер всё равно конвертирует цвета в sRGB, даже не смотря на то что есть спецификации для определения цветов в LHC и LAB пространствах. Да и полноценной поддержки Р3 дисплеев нет. Поэтому этот вариант был отброшен. К томуже при динамическом рассчете палитры, был высок риск получить «не существующие» в sRGB цвета.
Вариант 2 долгое время привлекал возможностью математически задать все зависимости, но тоже имел недостатки. Например если задать изменения цвета по формуле, то у некоторых оттенков нельзя было получить яркие цвета с тем же значение Luminosity что и в соседних линейках