Catalog npm
Back to packageRELEASE DETAILS

0.1.0

npm

@0610studio/expo-holographic-card

Holographic tilt and flip card component for Expo and React Native

expoholo-cardholographic-cardreact-nativereanimatedskia
Published4 Jun 2026
Direct dependencies17
Transitive dependenciesNot calculated

README

Current package documentation

@0610studio/expo-holographic-card

Holographic card components for Expo and React Native. It combines Skia lighting, 3D tilt, tap/swipe flip, and optional device-motion control in one component.

Documentation: https://0610studio.github.io/expo-holographic-card/

Demos

Horizontal card
Horizontal holographic card demo preview
Watch video
Vertical card
Vertical holographic card demo preview
Watch video
Photo card
Photo holographic card demo preview
Watch video

Installation

npx expo install @0610studio/expo-holographic-card @shopify/react-native-skia react-native-reanimated react-native-gesture-handler expo-sensors

AnimatedCard uses GestureDetector, so wrap your app root with GestureHandlerRootView. If your project needs Reanimated's Babel plugin, add react-native-reanimated/plugin to your Babel config.

Quick Start

import AnimatedCard, { CardOrientation, LightingType } from '@0610studio/expo-holographic-card';

export function CardPreview() {
  return (
    <AnimatedCard
      orientation={CardOrientation.Horizontal}
      radius={24}
      frontImageSource={require('./assets/card.png')}
      lightingType={LightingType.Prismatic}
      showTexture
    />
  );
}

Custom Faces

import { AnimatedCard, CardOrientation, DefaultCardBack } from '@0610studio/expo-holographic-card';
import { Text, View } from 'react-native';

export function CustomCard() {
  return (
    <AnimatedCard
      orientation={CardOrientation.Vertical}
      frontImageSource={require('./assets/card.png')}
      frontComponent={({ radius }) => (
        <View style={{ flex: 1, justifyContent: 'space-between', padding: 24, borderRadius: radius }}>
          <Text style={{ color: 'white', fontWeight: '800' }}>HOLO CARD</Text>
          <Text style={{ color: 'white', fontSize: 28, fontWeight: '900' }}>HOLO PASS</Text>
        </View>
      )}
      backComponent={({ width, height }) => (
        <DefaultCardBack width={width} height={height} />
      )}
    />
  );
}

Local Development

pnpm install
pnpm build
pnpm test --runInBand
pnpm --dir example typecheck
pnpm docs:build

Example app:

pnpm example
pnpm example:ios
pnpm example:android

Support

  • Tested with Expo 56 and React Native 0.85+.
  • Lighting layers are rendered with @shopify/react-native-skia.
  • Tilt and flip animations use react-native-reanimated and react-native-gesture-handler.
  • Sensor mode uses DeviceMotion from expo-sensors.

License

MIT

Downloads & popularity

Awaiting observations

No metric observations yet

Download counts and popularity will appear here as the collector receives them.

Declared dependencies 24

