2.1.2 • Published 9 months ago

react-native-iphone-screen-helper v2.1.2

Weekly downloads
-
License
MIT
Repository
github
Last release
9 months ago

npm version

react-native-iphone-screen-helper

A library to help you design your react-native app for notched and dynamic island iPhones.

I forked this project to continue working on it. This project is a fork of https://www.npmjs.com/package/react-native-iphone-x-helper . The original repository is not maintained anymore.

The project will be continued in this repository. react-native-iphone-screen-helper is fully compatible. If you want to support the project feel free to contact me or create a pull request with your feature.

Installing

yarn add react-native-iphone-screen-helper

or

npm i react-native-iphone-screen-helper --save

API

ifIphoneX(iphoneXStyle, [regularStyle])

This method is for creating stylesheets with the iPhone X and later models, including those with dynamic islands, in mind.

Parameters

iphoneXStyle - the style to apply if you're on iPhone X or newer models with a notch or dynamic island.

regularStyle (optional) - the style to apply if you're not on iPhone X

Example

// in style.js

import { StyleSheet } from 'react-native';
import { ifIphoneX } from 'react-native-iphone-screen-helper'

export default StyleSheet.create({
    header:{
        position: 'absolute',
        top: 0,
        left: 0,
        right: 0,
        padding:10,
        height: 60,
        backgroundColor: 'transparent',
        ...ifIphoneX({
            paddingTop: 50
        }, {
            paddingTop: 20
        })
    },
});

isIphoneX()

returns - true if you're running on an iPhone X or a newer model with a notch or dynamic island.

Example

import { isIphoneX } from 'react-native-iphone-screen-helper'

// ...

if (isIphoneX()) {
    // do this...
} else {
    // do that...
}

getStatusBarHeight()

returns - the height of the status bar:

  • 62 for safe iPhone 16 Pro Max
  • 59 for safe iPhone 14 Pro, 14 Pro Max, 15, 15 Plus, 15 Pro, 15 Pro Max, 16, 16 Plus, 16 Pro
  • 50 for safe iPhone 12 Mini, 13 Mini
  • 47 for safe iPhone 12, 12 Pro, 12 Pro Max, 13, 13 Pro, 13 Pro Max, 14, 14 Plus
  • 44 for safe iPhone X, Xs, Xs Max, 11 Pro, 11 Pro Max
  • 48 for safe iPhone Xr, 11
  • 20 for other devices
  • StatusBar.currentHeight for Android.

Example

// in style.js

import { StyleSheet } from 'react-native';
import { getStatusBarHeight } from 'react-native-iphone-screen-helper'

export default StyleSheet.create({
    header:{
        position: 'absolute',
        top: 0,
        left: 0,
        right: 0,
        padding:10,
        height: 60,
        backgroundColor: 'transparent',
        paddingTop: getStatusBarHeight()
    },
});

getBottomSpace

returns - the height of the bottom to fit the safe area: 34 for iPhone X and newer models with a notch or dynamic island, and 0 for other devices.

Example

// in style.js

import { StyleSheet } from 'react-native';
import { getBottomSpace } from 'react-native-iphone-screen-helper'

export default StyleSheet.create({
  totalview: {
    flex: 1,
    backgroundColor: 'transparent',
    marginBottom: getBottomSpace()
  },
});

Applied iPhone series

DeviceIDDeviceNameScreenResolutionStatusbarHeight
iPhone10,3iPhone X Global375 x 812 (3x ~458ppi)44
iPhone10,6iPhone X GSM375 x 812 (3x ~458ppi)44
iPhone11,2iPhone Xs375 x 812 (3x ~458ppi)44
iPhone11,4iPhone Xs Max414 x 896 (3x ~458ppi)44
iPhone11,6iPhone Xs Max Global414 x 896 (3x ~458ppi)44
iPhone11,8iPhone Xr414 x 896 (2x ~326ppi)48
iPhone12,1iPhone 11414 x 896 (2x ~326ppi)48
iPhone12,3iPhone 11 Pro375 x 812 (3x ~458ppi)44
iPhone12,5iPhone 11 Pro Max414 x 896 (3x ~458ppi)44
iPhone13,1iPhone 12 mini360 x 780 (3x ~476ppi)50
iPhone13,2iPhone 12390 x 844 (3x ~460ppi)47
iPhone13,3iPhone 12 Pro390 x 844 (3x ~460ppi)47
iPhone13,4iPhone 12 Pro Max428 x 926 (3x ~458ppi)47
iPhone14,4iPhone 13 mini375 x 812 (3x ~476ppi)50
iPhone14,5iPhone 13390 x 844 (3x ~460ppi)47
iPhone14,2iPhone 13 Pro390 x 844 (3x ~460ppi)47
iPhone14,3iPhone 13 Pro Max428 x 926 (3x ~458ppi)47
iPhone14,7iPhone 14390 x 844 (3x ~460ppi)47
iPhone14,8iPhone 14 Plus428 x 926 (3x ~458ppi)47
iPhone15,2iPhone 14 Pro393 x 852 (3x ~460ppi)59
iPhone15,3iPhone 14 Pro Max430 x 932 (3x ~458ppi)59
iPhone15,4iPhone 15393 x 852 (3x ~460ppi)59
iPhone15,5iPhone 15 Plus430 x 932 (3x ~460ppi)59
iPhone16,1iPhone 15 Pro393 x 852 (3x ~460ppi)59
iPhone16,2iPhone 15 Pro Max430 x 932 (3x ~460ppi)59
iPhone16,4iPhone 16393 x 852 (3x ~460ppi)59
iPhone16,5iPhone 16 Plus430 x 932 (3x ~460ppi)59
iPhone17,1iPhone 16 Pro402 x 874 (3x ~460ppi)59
iPhone17,2iPhone 16 Pro Max440 x 956 (3x ~460ppi)62

Licence

MIT