- π¨ 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
- React Native >= 0.72.0
- React >= 18.2.0
- react-native-svg >= 13.0.0
# If you use npm:
npm install react-native-spotlight-guide
# Or if you use Yarn:
yarn add react-native-spotlight-guide
# If you use npm:
npm install react-native-svg
# Or if you use Yarn:
yarn add react-native-svg
cd ios && pod install && cd ..
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>
);
};
Prop | Type | Default | Description |
---|---|---|---|
`children` | React.ReactNode | - | Component to be highlighted |
`isVisible` | boolean | false | Controls spotlight visibility |
`content` | string | - | Text content to be displayed |
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 |
Prop | Type | Default | Description |
---|---|---|---|
`contentPosition` | 'top' | 'bottom' | 'left' | 'right' | 'bottom' | Position of content box |
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 |
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 |
<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>
<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>
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
Contributions are welcome! Please read our Contributing Guide for details.
This project is licensed under the MIT License - see the LICENSE file for details.
If you have any questions or suggestions, please open an issue on GitHub Issues.
Made with β€οΈ by Furkan Kaya