UNPKG

react-native-size-matters

Version:

A React-Native utility belt for scaling the size your apps UI across different sized devices

20 lines (15 loc) 942 B
import { Dimensions } from 'react-native'; import { SIZE_MATTERS_BASE_WIDTH, SIZE_MATTERS_BASE_HEIGHT } from '@env'; const { width, height } = Dimensions.get('window'); const [shortDimension, longDimension] = width < height ? [width, height] : [height, width]; //Default guideline sizes are based on standard ~5" screen mobile device const guidelineBaseWidth = SIZE_MATTERS_BASE_WIDTH || 350; const guidelineBaseHeight = SIZE_MATTERS_BASE_HEIGHT || 680; export const scale = size => shortDimension / guidelineBaseWidth * size; export const verticalScale = size => longDimension / guidelineBaseHeight * size; export const moderateScale = (size, factor = 0.5) => size + (scale(size) - size) * factor; export const moderateVerticalScale = (size, factor = 0.5) => size + (verticalScale(size) - size) * factor; export const s = scale; export const vs = verticalScale; export const ms = moderateScale; export const mvs = moderateVerticalScale;