npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

react-tilt-3d

v0.6.0

Published

![React](https://img.shields.io/badge/react-%2320232a.svg?style=for-the-badge&logo=react&logoColor=%2361DAFB)![TypeScript](https://img.shields.io/badge/typescript-%23007ACC.svg?style=for-the-badge&logo=typescript&logoColor=white)![NPM](https://img.shields

Readme

react-tilt-3d

ReactTypeScriptNPM try me!

🚀 Features

  • Highly customizable component via props:
    • Scale when tilting
    • Stop tilting when cursor leaves window
    • Stop tilting when cursor distance from object exceeds limit
    • Stop tilting when cursor hovers the object
    • Tilt in all axis or only in one (x or y)
    • Customize how much you want it to tilt
    • Customize the action radius
    • Customize the transition timing function
  • Events onTiltStart, onTiltEnd, and onTiltChange
  • Compatible with touch devices
  • Can use device gyroscope to apply tilting (if device has gyroscope)
  • Apply the tilt effect to anything used as children.
  • Applies a lighting effect to reinforce the 3d-effect.
  • Strongly typed
  • Experiment as much as you want with the demo page

📦 Installation

npm i react-tilt-3d yarn add react-tilt-3d

✨ Usage

Just wrap your content with Tilt3D:

import { Tilt3D } from 'react-tilt-3d';

const MyComponent = () => {
  return (
    <Tilt3D>
      <SomeOtherComponent />
    </Tilt3D>
  );
};

🛠️ Customization

Several customizations can be made via props:

| prop | type | description | required | default | | ------------------------ | ---------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------- | ---------- | | maxTilt | number | Maximum amount of degrees the element will tilt | false | 25 | | resetTiltOnOutOfBounds | boolean | Determines if the tilt should reset to 0 if the cursor or pointer exceeds a distance from the element | false | false | | resetTiltOnHover | boolean | Determines if the tilt should reset to 0 if the cursor or pointer hover the element. (Note that if actionOffset is 0 and resetTiltOnHover is set to true, no tilt will be ever show) | false | false | | actionOffset | number | Distance away from the center in which the tilt will be maxTilt. | false | 0 | | zoomOnTilt | boolean | If true, the element will scale when it is tilting | false | false | | zoomScale | number | Amount of scaling the element will do with zoomOnTilt. (Recommended values between 1 and 1.5) | false | 1.25 | | lockAxisX | boolean | If true, the element will not tilt in the X axis. | false | false | | lockAxisY | boolean | If true, the element will not tilt in the Y axis. | false | false | | transition | string | Transition timing function to apply to the movement. Specially visible when the tilt resets to 0,0 | false | ease-out | | enableLighting | boolean | Enables the lighting effect applied when tilt changes on Y axis | false | true | | enableGyro | boolean | If the device has gyroscope, this will apply the tilt effect when the device is phisically tilted. Have in mind that gyro mode will ignore other configuration parameters like resetTiltOnHover, resetTiltOnOutOfBounds, actionOffset, zoomOnTilt, zoomScale, lockAxisX and lockAxisY | false | false | | onTiltChange | ({x: number, y: number}) => void | Callback to be executed every time the tilt changes. | false | | | onTiltStart | () => void | Callback to be executed every time the tilt starts | false | | | onTiltEnd | () => void | Callback to be executed every time the tilt ends and returns to 0 | false | | | className | string | classname to apply to the wrapper | false | | | children | ReactNode | The content to apply the tilt. | false | |

About gyro mode

By passing the prop enableGyro the tilting effect can be applied by reading directly from the device sensors. While this can work out-of-the box for some devices, others (iOS) may require to explicitly request for permissions.

You can either do it manually (request permissions for DeviceOrientationEvent) or you can use the function requestGyroPermission exported by this library.

import { requestGyroPermission } from 'react-tilt-3d