Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

react-native-iphone-screen-helper

Package Overview
Dependencies
Maintainers
1
Versions
7
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

react-native-iphone-screen-helper

A library to help you design your react-native app for the iPhone

  • 2.1.2
  • latest
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
22K
decreased by-15.17%
Maintainers
1
Weekly downloads
 
Created
Source

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

Keywords

FAQs

Package last updated on 18 Sep 2024

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc