Use iOS8 UIVisualEffectViews's blur and vibrancy with ReactNative
Objective-C JavaScript
Switch branches/tags
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
DVEffects fix manager Apr 11, 2015
example Upgrade ExampleApp Nov 17, 2015
.editorconfig initial Apr 11, 2015
.eslintrc introduce eslintrc May 1, 2015
.gitignore finish example Apr 11, 2015
.jshintrc initial Apr 11, 2015
.npmignore readme Apr 11, 2015
README.md readme Sep 2, 2016
index.ios.js Use prop-types Dec 8, 2017
package.json Use prop-types Dec 8, 2017
yarn.lock Use prop-types Dec 8, 2017

README.md

ReactNativeEffectsView

npm version

Component to make easy use of iOS8 UIVisualEffectViews with UIBlurEffect and UIVibrancyEffect in ReactNative.

Screenshot

Install

npm install react-native-effects-view --save
  • In XCode right click on project's name and choose Add Files to..
  • Go to node_modules/react-native-effects-view and select DVEffects folder
  • Now you're ready to require('react-native-effects-view') inside your app!

Props

  • blurStyle (String) - choose one of the following:
    • "light" (default)
    • "extraLight"
    • "dark"
  • vibrantContent (ReactElement) - render vibrant content inside blurred view.

Children

All children of <EffectsView /> will be blurred, however you can use it without children and position element on top of background images and other views.

Example

In order to see usage example check example/EffectsApp folder in XCode (don't forget to run npm install inside). It contains the app presented by screenshot.

var React = require('react-native');
var EffectsView = require('react-native-effects-view');
var { AppRegistry, StyleSheet, View } = React;

var App = React.createClass({
    renderVibrant() {
        return (
            <View>
                <Text style={styles.text}>Do you feel blurry??</Text>
            </View>
        );
    },

    render() {
        return (
            <EffectsView 
                style={styles.view} 
                blurStyle="dark" 
                vibrantContent={this.renderVibrant()}
            >
                <Image style={styles.bg} source={require('image!bg')} />
            </EffectsView>
        );
    }
});

var styles = StyleSheet.create({
    bg: {
        flex: 1,
        position: 'absolute',
        bottom: 0,
        left: 0,
        right: 0,
        top: 0,
        justifyContent: 'center',
        alignItems: 'center',
    },
    view: {
        flex: 1
    },
    text: {
        fontSize: 20,
        color: 'white',
        textAlign: 'center',
    },
});

AppRegistry.registerComponent('App', () => App);

References

Demo app is inspired by UIVisualEffects repo.


MIT Licensed