@arsil_malek/rn-scale-window
Version:
A lightweight and powerful utility for responsive scaling in React Native apps. Easily handle consistent font sizes, heights, widths, and layouts across all screen sizes.
26 lines (25 loc) • 1.08 kB
JavaScript
import { Dimensions, PixelRatio, Platform } from 'react-native';
var _a = Dimensions.get('window'), SCREEN_WIDTH = _a.width, SCREEN_HEIGHT = _a.height;
// Reference values based on standard device (e.g., iPhone 11: 375 x 812)
var BASE_WIDTH = 375;
var BASE_HEIGHT = 812;
var scale = function (size) { return (SCREEN_WIDTH / BASE_WIDTH) * size; };
var verticalScale = function (size) { return (SCREEN_HEIGHT / BASE_HEIGHT) * size; };
var moderateScale = function (size, factor) {
if (factor === void 0) { factor = 0.5; }
return size + (scale(size) - size) * factor;
};
var fontScale = function (size) { return size * PixelRatio.getFontScale(); };
var isSmallDevice = SCREEN_WIDTH < 360;
var isLargeDevice = SCREEN_WIDTH > 768;
var isTablet = Platform.OS === 'ios'
? SCREEN_WIDTH >= 768 && SCREEN_HEIGHT >= 1024
: SCREEN_WIDTH >= 600;
var DEVICE = {
width: SCREEN_WIDTH,
height: SCREEN_HEIGHT,
isSmallDevice: isSmallDevice,
isLargeDevice: isLargeDevice,
isTablet: isTablet,
};
export { scale, verticalScale, moderateScale, fontScale, DEVICE, };