# react-native-linear-gradient A `` component for react-native, as seen in [react-native-login](https://github.com/brentvatne/react-native-login). Version 1.3.0 supports react-native >= 0.16.0 ## Add it to your project You can use [`rnpm`](https://github.com/rnpm/rnpm) to add native dependencies automatically: `$ rnpm link` or do it manually as described below: ### iOS 1. Run `npm install react-native-linear-gradient --save` 2. Open your project in XCode, right click on `Libraries` and click `Add Files to "Your Project Name"` Look under `node_modules/react-native-linear-gradient` and add `BVLinearGradient.xcodeproj`. [(Screenshot)](http://url.brentvatne.ca/g9Wp). 3. Add `libBVLinearGradient.a` to `Build Phases -> Link Binary With Libraries` [(Screenshot)](http://url.brentvatne.ca/g9Wp). 4. Click on `BVLinearGradient.xcodeproj` in `Libraries` and go the `Build Settings` tab. Double click the text to the right of `Header Search Paths` and verify that it has `$(SRCROOT)/../react-native/React` - if it isn't, then add it. This is so XCode is able to find the headers that the `BVLinearGradient` source files are referring to by pointing to the header files installed within the `react-native` `node_modules` directory. [(Screenshot)](http://url.brentvatne.ca/7wE0). 5. Whenever you want to use it within React code now you can: `var LinearGradient = require('react-native-linear-gradient');` **If you're having trouble, you can point your `package.json` at github to see if the issue has been fixed. Simply change the dependency `"react-native-linear-gradient": "brentvatne/react-native-linear-gradient",` and then `npm install`** #### Android 1. in `android/settings.gradle` ``` include ':app', ':react-native-linear-gradient' project(':react-native-linear-gradient').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-linear-gradient/android') ``` 2. in `android/app/build.gradle` add: ``` dependencies { ... compile project(':react-native-linear-gradient') } ``` 3. and finally, in `android/src/main/java/com/{YOUR_APP_NAME}/MainActivity.java` add: ``` ... import com.BV.LinearGradient.LinearGradientPackage; // <--- This! ... @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); mReactRootView = new ReactRootView(this); mReactInstanceManager = ReactInstanceManager.builder() .setApplication(getApplication()) .setBundleAssetName("index.android.bundle") .setJSMainModuleName("index.android") .addPackage(new MainReactPackage()) .addPackage(new LinearGradientPackage()) // <---- and This! .setUseDeveloperSupport(BuildConfig.DEBUG) .setInitialLifecycleState(LifecycleState.RESUMED) .build(); mReactRootView.startReactApplication(mReactInstanceManager, "SillyGoose", null); setContentView(mReactRootView); } ``` ## Examples ### Simple The following code will produce something like this: ![Example code result](https://raw.githubusercontent.com/brentvatne/react-native-linear-gradient/master/example.png) ```javascript // Within your render function Sign in with Facebook // Later on in your styles.. var styles = StyleSheet.create({ linearGradient: { flex: 1, paddingLeft: 15, paddingRight: 15, borderRadius: 5 }, buttonText: { fontSize: 18, fontFamily: 'Gill Sans', textAlign: 'center', margin: 10, color: '#ffffff', }, }); ``` ### Additional props You can also use start and end points, as well as specify the locations for the gradient color changes with the `start`, `end` and `locations` props: ```javascript Sign in with Facebook ``` ![Example with extra props](https://raw.githubusercontent.com/brentvatne/react-native-linear-gradient/master/example-other-props.png) ### Updating the values for fun Check out [Examples/AnimatedGradient] (`git clone` this project, cd into it, npm install, open in XCode and run) to see how this is done: ![Example with extra props](https://raw.githubusercontent.com/brentvatne/react-native-linear-gradient/master/example-animated.gif) *This gif was created using [licecap](http://www.cockos.com/licecap/) - a great piece of free OSS* ### An example app You can see this component in action in [brentvatne/react-native-login](https://github.com/brentvatne/react-native-login/blob/master/App/Screens/LoginScreen.js#L70-L73). ### License License is MIT