如何使颜色名称不会自动转换为Stylus中的十六进制值?

时间:2015-08-19 15:56:00

标签: colors stylus

我正在使用手写笔预处理器迭代for循环。我需要颜色类名和颜色值,我得到的十六进制值很好,但我的类名不理想。

$colors = red blue green orange;
for item in $colors {
    .{"" + item} {
        color: item;
    }
}

我得到了这个编译:

.#f00 {
  color: #f00;
}
.#00f {
  color: #00f;
}
.#008000 {
  color: #008000;
}
.#ffa500 {
  color: #ffa500;
}

但我的预期结果是:

.red {
   color: #f00; // or red
}
.blue { 
   color: #00F // or blue
}
// .. etc

我可以想象有一个名称保留的功能。

任何帮助表示赞赏。

1 个答案:

答案 0 :(得分:4)

如果您可以将原始颜色列表转换为一组字符串,则

$colors = 'red' 'blue' 'green' 'orange';
for item in $colors {
    .{item} {
        color: convert(item);
    }
}

产量

.red {
  color: #f00;
}
.blue {
  color: #00f;
}
.green {
  color: #008000;
}
.orange {
  color: #ffa500;
}

如果您将convert更改为unquote,则十六进制值将替换为您在列表中提供的名称。