1.7.221 • Published 7 days ago

react-parallax-tilt v1.7.221

Weekly downloads
3,087
License
MIT
Repository
github
Last release
7 days ago

React Tilt

npm version npm downloads npm bundle size Open issues TypeScript semantic-release

CI CI CI CI CI Codecov Coverage

CI CI

👀 Easily apply tilt hover effect on React components

npm.io

Demo 💥

Install

npm install react-parallax-tilt

Features

  • Lightweight (≈3kB), zero dependencies 📦
  • Tree-shakable 🌳 ESM and CommonJS support
  • Works with React v15 onwards
  • Supports mouse and touch events
  • Support for device tilting (gyroscope)
  • Glare effect 🌟 with custom props (color, position,...) 🔗demo
  • Events to keep track of component values 📐 (tilt, glare, mousemove,...) 🔗demo
  • Many effects that can be easily applied:
    • scale on hover 🔗demo
    • disable x/y axis 🔗demo
    • flip component vertically/horizontally 🔗demo
    • tilt hover effect on the whole window 🔗demo
    • tilt component with custom manual input 🕹 (joystick, slider etc.) 🔗demo
    • parallax effect on overlaid images 🔗demo

Example

import React from 'react';
import ReactDOM from 'react-dom';
import Tilt from 'react-parallax-tilt';

const App = () => {
  return (
    <Tilt>
      <div style={{ height: '300px', backgroundColor: 'darkgreen' }}>
        <h1>React Parallax Tilt 👀</h1>
      </div>
    </Tilt>
  );
};

ReactDOM.render(<App />, document.getElementById('root'));

Props

All of the props are optional.
Below is the complete list of possible props and their options:

▶︎ indicates the default value if there's one

tiltEnable: boolean ▶︎ true
Boolean to enable/disable tilt effect.

tiltReverse: boolean ▶︎ false
Reverse the tilt direction.

tiltAngleXInitial: number ▶︎ 0
Initial tilt value (degrees) on x axis.

tiltAngleYInitial: number ▶︎ 0
Initial tilt value (degrees) on y axis.

tiltMaxAngleX: number ▶︎ 20
Max tilt rotation (degrees) on x axis (range: 0°-90°).

tiltMaxAngleY: number ▶︎ 20
Max tilt rotation (degrees) on y axis (range: 0°-90°).

tiltAxis: 'x' | 'y' ▶︎ undefined
Enable tilt on single axis.

tiltAngleXManual: number | null ▶︎ null
Manual tilt rotation (degrees) on x axis.

tiltAngleYManual: number | null ▶︎ null
Manual tilt rotation (degrees) on y axis.

glareEnable: boolean ▶︎ false
Boolean to enable/disable glare effect.

glareMaxOpacity: number ▶︎ 0.7
The maximum glare opacity (range: 0-1).

glareColor: string ▶︎ #ffffff
Set color of glare effect.

glareBorderRadius: string ▶︎ 0
Accepts any standard CSS border radius. Useful if the glare color is different to the page color.

glarePosition: 'top' | 'right' | 'bottom' | 'left' | 'all' ▶︎ bottom
Set position of glare effect.

glareReverse: boolean ▶︎ false
Reverse the glare direction.

scale: number ▶︎ 1
Scale of the component (1.5 = 150%, 2 = 200%, etc.).

perspective: number ▶︎ 1000
The perspective property defines how far the object (wrapped/child component) is away from the user. The lower the more extreme the tilt gets.

flipVertically: boolean ▶︎ false
Boolean to enable/disable vertical flip of component.

flipHorizontally: boolean ▶︎ false
Boolean to enable/disable horizontal flip of component.

reset: boolean ▶︎ true
If the effects has to be reset on onLeave event.

transitionEasing: string ▶︎ cubic-bezier(.03,.98,.52,.99)
Easing of the transition when manipulating the component.

transitionSpeed: number ▶︎ 400
Speed of the transition when manipulating the component.

trackOnWindow: boolean ▶︎ false
Track mouse and touch events on the whole window.

gyroscope: boolean ▶︎ false
Boolean to enable/disable device orientation detection.

onMove: ({ tiltAngleX: number, tiltAngleY: number, tiltAngleXPercentage: number, tiltAngleYPercentage: number, glareAngle: number, glareOpacity: number, eventType: string }) => void
Gets triggered when user moves on the component.

onEnter: (eventType: string) => void
Gets triggered when user enters the component.

onLeave: (eventType: string) => void
Gets triggered when user leaves the component.

Gyroscope - Device Orientation

