React Native Design System
is a set of design rules and component library that lets you prototype faster with easy to use cross-platform components. Let's get started!
🏠 Homepage
Simply go to the command line and run this command.
yarn add react-native-design-system
This library needs react-native-vector-icons
so go on and install that too to get all the cool icons. Check out Install guide.
React Native Design System uses a centralized theme to provide consistency across all the components.
This step is important. We are passing theme
as context value that each component will access.
//your root component
import { ThemeProvider, theme } from 'react-native-design-system';
function App(){
return (
<ThemeProvider value={theme}>
<Root />
</ThemeProvider>
);
}
//inside any file
import { Button } from 'react-native-design-system';
function HomeScreen(){
return (
<Button>
Press Me
</Button>
);
}
That's pretty much it. theme
file contains configuration for all the components. Don't worry, you can easily customize it. Let me show how:
You just need to import theme
, reassign the value you want to change and pass it to ThemeProvider
. Example:
Default primary color is blue but you like orange so you can simply do:
import { ThemeProvider, theme } from 'react-native-design-system';
theme.brandColor.primary = "orange";
function App(){
return (
<ThemeProvider value={theme}>
<Root />
</ThemeProvider>
);
}
And we are done!
You can see all the configurations available on the theme page.
This is just a personal approach, you can do as you prefer. What I usually do is create a theme.config.js
file and add all my customizations there.
//theme.config.js at root
import { theme } from 'react-native-design-system';
theme.textColor = {
'default': '#000',
'heading': '#999',
'subtle': '#333',
'grey': '#757575',
'disabled': '#78909c',
'white': '#f8f8f8',
};
export default theme;
Now, I will just import theme
from here and pass it to my ThemeProvider
.
import { ThemeProvider } from 'react-native-design-system';
import theme from './theme.config.js';
function App(){
return (
<ThemeProvider value={theme}>
<Root />
</ThemeProvider>
);
}
Please make sure to pass all the keys while reassigning any object inside the theme.
- Avatar
- ActionButton
- Badge
- Button
- SlidingButton
- MenuAddButton
- Card
- CheckBox
- CircularProgressBar
- Header
- Image
- Input
- ListItem
- SlidingListItem
- FullScreenLoader
- Overlay
- Box
- Stack
- Inline
- Pricing
- RadioButton
- SearchBar
- Social Icons / Social Icon Buttons
- Deck
- Text
- Tooltip
👤 Shad Mirza
- Twitter: @iamshadmirza
- Github: @iamshadmirza
- Blogs: @iamshadmirza
Contributions, issues and feature requests are welcome!
Feel free to check issues page and contribution guidelines.
Give a ⭐️ if this project helped you!
Copyright © 2019 Shad Mirza.
This project is MIT licensed.
This README was generated with ❤️ by readme-md-generator