React Native components based on React UI Kit
Offical documentation of React UI Kit Native made for React Native applications and you can easily use the components in your project. A lot of predefined styles & properties so it's perfectly fit for prototyping of your app UI.
Support: contact@react-ui-kit.com
- Install local module with react-ui-kit-native (it will also download all required dependencies)
npm install react-ui-kit-native --save- Use any component you want, all available props are available separately for each component below in this documentation. For example:
import React from 'react'; import { Button } from 'react-ui-kit-native'; export default class MyButton extends React.Component { render() { return ( <Button full primary rounded label="My button" /> ); } }List of available components:
| Status | Type | Component | Description |
|---|---|---|---|
| ✔️ | button | Button | react-native TouchableOpacity component with predefined styles & props |
| ✔️ | button | Link | react-native Text & Linking component with predefined properties |
| ✔️ | input | Input | react-native TextInput component with predefined styles & props |
| ✔️ | input | Select | react-native-modal-dropdown module with predefined styles |
| 🔜 | input | Checkbox | react-native Switch component with predefined styles & props |
| 🔜 | input | Datepiker | react-native DatePickerIOS & DatePickerAndroid component with predefined styles & props |
| 🔜 | input | Progress | react-native ProgressViewIOS & ProgressBarAndroid component with predefined styles & props |
| ✔️ | view | Block | react-native View component with predefined styles & props |
| ✔️ | view | Container | react-native View component with predefined styles & props |
| ✔️ | view | Text | react-native Text component with predefined styles & props |
| ✔️ | view | Icon | react-native-vector-icons module with predefined props |
| ✔️ | view | Image | react-native Image component with predefined styles & props |
| 🔜 | view | Badge | react-native View component with predefined styles & props |
| 🔜 | view | Label | react-native View component with predefined styles & props |
| 🔜 | view | Tabs | react-native TabBarIOS component with predefined styles & props |
| 🔜 | view | List | react-native ScrollView component with predefined styles & props |
| 🔜 | view | Menu | react-native ScrollView component with predefined styles & props |
| PROP | TYPE | DEFAULT | DESCRIPTION |
|---|---|---|---|
| color | string | #FFFFFF | Specifies a text color |
| size | number | 16 | Specifies a fontSize size |
| label | string | null | Specifies a string for the button text |
| icon | bool | null | Specifies an icon name - check Icon component |
| family | bool | null | Specifies an icon family - check Icon component |
| loading | bool | false | Disable touch/press events and render ActivityIndicator |
| full | bool | false | Set the width of the component to 80% from the total width of the screen |
| opacity | number | 0.8 | Determines what the activeOpacity of the Button should be when touch is active |
| basic | bool | false | Include styles.basic with backgroundColor: #FFFFFF, borderColor: #45547e █ |
| bold | bool | false | Determines whether the styles.bold should be included |
| border | bool | false | Determines whether the styles.border should be included |
| rounded | bool | false | Determines whether the styles.basic should be included |
| primary | bool | false | Include styles.primary with backgroundColor: #7CB527 █ |
| secondary | bool | false | Include styles.secondary with backgroundColor: #FF3D57 █ |
| tertiary | bool | false | Include styles.tertiary with backgroundColor: #7857A9 █ |
| style | View style | {} | Add style properties for better customization |
For more properties visit TouchableOpacity props
| PROP | TYPE | DEFAULT | DESCRIPTION |
|---|---|---|---|
| color | string | color: #323642 █ | Specifies a text color |
| href | string | null | A link (web URL, email, contact etc.) |
| onPress | func | () => {} | Called when the touch is released |
| style | View style | {} | Add style properties for better customization |
| PROP | TYPE | DEFAULT | DESCRIPTION |
|---|---|---|---|
| color | string | #293042 █ | Specifies a text color |
| placeHolderColor | string | #5E6D95 █ | Specifies a placeholderTextColor |
| bgColor | string | #FFFFFF | Specifies a backgroundColor color |
| rounded | bool | false | Determines whether the styles.rounded should be included |
| type | string | default | One of 'default', 'email-address', 'numeric', 'phone-pad', 'number-pad', 'decimal-pad' for keyboardType |
| help | string | null | Specifies a string or node for the text positioned between label and input |
| left | bool | true | Positioning the icon on the left |
| right | bool | false | Positioning the icon on the right |
| transparent | bool | false | Determines whether the styles.transparent should be included |
| borderless | bool | false | Determines whether the styles.borderless should be included |
| border | bool | false | Determines whether the styles.border should be included |
For more properties visit TextInput props
| PROP | TYPE | DEFAULT | DESCRIPTION |
|---|---|---|---|
| h1 | bool | false | styles.h1 with fontSize size of 112 |
| h2 | bool | false | styles.h2 with fontSize size of 56 |
| h3 | bool | false | styles.h3 with fontSize size of ~45 |
| h4 | bool | false | styles.h4 with fontSize size of ~34 |
| h5 | bool | false | styles.h5 with fontSize size of ~24 |
| title | bool | false | styles.title with fontSize size of ~20 |
| subtitle | bool | false | styles.subtitle with fontSize size of 16 |
| caption | bool | false | styles.caption with fontSize size of 12 |
| size | number | 14 | Specifies a fontSize size of 14 |
| color | string | #808080 █ | Specifies a text color #808080 |
| thin | bool | false | Set the fontWeight to 100 |
| bold | bool | false | Set the fontWeight to 300 |
| light | bool | false | Set the fontWeight to bold |
| italic | bool | false | Set the fontStyle to italic |
| align | bool | null | Specifies a textAlign |
For more properties visit Text props
| PROP | TYPE | DEFAULT | DESCRIPTION |
|---|---|---|---|
| color | string | #808080 █ | Specifies an Icon color COLOR_DEFAULT #808080 |
| size | number | 16 | Specifies a fontSize size, BASE_SIZE 16px |
| name | string | null` | What icon to show, for more example see Icon Explorer |
| family | string | null` | One of the sets from Bundled Icon Sets |
For more properties visit react-native-vector-icons
| PROP | TYPE | DEFAULT | DESCRIPTION |
|---|---|---|---|
| avatar | string | false | Based on image width & height will add borderRadius with value of minimum between WIDTH & HEIGHT |
| width | number | null | Add WIDTH to image style |
| height | number | null | Add HEIGHT to image style |
| size | number | null | width & height changed using: tiny divided by 2, small divided by 1.25 or large multiplied by 2 |
| source | string | null | Image source (either a remote URL or a local file resource). |
For more properties visit Image props
A list of example screens based on the above components:
import React from 'react'; import { Block, Button, Input, Text } from 'react-ui-kit-native'; export default class LoginScreen extends React.Component { render() { return ( <Block flex middle> <Text title light color="#000"> LOGIN SCREEN </Text> <Text caption thin color="#000"> Please login to your account </Text> <Input placeholder="Email" /> <Input password placeholder="Password" /> <Button full primary rounded label="SIGN IN" /> </Block> ); } }import React from 'react'; import { Block, Button, Input, Text } from 'react-ui-kit-native'; export default class LoginScreen extends React.Component { static navigationOptions = { header: null, }; render() { return ( <Block flex middle> <Text title light color="#000"> FORGOT PASSWORD </Text> <Input placeholder="Email" /> <Button full rounded label="RESET PASSWORD" /> </Block> ); } }import React from 'react'; import { Block, Button, Input, Text } from 'react-ui-kit-native'; export default class RegisterScreen extends React.Component { render() { return ( <Block fluid flex middle> <Text title light color="#000"> REGISTER SCREEN </Text> <Input label="First name" placeholder="React" right icon="text" family="Entypo" /> <Input label="Last name" placeholder="UI Kit" right icon="text" family="Entypo" /> <Input right icon="location-pin" family="Entypo" label="Address" placeholder="Street name, number, house" /> <Input right icon="phone" family="Entypo" type="phone-pad" label="Phone number" placeholder="0712345678" /> <Button full rounded tertiary label="SIGN UP" /> </Block> ); } }import React from 'react'; import { StyleSheet, Image } from 'react-native'; import { Block, Text } from 'react-ui-kit-native'; class ProfileScreen extends React.Component { render() { const { profile } = this.props; return ( <Block fluid flex middle style={styles.profile}> <Text h5 light color="#000">{profile.fullname}</Text> <Image source={{ uri: profile.avatar }} style={styles.avatar} /> <Text subtitle light>{`${profile.city}, ${profile.country}`}</Text> <Text bold>{profile.email}</Text> </Block> ); } } ProfileScreen.defaultProps = { profile: { fullname: `React UI Kit`, city: `London`, country: `United Kingdom`, email: `contact@react-ui-kit.com`, avatar: `https://react-ui-kit.com/assets/img/react-ui-kit-logo.png`, }, }; export default ProfileScreen; const styles = StyleSheet.create({ profile: { paddingTop: 15, backgroundColor: '#fff', }, avatar: { width: 200, height: 200, resizeMode: 'contain', }, });- export components style as
stylesfor easy import - create
theme HoCwith default theme.js
Have an idea for a new component or Screen? Just contact us at contact@react-ui-kit.com and will add it to our list.