Please keep in mind that detecting device orientation is currently experimental technology.
Check the browser compatibility before using this in production.
A few takeaways when using device orientation event:

  • always use secure origins (such as https)
    • if you're using VS Code, then you can
      • use the in-built port-forwarding feature to expose your localhost to the internet and optionally change the protocol to https
      • alternatively, use microsoft's live-share extension which supports sharing server through a tunnel.
  • it doesn't work in all browsers when using it in cross-origin <iframe> element

Apple decided turning device motion and orientation off by default since iOS 12.2.
With iOS 13+ permission API can be used to gain access to device orientation event.

When using gyroscope feature:

<Tilt gyroscope={true}>
  <h1>React Parallax Tilt 👀</h1>
</Tilt>

it will present a permission dialog prompting the user to allow motion and orientation access at domain level:
npm.io

Note that user needs to take some action (like tapping a button) to be able to display the dialog (invoking dialog on page load is not possible).

Development

Easily set up a local development environment!

Build project and start storybook on localhost:

  • clone
  • npm install
  • npm start

Start coding! 🎉

npm install
npm link # link your local repo to your global packages
npm run build:watch # build the files and watch for changes

Clone project repo that you wish to test with react-parallax-tilt library and run:

npm install
npm link react-parallax-tilt # link your local copy into this project's node_modules
npm start

Contributing

All contributions are welcome!
Please take a moment to review guidelines PR | Issues

1.7.221

7 days ago

1.7.220

12 days ago

1.7.219

21 days ago

1.7.218

23 days ago

1.7.217

30 days ago

1.7.216

1 month ago

1.7.215

1 month ago

1.7.214

1 month ago

1.7.213

1 month ago

1.7.212

2 months ago

1.7.211

2 months ago

1.7.210

2 months ago

1.7.205

3 months ago

1.7.204

3 months ago

1.7.203

3 months ago

1.7.202

3 months ago

1.7.209

3 months ago

1.7.208

3 months ago

1.7.207

3 months ago

1.7.206

3 months ago

1.7.201

3 months ago

1.7.200

3 months ago

1.7.199

3 months ago

1.7.198

3 months ago

1.7.193

3 months ago

1.7.192

3 months ago

1.7.197

3 months ago

1.7.196

3 months ago

1.7.195

3 months ago

1.7.194

3 months ago

1.7.191

3 months ago

1.7.190

3 months ago

1.7.186

3 months ago

1.7.189

3 months ago

1.7.188

3 months ago

1.7.187

3 months ago

1.7.185

3 months ago

1.7.184

3 months ago

1.7.183

3 months ago

1.7.182

3 months ago

1.7.181

3 months ago

1.7.180

4 months ago

1.7.179

4 months ago

1.7.178

4 months ago

1.7.177

4 months ago

1.7.176

4 months ago

1.7.171

6 months ago

1.7.170

6 months ago

1.7.175

5 months ago

1.7.174

5 months ago

1.7.173

5 months ago

1.7.172

6 months ago

1.7.168

7 months ago

1.7.167

7 months ago

1.7.169

7 months ago

1.7.153

9 months ago

1.7.152

10 months ago

1.7.151

10 months ago

1.7.150

10 months ago

1.7.157

9 months ago

1.7.156

9 months ago

1.7.155

9 months ago

1.7.154

9 months ago

1.7.149

10 months ago

1.7.148

10 months ago

1.7.147

10 months ago

1.7.160

8 months ago

1.7.164

8 months ago

1.7.163

8 months ago

1.7.162

8 months ago

1.7.161

8 months ago

1.7.166

7 months ago

1.7.165

7 months ago

1.7.159

8 months ago

1.7.158

8 months ago

1.7.142

11 months ago

1.7.141

11 months ago

1.7.146

10 months ago

1.7.145

11 months ago

1.7.144

11 months ago

1.7.143

11 months ago

1.7.90

1 year ago

1.7.91

1 year ago

1.7.92

1 year ago

1.7.93

1 year ago

1.7.94

1 year ago

1.7.95

1 year ago

1.7.96

1 year ago

1.7.97

1 year ago

1.7.98

1 year ago

1.7.99

1 year ago

1.7.131

12 months ago

1.7.130

12 months ago

1.7.135

12 months ago

1.7.134

12 months ago

1.7.133

12 months ago

1.7.132

12 months ago

1.7.128

1 year ago

1.7.127

1 year ago

1.7.126

1 year ago

1.7.125

1 year ago

1.7.129

1 year ago

1.7.140

11 months ago