Native requirements
17 direct targetsNot calculated transitive count
Package / targetRequirementRelationship
@babel/core
Environment
{
  "local_name": "@babel/core",
  "alias": false,
  "peer_metadata": null
}
^7.26.0development
@shopify/react-native-skia
Environment
{
  "local_name": "@shopify/react-native-skia",
  "alias": false,
  "peer_metadata": null
}
2.6.2development
@types/jest
Environment
{
  "local_name": "@types/jest",
  "alias": false,
  "peer_metadata": null
}
^29.2.1development
@types/react
Environment
{
  "local_name": "@types/react",
  "alias": false,
  "peer_metadata": null
}
~19.2.0development
babel-preset-expo
Environment
{
  "local_name": "babel-preset-expo",
  "alias": false,
  "peer_metadata": null
}
~56.0.14development
eslint
Environment
{
  "local_name": "eslint",
  "alias": false,
  "peer_metadata": null
}
~9.39.4development
eslint-config-universe
Environment
{
  "local_name": "eslint-config-universe",
  "alias": false,
  "peer_metadata": null
}
^15.0.3development
expo
Environment
{
  "local_name": "expo",
  "alias": false,
  "peer_metadata": null
}
^56.0.7development
expo-sensors
Environment
{
  "local_name": "expo-sensors",
  "alias": false,
  "peer_metadata": null
}
~56.0.5development
jest
Environment
{
  "local_name": "jest",
  "alias": false,
  "peer_metadata": null
}
^29.7.0development
jest-expo
Environment
{
  "local_name": "jest-expo",
  "alias": false,
  "peer_metadata": null
}
~56.0.4development
prettier
Environment
{
  "local_name": "prettier",
  "alias": false,
  "peer_metadata": null
}
^3.0.0development
react
Environment
{
  "local_name": "react",
  "alias": false,
  "peer_metadata": null
}
^19.2.3development
react-native
Environment
{
  "local_name": "react-native",
  "alias": false,
  "peer_metadata": null
}
^0.85.3development
react-native-gesture-handler
Environment
{
  "local_name": "react-native-gesture-handler",
  "alias": false,
  "peer_metadata": null
}
~2.31.1development
react-native-reanimated
Environment
{
  "local_name": "react-native-reanimated",
  "alias": false,
  "peer_metadata": null
}
4.3.1development
typescript
Environment
{
  "local_name": "typescript",
  "alias": false,
  "peer_metadata": null
}
^5.9.2development
@shopify/react-native-skia
Environment
{
  "local_name": "@shopify/react-native-skia",
  "alias": false,
  "peer_metadata": null
}
>=2.6.0peer
expo
Environment
{
  "local_name": "expo",
  "alias": false,
  "peer_metadata": null
}
>=56.0.0peer
expo-sensors
Environment
{
  "local_name": "expo-sensors",
  "alias": false,
  "peer_metadata": null
}
>=56.0.0peer
react
Environment
{
  "local_name": "react",
  "alias": false,
  "peer_metadata": null
}
*peer
react-native
Environment
{
  "local_name": "react-native",
  "alias": false,
  "peer_metadata": null
}
>=0.85.0peer
react-native-gesture-handler
Environment
{
  "local_name": "react-native-gesture-handler",
  "alias": false,
  "peer_metadata": null
}
>=2.31.0peer
react-native-reanimated
Environment
{
  "local_name": "react-native-reanimated",
  "alias": false,
  "peer_metadata": null
}
>=4.3.0 <5.0.0peer

Distribution files

1 collected
Distribution 1

Source distribution

Source file
Checksums from source
{
  "integrity": "sha512-F+K+C89VpzDlJj1I66Q6Sn2g5mmmgYpuUYUCZvzaNnwjR6rbMRkCS8xiD9/IsgeyZPdq3wJ7n2t0AEBcULUt3g==",
  "shasum": "b6cd3ba1b2fe09f348b667849d66dfcfc3dd9ce4",
  "tarball": "https://registry.npmjs.org/@0610studio/expo-holographic-card/-/expo-holographic-card-0.1.0.tgz",
  "fileCount": 51,
  "unpackedSize": 116803,
  "signatures": [
    {
      "keyid": "SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U",
      "sig": "MEYCIQDP61GhIrP9Oc+PZhqr8YyhNoBsU68l5N/TupUmqBeQEwIhAPapEUxrrJ81evFc5SnEh89rX/1hpBVDKgKIgO/oc3lj"
    }
  ]
}

Repository

PENDING
0610studio/expo-holographic-card

Shared repository data · GitHub

License detected in repository
Not collected

Metadata history

Meaningful changes
Current collected state Current

Observed since 20 Oct, 22:01 UTC

No superseded metadata states collected. Unchanged observations do not create new revisions.

Record identity

package_version:c52964e0c19fceaf57510aedb4b2253cf79545662e0a280ef085f08d9fb3f2ad

Other collected versions

View all collected versions →