Нам нужны твои мозги

Хотите расти как разработчик и найти крутую работу? Не протирайте штаны — займитесь Open Source проектами. Так легче всего попасть в лучшие команды разработчиков и положить себе в резюме настоящий проект, вместо нелепых «примеров кода». Но найти подходящий проект для участия сложно. Начинаются лень и отговорки, а за ними — отсутствие профессионального роста, критики по-настоящему крутых программистов, уныние и застой.

На Cult of Martians мы собираем интересные задачи для современных веб-программистов. Можно выбрать подходящую по сложности, продолжительности и специализации. Задачи не выдуманы «из воздуха» — каждая решает насущную проблему, и решить ее можно через создание нового Open Source проекта или улучшение существующего. Решайте задачи, прокачивайтесь, присылайте решение на оценку. Лучших могут пригласить к себе на работу компании, программистам которых понравится ваше решение.

Фронт: Добавить правило для проверки цветового пространства в Stylelint

Для уверенных в себе, задача на пару недель

В новом CSS для указания цвета есть функции lch(), lab(), oklch() и oklab(). Проблема в том, что в этих функциях можно указать цвет, который не будет виден для глаза или для конкретного монитора. В Stylelint (линтер для CSS) надо добавить новое правило, чтобы предупреждать, что цвет вышел за пределы.

Цвета можно разделить на:

  1. Видимые на sRGB-мониторах (старые обычные цвета).
  2. Видимые на P3-мониторах. Таких мониторах сейчас очень мало. Правила с такими цвета надо оборачивать в @media (color-gamut: p3).
  3. Видимые на Rec2020-мониторах. Таких мониторов пока нет на рынке. Но на будущее их можно указать, обернув правила в @media (color-gamut: rec2020).
  4. Цвета, не видимые глазом человека.

Если цвет в невидимом спектре или вне sRGB, но не обернут в медиа-выражение — правило должно возвращать предупреждение.

Польза: строка в резюме с PR в популярный проект.

  1. Форкнуть репозиторий проекта.
  2. Почитать про то, как создавать правила для Stylelint.
  3. Почитать предложения команды Stylelint для этого правила.
  4. Изучить библиотеку culori для работы с цветом — она имеет поддержку Lab/OKLab и достаточно быстро работает.
  5. Для проверки sRGB пространства можно использовать функцию displayable(). Для P3 пока взять такой код — его можно переделать и для Rec2020, заменив p3() на нужную функцию.
  6. Создать код, тесты и документацию для правила.
  7. Отправить PR, где дополнительно указать Ситника через /cc @ai.