Note: This README is only relevant to the latest version of our plugin. If you are using an older version, please switch to the relevant tag on our GitHub repo to view the docs for that particular version. This plugin provides basic components of React Native for Easy Design and smooth experience to your React Native app(s).
🎉 🎉 🎉Special Announcement: We launch a new package react-native-basic-element-generator for generating react native project with a pre-defined file structure and some necessary configuration. It is ready to use.🎉 🎉 🎉
Follow the instruction given bellow
npm install react-native-basic-elements
After run this command you have successfully install this plugin. Now you have to install react-native-vector-icons because we use icon internally.
npm install --save react-native-vector-icons
After installing react-native-vector-icons you have to configure it. Read the configuration process of react-native-vector-icons
import React, { useState } from 'react'
import {CheckBox} from 'react-native-basic-elements';
const MyComponent = () => {
const [check, setCheck] = useState(false);
return (
<CheckBox
checked = {check}
onChange = {(val) => setCheck(val)}
size = {25}
>
)
}
Props | Description | Default |
---|---|---|
checked |
This is the default value of CheckBox. Props type boolean |
false |
activeColor |
This color show when checked is set to true |
'blue' |
inactiveColor |
This color show when checked is set to false |
'#999' |
tintColor |
Color of check icon. | '#fff' |
size |
Size of checkBox | 16 |
containerStyle |
With this you can change the style of checkbox | undefined |
Props | Description |
---|---|
onChnage |
This callback function is called when you click on checkbox. It returns boolean value |
import React, { useState } from 'react'
import {RadioButton} from 'react-native-basic-elements';
const MyComponent = () => {
const [selected, setSelected] = useState(false);
return (
<RadioButton
selected = {selected}
onChange = {(val) => setSelected(val)}
size = {25}
>
)
}
Props | Description | Default |
---|---|---|
selected |
This is the default value of RadioButton. Props type boolean |
false |
activeColor |
This color show when selected is set to true |
'blue' |
inactiveColor |
This color show when selected is set to false |
'#999' |
size |
Size of RadioButton | 20 |
containerStyle |
With this you can change the style of RadioButton | undefined |
Props | Description |
---|---|
onChnage |
This callback function is called when you click on RadioButton. It returns boolean value |
This is a card with pre-styled and clickable.
import {Card} from 'react-native-basic-elements';
const MyComponent = () => {
return (
<Card>
{/* Your JSX Elements */}
</Card>
)
}
Props | Description | Default |
---|---|---|
style |
For styling the card. | undefined |
shadow |
This is for enabling or disabling pre defined shadow. Also you can overwrite them with defining shadow in style . It take boolean value. |
true |
And it also support all View
and Pressable
props.
This is for status bar that configured on android and ios both.
import {StatusBar} from 'react-native-basic-elements';
const MyComponent = () => {
return (
<StatusBar
backgroundColor={'green'}
barStyle = 'light-content'
/>
)
}
Props | Description | Default |
---|---|---|
backgroundColor |
For statusbar color. | #fff |
barStyle |
For StatusBar content color. Value type **`enum('dark-content', 'light-content') | 'dark-content' |
hidden |
This is used for show or hide the statusbar. | false |
translucent |
If the status bar is translucent. When translucent is set to true, the app will draw under the status bar. This is useful when using a semi transparent status bar color. | false |
import {Container, Text} from 'react-native-basic-elements';
const MyComponent = () => {
return (
<Container
style = {{
alignItems: 'center'
}}
>
<Text>
This is my Text
</Text>
<Text.Heading
title='This is my Heading'
/>
<Text.SubHeading
title='This is my SubHeading'
/>
</Container>
)
}
export default MyComponent;
We have 3 types of pre-configured Text Components bellow :
It's same as react-native
Text
component but it takes color autometic from theme.
Props | Description |
---|---|
title |
It takes string in title. |
style |
It is for styling the text. |
And all Text
props are available in those components.
import { Accordion } from 'react-native-basic-components';
const MyComponent = () => {
return (
<Accordion
leftIcon={{
name: 'home',
size: 25
}}
title='Home'
containerStyle={{
margin: 10
}}
shadow={true}
>
{/* your design */}
</Accordion>
)
}
export default MyComponent;
Props | Description | Default |
---|---|---|
title |
Title of the accordion. | undefined |
leftIcon |
Icon in the left side of the Title. Type of Icon Props | undifined |
openIcon |
It is used for right indicator when accordion is oppned | 'chevron-up' |
closeIcon |
It is used for right indicator when accordion is closed | 'chevron-down' |
titleStyle |
Style for title. | undefined |
containerStyle |
Style for accordion container | undefined |
inputStyle |
Style for accordion Input | undefined |
shadow |
If it is true then accordion has a shadow |
false |
customElement |
You can add custom components from here. | undefined |
bottomElement |
You can add bottom components that is visiable when accordion is opened | undefined |
import { Accordion } from 'react-native-basic-components';
const MyComponent = () => {
return (
<Accordion
leftIcon={{
name: 'home',
size: 25
}}
title='Home'
containerStyle={{
margin: 10
}}
shadow={true}
>
<Accordion.Item
title='Home 1'
leftIcon={{
name: 'thumbs-up',
type: 'Feather'
}}
/>
<Accordion.Item
title='Home 2'
leftIcon={{
name: 'upload',
type: 'Feather'
}}
/>
<Accordion.Item
title='Home 2'
leftIcon={{
name: 'upload',
type: 'Feather'
}}
/>
</Accordion>
)
}
export default MyComponent;
Props | Description | Default |
---|---|---|
title |
Title of the accordion item. | undefined |
leftIcon |
Icon in the left side of the Title. Type of Icon Props | undifined |
titleStyle |
Style for title. | undefined |
style |
Style for accordion item container | undefined |
leftSpacing |
If it is true then the item take some spacing from left |
true |
import { Accordion } from 'react-native-basic-components';
const MyComponent = () => {
return (
<Accordion
leftIcon={{
name: 'home',
size: 25
}}
title='Home'
containerStyle={{
margin: 10
}}
shadow={true}
>
<Accordion.Custom
children={<View
style={{
height: 200,
flex: 1,
borderWidth: 1
}}
/>}
/>
</Accordion>
)
}
export default MyComponent;
Props | Description | Default |
---|---|---|
style |
Style for accordion item container | undefined |
leftSpacing |
If it is true then the item take some spacing from left |
true |
children |
This is the custom children | required |
import {Picker} from 'react-native-basic-components';
const MyComponent = () => {
const [dropdownValue, setDropdownValue] = useState('');
return (
<Picker
options={[
{
label: 'Item 1',
value: 'item1'
},
{
label: 'Item 2',
value: 'item2'
},
{
label: 'Item 3',
value: 'item3'
},
{
label: 'Item 4',
value: 'item4'
},
{
label: 'Item 5',
value: 'item5'
},
]}
placeholder="PlaceHolder"
textStyle={{
fontSize: 15
}}
selectedValue={dropdownValue}
onValueChange={(val) => setDropdownValue(val)}
/>
)
}
Props | Description | Default |
---|---|---|
style |
Style of the Picker Component. | undefined |
options |
It takes an Array as options for the picker. |
[] |
placeholder |
Placeholder for the Picker Input | undefined |
showPlaceholder |
Show the placeholder or not. | undefined |
labelKey |
It takes that key as the lebel key from options Array |
'label' |
valueKey |
It takes that key as the value key from options Array |
'value' |
selectedValue |
It takes the defalut value(Required) | '' |
mode |
This is the mode of the Picker. Value type **`enum('dropdown', 'dialog') | dropdown |
containerStyle |
This is the Style of the input container | undefined |
iosModalBackGroundColor |
This is for ios. It change the modal background color. | Theme card color |
onValueChange |
Callback that is called when the picker change it's value. Changed item value is passed as a single string argument to the callback handler. | undefined |
dropdownIconColor |
On Android, specifies color of dropdown triangle. | undefined |
import {Picker} from 'react-native-basic-components';
const MyComponent = () => {
const [dropdownValue, setDropdownValue] = useState([]);
return (
<Picker.Multi
options={[
{
label: 'Item 1',
value: 'item1'
},
{
label: 'Item 2',
value: 'item2'
},
{
label: 'Item 3',
value: 'item3'
},
{
label: 'Item 4',
value: 'item4'
},
{
label: 'Item 5',
value: 'item5'
},
{
label: 'Item 6',
value: 'item6'
},
{
label: 'Item 7',
value: 'item7'
},
{
label: 'Item 8',
value: 'item8'
},
{
label: 'Item 9',
value: 'item9'
},
{
label: 'Item 10',
value: 'item10'
},
]}
returnDataType={(item) => { return {value: item.value} }}
onValueChange={(val) => {
setDropdownValue(val)
}}
selectedValues={dropdownValue}
/>
)
}
Props | Description | Default |
---|---|---|
modalContainerStyle |
Style for modal container. | undefined |
options |
It takes an Array as options for the picker. |
[] |
placeholder |
Placeholder for the Picker Input | undefined |
placeholderStyle |
Style for picker placeholder. | undefined |
labelKey |
It takes that key as the lebel key from options Array |
'label' |
valueKey |
It takes that key as the value key from options Array |
'value' |
selectedValues |
It takes the defalut value(Required) | [] |
closeIcon |
Modal Close Icon. Type of Icon Props | undefined |
modalHeading |
Heading of the Selection modal | 'Choose' |
modalHeadingTitle |
Heading text style of the Selection modal | undefined |
itemContainerStyle |
This is the Item List style. | undefined |
itemTextStyle |
This is the Item List text style. | undefined |
selectedIcon |
This is the selected item icon. Type of Icon Props | undefined |
itemTextStyle |
This is the Item List text style. | undefined |
onValueChange |
Callback that is called when the picker change it's value. Changed item value is passed as a single string argument to the callback handler. | undefined |
returnDataType |
Takes an item from options , and which data type you return that will be give as value in onValueChange . |
(item) => {return item[valueKey]} |
import {Picker} from 'react-native-basic-components';
const MyComponent = () => {
const [dropdownValue, setDropdownValue] = useState([]);
return (
<Picker.Custom
selectedValue={dropdownValue}
options={[
{
label: 'Item 1',
value: 'item1'
},
{
label: 'Item 2',
value: 'item2'
},
{
label: 'Item 3',
value: 'item3'
},
{
label: 'Item 4',
value: 'item4'
},
{
label: 'Item 5',
value: 'item5'
},
{
label: 'Item 6',
value: 'item6'
},
{
label: 'Item 7',
value: 'item7'
},
{
label: 'Item 8',
value: 'item8'
},
{
label: 'Item 9',
value: 'item9'
},
{
label: 'Item 10',
value: 'item10'
},
]}
placeholder='Dropdown'
renderItem={(item, index, onPress, isSelected) => {
return (
<Pressable
style={{
height: 50,
justifyContent: 'center',
paddingHorizontal: 10,
backgroundColor: isSelected ? 'green' : undefined
}}
onPress={onPress}
>
<Text>{item['label']}</Text>
</Pressable>
)
}}
onValueSelect={setDropdownValue}
/>
)
}
Props | Description | Default |
---|---|---|
inputStyle |
Style for dropdown input. | undefined |
inputTextStyle |
Text Style of dropdown input. | undefined |
selectedValue |
It takes the defalut value(Required) | '' |
placeholder |
Placeholder for the Picker Input | undefined |
placeholderColor |
Color for picker placeholder. | '#999' |
options |
It takes an Array as options for the picker. |
[] |
labelKey |
It takes that key as the lebel key from options Array |
'label' |
valueKey |
It takes that key as the value key from options Array |
'value' |
backdropColor |
It is the color of backdrop. | '#000000' |
backdropOpacity |
It is opacity of the color of backdrop. | 0.5 |
backdrop |
It takes a boolean value to ensure that backdrop is shown or not |
true |
modalContainerStyle |
Style for modal container. | undefined |
modalBackgroundColor |
Background Color for modal container. | '#ffffff |
closeIcon |
Modal Close Icon. Type of Icon Props | undefined |
inputRightIcon |
Input Right Icon. Type of Icon Props | undefined |
modalHeading |
Heading of the Selection modal | 'Choose' |
modalHeadingTitle |
Heading text style of the Selection modal | undefined |
modalHeaderShadow |
Show the header shadow or not. | true |
showHeader |
Show the header or not. | true |
onValueSelect |
Callback that is called when the picker change it's value. Changed item value is passed as a single string argument to the callback handler. | undefined |
renderItem |
It's a function. From it, you should return a ReactElement that will show in the modal as an item. |
undefined |
import {Picker} from 'react-native-basic-components';
const MyComponent = () => {
const [dropdownValue, setDropdownValue] = useState([]);
return (
<Picker.Outline
selectedValue={dropdownValue}
options={[
{
label: 'Item 1',
value: 'item1'
},
{
label: 'Item 2',
value: 'item2'
},
{
label: 'Item 3',
value: 'item3'
},
{
label: 'Item 4',
value: 'item4'
},
{
label: 'Item 5',
value: 'item5'
},
{
label: 'Item 6',
value: 'item6'
},
{
label: 'Item 7',
value: 'item7'
},
{
label: 'Item 8',
value: 'item8'
},
{
label: 'Item 9',
value: 'item9'
},
{
label: 'Item 10',
value: 'item10'
},
]}
placeholder='Dropdown'
renderItem={(item, index, onPress, isSelected) => {
return (
<Pressable
style={{
height: 50,
justifyContent: 'center',
paddingHorizontal: 10,
backgroundColor: isSelected ? 'green' : undefined
}}
onPress={onPress}
>
<Text>{item['label']}</Text>
</Pressable>
)
}}
onValueSelect={setDropdownValue}
/>
)
}
Props | Description | Default |
---|---|---|
inputStyle |
Style for dropdown input. | undefined |
borderWidth |
Style for border width . | 1 |
inputTextStyle |
Text Style of dropdown input. | undefined |
selectedValue |
It takes the defalut value(Required) | '' |
placeholder |
Placeholder for the Picker Input | undefined |
activeBorderColor |
This is the color of the input border when the input is Focused | 'blue' |
inactiveBorderColor |
This is the color of the input border when the input is not Focused | '#000' |
placeholderColor |
Color for picker placeholder. | '#999' |
placeholderTextStyle |
This is tha style for styling the placeholder text. |
'#999' |
options |
It takes an Array as options for the picker. |
[] |
labelKey |
It takes that key as the lebel key from options Array |
'label' |
valueKey |
It takes that key as the value key from options Array |
'value' |
backdropColor |
It is the color of backdrop. | '#000000' |
backdropOpacity |
It is opacity of the color of backdrop. | 0.5 |
backdrop |
It takes a boolean value to ensure that backdrop is shown or not |
true |
modalContainerStyle |
Style for modal container. | undefined |
modalBackgroundColor |
Background Color for modal container. | '#ffffff |
containerStyle |
It is the style of the whole container including. | none |
closeIcon |
Modal Close Icon. Type of Icon Props | undefined |
inputRightIcon |
Input Right Icon. Type of Icon Props | undefined |
modalHeading |
Heading of the Selection modal | 'Choose' |
modalHeadingTitle |
Heading text style of the Selection modal | undefined |
modalHeaderShadow |
Show the header shadow or not. | true |
placeholderTextSize |
Show the header shadow or not. | 18 |
showHeader |
Show the header or not. | true |
modalHeadingTitleStyle |
It is the style of Modal Heading . |
undefine |
onValueSelect |
Callback that is called when the picker change it's value. Changed item value is passed as a single string argument to the callback handler. | undefined |
renderItem |
It's a function. From it, you should return a ReactElement that will show in the modal as an item. |
undefined |