Skip to content

Commit 1cae0ef

Browse files
committed
feat: custom variant support
1 parent 57f300c commit 1cae0ef

20 files changed

+233
-36
lines changed

src/CSSPseudoClassList.js

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
/**
2+
* @copyright 2016-present, React CSS Components team
3+
* @flow
4+
*/
5+
6+
let CSSPseudoClassList: {[name: string]: boolean} = {
7+
focus: true,
8+
hover: true,
9+
active: true,
10+
checked: true,
11+
default: true,
12+
disabled: true,
13+
empty: true,
14+
enabled: true,
15+
firstChild: true,
16+
fullscreen: true,
17+
indeterminate: true,
18+
invalid: true,
19+
lastChild: true,
20+
left: true,
21+
link: true,
22+
onlyChild: true,
23+
optional: true,
24+
required: true,
25+
right: true,
26+
root: true,
27+
scope: true,
28+
target: true,
29+
valid: true,
30+
visited: true,
31+
};
32+
33+
export default CSSPseudoClassList;

src/HTMLTagList.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
* @flow
44
*/
55

6-
let HTMLTagList: {[name: string]: ?boolean} = {
6+
let HTMLTagList: {[name: string]: boolean} = {
77
'a': true,
88
'abbr': true,
99
'acronym': true,
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
1-
.Label > .Hint,.Paragraph,.X:hover {
1+
.Label > .Hint,.Paragraph,.X:hover,.X__hover {
22
color: red
33
}
Lines changed: 20 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,30 @@
11
import React from "react";
22
import styles from "css";
3-
export function Label(props) {
4-
return React.createElement("div", { ...props, className: styles.Label
3+
export function Label({
4+
variant,
5+
...props }) {
6+
let className = styles.Label;
7+
return React.createElement("div", { ...props, className
58
});
69
}
7-
export function Hint(props) {
8-
return React.createElement("div", { ...props, className: styles.Hint
10+
export function Hint({
11+
variant,
12+
...props }) {
13+
let className = styles.Hint;
14+
return React.createElement("div", { ...props, className
915
});
1016
}
11-
export function Paragraph(props) {
12-
return React.createElement("div", { ...props, className: styles.Paragraph
17+
export function Paragraph({
18+
variant,
19+
...props }) {
20+
let className = styles.Paragraph;
21+
return React.createElement("div", { ...props, className
1322
});
1423
}
15-
export function X(props) {
16-
return React.createElement("div", { ...props, className: styles.X
24+
export function X({
25+
variant,
26+
...props }) {
27+
let className = styles.X + (variant.hover ? ' ' + styles.X__hover : '');
28+
return React.createElement("div", { ...props, className
1729
});
1830
}

src/__tests__/fixtures/custom-base.js

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,9 @@
11
import React from "react";
22
import styles from "css";
3-
export function Label(props) {
4-
return React.createElement("span", { ...props, className: styles.Label
3+
export function Label({
4+
variant,
5+
...props }) {
6+
let className = styles.Label;
7+
return React.createElement("span", { ...props, className
58
});
69
}
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
.Label__important > span {
2+
color: red
3+
}
4+
.Label,.Label__shadow {
5+
color: white
6+
}
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
import React from "react";
2+
import styles from "css";
3+
export function Label({
4+
variant,
5+
...props }) {
6+
let className = styles.Label + (variant.important ? ' ' + styles.Label__important : '') + (variant.shadow ? ' ' + styles.Label__shadow : '');
7+
return React.createElement("div", { ...props, className
8+
});
9+
}
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
Label:important > span {
2+
color: red;
3+
}
4+
Label, Label:shadow {
5+
color: white;
6+
}
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
.Label__important {
2+
color: red
3+
}
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
import React from "react";
2+
import styles from "css";
3+
export function Label({
4+
variant,
5+
...props }) {
6+
let className = styles.Label + (variant.important ? ' ' + styles.Label__important : '');
7+
return React.createElement("div", { ...props, className
8+
});
9+
}
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
Label:important {
2+
color: red;
3+
}
Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,10 @@
11
import React from "react";
22
import styles from "css";
33
import { Label as Label__Base } from "lib";
4-
export function Label(props) {
5-
return React.createElement(Label__Base, { ...props, className: styles.Label
4+
export function Label({
5+
variant,
6+
...props }) {
7+
let className = styles.Label;
8+
return React.createElement(Label__Base, { ...props, className
69
});
710
}
Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,10 @@
11
import React from "react";
22
import styles from "css";
33
import { default as Label__Base } from "somelib/Label";
4-
export function Label(props) {
5-
return React.createElement(Label__Base, { ...props, className: styles.Label
4+
export function Label({
5+
variant,
6+
...props }) {
7+
let className = styles.Label;
8+
return React.createElement(Label__Base, { ...props, className
69
});
710
}
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
1-
.Label:hover {
1+
.Label:hover,.Label__hover {
22
color: red
33
}

src/__tests__/fixtures/only-pseudo.js

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,9 @@
11
import React from "react";
22
import styles from "css";
3-
export function Label(props) {
4-
return React.createElement("div", { ...props, className: styles.Label
3+
export function Label({
4+
variant,
5+
...props }) {
6+
let className = styles.Label + (variant.hover ? ' ' + styles.Label__hover : '');
7+
return React.createElement("div", { ...props, className
58
});
69
}
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
.Label {
22
color: red
33
}
4-
.Label:hover {
4+
.Label:hover,.Label__hover {
55
color: red
66
}
Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,9 @@
11
import React from "react";
22
import styles from "css";
3-
export function Label(props) {
4-
return React.createElement("div", { ...props, className: styles.Label
3+
export function Label({
4+
variant,
5+
...props }) {
6+
let className = styles.Label + (variant.hover ? ' ' + styles.Label__hover : '');
7+
return React.createElement("div", { ...props, className
58
});
69
}

src/__tests__/fixtures/simple.js

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,9 @@
11
import React from "react";
22
import styles from "css";
3-
export function Label(props) {
4-
return React.createElement("div", { ...props, className: styles.Label
3+
export function Label({
4+
variant,
5+
...props }) {
6+
let className = styles.Label;
7+
return React.createElement("div", { ...props, className
58
});
69
}
Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,9 @@
11
import React from "react";
22
import styles from "css";
3-
export function Label(props) {
4-
return React.createElement("div", { ...props, className: styles.Label
3+
export function Label({
4+
variant,
5+
...props }) {
6+
let className = styles.Label;
7+
return React.createElement("div", { ...props, className
58
});
69
}

0 commit comments

Comments
 (0)