1
resposta

Ordem de precedência @include e @if

Por que o @include não é sobrescrito pelo @if quem vem logo abaixo, quando $half-post é true?

@mixin theme-collection($half-post: true) {
    @include for-phone-only {
        width: $full-width;
    }
    @if $half-post {
        width: $half-width;
    } @else {
        width: $full-width;
    }
}
1 resposta

Fala ai Rafael, tudo bem? Na verdade teu código nem compila, o mesmo possuí alguns erros de compilação, isso porque um mixin não pode ter conteudo.

A ideai no seu caso seria algo assim:

@mixin theme-collection($half-post: true) {
    @include for-phone-only;
    @if $half-post {
        width: 50%;
    } @else {
        width: 100%;
    }
}

Mas, nesse caso o mixin for-phone-only não faz sentido, isso porque sempre vai ter o width do if ou do else (a não ser que seu mixin tenha mais coisas além do width).

Espero ter ajudado.