UI Components Library for React Native
Getting Started
Installation
yarn add react-native-ui-lib
or
npm i --save react-native-ui-lib
Native Dependencies
Some of the components are using these native dependencies, they are not a requirement but will allow you to create better lookings apps (:
- react-native-animatable
- react-native-blur
Usage
import React, {Component} from 'react';
import {View, TextInput, Text, Button} from 'react-native-ui-lib';
export default class Example extends Component {
render() {
return (
<View flex paddingH-25 paddingT-120>
<Text blue50 text20>Welcome</Text>
<TextInput text50 placeholder="username" dark10/>
<TextInput text50 placeholder="password" secureTextEntry dark10/>
<View marginT-100 center>
<Button text70 white background-orange30 label="Login"/>
<Button link text70 orange30 label="Sign Up" marginT-20/>
</View>
</View>
);
}
}
Style
The base foundation of each UI component is its style.
We use basic style presets to define the rules and the style guide we follow.
Our presetes includes: Colors, Typography, Shadows, Border Radiuses and more..
The UILib already comes with a set of predefined constants and presets.
You can easily use it anywhere in your code as you would have used any other constant value, or as a component modifier.
It's also very easy to define your own presets..
import {Typography, Colors} from 'react-native-ui-lib';
Colors.loadColors({
pink: '#FF69B4',
gold: '#FFD700',
});
Typography.loadTypographies({
h1: {fontSize: 58, fontWeight: '300', lineHeight: 80},
h2: {fontSize: 46, fontWeight: '300', lineHeight: 64},
});
and so for example, the following line
<Text h1 pink>Hello World</Text>
Modifiers
As you probably noticed already, we translate our style presets into modifiers.
Modifiers will help you create a stunning UI easily and quickly.
Align Faster
Use our alignment props to quickly position your content without getting confused calculating all these flex rules.
left, top, right, bottom, row, center, centerH (Horizontal Center), centerV (Vertical Center)
<View left>
<Button label="Button">
</View>
<View right>
<Button label="Button">
</View>
<View top>
<Button label="Button">
</View>
<View bottom>
<Button label="Button">
</View>
<View center>
<Button label="Button">
</View>
Spacing & Styling
Same goes here... space, stretch and color in a more readable way.
-
[colorKey](text color), background-[colorKey]
-
[typographyPresetKey] (text components)
-
flex, flex-[value]
-
padding-[value], paddingL-[value], paddingT-[value], paddingR-[value], paddingB-[value], paddingH-[value], paddingV-[value]
-
margin-[value], marginL-[value], marginT-[value], marginR-[value], marginB-[value], marginH-[value], marginV-[value]
Check out this example where we use most of these props
Components (WIP)
- Avatar
- Badge
- Basic List
- Button
- Card
- Connection Status Bar
- List Item
- Grid List
- State Screen
- Loader Screen
- Page Control
- Picker
- Stepper
- Text
- TextInput
Helpers
AvatarHelpers
getInitials
usage:
import {AvatarHelper} from 'react-native-ui-lib';
AvatarHelper.getInitials('Lilly Wheeler'); // LW
AvatarHelper.getInitials('Russell Lloyd'); // RL
AvatarHelper.getInitials('Andrew'); // A
Colors
rgba
usage:
import {Colors} from 'react-native-ui-lib';
Colors.rgba('#ff2442', 0.05); // 'rgb(255, 36, 66, 0.05)'
Colors.rgba(44, 224, 112, 0.2); // 'rgb(44, 224, 112, 0.2)'