forked from openedx/paragon
-
Notifications
You must be signed in to change notification settings - Fork 0
/
css-utilities.js
56 lines (48 loc) · 1.29 KB
/
css-utilities.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
/**
* Implements bg-variant mixin from bootstrap. Creates utility classes for background colors based on theme color.
*/
function bgVariant(token) {
const { attributes: { type, item }, name, actions } = token;
const parent = `.bg-${type}${item === 'base' ? '' : `-${item}`}`;
return `${parent} {
background-color: ${`var(--${name})`} !important;
}
a${parent}:hover,
a${parent}:focus,
button${parent}:hover,
button${parent}:focus {
background-color: ${actions.default} !important;
}
`;
}
/**
* Implements text-emphasis-variant mixin from bootstrap. Creates utility classes for text colors based on theme color.
*/
function textEmphasisVariant(token) {
const { attributes: { type, item }, name, actions } = token;
const parent = `.text-${type}${item === 'base' ? '' : `-${item}`}`;
return `${parent} {
color: ${`var(--${name})`} !important;
}
a${parent}:hover,
a${parent}:focus {
color: ${actions.default} !important;
}
`;
}
/**
* Creates utility class for border color.
*/
function borderColor(token) {
const { attributes: { type, item }, name } = token;
const className = `.border-${type}${item === 'base' ? '' : `-${item}`}`;
return `${className} {
border-color: ${`var(--${name})`} !important;
}
`;
}
module.exports = {
bgVariant,
textEmphasisVariant,
borderColor,
};