1.7.139

11 months ago

1.7.138

12 months ago

1.7.137

12 months ago

1.7.136

12 months ago

1.7.89

1 year ago

1.7.112

1 year ago

1.7.111

1 year ago

1.7.110

1 year ago

1.7.106

1 year ago

1.7.105

1 year ago

1.7.104

1 year ago

1.7.103

1 year ago

1.7.109

1 year ago

1.7.108

1 year ago

1.7.107

1 year ago

1.7.120

1 year ago

1.7.124

1 year ago

1.7.123

1 year ago

1.7.122

1 year ago

1.7.121

1 year ago

1.7.117

1 year ago

1.7.116

1 year ago

1.7.115

1 year ago

1.7.114

1 year ago

1.7.119

1 year ago

1.7.118

1 year ago

1.7.102

1 year ago

1.7.101

1 year ago

1.7.100

1 year ago

1.7.70

1 year ago

1.7.71

1 year ago

1.7.72

1 year ago

1.7.73

1 year ago

1.7.74

1 year ago

1.7.75

1 year ago

1.7.76

1 year ago

1.7.77

1 year ago

1.7.78

1 year ago

1.7.79

1 year ago

1.7.80

1 year ago

1.7.81

1 year ago

1.7.82

1 year ago

1.7.83

1 year ago

1.7.84

1 year ago

1.7.85

1 year ago

1.7.86

1 year ago

1.7.87

1 year ago

1.7.88

1 year ago

1.7.69

1 year ago

1.7.58

2 years ago

1.7.59

2 years ago

1.7.60

2 years ago

1.7.61

2 years ago

1.7.62

2 years ago

1.7.63

2 years ago

1.7.64

2 years ago

1.7.65

2 years ago

1.7.66

2 years ago

1.7.67

2 years ago

1.7.68

2 years ago

1.7.50

2 years ago

1.7.51

2 years ago

1.7.52

2 years ago

1.7.53

2 years ago

1.7.54

2 years ago

1.7.55

2 years ago

1.7.56

2 years ago

1.7.57

2 years ago

1.7.35

2 years ago

1.7.36

2 years ago

1.7.37

2 years ago

1.7.38

2 years ago

1.7.39

2 years ago

1.7.40

2 years ago

1.7.41

2 years ago

1.7.42

2 years ago

1.7.43

2 years ago

1.7.44

2 years ago

1.7.45

2 years ago

1.7.46

2 years ago

1.7.47

2 years ago

1.7.48

2 years ago

1.7.49

2 years ago

1.7.9

2 years ago

1.7.8

2 years ago

1.7.7

2 years ago

1.7.6

2 years ago

1.7.5

2 years ago

1.7.4

2 years ago

1.7.30

2 years ago

1.7.31

2 years ago

1.7.32

2 years ago

1.7.33

2 years ago

1.7.34

2 years ago

1.7.10

2 years ago

1.7.11

2 years ago

1.7.12

2 years ago

1.7.13

2 years ago

1.7.14

2 years ago

1.7.15

2 years ago

1.7.16

2 years ago

1.7.17

2 years ago

1.7.18

2 years ago

1.7.19

2 years ago

1.7.20

2 years ago

1.7.21

2 years ago

1.7.22

2 years ago

1.7.23

2 years ago

1.7.24

2 years ago

1.7.25

2 years ago

1.7.26

2 years ago

1.7.27

2 years ago

1.7.28

2 years ago

1.7.29

2 years ago

1.6.4

2 years ago

1.6.9

2 years ago

1.6.8

2 years ago

1.6.7

2 years ago

1.6.6

2 years ago

1.6.5

2 years ago

1.6.10

2 years ago

1.7.3

2 years ago

1.7.2

2 years ago

1.7.1

2 years ago

1.7.0

2 years ago

1.6.3

2 years ago

1.6.2

2 years ago

1.6.1

2 years ago

1.6.0

2 years ago

1.5.81

2 years ago

1.5.80

2 years ago

1.5.83

2 years ago

1.5.82

2 years ago

1.5.85

2 years ago

1.5.84

2 years ago

1.5.87

2 years ago

1.5.86

2 years ago

1.5.89

2 years ago

1.5.88

2 years ago

1.5.90

2 years ago

1.5.92

2 years ago

1.5.91

2 years ago

1.5.76

2 years ago

1.5.75

2 years ago

1.5.78

2 years ago

1.5.77

2 years ago

1.5.79

2 years ago

1.5.74

2 years ago

1.5.72

2 years ago

1.5.73

2 years ago

