1.0.0 • Published 1 year ago

react-device-mockup v1.0.0

Weekly downloads
-
License
MIT
Repository
github
Last release
1 year ago

react-device-mockup

Static Badge Static Badge

GitHub Tag NPM Version NPM Unpacked Size

Static Badge GitHub top language GitHub License

You can check out the 🌐 full-demo-here
Package for React Native is 🌐 here

Index

  1. Introduction
  2. Installation
  3. How to use
  4. Props
  5. Demo
  6. License

Introduction

react-device-mockup provides frame mockups for Android and iOS devices.
You can use this library when you need a device demo for your app.
Every mockup is rendered as pure div tags.

react-device-mockup provides the following mockups:

  1. Android
    1. Phone: 19.5:9 aspect ratio, AndroidMockup
    2. Tablet: 16:10 aspect ratio, AndroidTabMockup
  2. iOS
    1. iPhone, IPhoneMockup
      1. legacy iPhone: iPhone SE3
      2. notched iPhone: iPhone 14
      3. Dynamic island iPhone: iPhone 15 Pro
    2. iPad, IPadMockup
      1. legacy iPad 4:3 aspect ratio (home button)
      2. modern iPad: 4.3:3 aspect ratio (no home button)

Installation

No dependencies. Just install it

npm install react-device-mockup

or if you use yarn

yarn add react-device-mockup

How to use

import {
    AndroidMockup,
    AndroidTabMockup,
    IPhoneMockup,
    IPadMockup
}
from "react-device-mockup"


return (
  <>
    {/* Android Phone */}
    <AndroidMockup screenWidth={200}>
        {/* your demo */}
        <YourComponent>
          {...}
        </YourComponent>
    </AndroidMockup>

    {/* Android Tablet */}
    <AndroidTabMockup screenWidth={200}>
        {/* your demo */}
        <YourComponent>
          {...}
        </YourComponent>
    </AndroidTabMockup>

    {/* iPhone */}
    <IPhoneMockup screenWidth={200}>
        {/* your demo */}
        <YourComponent>
          {...}
        </YourComponent>
    </IPhoneMockup>

    {/* iPad */}
    <IPadMockup screenWidth={200}>
        {/* your demo */}
        <YourComponent>
          {...}
        </YourComponent>
    </IPadMockup>
  </>
)

Props

AndroidMockup & AndroidTabMockup

You can check demo

propRequiredTypeDefaultDescription
screenWidthOnumberWidth of mockup screen details
noRoundedScreenXbooleanfalseNo use rounded screen corners.
isLandscapeXbooleanfalseportrait or landscapefalse means portrait
classNameXstringclass name for mockup container
containerStlyeXCSSPropertiesStyles for mockup container
frameColorXProperty.Color"#666666"Color of Frame
frameOnlyXbooleanfalseOnly the frame is shown.Power button and volume buttons are hidden
statusbarColorXProperty.Color"#CCCCCC"Color of status bar
hideStatusBarXbooleanfalseHide the status bardetails
navBarX"swipe""bhr""rhb""swipe"Type of navigation bardetails
navBarColorXProperty.Color"#CCCCCC"Color of navigation bar
transparentNavBarXbooleanfalseMake the navigation bar transparent.details
hideNavBarXbooleanfalseHide the navigation bardetails
transparentCamAreaXbooleanfalseNOTE: AndroidMockup only.Make the area around the camera transparent.Only works when isLandscape=true.details
childrenXReactNodeComponents to be rendered on the mockup screen

IPhoneMockup & IPadMockup

You can check demo

propRequiredTypeDefaultDescription
screenWidthOnumberWidth of mockup screen details
screenTypeX"legacy""notch""island""island"for IPhoneMokcup"legacy": Classic iphone such as iPhone SE3"notch": Notched iPhone such as iPhone 14"island": Dynamic island iPhone such as iPhone 15 Pro
screenTypeX"legacy""modern""modern"for IPadMockup"legacy": Classic iPad such as iPad 9th"modern": Modern iPad such as iPad Pro 13-inch
isLandscapeXbooleanfalseportrait or landscapefalse means portrait
classNameXstringclass name for mockup container
containerStlyeXCSSPropertiesStyles for mockup container
frameColorXProperty.Color"#666666"Color of Frame
frameOnlyXbooleanfalseOnly the frame is shown.Power button and volume buttons are hidden
statusbarColorXProperty.Color"#CCCCCC"Color of status bar
hideStatusBarXbooleanfalseHide the status bardetails
transparentNavBarXbooleanfalseMake the navigation bar transparent.details
hideNavBarXbooleanfalseHide the navigation bardetails
childrenXReactNodeComponents to be rendered on the mockup screen

