Как я могу заставить цветовые украшения для ссылок на переменные CSS работать в VS Code?

Я работаю над пользовательскими свойствами CSS и их модификацией. Кажется, что лучший способ добавить/изменить альфа-канал для цветов — это использовать нотацию hsl:

:root {
  --green: 120deg, 100%, 50%;
}

.box {
  background: hsl(var(--green), 0.5);
}

Проблема с этим подходом заключается в том, что VS Code не распознает hsl(var(--green)) как цвет:

Как я могу получить значения свойств цвета, используя ссылки на переменные CSS, чтобы иметь цветовые украшения в VS Code? Будет ли такая вещь вообще реально осуществимой?

встроенный декоратор цвета представляет собой простой поиск по регулярному выражению, если вам нужна оценка выражения, вам нужно написать свой собственный поставщик декоратора, тогда вы также можете поддерживать calc

rioV8 07.05.2023 14:25

расширение "Цветная подсветка" от Сергея Наумова поддерживает эту функцию

Yalcin Kilic 07.05.2023 15:02

нет, «Выделение цветом» не поддерживает этот случай.

Limon Monte 07.05.2023 16:33

Я удалил явный запрос рекомендаций по расширению. см. № 3 из /help/on-topic. @ рецензенты в очереди на закрытое голосование, обратите внимание.

starball 08.05.2023 02:10
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Введение в CSS
Введение в CSS
CSS является неотъемлемой частью трех основных составляющих front-end веб-разработки.
Как выровнять Div по центру?
Как выровнять Div по центру?
Чтобы выровнять элемент <div>по горизонтали и вертикали с помощью CSS, можно использовать комбинацию свойств и значений CSS. Вот несколько методов,...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
CSS: FlexBox
CSS: FlexBox
Ранее разработчики использовали макеты с помощью Position и Float. После появления flexbox сценарий полностью изменился.
1
4
91
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Как я могу получить значения свойств цвета, используя ссылки на переменные CSS, чтобы иметь цветовые украшения в VS Code? Будет ли такая вещь вообще реально осуществимой?

Я не думаю, что такая вещь вообще реально осуществима, потому что то, о чем мы здесь говорим, является функцией, основанной на статическом анализе, а пользовательские свойства CSS (переменные) в значительной степени являются функцией времени выполнения (динамической).

Рассмотрим только следующее:

<style>.proof { background-color: var(--my-var) }</style>
<!-- okay, so what decoration do you think should show above? -->
<div style = "--my-var: #ff00ff;" class = "proof">hello</div>
<div style = "--my-var: #ffff00;" class = "proof">hello</div>
<div style = "--my-var: #00ffff;" class = "proof">hello</div>

Это очень простое доказательство того, что ссылки на переменные оцениваются во время выполнения. И может быть несколько разных значений, оцененных из каскада во время выполнения (и статический анализ покажет...?). Можно сделать еще несколько пунктов:

<style>.proof { background-color: var(--my-var) }</style>
<!-- okay, so what decoration do you think should show above? -->
<div style = "--my-var: #ff00ff;"><div class = "proof">hello</div></div>
<div style = "--my-var: #ffff00;"><div class = "proof">hello</div></div>
<div style = "--my-var: #00ffff;"><div class = "proof">hello</div></div>

Эта простая модификация показывает, что оценка зависит от каскада.

Итак, оцениваемое значение из ссылки на переменную зависит от каскада, оценивается во время выполнения (оно также отслеживается во время выполнения для перерасчета стиля и перерисовки). VS Code или любой статический анализ ничего не могут вам показать.

Фактически, после того, как я закончил писать этот пост, я погуглил «github vscode issues color decorations css variable» и нашел [css] декораторы цвета для пользовательских свойств/переменных CSS #173923 , где один из сопровождающих VS Code, по сути, говорит то же самое ( ссылка).

Другие вопросы по теме