@gocodingnow/rn-native-base-boilerplate
Version:
React Native + Native Base Boilerplate
28 lines (21 loc) • 1.13 kB
text/typescript
import {Dimensions} from 'react-native'
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
let guidelineBaseWidth = parseInt(process.env.SIZE_MATTERS_BASE_WIDTH || '428', 10)
let guidelineBaseHeight = parseInt(process.env.SIZE_MATTERS_BASE_HEIGHT || '926', 10)
export const setSizeMattersBaseWidth = baseWidth => {
guidelineBaseWidth = baseWidth
}
export const setSizeMattersBaseHeight = baseHeight => {
guidelineBaseHeight = baseHeight
}
export const scale = (size: number) => (shortDimension / guidelineBaseWidth) * size
export const verticalScale = (size: number) => (longDimension / guidelineBaseHeight) * size
export const moderateScale = (size: number, factor = 0.5) => size + (scale(size) - size) * factor
export const moderateVerticalScale = (size: number, factor = 0.5) =>
size + (verticalScale(size) - size) * factor
export const s = scale
export const vs = verticalScale
export const ms = moderateScale
export const mvs = moderateVerticalScale