TGViewer
Виталий и Платформа Виталий и Платформа @web_platform · 1.81K subscribers
Post #30 653
var(--) валидно?

#CSS #Лаборатория_веб_платформы

Представьте себе CSS-код:


--: honeydew;
background-color: var(--);
}


Как вы думаете, сработает ли такой код в браузерах, и валидно ли имя кастомного свойства --?

Ответ: да, в июне 2021 код работает в Chrome, Firefox и Safari. Но имя переменной -- формально невалидно.

Текущий черновик спеки о кастомных свойствах зарезервировал кастомное свойство -- для будущего использования в CSS.

Объясню идею авторов спеки.

В CSS есть наследование: значения некоторых свойств (например, color или font-size), а также кастомных свойств передаются от родителя к детям:


color: rgb(51, 51, 51);
--gap-size: 10px;
}

p {
/* color тоже будет rgb(51, 51, 51) */
padding: var(--gap-size); /* 10px */
}


Если эффект наследования нежелателен, его можно отменить ключевым словом initial:


color: rgb(51, 51, 51);
--gap-size: 10px;
}

p {
color: initial; /* значение rgb(0, 0, 0) */
--gap-size: initial; /* значение «пустое» */
}


Если же хочется отменить все наследуемые свойства, но при этом не хочется их все перечислять, есть свойство all, которое обращается сразу ко всем возможным CSS-свойствам сразу:


color: rgb(51, 51, 51);
font-size: 20px;
}

p {
all: initial;
/*
color: initial, то есть rgb(0, 0, 0)
font-size: initial, то есть 16px
*/
}


У свойства all есть пара исключений: одно из них — оно не затрагивает кастомные свойства, для сброса их придётся перечислять все до единого:


--prop-1: 123;
--prop-2: red;
--prop-3: 10px;
}

p {
--prop-1: initial;
--prop-2: initial;
--prop-3: initial;
}


Так вот идея авторов спеки — сделать свойство с именем -- аналогом all только для кастомных свойств. Чтобы можно было написать:


--prop-1: 123;
--prop-2: red;
--prop-3: 10px;
}

p {
--: initial;
/*
--prop-1: initial, то есть значение «пустое»
--prop-2: initial, то есть значение «пустое»
--prop-3: initial, то есть значение «пустое»
*/
}


Несмотря на то, что это пока черновик спеки, решение было уже обсуждено рабочей группой, то есть скорее всего будет зафиксировано и в будущей рекомендации.

А пока что не используйте var(--), если вдруг эта мысль вам приходила в голову, так как оно вероятно перестанет работать.

Баг уже починен в Firefox Nightly, а в Chrome багрепорт пока только заведён.
  • ❤ 1
More from @web_platform
  1. Aug 14, 2026Мой воркфлоу с ИИшками сейчас У меня счас несколько подписок: • антропик 20$ (для разработ…
  2. Jul 13, 2026Hermes vs OpenClaw В комметах к прошлому посту @fogrew спросил, чем Hermes отличается от O…
  3. Jul 8, 2026Недавний инцидент с ДЦ сподвиг меня причесать всё на VPS с ботом-дайджестёром. Раньше было…
  4. Jul 2, 2026вчера мой ботик @web_platform_pulse_bot не прислал новости, а всё потому что кукольный теа…
  5. Jun 22, 2026btw там интересная система в репе, используются git submodules: в .gitmodules указывается…
  6. Jun 22, 20264 мая -> 20 июня, столько провисел мой pr в zed до мерджа зато теперь тема superset доступ…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →