Веб-версияОткрыть в Telegram

ПостНе так давно в CSS появились переменные, но мало кто знает, что их ещё можно и типизировать!

13 февраля 2025
З
Записки фронтендера
Не так давно в CSS появились переменные, но мало кто знает, что их ещё можно и типизировать! Это стало возможным благодаря директиве @property: @property --my-color { syntax: '<color>'; inherits: false; initial-value: red; } Или вот такому объявлению JS: window.CSS.registerProperty({ name: "--my-color", syntax: "<color>", inherits: false, initialValue: "red", }); 1) При помощи свойства syntax мы указываем какой тип будет присвоен нашей переменной (полный список возможных значений и их комбинаций можно найти в спецификации). 2) inherits указывает, будет ли объявленная позже в коде переменная наследоваться потомками или нет. 3) initialValue задаёт значение по-умолчанию по аналогии со вторым параметром внутри var(--btn-bg, red); Далее мы можем это использовать таким образом: @property --my-color { syntax: '<color>'; inherits: false; initial-value: red; } .box { --my-color: blue; background-color: var(--my-color); /* Будет использован blue */ } .box:hover { --my-color: green; /* Будет использован green */ } /* Дочерние элементы уже не получат эту переменную, т.к. мы ранее указали inherits: false */ .child { background-color: var(--my-color); /* Будет использован red, значение по-умолчанию */ } Если мы назначим переменную, значение которой будет отличаться от типа, указанного @property, то будет взято значение по-умолчанию: .box { --my-color: 42px; /* Тип не соответствует <color> */ background-color: var(--my-color); /* Будет использован red, значение по-умолчанию */ }
176 ·

Рядом в ленте

ЗЗаписки фронтендераВ CSS с недавнего времени появилось свойство field-sizing. Оно позволяет управлять размерами полей для ввода. А именно: делать так, чтобы размер поля изменялся ЗЗаписки фронтендераВ ECMAScript 2025 для Set появились новые методы для работы с множествами. Теперь их стало гораздо проще сравнивать друг с другом и находить различия. union - о
это сообщение
ЗЗаписки фронтендераБольшинство разработчиков скорее всего знает о существовании глобальных значений для CSS свойств, таких как inherit, initial и unset, но существуют и другие. ЭтЗЗаписки фронтендераНаконец-то появилась возможность удобного анимирования появления и исчезновения элементов в CSS, используя дискретные свойства, такие как display. Делается это
ЗЗаписки фронтендераЗаписки фронтендера@fe_notes · канал · Технологии
422подписчиков394средний охват поста
Лента площадки Открыть в Telegram

Открытая публичная лента из поискового индекса ChatCrawler — «Google по публичному Telegram»; обновляется по мере обхода площадки. Время — UTC.

Только публичный контент, официальный API Telegram. О проекте · Вопросы · Границы индекса · Убрать страницу из выдачи · Каталог · Поиск · Как мы считаем