迭代在Stylus中的Hash对象

问题描述 投票:0回答:1

我在手写笔中有一个颜色的哈希对象 - 就像这样(这些是引导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等。

知道怎么做吗?

谢谢。

stylus
1个回答
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是值

© www.soinside.com 2019 - 2024. All rights reserved.