screenWidth

Width of mockup screen.
The height is automatically calculated according to the ratio.

NOTE
It does not mean the full width of the mockup being rendered.

hideStatusBar

Hide the status bar.

  • false: Status bar occupies its own space with statusbarColor. (default)
  • true: Status bar no longer occupies its own area, but becomes part of the screen area.

NOTE
When isLandscape=true and screenType="legacy" in iPhoneMockup,
the status bar is always hidden regardless of hideStatusBar.
Even on the REAL classic iPhone, the status bar is always hidden when in landscape mode.

navBar

Type of navigation bar.

  • "swipe": swipe gesture navigation bar. (modern style)
  • "bhr": back-home-recent buttons. (classic style)
  • "rhb": recent-home-back. (classic style)

This prop is only for
AndroidMockup, AndroidTabMockup

transparentNavBar

Make the navigation bar transparent.

  • false: Navigation bar occupies its own space with navBarColor. (default)
  • true: Navigation bar no longer occupies its own area, but becomes part of the screen area.
    • NOTE: Swipe bar or buttons are rendered according to the type specified by navBar props.

NOTE
When screenType="legacy" in iPhoneMockup, transparentNavBar is always ignored.

hideNavBar

Hide the navigation bar.

  • false: Show the navigation bar. (default)
  • true: Hide the navigation bar.
    • Navigation bar no longer occupies its own area,
      but becomes part of the screen area.
    • NOTE: Swipe bar or buttons are NOT rendered according to the type specified by navBar props.

NOTE
When screenType="legacy" in iPhoneMockup, hideNavBar is always ignored.

transparentCamArea

AndroidMockup only.
Make the area around the camera transparent.
It only works when isLandscape=true.
It is ignored when isLandscape=false

CamArea (Camera area)
The part that was the status bar when in Portrait.
When in Landscape, in Android Native, this part is simply expressed as an empty (blank) area.

This prop is only for
AndroidMockup

Demo

🌐 full-demo

Demo: Android

  • AndroidMockup
  • AndroidTabMockup

AndroidMockup default mockups

isLandscape=falseisLandscape=true
and_defaultand_default_land

AndroidTabMockup default mockups

isLandscape=falseisLandscape=true
and_taband_tab_land

hideStatusBar & hideNavBar

hideStatusBar={true}
hideNavBar={true}
isLandscape=falseisLandscape=true
and_all_hideand_all_hide_land

other props

noRoundedScreenframeColor="green"statusbarColor="red"navBarColor="blue"
and_noRoundedScreenand_colors

default with child

isLandscape=falseisLandscape=true
and_default_childand_land_default_child

props.hideStatusBar

isLandscape=falseisLandscape=true
hidestatusbarhidestatusbar_land

props.transparentNavBar

isLandscape=falseisLandscape=true
trans_navinavBar="bhr"trans_navi_landnavBar="bhr"

props.hideNavBar

isLandscape=falseisLandscape=true
hide_navihide_navi_land

props.transparentCamArea

AndroidMockup, landscape only | isLandscape=false | isLandscape=true | | :--: | :--: | | none | transparentCamArea |

Demo: iOS

  • IPhoneMockup
  • IPadMockup

IPhoneMockup

All props not mentioned are default.
Props with the same name as props in AnroidMockup work the same way.

screenTypeisLandscape=falseisLandscape=true
"island"iphone_islandiphone_island_land
"notch"iphone_notchiphone_notch_land
"legacy"iphone_legacyiphone_legacy_land

IPadMockup

All props not mentioned are default.
Props with the same name as props in AnroidMockup work the same way.

screenTypeisLandscape=falseisLandscape=true
"modern"ipad_modernipad_modern_land
"legacy"ipad_legacyipad_legacy_land

License

MIT license

1.0.0

1 year ago

0.1.0

1 year ago