Skip to content

Commit d768110

Browse files
authored
Merge pull request #210 from wojtekmaj/0deg
Allow unitless zero values for angle-based transform functions
2 parents cf83af4 + 4712a2f commit d768110

3 files changed

Lines changed: 31 additions & 2 deletions

File tree

.changeset/fair-candles-grab.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
"css-to-react-native": patch
3+
---
4+
5+
Allow unitless zero values for angle-based transform functions like `rotate(0)`, `skewX(0)`, and `skewY(0)`.

src/__tests__/transform.ts

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -69,3 +69,27 @@ it('transforms skew(angle) to skewX and skewY', () => {
6969
transform: [{ skewY: '0deg' }, { skewX: '5deg' }],
7070
})
7171
})
72+
73+
it('transforms translate(0) to translateX and translateY', () => {
74+
expect(transformCss([['transform', 'translate(0)']])).toEqual({
75+
transform: [{ translateY: 0 }, { translateX: 0 }],
76+
})
77+
})
78+
79+
it('transforms rotate(0) to rotate', () => {
80+
expect(transformCss([['transform', 'rotate(0)']])).toEqual({
81+
transform: [{ rotate: '0deg' }],
82+
})
83+
})
84+
85+
it('transforms skewX(0) to skewX', () => {
86+
expect(transformCss([['transform', 'skewX(0)']])).toEqual({
87+
transform: [{ skewX: '0deg' }],
88+
})
89+
})
90+
91+
it('transforms skewY(0) to skewY', () => {
92+
expect(transformCss([['transform', 'skewY(0)']])).toEqual({
93+
transform: [{ skewY: '0deg' }],
94+
})
95+
})

src/tokenTypes.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ const numberRe = /^([+-]?(?:\d*\.)?\d+(?:e[+-]?\d+)?)$/i
3939
const lengthRe = /^(0$|(?:[+-]?(?:\d*\.)?\d+(?:e[+-]?\d+)?)(?=px$))/i
4040
const unsupportedUnitRe =
4141
/^([+-]?(?:\d*\.)?\d+(?:e[+-]?\d+)?(ch|em|ex|rem|vh|vw|vmin|vmax|cm|mm|in|pc|pt))$/i
42-
const angleRe = /^([+-]?(?:\d*\.)?\d+(?:e[+-]?\d+)?(?:deg|rad|grad|turn))$/i
42+
const angleRe = /^(0|[+-]?(?:\d*\.)?\d+(?:e[+-]?\d+)?(?:deg|rad|grad|turn))$/i
4343
const percentRe = /^([+-]?(?:\d*\.)?\d+(?:e[+-]?\d+)?%)$/i
4444

4545
const noopToken =
@@ -83,7 +83,7 @@ export const LENGTH: TokenDescriptor = regExpToken(lengthRe, Number)
8383
export const UNSUPPORTED_LENGTH_UNIT: TokenDescriptor =
8484
regExpToken(unsupportedUnitRe)
8585
export const ANGLE: TokenDescriptor = regExpToken(angleRe, (angle) =>
86-
angle.toLowerCase()
86+
angle === '0' ? '0deg' : angle.toLowerCase()
8787
)
8888
export const PERCENT: TokenDescriptor = regExpToken(percentRe)
8989
export const IDENT: TokenDescriptor = regExpToken(identRe)

0 commit comments

Comments
 (0)