Skip to content

Commit 0f56df4

Browse files
authored
fix: remove unnecessary polyfills (#5)
removes some unnecessary polyfills when building CSS values. `marginBlock` / `marginInline` / `paddingBlock` / `paddingInline` have been available in all browsers since April 2021. `maxSize` and `minSize` don't appear to be real CSS properties, and would be better suited to be configured as custom shorthands in the stitches config. this resolves an issue with the "splitBySpace" approach that does not correctly handle `!important`
1 parent 7039e2e commit 0f56df4

File tree

2 files changed

+20
-31
lines changed

2 files changed

+20
-31
lines changed
Lines changed: 0 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,3 @@
1-
const splitBySpace = /\s+(?![^()]*\))/
2-
const split = (fn) => (data) => fn(...(typeof data === 'string' ? String(data).split(splitBySpace) : [data]))
3-
41
export const toPolyfilledValue = {
52
// prefixed properties
63
appearance: (d) => ({ WebkitAppearance: d, appearance: d }),
@@ -15,12 +12,4 @@ export const toPolyfilledValue = {
1512
maskSize: (d) => ({ WebkitMaskSize: d, maskSize: d }),
1613
textSizeAdjust: (d) => ({ WebkitTextSizeAdjust: d, textSizeAdjust: d }),
1714
userSelect: (d) => ({ WebkitUserSelect: d, userSelect: d }),
18-
19-
// logical properties
20-
marginBlock: split((s, e) => ({ marginBlockStart: s, marginBlockEnd: e || s })),
21-
marginInline: split((s, e) => ({ marginInlineStart: s, marginInlineEnd: e || s })),
22-
maxSize: split((b, i) => ({ maxBlockSize: b, maxInlineSize: i || b })),
23-
minSize: split((b, i) => ({ minBlockSize: b, minInlineSize: i || b })),
24-
paddingBlock: split((s, e) => ({ paddingBlockStart: s, paddingBlockEnd: e || s })),
25-
paddingInline: split((s, e) => ({ paddingInlineStart: s, paddingInlineEnd: e || s })),
2615
}

packages/core/tests/universal-logical-properties.js

Lines changed: 20 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -9,18 +9,18 @@ describe('Logical Properties', () => {
99
marginBlock: 0,
1010
},
1111
'y-element': {
12-
marginBlock: 10,
12+
marginBlock: '10px !important',
1313
},
1414
'z-element': {
1515
marginBlock: '5px 10px',
1616
},
1717
})()
1818

1919
expect(toString()).toBe(
20-
`--sxs{--sxs:1 IvBLl}@media{` +
21-
`x-element{margin-block-start:0;margin-block-end:0}` +
22-
`y-element{margin-block-start:10px;margin-block-end:10px}` +
23-
`z-element{margin-block-start:5px;margin-block-end:10px}` +
20+
`--sxs{--sxs:1 fXyjwi}@media{` +
21+
`x-element{margin-block:0}` +
22+
`y-element{margin-block:10px !important}` +
23+
`z-element{margin-block:5px 10px}` +
2424
`}`
2525
)
2626
})
@@ -33,18 +33,18 @@ describe('Logical Properties', () => {
3333
marginInline: 0,
3434
},
3535
'y-element': {
36-
marginInline: 10,
36+
marginInline: '10px !important',
3737
},
3838
'z-element': {
3939
marginInline: '5px 10px',
4040
},
4141
})()
4242

4343
expect(toString()).toBe(
44-
`--sxs{--sxs:1 eNPHKF}@media{` +
45-
`x-element{margin-inline-start:0;margin-inline-end:0}` +
46-
`y-element{margin-inline-start:10px;margin-inline-end:10px}` +
47-
`z-element{margin-inline-start:5px;margin-inline-end:10px}` +
44+
`--sxs{--sxs:1 ghnYnm}@media{` +
45+
`x-element{margin-inline:0}` +
46+
`y-element{margin-inline:10px !important}` +
47+
`z-element{margin-inline:5px 10px}` +
4848
`}`
4949
)
5050
})
@@ -57,18 +57,18 @@ describe('Logical Properties', () => {
5757
paddingBlock: 0,
5858
},
5959
'y-element': {
60-
paddingBlock: 10,
60+
paddingBlock: '10px !important',
6161
},
6262
'z-element': {
6363
paddingBlock: '5px 10px',
6464
},
6565
})()
6666

6767
expect(toString()).toBe(
68-
`--sxs{--sxs:1 kcHEgy}@media{` +
69-
`x-element{padding-block-start:0;padding-block-end:0}` +
70-
`y-element{padding-block-start:10px;padding-block-end:10px}` +
71-
`z-element{padding-block-start:5px;padding-block-end:10px}` +
68+
`--sxs{--sxs:1 gDAiNt}@media{` +
69+
`x-element{padding-block:0}` +
70+
`y-element{padding-block:10px !important}` +
71+
`z-element{padding-block:5px 10px}` +
7272
`}`
7373
)
7474
})
@@ -81,18 +81,18 @@ describe('Logical Properties', () => {
8181
paddingInline: 0,
8282
},
8383
'y-element': {
84-
paddingInline: 10,
84+
paddingInline: '10px !important',
8585
},
8686
'z-element': {
8787
paddingInline: '5px 10px',
8888
},
8989
})()
9090

9191
expect(toString()).toBe(
92-
`--sxs{--sxs:1 cVrbiG}@media{` +
93-
`x-element{padding-inline-start:0;padding-inline-end:0}` +
94-
`y-element{padding-inline-start:10px;padding-inline-end:10px}` +
95-
`z-element{padding-inline-start:5px;padding-inline-end:10px}` +
92+
`--sxs{--sxs:1 geOKtd}@media{` +
93+
`x-element{padding-inline:0}` +
94+
`y-element{padding-inline:10px !important}` +
95+
`z-element{padding-inline:5px 10px}` +
9696
`}`
9797
)
9898
})

0 commit comments

Comments
 (0)