From 3488e0526269b985e3e0c7be96e146a1d3d2b0e7 Mon Sep 17 00:00:00 2001 From: MayankSharma-2812 Date: Wed, 8 Jul 2026 21:16:48 +0530 Subject: [PATCH] fix: support decimal values in transformOrigin string parser --- .../StyleSheet/__tests__/processTransformOrigin-itest.js | 5 +++++ .../Libraries/StyleSheet/processTransformOrigin.js | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/packages/react-native/Libraries/StyleSheet/__tests__/processTransformOrigin-itest.js b/packages/react-native/Libraries/StyleSheet/__tests__/processTransformOrigin-itest.js index 976060faab26..45ac69da31ee 100644 --- a/packages/react-native/Libraries/StyleSheet/__tests__/processTransformOrigin-itest.js +++ b/packages/react-native/Libraries/StyleSheet/__tests__/processTransformOrigin-itest.js @@ -113,5 +113,10 @@ describe('processTransformOrigin', () => { processTransformOrigin('top 30% center'); }).toThrow('Could not parse transform-origin: top 30% center'); }); + it('should handle decimal percentage and pixel values', () => { + expect(processTransformOrigin('50.5% 30.2%')).toEqual(['50.5%', '30.2%', 0]); + expect(processTransformOrigin('12.5px 7.5px')).toEqual([12.5, 7.5, 0]); + 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 75e4acacbd60..c804fe06ba6f 100644 --- a/packages/react-native/Libraries/StyleSheet/processTransformOrigin.js +++ b/packages/react-native/Libraries/StyleSheet/processTransformOrigin.js @@ -11,7 +11,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+(?:%|px)|0)/gi; +const TRANSFORM_ORIGIN_REGEX = /(top|bottom|left|right|center|\d*\.?\d+(?:%|px)|0)/gi; const INDEX_X = 0; const INDEX_Y = 1;