В очередном обсуждении убогости UI сайта и возможности самому нарулить цвета сайта скинули мне интересную ссылку.
Спасибо,  Lasto4ka, за лютый трэш. Такой убогой имплементации я давно не видел. В js версии, к примеру, уже пять лет висит опечатка два раза вызывающая одну и туже функцию и всем пофиг.
Переходя к сути, хотелось мне решить задачу выбора цыета текста относительно фона. Притом не дать пользователю нарулить вырвиглазное нечто. Тобишь создать нечто наподобие этого, только применимо у xgm.
Погуглив, оказалось, что это задача настолько лёгкая, что по этой теме ничерта готового не сыщеш. Приходится изобретать велосипеды. 
Самый популярный подход это перевести цвет в HSL и в зависимости от L установить белый или чёрный цвет. Но это скучно. 
Посему я тупо переписал hsluv по человечески и реализовал простой как палка алгоритм:  L += L > 50 ? -50 : 50;
Который генерит пару с контрастом в районе 4 что в принципе терпимо и читаемо. 
 
                        
                        
                    
 CYBERPUNK-N…
                                CYBERPUNK-N…
                            
 
                    
                

Прокрутить к ресурсу