Простой ответ: вы не можете, потому что Sass не может (или не хочет) составлять для него селектор. Вы не можете находиться внутри медиа-запроса и расширять то, что находится за пределами медиа-запроса. Конечно, было бы неплохо, если бы он просто взял его копию вместо того, чтобы пытаться скомпоновать селекторы. Но это не так, поэтому вы не можете.
Используйте миксин
Если у вас есть случай, когда вы собираетесь повторно использовать блок кода внутри и вне медиа-запросов и по-прежнему хотите, чтобы он мог его расширять, тогда напишите и миксин, и класс расширения:
@mixin foo {
}
%foo {
@include foo;
}
.foo {
@extend %foo;
}
@media (min-width: 30em) {
.bar {
@include foo;
}
}
Расширить селектор в медиа-запросе извне
Это не очень поможет вашему варианту использования, но это еще один вариант:
%foo {
@media (min-width: 20em) {
color: red;
}
}
@media (min-width: 30em) {
%bar {
background: yellow;
}
}
.foo {
@extend %foo;
}
.bar {
@extend %bar;
}
Подождите, пока Sass снимет это ограничение (или исправьте его самостоятельно)
В настоящее время ведется ряд дискуссий по этой проблеме (пожалуйста, не участвуйте в этих обсуждениях, если у вас нет чего-то значимого для добавления: сопровождающие уже знают, что пользователям нужна эта функциональность, это просто вопрос, как ее реализовать и что синтаксис должен быть).