Задать вопрос
sorry_i_noob
@sorry_i_noob

Как написать в SASS такой миксин?

У свойства text-shadow в CSS может быть очень много значений. Перечисляются они через запятую. Вот пример:
text-shadow: -0.5px -0.5px 0 #fff,
        0.5px -0.5px 0 #fff,
        -0.5px 0.5px 0 #fff,
        0.5px 0.5px 0 #fff,
        0 0 17.9px rgba(255, 255, 255, 0.16);

Первые 4 значения делают обводку текста. Пятое значение делает свечение текста.

Я хочу написать миксин, который позволяет делать обводку. И при этом добавлять еще значения. Я написал вот так:
@mixin text-stroke($weight, $color) {
    text-shadow: $weight -$weight 0 $color,
    $weight -$weight 0 $color,
    -$weight $weight 0 $color,
    $weight $weight 0 $color,
    @content;
}

Но SASS выдает ошибку:
Invalid CSS after "...eight 0 $color,": expected ";", was "@content;"

Как мне написать такой миксин? Возможно ли вообще такое?
  • Вопрос задан
  • 153 просмотра
Подписаться 1 Простой Комментировать
Решения вопроса 1
notiv-nt
@notiv-nt
Как ваше ничего? Да, моё тоже
expected ";"

Ожидалось ;
was "@content;"

было @content

@mixin text-stroke($weight, $color) {
    text-shadow: $weight -$weight 0 $color,
    $weight -$weight 0 $color,
    -$weight $weight 0 $color,
    $weight $weight 0 $color;
    @content;
}


UPD: решение

@mixin text-stroke($weight, $color, $rest...) {
    text-shadow: $weight -$weight 0 $color,
      $weight -$weight 0 $color,
      -$weight $weight 0 $color,
      $weight $weight 0 $color,
      $rest;
}

body {
  @include text-stroke(10, #fff, ffffffffffff 1 1 1,  ffffffffff 2 2 2);
}
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы