Функция динамического построения свойств в Stylus выдает ожидаемое ":", got "["

У меня есть следующий код стилуса

spaces = {
  none: 0,
  xxx-small: .125,
  xx-small: 25,
  x-small: .5,
  small: .75
  medium: 1,
  large: 1.5,
  x-large: 2,
  xx-large: 3
}
properties = top, right, bottom, left
types = {
  m: margin,
  p: padding
}
space()
  for type in types
    for property in properties
      for space in spaces
        .{type}-{property}--{space}
          {types[type]}-{property}: {spaces[space]}rem

space()

Я хотел бы вывести что-то вроде:

.m-top--none {
  margin-top: 0rem;
}
.m-top--xxx-small {
  margin-top: 0.125rem;
}

etc

Однако я сталкиваюсь с ошибкой:

ожидаемый ":", получил "["

Есть идеи, что я здесь не так сделал? Если я возьму {spaces[space]}rem и просто заменить на 1000% как пример, похоже на работу?

1 ответ

Решение

Стилус в настоящее время не поддерживает интерполяцию внутри значений свойств. Вам нужно использовать () в этом случае:

{types[type]}-{property}: (spaces[space])rem
Другие вопросы по тегам