迭代在Stylus中的Hash对象

时间:2017-10-02 15:15:42

标签: stylus

我在手写笔中制作了一个颜色的哈希对象 - 就像这样(这些是引导4种颜色):

colors: {
  white:  #fff,
  light: #f8f9fa,
  black:  #000,
  dark: #212529,
  grey: {
    base: #adb5bd,
    light: #ced4da,
    lighter: #dee2e6,
    lightest: #e9ecef,
    dark: #868e96,
    darker: #495057,
    darkest: #343a40,
  },
  blue:    #007bff,
  indigo:  #6610f2,
  purple:  #6f42c1,
  pink:    #e83e8c,
  red:     #dc3545,
  orange:  #fd7e14,
  yellow:  #ffc107,
  green:   #28a745,
  teal:    #20c997,
  cyan:    #17a2b8
}

我想要做的是遍历此列表并创建明暗变化 - 如下所示:

for color in colors
    dark-{color} = darken({color}, 10%)

我的最终目标是拥有一个我可以使用的变量列表 - 例如:dark-greenlight-purple等。

或者,或者像这样:colors.dark-greencolors.light-purple

知道怎么做吗?

感谢。

1 个答案:

答案 0 :(得分:0)

你应该改变你的代码,

colors: {
  white:  #fff,
  light: #f8f9fa,
  black:  #000,
  dark: #212529,
  blue:    #007bff,
  indigo:  #6610f2,
  purple:  #6f42c1,
  pink:    #e83e8c,
  red:     #dc3545,
  orange:  #fd7e14,
  yellow:  #ffc107,
  green:   #28a745,
  teal:    #20c997,
  cyan:    #17a2b8
}

for name, attr in colors
    dark-{name} = darken({attr}, 10%)

名称为KeyAttr为值