Функция динамического построения свойств в 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% в качестве примера, похоже, это сработает?


person James Woodley    schedule 21.05.2016    source источник


Ответы (1)


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

{types[type]}-{property}: (spaces[space])rem
person Panya    schedule 22.05.2016
comment
Ах да, вот и все. Большое спасибо! - person James Woodley; 22.05.2016