To answer your question about transparent modal, you can use rgba's background color, for example rgba (0, 0, 0, 0.5), and pass alpha to the last color argument: rgba (r, g, b, alpha).
As for the navigator, you can use the Navigator.SceneConfigs.FloatFromBottom argument to navigate to create a modal by placing the modal navigator in the place of another Navigator. There is a good topic with examples for here . Sort of:
this.props.navigator.push({ title: 'title', sceneConfig: Navigator.SceneConfigs.FloatFromBottom, component: component, navigationBar: <NavigationBar title="Initial View"/>, passProps: {} })
I created a sample project with a transparent background here and posted the code below. Hope this helps!
https://rnplay.org/apps/pHqjhQ
'use strict'; var React = require('react-native'); var { Modal, StyleSheet, SwitchIOS, Text, TouchableHighlight, View, AppRegistry, } = React; exports.displayName = (undefined: ?string); exports.framework = 'React'; exports.title = '<Modal>'; exports.description = 'Component for presenting modal views.'; var Button = React.createClass({ getInitialState() { return { active: false, }; }, _onHighlight() { this.setState({active: true}); }, _onUnhighlight() { this.setState({active: false}); }, render() { var colorStyle = { color: this.state.active ? '#fff' : '#000', }; return ( <TouchableHighlight onHideUnderlay={this._onUnhighlight} onPress={this.props.onPress} onShowUnderlay={this._onHighlight} style={[styles.button, this.props.style]} underlayColor="#a9d9d4"> <Text style={[styles.buttonText, colorStyle]}>{this.props.children}</Text> </TouchableHighlight> ); } }); var ModalExample = React.createClass({ getInitialState() { return { animated: true, modalVisible: false, transparent: true, }; }, _setModalVisible(visible) { this.setState({modalVisible: visible}); }, render() { var modalBackgroundStyle = { backgroundColor: this.state.transparent ? 'rgba(0, 0, 0, 0.5)' : '#f5fcff', }; return ( <View> <Modal animated={this.state.animated} transparent={this.state.transparent} visible={this.state.modalVisible}> <View style={[styles.container, modalBackgroundStyle]}> <View style={[styles.innerContainer]}> <Button onPress={this._setModalVisible.bind(this, false)} style={styles.modalButton}> Close </Button> </View> </View> </Modal> <View style={{ marginTop:60 }}> <Button onPress={this._setModalVisible.bind(this, true)}> SHOW MODAL </Button> </View> </View> ); }, }); AppRegistry.registerComponent('ModalExample', () => ModalExample); var styles = StyleSheet.create({ container: { flex: 1, justifyContent: 'center', padding: 20, }, innerContainer: { borderRadius: 10, alignItems: 'center', }, button: { borderRadius: 5, flex: 1, height: 44, alignSelf: 'stretch', justifyContent: 'center', overflow: 'hidden', }, buttonText: { fontSize: 18, margin: 5, textAlign: 'center', }, modalButton: { marginTop: 10, }, });