Skip to content

Add ignore for custom properties #15

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
Nov 9, 2021
Merged

Add ignore for custom properties #15

merged 1 commit into from
Nov 9, 2021

Conversation

firefoxic
Copy link
Contributor

@firefoxic firefoxic commented Sep 24, 2021

Кастомные свойства уже никуда не запрятать, и есть смысл достаточно сильных студентов учить использовать их для большего удобства разработки, читабельности и поддерживаемости кода.

Но вот это правило вставляет палки в колёса, когда кастомное свойство используется в расчётах, но при объявлении свойства надо указать нулевое значение. Линтер требует убрать размерность, а без неё calc() ломается.

Чтобы не приходилось выкручиваться чем-то вроде:
--my-prop: calc(0 * 1px);
(что крайне неудобно, особенно, если ещё и предполагается, что значение должно скриптом считываться) надо добавить игнорирование этим правилом кастомных свойств.


Пулреквест в кодгайд.

@nikolai-shabalin
Copy link
Contributor

Покажите, пожалуйста, пример на котором линтер начинает ругаться. Я потестирую на 14 версии стайллинта. Кажется там это починили

@firefoxic
Copy link
Contributor Author

image

:root {
  --x: 0px;
  --y: 0%;

  width: 0px;
}

@nikolai-shabalin
Copy link
Contributor

Не понял проблему.

Ведь я могу указать

:root {
  --x: 0;
  --y: 0;

  width: 0;
}

и всё будет нормально. Можете дополнить пример, пожалуйста

@firefoxic
Copy link
Contributor Author

firefoxic commented Nov 5, 2021

Если --x и --y используются внутри calc() и при этом от их размерности зависит итоговая размерность значения, то надо уже в объявлении кастомных свойств начальное значение (которое потом может как-то измениться) прописывать эту размерность. Но иногда это начальное значение равно нулю, и без этого фикса, линтер требует удалить размерность, а из-под calc() выходит тогда либо безразмерная величина, либо другая размерность, либо вообще calc() ломается.

То есть объявить то мы можем без размерности, но использовать не можем, либо приходится извращаться на ровном месте, когда вопрос лишь одного игнора в правиле линтера, который не ломает само правило (во всех остальных случаях размерность у нуля будет требоваться удалить).

@nikolai-shabalin
Copy link
Contributor

Почитал спеку.
Там буквально - <длина> со значением 0 не поддерживается, то есть width: calc(0 + 5px) не валидное значение, хотя width: 0 и width: 5px валидные.

И в зависимости от контекста ситуация только усугубялется calc(0 + 10s) тоже не сработает, так как длина прибавляется к времени.

Я ваш PR приму чуть позже, так как за ним большая работа стоит, обновление: эталонного решения, шагов, демок, презентаций. Думаю на этой неделе справлюсь.

Спасибо, что принесли этот баг =)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants