--- title: Combining icons - React Native description: Learn how to combine multiple icons into a single icon nested SVG elements in your React Native application. --- # Combining icons You can combine multiple icons into a single icon by nesting SVG elements. This is useful if you want to create custom icons by combining existing ones. ```SnackPlayer name=State&ext=js&dependencies=react-native-svg,lucide-react-native import React, {useState, useEffect} from 'react'; import { View, StyleSheet } from 'react-native'; import { Scan, User} from "lucide-react-native"; const App = () => { return ( ); }; const styles = StyleSheet.create({ container: { height: '100%', alignItems: 'center', display: 'flex', justifyContent: 'center' }, }); export default App; ``` This is valid, since [SVGs can be nested](https://developer.mozilla.org/en-US/docs/Web/SVG/Reference/Element/svg#nested_svg_element), and all SVG properties are supported on the icons. The `x` and `y` coordinates can be adjusted to position the icons as you like. ::: info Limitation When combining icons, you need to make sure that the `x` and `y` coordinates are within the `viewBox` of the outer icon (24x24). ::: ## With native SVG elements You can also combine Lucide icons with native SVG elements to build custom icon variations. ### Example with notification badge For example, you can add a notification badge to an icon by using the `circle` SVG element. ```SnackPlayer name=State&ext=js&dependencies=react-native-svg,lucide-react-native import React, {useState, useEffect} from 'react'; import { View, StyleSheet } from 'react-native'; import { Mail } from "lucide-react-native"; import { Circle } from 'react-native-svg'; const App = () => { const hasUnreadMessages = true; return ( {hasUnreadMessages && ( )} ); }; const styles = StyleSheet.create({ container: { height: '100%', alignItems: 'center', display: 'flex', justifyContent: 'center' }, }); export default App; ``` ### Example with text element You can also use the `text` SVG element to add text to your icon. ```SnackPlayer name=State&ext=js&dependencies=react-native-svg,lucide-react-native import React, {useState, useEffect} from 'react'; import { View, StyleSheet } from 'react-native'; import { File } from "lucide-react-native"; import { Text } from 'react-native-svg'; const App = () => { const hasUnreadMessages = true; return ( JS ); }; const styles = StyleSheet.create({ container: { height: '100%', alignItems: 'center', display: 'flex', justifyContent: 'center' }, }); export default App; ```