Skip to content

Commit 436f485

Browse files
authored
Merge pull request #214 from tailwindcss/reorder-border-widths
[0.2] Sort border width utilities from most general to most specific
2 parents 80281a3 + ddfa8de commit 436f485

File tree

2 files changed

+109
-99
lines changed

2 files changed

+109
-99
lines changed

__tests__/fixtures/tailwind-output.css

Lines changed: 80 additions & 80 deletions
Original file line numberDiff line numberDiff line change
@@ -1642,6 +1642,22 @@ button,
16421642
border-width: 0;
16431643
}
16441644

1645+
.border-2 {
1646+
border-width: 2px;
1647+
}
1648+
1649+
.border-4 {
1650+
border-width: 4px;
1651+
}
1652+
1653+
.border-8 {
1654+
border-width: 8px;
1655+
}
1656+
1657+
.border {
1658+
border-width: 1px;
1659+
}
1660+
16451661
.border-t-0 {
16461662
border-top-width: 0;
16471663
}
@@ -1658,10 +1674,6 @@ button,
16581674
border-left-width: 0;
16591675
}
16601676

1661-
.border-2 {
1662-
border-width: 2px;
1663-
}
1664-
16651677
.border-t-2 {
16661678
border-top-width: 2px;
16671679
}
@@ -1678,10 +1690,6 @@ button,
16781690
border-left-width: 2px;
16791691
}
16801692

1681-
.border-4 {
1682-
border-width: 4px;
1683-
}
1684-
16851693
.border-t-4 {
16861694
border-top-width: 4px;
16871695
}
@@ -1698,10 +1706,6 @@ button,
16981706
border-left-width: 4px;
16991707
}
17001708

1701-
.border-8 {
1702-
border-width: 8px;
1703-
}
1704-
17051709
.border-t-8 {
17061710
border-top-width: 8px;
17071711
}
@@ -1718,10 +1722,6 @@ button,
17181722
border-left-width: 8px;
17191723
}
17201724

1721-
.border {
1722-
border-width: 1px;
1723-
}
1724-
17251725
.border-t {
17261726
border-top-width: 1px;
17271727
}
@@ -4762,6 +4762,22 @@ button,
47624762
border-width: 0;
47634763
}
47644764

4765+
.sm\:border-2 {
4766+
border-width: 2px;
4767+
}
4768+
4769+
.sm\:border-4 {
4770+
border-width: 4px;
4771+
}
4772+
4773+
.sm\:border-8 {
4774+
border-width: 8px;
4775+
}
4776+
4777+
.sm\:border {
4778+
border-width: 1px;
4779+
}
4780+
47654781
.sm\:border-t-0 {
47664782
border-top-width: 0;
47674783
}
@@ -4778,10 +4794,6 @@ button,
47784794
border-left-width: 0;
47794795
}
47804796

4781-
.sm\:border-2 {
4782-
border-width: 2px;
4783-
}
4784-
47854797
.sm\:border-t-2 {
47864798
border-top-width: 2px;
47874799
}
@@ -4798,10 +4810,6 @@ button,
47984810
border-left-width: 2px;
47994811
}
48004812

4801-
.sm\:border-4 {
4802-
border-width: 4px;
4803-
}
4804-
48054813
.sm\:border-t-4 {
48064814
border-top-width: 4px;
48074815
}
@@ -4818,10 +4826,6 @@ button,
48184826
border-left-width: 4px;
48194827
}
48204828

4821-
.sm\:border-8 {
4822-
border-width: 8px;
4823-
}
4824-
48254829
.sm\:border-t-8 {
48264830
border-top-width: 8px;
48274831
}
@@ -4838,10 +4842,6 @@ button,
48384842
border-left-width: 8px;
48394843
}
48404844

4841-
.sm\:border {
4842-
border-width: 1px;
4843-
}
4844-
48454845
.sm\:border-t {
48464846
border-top-width: 1px;
48474847
}
@@ -7883,6 +7883,22 @@ button,
78837883
border-width: 0;
78847884
}
78857885

7886+
.md\:border-2 {
7887+
border-width: 2px;
7888+
}
7889+
7890+
.md\:border-4 {
7891+
border-width: 4px;
7892+
}
7893+
7894+
.md\:border-8 {
7895+
border-width: 8px;
7896+
}
7897+
7898+
.md\:border {
7899+
border-width: 1px;
7900+
}
7901+
78867902
.md\:border-t-0 {
78877903
border-top-width: 0;
78887904
}
@@ -7899,10 +7915,6 @@ button,
78997915
border-left-width: 0;
79007916
}
79017917

7902-
.md\:border-2 {
7903-
border-width: 2px;
7904-
}
7905-
79067918
.md\:border-t-2 {
79077919
border-top-width: 2px;
79087920
}
@@ -7919,10 +7931,6 @@ button,
79197931
border-left-width: 2px;
79207932
}
79217933

7922-
.md\:border-4 {
7923-
border-width: 4px;
7924-
}
7925-
79267934
.md\:border-t-4 {
79277935
border-top-width: 4px;
79287936
}
@@ -7939,10 +7947,6 @@ button,
79397947
border-left-width: 4px;
79407948
}
79417949

7942-
.md\:border-8 {
7943-
border-width: 8px;
7944-
}
7945-
79467950
.md\:border-t-8 {
79477951
border-top-width: 8px;
79487952
}
@@ -7959,10 +7963,6 @@ button,
79597963
border-left-width: 8px;
79607964
}
79617965

7962-
.md\:border {
7963-
border-width: 1px;
7964-
}
7965-
79667966
.md\:border-t {
79677967
border-top-width: 1px;
79687968
}
@@ -11004,6 +11004,22 @@ button,
1100411004
border-width: 0;
1100511005
}
1100611006

