Skip to content

Commit 59a0984

Browse files
committed
2 parents c9a6a88 + 921962b commit 59a0984

File tree

2 files changed

+61
-10
lines changed

2 files changed

+61
-10
lines changed

index.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,9 +11,9 @@ module.exports = postcss.plugin('postcss-extract-value', function (opts) {
1111
var reCSSVariable = /^var\(-{2}\w{1}[\w+-]*/;
1212
var reHex = /#(\w{6}|\w{3})/;
1313
var reRgb = /rgba?\([\d,.\s]+\)/;
14-
var reHls = /hsla?\(\s?[0-9]{1,3},\s?(([0-9]{1,3})+%,\s?){2}[0-9.]+\s?\)/;
14+
var reHsl = /hsla?\(\s?[0-9]{1,3},\s?(([0-9]{1,3})+%,\s?){2}[0-9.]+\s?\)/;
1515
var reExtract = new RegExp(reHex.source + '|' + reRgb.source + '|' +
16-
reHls.source + '|' + reColorKeywords.source, 'g');
16+
reHsl.source + '|' + reColorKeywords.source, 'g');
1717

1818
// Options
1919
var filterByProps = opts.filterByProps;

test.js

Lines changed: 59 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -50,20 +50,25 @@ test('repeated values', t => {
5050
return run(t, input, output, optDefault);
5151
});
5252

53-
test('option "onlyColor"', t => {
53+
/** *************Color types*********************** **/
54+
test('HSL', t => {
55+
let input = `.foo {
56+
border: 1px solid hsl(120,100%,50%, 0.5);
57+
}`;
58+
let output = `:root {
59+
--border-1: hsl(120,100%,50%, 0.5);\n}\n.foo {
60+
border: 1px solid var(--border-1);
61+
}`;
62+
return run(t, input, output, { onlyColor: true });
63+
});
64+
65+
test('HSLA', t => {
5466
let input = `.foo {
55-
color: #000;
5667
border: 1px solid hsla(120,100%,50%, 0.5);
57-
width: 10px;
58-
display: block;
5968
}`;
6069
let output = `:root {
61-
--color-1: #000;
6270
--border-1: hsla(120,100%,50%, 0.5);\n}\n.foo {
63-
color: var(--color-1);
6471
border: 1px solid var(--border-1);
65-
width: 10px;
66-
display: block;
6772
}`;
6873
return run(t, input, output, { onlyColor: true });
6974
});
@@ -79,6 +84,52 @@ test('color keyword', t => {
7984
return run(t, input, output, { onlyColor: true });
8085
});
8186

87+
test('RGB', t => {
88+
let input = `.foo {
89+
border: 1px solid rgb(120, 100, 50);
90+
}`;
91+
let output = `:root {
92+
--border-1: rgb(120, 100, 50);\n}\n.foo {
93+
border: 1px solid var(--border-1);
94+
}`;
95+
return run(t, input, output, { onlyColor: true });
96+
});
97+
98+
test('RGBA', t => {
99+
let input = `.foo {
100+
border: 1px solid rgba(120, 100, 50, 0.4);
101+
}`;
102+
let output = `:root {
103+
--border-1: rgba(120, 100, 50, 0.4);\n}\n.foo {
104+
border: 1px solid var(--border-1);
105+
}`;
106+
return run(t, input, output, { onlyColor: true });
107+
});
108+
109+
test('short hex', t => {
110+
let input = `.foo {
111+
border: 1px solid #000;
112+
}`;
113+
let output = `:root {
114+
--border-1: #000;\n}\n.foo {
115+
border: 1px solid var(--border-1);
116+
}`;
117+
return run(t, input, output, { onlyColor: true });
118+
});
119+
120+
test('long hex', t => {
121+
let input = `.foo {
122+
border: 1px solid #101113;
123+
}`;
124+
let output = `:root {
125+
--border-1: #101113;\n}\n.foo {
126+
border: 1px solid var(--border-1);
127+
}`;
128+
return run(t, input, output, { onlyColor: true });
129+
});
130+
131+
/** ************************************************** **/
132+
82133
test('exist root element', t => {
83134
let input = `:root {
84135
--base-font-size: 16px;

0 commit comments

Comments
 (0)