Skip to content

FurkanKayaDev/react-native-spotlight-guide

Repository files navigation

🎯 React Native Spotlight Guide

A modern, customizable, and high-performance spotlight/walkthrough library for React Native

npm version npm downloads license

πŸŽ₯ Demo

✨ Features

  • 🎨 Four spotlight shapes: rectangle, circle, oval, and custom
  • 🌈 Fully customizable styles
  • πŸ“± Native performance for iOS and Android
  • πŸ”„ Forward/backward navigation support
  • 🎭 Customizable button and content styles
  • πŸŒ“ Dark/light theme support
  • πŸ“ Automatic positioning
  • πŸ”§ TypeScript support

πŸ“¦ Installation

Requirements

  • React Native >= 0.72.0
  • React >= 18.2.0
  • react-native-svg >= 13.0.0

First, install the main package

# If you use npm:
npm install react-native-spotlight-guide

# Or if you use Yarn:
yarn add react-native-spotlight-guide

Then, install required peer dependency

# If you use npm:
npm install react-native-svg

# Or if you use Yarn:
yarn add react-native-svg

For iOS, install pods

cd ios && pod install && cd ..

πŸš€ Quick Start

import { SpotlightGuide } from "react-native-spotlight-guide";

const App = () => {
  const [showGuide, setShowGuide] = useState(true);

  return (
    <SpotlightGuide
      isVisible={showGuide}
      content="Welcome! This button starts the main operations."
      spotlightShape="circle"
      contentPosition="bottom"
      onFinish={() => setShowGuide(false)}
    >
      <Button title="Start" onPress={() => {}} />
    </SpotlightGuide>
  );
};

πŸ“š Props

Core Props

Prop Type Default Description
`children` React.ReactNode - Component to be highlighted
`isVisible` boolean false Controls spotlight visibility
`content` string - Text content to be displayed

Appearance Props

Prop Type Default Description
`spotlightShape` 'circle' | 'oval' | 'rectangle' | 'custom' 'rectangle' Shape of the spotlight
`customShape` CustomSpotlightShape - Custom spotlight shape configuration
`spotlightPadding` number 10 Padding between spotlight and component
`overlayOpacity` number 0.7 Background overlay opacity (0-1)
`overlayColor` string 'rgba(0, 0, 0, 0.7)' Background overlay color

Position Props

Prop Type Default Description
`contentPosition` 'top' | 'bottom' | 'left' | 'right' 'bottom' Position of content box

Style Props

Prop Type Default Description
`contentContainerStyle` ViewStyle - Content container style
`contentTextStyle` TextStyle - Content text style
`buttonContainerStyle` ViewStyle - Button container style
`buttonStyle` ViewStyle - Button style
`buttonTextStyle` TextStyle - Button text style

Event Props

Prop Type Default Description
`onNext` () => void - Next button press event
`onPrev` () => void - Previous button press event
`onFinish` () => void - Finish button press event
`onPressOverlay` () => void - Overlay press event

🎨 Customization

Custom Shape Usage

<SpotlightGuide
  spotlightShape="custom"
  customShape={{
    width: 200,
    height: 100,
    borderRadius: 12,
    backgroundColor: "rgba(0, 122, 255, 0.1)",
    borderWidth: 2,
    borderColor: "#007AFF",
    borderStyle: "dashed",
  }}
>
  <YourComponent />
</SpotlightGuide>

Custom Styles

<SpotlightGuide
  contentContainerStyle={{
    backgroundColor: "#1E1E1E",
    borderRadius: 16,
    padding: 20,
    shadowColor: "#000",
    shadowOffset: { width: 0, height: 4 },
    shadowOpacity: 0.1,
    shadowRadius: 12,
    elevation: 5,
  }}
  contentTextStyle={{
    color: "#FFFFFF",
    fontSize: 16,
    lineHeight: 24,
    textAlign: "center",
  }}
  buttonStyle={{
    backgroundColor: "#007AFF",
    paddingVertical: 12,
    paddingHorizontal: 24,
    borderRadius: 12,
  }}
>
  <YourComponent />
</SpotlightGuide>

πŸ“± Example App

To run the example app:

git clone https://github.com/FurkanKayaDev/react-native-spotlight-guide.git
cd react-native-spotlight-guide/example
yarn install
cd ios && pod install && cd ..
yarn ios # or yarn android

🀝 Contributing

Contributions are welcome! Please read our Contributing Guide for details.

πŸ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.

πŸ™‹β€β™‚οΈ Support

If you have any questions or suggestions, please open an issue on GitHub Issues.


Made with ❀️ by Furkan Kaya

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published