11007+
.lg\:border-2 {
11008+
border-width: 2px;
11009+
}
11010+
11011+
.lg\:border-4 {
11012+
border-width: 4px;
11013+
}
11014+
11015+
.lg\:border-8 {
11016+
border-width: 8px;
11017+
}
11018+
11019+
.lg\:border {
11020+
border-width: 1px;
11021+
}
11022+
1100711023
.lg\:border-t-0 {
1100811024
border-top-width: 0;
1100911025
}
@@ -11020,10 +11036,6 @@ button,
1102011036
border-left-width: 0;
1102111037
}
1102211038

11023-
.lg\:border-2 {
11024-
border-width: 2px;
11025-
}
11026-
1102711039
.lg\:border-t-2 {
1102811040
border-top-width: 2px;
1102911041
}
@@ -11040,10 +11052,6 @@ button,
1104011052
border-left-width: 2px;
1104111053
}
1104211054

11043-
.lg\:border-4 {
11044-
border-width: 4px;
11045-
}
11046-
1104711055
.lg\:border-t-4 {
1104811056
border-top-width: 4px;
1104911057
}
@@ -11060,10 +11068,6 @@ button,
1106011068
border-left-width: 4px;
1106111069
}
1106211070

11063-
.lg\:border-8 {
11064-
border-width: 8px;
11065-
}
11066-
1106711071
.lg\:border-t-8 {
1106811072
border-top-width: 8px;
1106911073
}
@@ -11080,10 +11084,6 @@ button,
1108011084
border-left-width: 8px;
1108111085
}
1108211086

11083-
.lg\:border {
11084-
border-width: 1px;
11085-
}
11086-
1108711087
.lg\:border-t {
1108811088
border-top-width: 1px;
1108911089
}
@@ -14125,6 +14125,22 @@ button,
1412514125
border-width: 0;
1412614126
}
1412714127

14128+
.xl\:border-2 {
14129+
border-width: 2px;
14130+
}
14131+
14132+
.xl\:border-4 {
14133+
border-width: 4px;
14134+
}
14135+
14136+
.xl\:border-8 {
14137+
border-width: 8px;
14138+
}
14139+
14140+
.xl\:border {
14141+
border-width: 1px;
14142+
}
14143+
1412814144
.xl\:border-t-0 {
1412914145
border-top-width: 0;
1413014146
}
@@ -14141,10 +14157,6 @@ button,
1414114157
border-left-width: 0;
1414214158
}
1414314159

14144-
.xl\:border-2 {
14145-
border-width: 2px;
14146-
}
14147-
1414814160
.xl\:border-t-2 {
1414914161
border-top-width: 2px;
1415014162
}
@@ -14161,10 +14173,6 @@ button,
1416114173
border-left-width: 2px;
1416214174
}
1416314175

14164-
.xl\:border-4 {
14165-
border-width: 4px;
14166-
}
14167-
1416814176
.xl\:border-t-4 {
1416914177
border-top-width: 4px;
1417014178
}
@@ -14181,10 +14189,6 @@ button,
1418114189
border-left-width: 4px;
1418214190
}
1418314191

14184-
.xl\:border-8 {
14185-
border-width: 8px;
14186-
}
14187-
1418814192
.xl\:border-t-8 {
1418914193
border-top-width: 8px;
1419014194
}
@@ -14201,10 +14205,6 @@ button,
1420114205
border-left-width: 8px;
1420214206
}
1420314207

14204-
.xl\:border {
14205-
border-width: 1px;
14206-
}
14207-
1420814208
.xl\:border-t {
1420914209
border-top-width: 1px;
1421014210
}

src/generators/borderWidths.js

Lines changed: 29 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,28 +1,38 @@
11
import _ from 'lodash'
22
import defineClasses from '../util/defineClasses'
33

4-
function sizedBorder(width, modifier) {
5-
modifier = modifier === 'default' ? '' : `-${modifier}`
4+
function defineBorderWidthUtilities(borderWidths) {
5+
const generators = [
6+
(width, modifier) =>
7+
defineClasses({
8+
[`border${modifier}`]: {
9+
'border-width': `${width}`,
10+
},
11+
}),
12+
(width, modifier) =>
13+
defineClasses({
14+
[`border-t${modifier}`]: {
15+
'border-top-width': `${width}`,
16+
},
17+
[`border-r${modifier}`]: {
18+
'border-right-width': `${width}`,
19+
},
20+
[`border-b${modifier}`]: {
21+
'border-bottom-width': `${width}`,
22+
},
23+
[`border-l${modifier}`]: {
24+
'border-left-width': `${width}`,
25+
},
26+
}),
27+
]
628

7-
return defineClasses({
8-
[`border${modifier}`]: {
9-
'border-width': `${width}`,
10-
},
11-
[`border-t${modifier}`]: {
12-
'border-top-width': `${width}`,
13-
},
14-
[`border-r${modifier}`]: {
15-
'border-right-width': `${width}`,
16-
},
17-
[`border-b${modifier}`]: {
18-
'border-bottom-width': `${width}`,
19-
},
20-
[`border-l${modifier}`]: {
21-
'border-left-width': `${width}`,
22-
},
29+
return _.flatMap(generators, generator => {
30+
return _.flatMap(borderWidths, (width, modifier) => {
31+
return generator(width, modifier === 'default' ? '' : `-${modifier}`)
32+
})
2333
})
2434
}
2535

2636
module.exports = function({ borderWidths }) {
27-
return _.flatMap(borderWidths, sizedBorder)
37+
return defineBorderWidthUtilities(borderWidths)
2838
}

0 commit comments

Comments
 (0)