1.5.70

3 years ago

1.5.71

3 years ago

1.5.69

3 years ago

1.5.68

3 years ago

1.5.67

3 years ago

1.5.66

3 years ago

1.5.65

3 years ago

1.5.63

3 years ago

1.5.62

3 years ago

1.5.64

3 years ago

1.5.61

3 years ago

1.5.60

3 years ago

1.5.59

3 years ago

1.5.58

3 years ago

1.5.56

3 years ago

1.5.57

3 years ago

1.5.55

3 years ago

1.5.54

3 years ago

1.5.53

3 years ago

1.5.52

3 years ago

1.5.51

3 years ago

1.5.50

3 years ago

1.5.49

3 years ago

1.5.48

3 years ago

1.5.47

3 years ago

1.5.46

3 years ago

1.5.45

3 years ago

1.5.43

3 years ago

1.5.42

3 years ago

1.5.44

3 years ago

1.5.39

3 years ago

1.5.41

3 years ago

1.5.40

3 years ago

1.5.38

3 years ago

1.5.37

3 years ago

1.5.36

3 years ago

1.5.35

3 years ago

1.5.30

3 years ago

1.5.32

3 years ago

1.5.31

3 years ago

1.5.34

3 years ago

1.5.33

3 years ago

1.5.29

3 years ago

1.5.25

3 years ago

1.5.27

3 years ago

1.5.26

3 years ago

1.5.28

3 years ago

1.5.24

3 years ago

1.5.16

3 years ago

1.5.15

3 years ago

1.5.17

3 years ago

1.5.21

3 years ago

1.5.20

3 years ago

1.5.23

3 years ago

1.5.22

3 years ago

1.5.5

3 years ago

1.5.9

3 years ago

1.5.8

3 years ago

1.5.7

3 years ago

1.5.6

3 years ago

1.5.10

3 years ago

1.5.11

3 years ago

1.5.14

3 years ago

1.5.13

3 years ago

1.5.4

3 years ago

1.5.3

3 years ago

1.5.2

3 years ago

1.5.0

3 years ago

1.4.96

3 years ago

1.4.95

3 years ago

1.4.94

3 years ago

1.4.93

3 years ago

1.4.92

3 years ago

1.4.91

3 years ago

1.4.88

3 years ago

1.4.89

3 years ago

1.4.90

3 years ago

1.4.87

3 years ago

1.4.86

3 years ago

1.4.85

3 years ago

1.4.84

3 years ago

1.4.83

3 years ago

1.4.82

3 years ago

1.4.81

3 years ago

1.4.80

3 years ago

1.4.79

3 years ago

1.4.77

3 years ago

1.4.78

3 years ago

1.4.76

3 years ago

1.4.75

3 years ago

1.4.74

3 years ago

1.4.73

3 years ago

1.4.72

3 years ago

1.4.71

3 years ago

1.4.70

3 years ago

1.4.69

3 years ago

1.4.68

3 years ago

1.4.67

3 years ago

1.4.66

4 years ago

1.4.63

4 years ago

1.4.65

4 years ago

1.4.62

4 years ago

1.4.61

4 years ago

1.4.60

4 years ago

1.4.59

4 years ago

1.4.58

4 years ago

1.4.57

4 years ago

1.4.54

4 years ago

1.4.56

4 years ago

1.4.53

4 years ago

1.4.52

4 years ago

1.4.51

4 years ago

1.3.46

4 years ago

1.3.43

4 years ago

1.3.42

4 years ago

1.3.41

4 years ago

1.3.40

4 years ago

1.3.39

4 years ago

1.3.38

4 years ago

1.3.37

4 years ago

1.3.36

4 years ago

1.3.32

4 years ago

1.3.31

4 years ago

1.3.30

4 years ago

1.3.29

4 years ago

1.3.28

4 years ago

1.3.27

5 years ago

1.3.26

5 years ago

1.3.25

5 years ago

1.3.24

5 years ago

1.3.23

5 years ago

1.3.22

5 years ago

1.3.21

5 years ago

1.3.20

5 years ago

1.3.19

5 years ago

1.3.18

5 years ago

1.3.17

5 years ago

1.0.14

5 years ago

1.0.13

5 years ago

1.0.12

5 years ago

1.0.11

5 years ago

1.0.10

5 years ago

1.0.8

5 years ago

1.0.7

5 years ago

1.0.6

5 years ago

1.0.5

5 years ago

1.0.4

5 years ago

1.0.3

5 years ago

1.0.2

5 years ago

1.0.0

5 years ago