Skip to content

Commit 464a520

Browse files
thecrypticaceromainmenke
authored andcommitted
Allow :focus-visible to appear escaped in a selector
1 parent b565e3d commit 464a520

File tree

7 files changed

+71
-1
lines changed

7 files changed

+71
-1
lines changed

plugins/postcss-focus-visible/index.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import postcss from 'postcss';
22

3-
const selectorRegExp = /:focus-visible([^\w-]|$)/gi;
3+
const selectorRegExp = /(?<!\\):focus-visible([^\w-]|$)/gi;
44

55
export default postcss.plugin('postcss-focus-visible', opts => {
66
const replaceWith = String(Object(opts).replaceWith || '.focus-visible');

plugins/postcss-focus-visible/test/basic.css

+7
Original file line numberDiff line numberDiff line change
@@ -25,3 +25,10 @@ test :matches(test :focus-visible :focus-visible test) test {
2525
:focus-visibleignore {
2626
order: 3;
2727
}
28+
29+
.escaped\:focus-visible,
30+
.escaped\:times\:two\:focus-visible,
31+
.escaped\:focus-visible:focus-visible,
32+
.escaped\:times\:two:focus-visible {
33+
order: 4;
34+
}

plugins/postcss-focus-visible/test/basic.expect.css

+14
Original file line numberDiff line numberDiff line change
@@ -46,3 +46,17 @@ test :matches(test :focus-visible :focus-visible test) test {
4646
:focus-visibleignore {
4747
order: 3;
4848
}
49+
50+
.escaped\:focus-visible,
51+
.escaped\:times\:two\:focus-visible,
52+
.escaped\:focus-visible.focus-visible,
53+
.escaped\:times\:two.focus-visible {
54+
order: 4;
55+
}
56+
57+
.escaped\:focus-visible,
58+
.escaped\:times\:two\:focus-visible,
59+
.escaped\:focus-visible:focus-visible,
60+
.escaped\:times\:two:focus-visible {
61+
order: 4;
62+
}

plugins/postcss-focus-visible/test/basic.preserve.expect.css

+7
Original file line numberDiff line numberDiff line change
@@ -25,3 +25,10 @@ test :matches(test .focus-visible .focus-visible test) test {
2525
:focus-visibleignore {
2626
order: 3;
2727
}
28+
29+
.escaped\:focus-visible,
30+
.escaped\:times\:two\:focus-visible,
31+
.escaped\:focus-visible.focus-visible,
32+
.escaped\:times\:two.focus-visible {
33+
order: 4;
34+
}

plugins/postcss-focus-visible/test/basic.replacewith.expect.css

+14
Original file line numberDiff line numberDiff line change
@@ -46,3 +46,17 @@ test :matches(test :focus-visible :focus-visible test) test {
4646
:focus-visibleignore {
4747
order: 3;
4848
}
49+
50+
.escaped\:focus-visible,
51+
.escaped\:times\:two\:focus-visible,
52+
.escaped\:focus-visible[focus-visible],
53+
.escaped\:times\:two[focus-visible] {
54+
order: 4;
55+
}
56+
57+
.escaped\:focus-visible,
58+
.escaped\:times\:two\:focus-visible,
59+
.escaped\:focus-visible:focus-visible,
60+
.escaped\:times\:two:focus-visible {
61+
order: 4;
62+
}

plugins/postcss-focus-visible/test/basic.replacewith.result.css

+14
Original file line numberDiff line numberDiff line change
@@ -46,3 +46,17 @@ test :matches(test :focus-visible :focus-visible test) test {
4646
:focus-visibleignore {
4747
order: 3;
4848
}
49+
50+
.escaped\:focus-visible,
51+
.escaped\:times\:two\:focus-visible,
52+
.escaped\:focus-visible[focus-visible],
53+
.escaped\:times\:two[focus-visible] {
54+
order: 4;
55+
}
56+
57+
.escaped\:focus-visible,
58+
.escaped\:times\:two\:focus-visible,
59+
.escaped\:focus-visible:focus-visible,
60+
.escaped\:times\:two:focus-visible {
61+
order: 4;
62+
}

plugins/postcss-focus-visible/test/basic.result.css

+14
Original file line numberDiff line numberDiff line change
@@ -46,3 +46,17 @@ test :matches(test :focus-visible :focus-visible test) test {
4646
:focus-visibleignore {
4747
order: 3;
4848
}
49+
50+
.escaped\:focus-visible,
51+
.escaped\:times\:two\:focus-visible,
52+
.escaped\:focus-visible.focus-visible,
53+
.escaped\:times\:two.focus-visible {
54+
order: 4;
55+
}
56+
57+
.escaped\:focus-visible,
58+
.escaped\:times\:two\:focus-visible,
59+
.escaped\:focus-visible:focus-visible,
60+
.escaped\:times\:two:focus-visible {
61+
order: 4;
62+
}

0 commit comments

Comments
 (0)