Проста відповідь: ви не можете, тому що Сасс не може (або не хоче) скласти селектор для нього. Ви не можете знаходитись усередині медіа-запиту і розширювати щось, що знаходиться поза медіа-запитом. Звичайно, було б непогано, якби просто скопіювати її, а не намагатися скласти селектори. Але це не так, ви не можете.
Використовуйте міксин
Якщо у вас є випадок, коли ви збираєтеся повторно використовувати блок коду всередині та поза медіа-запитів і все одно хочете, щоб він міг його розширити, тоді напишіть і мікшин, і клас розширення:
@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;
}
Зачекайте, поки Сасс скасує це обмеження (або виправте його самостійно)
З цією проблемою триває низка постійних дискусій (будь ласка, не робіть внесок у ці теми, якщо у вас немає чогось змістовного для додавання: супровідники вже знають, що користувачі бажають цієї функціональності, це лише питання про те, як її реалізувати та що синтаксис повинен бути).