В предыдущей версии была директива
@screen
, можно было легко писать
@screen(xl) {
стили
}
В последней версии такой директивы нет.
Суть проблемы:
Допустим есть блок, в котором меняются размеры нескольких блоков. при обычном подходе я бы создал переменные и менял их в медиазапросах:
.block {
--width1: 1em;
--width2: 2em;
.block-inner1 {
width: var(--width1);
}
.block-inner2 {
width: var(--width2);
}
@screen(xl) {
--width1: 3em;
--width2: 5em;
}
}
В текущей вариации я вижу только такое использование:
.block {
--width1-sm: 1em;
--width2-sm: 2em;
--width1-xl: 3em;
--width2-xl: 5em;
.block-inner1 {
@apply
w-[--width1-sm]
xl:w-[--width1-xl]
;
}
.block-inner2 {
@apply
w-[--width2-sm]
xl:w-[--width2-xl]
;
}
}
Ну или использование глобальных переменных в директиве
@theme
и создание утилитарных классов через
@utility
, что всё равно приведет к написанию подобной портянки.
Конечно можно писать чистые css media с указанием значений.
@media (width > 768px) { --width1: 3em; }
Но и тут налицо неудобство в использовании значений для точек переключения вместо мнемоник (sm, xl и т.п.)
Ищу варианты использования медиазапросов в своём css коде, либо может есть вариант изменять значения непосредственно у css переменных?
Условно, типа такого:
.block {
--width: 1em;
@apply xl:--width-[4em];
}