This repository has been archived by the owner on May 27, 2021. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 17
/
Copy pathindex.js
72 lines (61 loc) · 3.17 KB
/
index.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
const selectorParser = require('postcss-selector-parser');
module.exports = function() {
return function({addVariant, theme, e, prefix}) {
const darkSelector = theme('darkSelector', '.mode-dark');
addVariant('dark', ({modifySelectors, separator}) => {
modifySelectors(({selector}) => {
return selectorParser((selectors) => {
selectors.walkClasses((sel) => {
sel.value = `dark${separator}${sel.value}`;
sel.parent.insertBefore(sel, selectorParser().astSync(prefix(`${darkSelector} `)));
});
}).processSync(selector);
});
});
addVariant('dark-hover', ({modifySelectors, separator}) => {
modifySelectors(({className}) => {
return `${darkSelector} .${e(`dark-hover${separator}${className}`)}:hover, ${darkSelector}.${e(`dark-hover${separator}${className}`)}:hover`;
});
});
addVariant('dark-focus', ({modifySelectors, separator}) => {
modifySelectors(({className}) => {
return `${darkSelector} .${e(`dark-focus${separator}${className}`)}:focus, ${darkSelector}.${e(`dark-focus${separator}${className}`)}:focus`;
});
});
addVariant('dark-active', ({modifySelectors, separator}) => {
modifySelectors(({className}) => {
return `${darkSelector} .${e(`dark-active${separator}${className}`)}:active, ${darkSelector}.${e(`dark-active${separator}${className}`)}:active`;
});
});
addVariant('dark-disabled', ({modifySelectors, separator}) => {
modifySelectors(({className}) => {
return `${darkSelector} .${e(`dark-disabled${separator}${className}`)}:disabled, ${darkSelector}.${e(`dark-disabled${separator}${className}`)}:disabled`;
});
});
addVariant('dark-group-hover', ({modifySelectors, separator}) => {
modifySelectors(({className}) => {
return `${darkSelector} .group:hover .${e(`dark-group-hover${separator}${className}`)}, ${darkSelector}.group:hover .${e(`dark-group-hover${separator}${className}`)}`;
});
});
addVariant('dark-focus-within', ({modifySelectors, separator}) => {
modifySelectors(({className}) => {
return `${darkSelector} .${e(`dark-focus-within${separator}${className}`)}:focus-within, ${darkSelector}.${e(`dark-focus-within${separator}${className}`)}:focus-within`;
});
});
addVariant('dark-even', ({modifySelectors, separator}) => {
modifySelectors(({className}) => {
return `${darkSelector} .${e(`dark-even${separator}${className}`)}:nth-child(even), ${darkSelector}.${e(`dark-even${separator}${className}`)}:nth-child(even)`;
});
});
addVariant('dark-odd', ({modifySelectors, separator}) => {
modifySelectors(({className}) => {
return `${darkSelector} .${e(`dark-odd${separator}${className}`)}:nth-child(odd), ${darkSelector}.${e(`dark-odd${separator}${className}`)}:nth-child(odd)`;
});
});
addVariant('dark-placeholder', ({modifySelectors, separator}) => {
modifySelectors(({className}) => {
return `${darkSelector} .${e(`dark-placeholder${separator}${className}`)}::placeholder, ${darkSelector}.${e(`dark-placeholder${separator}${className}`)}::placeholder`;
});
});
};
};