diff --git a/packages/react-native/Libraries/StyleSheet/__tests__/processTransformOrigin-itest.js b/packages/react-native/Libraries/StyleSheet/__tests__/processTransformOrigin-itest.js index 81a882f4175a..318b3f9e088d 100644 --- a/packages/react-native/Libraries/StyleSheet/__tests__/processTransformOrigin-itest.js +++ b/packages/react-native/Libraries/StyleSheet/__tests__/processTransformOrigin-itest.js @@ -122,5 +122,16 @@ describe('processTransformOrigin', () => { expect(processTransformOrigin('12.5px 7.5px')).toEqual([12.5, 7.5, 0]); expect(processTransformOrigin('.5% .5px')).toEqual(['.5%', 0.5, 0]); }); + it('should preserve negative percentage and pixel values', () => { + expect(processTransformOrigin('-50.5% -30.2%')).toEqual([ + '-50.5%', + '-30.2%', + 0, + ]); + expect(processTransformOrigin('-12.5px -7.5px -2.5px')).toEqual([ + -12.5, -7.5, -2.5, + ]); + expect(processTransformOrigin('-.5% -.5px')).toEqual(['-.5%', -0.5, 0]); + }); }); }); diff --git a/packages/react-native/Libraries/StyleSheet/processTransformOrigin.js b/packages/react-native/Libraries/StyleSheet/processTransformOrigin.js index 96cd040d8142..5c132d92ae43 100644 --- a/packages/react-native/Libraries/StyleSheet/processTransformOrigin.js +++ b/packages/react-native/Libraries/StyleSheet/processTransformOrigin.js @@ -12,7 +12,7 @@ import invariant from 'invariant'; // Pre-compiled regex pattern for performance - avoids regex compilation on each call const TRANSFORM_ORIGIN_REGEX = - /(top|bottom|left|right|center|\d*\.?\d+(?:%|px)|0)/gi; + /(top|bottom|left|right|center|-?\d*\.?\d+(?:%|px)|0)/gi; const INDEX_X = 0; const INDEX_Y = 1;