Мне кажется, что миксины - это та фича, из-за которой многие все ещё предпочитают использовать препроцессоры вместо нативного CSS. Все остальные фичи, можно сказать, уже есть в платформе.
Переменные ✅
С нами уже очень давно. Причём они гораздо мощнее переменных SCSS, потому что работают в рантайме, наследуются, проникают в Shadow DOM и позволяют делать разные динамические штуки. Но и как хранилище для переиспользуемых токенов тоже хорошо работают.
Вложенность ✅
Вложенность (nesting) уже поддерживается во всех актуальных браузерах. Да, там есть нюансы, вложенность работает не совсем так, как в препроцессорах. В этом есть как плюсы, так и минусы. Лично мне вложенность не особо нужна, но она есть в платформе.
Цветовые функции ✅
Функции
color() и color-mix() в сочетании с переменными и новыми цветовыми пространствами позволяют конвертировать цвета, смешивать их, работать с прозрачностью, яркостью, насыщенностью и т.д. Таким образом в CSS можно реализовывать динамические палитры.Математика ✅
Представлена в CSS функцией
calc(), а также min(), max(), clamp(). Не так давно список пополнили тригонометрические функции и на подходе функции round(), mod(), rem(), abs(), sign() и куча других (уже доступны в Safari 15.4 и Firefox 118). Это позволяет реализовать любую математику.Условия и циклы ❌
Пока что в CSS этого нет, но ходят обсуждения и есть черновики с предложениями. Я не знаю, насколько это вообще нужно. Видел в функциях SCSS, но крайне редко. Тут лучше ждать внедрения Houdini API и возможности создавать свои функции для CSS.
Миксины ❌
Этого тоже пока нет и вот пошли обсуждения. Хотя вопрос добавления нативных миксинов поднимался году в 2016. На мой взгляд это то, чего не хватает в CSS, чтобы перейти с SCSS. Ждём.