MCPcopy
hub / github.com/wix/react-native-ui-lib

github.com/wix/react-native-ui-lib @9.1.0 sqlite

repository ↗ · DeepWiki ↗ · release 9.1.0 ↗
2,742 symbols 6,158 edges 717 files 69 documented · 3%
README

SWUbanner

 <img src="https://user-images.githubusercontent.com/1780255/105469025-56759000-5ca0-11eb-993d-3568c1fd54f4.png" height="250px" style="display:block"/>

UI Toolset & Components Library for React Native

 <img src="https://user-images.githubusercontent.com/1780255/105469340-bec47180-5ca0-11eb-8986-3eb986f884d9.jpg"/>

Build Status npm NPM Downloads Follow on Twitter

Notes

React Native New Arc

We are working on upgrading our UI Library to support the new React Native Architecture. Currently, we support React Native 0.73, and we plan to support React Native 0.77 next. While we don’t have a timeline yet, this is part of our roadmap.

Links

Download our Expo demo app

(You will need the Expo App) or open link in your devices [expo ] exp://exp.host/@vn.chemgio/rnuilib?release-channel=default

Installing

See setup instructions here.

New Major Version 6.0

See breaking changes

For React Native >= 0.60.0

please use react-native-ui-lib

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>
    );
  }
}

Contributing

See Contribution Guide

Extension points exported contracts — how you extend this code

Props (Interface)
* @description: Progress bar * @example:https://github.com/wix/react-native-ui-lib/blob/master/demo/src/screens/compone
packages/react-native-ui-lib/src/components/progressBar/index.tsx
Listener (Interface)
(no doc) [1 implementers]
packages/uilib-native/android/src/main/java/com/wix/reactnativeuilib/keyboardinput/ReactSoftKeyboardMonitor.java
ItemToRender (Interface)
(no doc)
webDemo/src/App.tsx
ControlBaseProps (Interface)
(no doc)
docuilib/src/theme/ReactLiveScope/Playground.tsx
StateOptions (Interface)
(no doc)
demo/src/screens/ExampleScreenPresenter.tsx
FadedScrollViewRef (Interface)
(no doc) [1 implementers]
packages/react-native-ui-lib/src/components/fadedScrollView/index.tsx
Listener (Interface)
(no doc) [1 implementers]
packages/uilib-native/android/src/main/java/com/wix/reactnativeuilib/keyboardinput/ReactScreenMonitor.java
ToggleControlProps (Interface)
(no doc)
docuilib/src/theme/ReactLiveScope/Playground.tsx

Core symbols most depended-on inside this repo

log
called by 84
packages/uilib-native/components/DynamicFonts/index.ts
TextFieldDriver
called by 53
packages/react-native-ui-lib/src/components/textField/TextField.driver.new.ts
asBaseComponent
called by 51
packages/react-native-ui-lib/src/commons/index.js
press
called by 46
packages/react-native-ui-lib/src/testkit/UniDriver.ts
rgba
called by 41
packages/react-native-ui-lib/src/style/colors.ts
isEmpty
called by 41
packages/react-native-ui-lib/src/style/colors.ts
parseInput
called by 35
packages/react-native-ui-lib/src/components/numberInput/Presenter.ts
ButtonDriver
called by 34
packages/react-native-ui-lib/src/components/button/Button.driver.new.ts

Shape

Function 1,233
Method 863
Class 386
Interface 202
Enum 58

Languages

TypeScript93%
Java7%

Modules by API surface

demo/src/index.js93 symbols
packages/react-native-ui-lib/src/components/index.js60 symbols
packages/react-native-ui-lib/src/style/colors.ts35 symbols
packages/react-native-ui-lib/src/components/hint/HintOld.tsx31 symbols
packages/react-native-ui-lib/src/components/slider/index.tsx29 symbols
packages/react-native-ui-lib/src/commons/Constants.ts28 symbols
packages/react-native-ui-lib/src/components/button/index.tsx25 symbols
packages/uilib-native/android/src/main/java/com/wix/reactnativeuilib/keyboardinput/CustomKeyboardLayout.java24 symbols
packages/react-native-ui-lib/src/components/carousel/index.tsx23 symbols
packages/react-native-ui-lib/src/components/colorPalette/index.tsx21 symbols
packages/react-native-ui-lib/src/commons/modifiers.ts19 symbols
packages/react-native-ui-lib/src/components/KeyboardAwareScrollView/KeyboardAwareBase.js18 symbols

Dependencies from manifests, versioned

@babel/cli7.16.8 · 1×
@babel/core7.25.2 · 1×
@babel/plugin-proposal-export-namespace-from7.18.9 · 1×
@babel/plugin-transform-modules-commonjs7.17.9 · 1×
@babel/preset-env7.25.3 · 1×
@babel/preset-react7.10.1 · 1×
@babel/preset-typescript7.14.5 · 1×
@babel/runtime7.26.10 · 1×
@docusaurus/core3.9.2 · 1×
@docusaurus/module-type-aliases3.9.2 · 1×
@docusaurus/preset-classic3.9.2 · 1×
@docusaurus/theme-live-codeblock3.9.2 · 1×

For agents

$ claude mcp add react-native-ui-lib \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact