react-native-ui-lib

UI Components Library for React Native

Github stars Tracking Chart


Build Status
npm
NPM Downloads

Read more in our Wiki.
Check out our Docs.
Our Discord Channel

Installing

See setup instructions here.

New Major Version 5.0

See breaking changes

For React Native >= 0.60.0

please use react-native-ui-lib@^4.0.0

For React Native < 0.60.0

please use react-native-ui-lib@^3.0.0

Create your own Design System in 3 easy steps

Step 1

Load your foundations and presets (colors, typography, spacings, etc...)

// FoundationConfig.js

import {Colors, Typography, Spacings} from 'react-native-ui-lib';

Colors.loadColors({
  primaryColor: '#2364AA',
  secondaryColor: '#81C3D7',
  textColor: '##221D23',
  errorColor: '#E63B2E',
  successColor: '#ADC76F',
  warnColor: '##FF963C'
});

Typography.loadTypographies({
  heading: {fontSize: 36, fontWeight: '600'},
  subheading: {fontSize: 28, fontWeight: '500'},
  body: {fontSize: 18, fontWeight: '400'},
});

Spacings.loadSpacings({
  page: 20,
  card: 12,
  gridGutter: 16
});

Step 2

Set default configurations to your components

// ComponentsConfig.js

import {ThemeManager} from 'react-native-ui-lib';

// with plain object
ThemeManager.setComponentTheme('Card', {
  borderRadius: 8
});

// with a dynamic function
ThemeManager.setComponentTheme('Button', (props, context) => {
  // 'square' is not an original Button prop, but a custom prop that can
  // be used to create different variations of buttons in your app
  if (props.square) {
    return {
      borderRadius: 0
    };
  }
});

Step 3

Use it all together.
Your configurations will be applied on uilib components so you can use them easily with modifiers.

// MyScreen.js

import React, {Component} from 'react';
import {View, Text, Card, Button} from 'react-native-ui-lib';

class MyScreen extends Component {
  render() {
    return (
      <View flex padding-page>
        <Text heading marginB-s4>My Screen</Text>
        <Card height={100} center padding-card marginB-s4>
          <Text body>This is an example card </Text>
        </Card>
        
        <Button label="Button" body bg-primaryColor square></Button>
      </View>
    );
  }
}

Main metrics

Overview
Name With Ownerwix/react-native-ui-lib
Primary LanguageTypeScript
Program languageJava (Language Count: 12)
Platform
License:MIT License
所有者活动
Created At2017-02-08 09:55:18
Pushed At2025-06-21 13:44:34
Last Commit At2025-06-19 11:31:39
Release Count1057
Last Release Name7.43.0 (Posted on 2025-05-28 08:35:01)
First Release Namev0.0.2 (Posted on 2017-02-26 18:01:56)
用户参与
Stargazers Count6.9k
Watchers Count319
Fork Count734
Commits Count4.6k
Has Issues Enabled
Issues Count698
Issue Open Count40
Pull Requests Count2385
Pull Requests Open Count11
Pull Requests Close Count504
项目设置
Has Wiki Enabled
Is Archived
Is Fork
Is Locked
Is Mirror
Is Private