Easy react-native forms using bootstrap-like syntax with redux-form+immutablejs integration. Styled using styled-components

Overview

react-native-clean-form

npm Dependency Status devDependency Status

Easy react-native forms using bootstrap-like syntax with redux-form+immutablejs integration. Styled using styled-components

Big kudos to Artyom Khamitov

The look of the form was inspired by this shot by Artyom Khamitov. Check out his profile on Dribbble.

















Installation

Run npm install --save react-native-clean-form

The form uses react-native-vector-icons so it is important the fonts are linked by using react-native link or one of the other options available.

Example

I have written an article on my blog about React Native and redux-form

For a complete example check out the example folder

Usage

import {
  ActionsContainer,
  Button,
  FieldsContainer,
  Fieldset,
  Form,
  FormGroup,
  Input,
  Label,
  Switch
} from 'react-native-clean-form'

const FormView = props => (
  <Form>
    <FieldsContainer>
      <Fieldset label="Contact details">
        <FormGroup>
          <Label>First name</Label>
          <Input placeholder="Esben" onChangeText={this.onFirstNameChange} />
        </FormGroup>
        <FormGroup>
          <Label>Email</Label>
          <Input placeholder="[email protected]" onChangeText={this.onEmailChange} />
        </FormGroup>
      </Fieldset>
      <Fieldset label="Password" last>
        <FormGroup>
          <Label>Password</Label>
          <Input placeholder="Enter a password" onChangeText={this.onPasswordChange} />
        </FormGroup>
        <FormGroup>
          <Label>Repeat password</Label>
          <Input placeholder="Repeat your password" onChangeText={this.onRepeatPasswordChange} />
        </FormGroup>
        <FormGroup border={false}>
          <Label>Save my password</Label>
          <Switch onValueChange={this.toggleSaveMyPassword} />
        </FormGroup>     
      </Fieldset>
    </FieldsContainer>
    <ActionsContainer>
      <Button icon="md-checkmark" iconPlacement="right" onPress={this.save}>Save</Button>
    </ActionsContainer>
  </Form>
)

Usage with redux-form

import React from 'react'
import { reduxForm } from 'redux-form'
import {
  ActionsContainer,
  Button,
  FieldsContainer,
  Fieldset,
  Form,
  FormGroup,
  Label,
} from 'react-native-clean-form'
import {
  Input,
  Switch
} from 'react-native-clean-form/redux-form'
import { View,Text } from 'react-native'

const onSubmit = (values, dispatch) => {
  return new Promise((resolve) => {
    setTimeout(() => {
      console.log(values)
      resolve()
    }, 1500)
  })
}

const FormView = props => {
  const { handleSubmit, submitting } = this.props

  return (
    <Form>
      <FieldsContainer>
        <Fieldset label="Contact details">
          <Input name="first_name" label="First name" placeholder="John" />
          <Input name="email" label="Email" placeholder="[email protected]" />
        </Fieldset>
        <Fieldset label="Shipping details" last>
          <Input name="password" label="Address" placeholder="Hejrevej 33" />
          <Input name="password_repeat" label="City" placeholder="Copenhagen" />
          <Switch label="Save my details" border={false} name="save_details" />
        </Fieldset>
      </FieldsContainer>
      <ActionsContainer>
        <Button icon="md-checkmark" iconPlacement="right" onPress={handleSubmit(onSubmit)} submitting={submitting}>Save</Button>
      </ActionsContainer>
    </Form>
  )
}

export default reduxForm({
  form: 'Form'
})(FormView)

Usage with redux-form and Immutable.js

To make it work with Immutable.js import Input, Select, and Switch from react-native-clean-form/redux-form-immutable instead of react-native-clean-form/redux-form. Also, check out the included example

Validation

If integrating with redux-form validation is supported right out of the box. Just add a validation key to reduxForm your normally would.

If not using redux-form, there is an error prop on FormGroup which will display the error if used.





Async feedback

The Button component has a submitting prop. If true, a spinner will be displayed.





Run the example

Clone the repo first.

git clone https://github.com/esbenp/react-native-clean-form && cd react-native-clean-form

Install dependencies.

cd example
npm install

Run the simulator.

react-native run-ios
Comments
  • Warning Component Label declared 'PropTypes' instead 'propTypes'.

    Warning Component Label declared 'PropTypes' instead 'propTypes'.

    hello.. i got warning error Warning Component Label declared 'PropTypes' instead 'propTypes'. Did u misspell the property assignment. how can i fix it? i try to edit Label.js

    Label.PropTypes = {
      children: PropTypes.string.isRequired
    }
    

    to

    Label.propTypes = {
      children: PropTypes.string.isRequired
    }
    

    its working.. but not in Input.js

    Input.PropTypes = {
      ...TextInput.propTypes,
      inlineLabel: PropTypes.bool.isRequired
    }
    

    to

    Input.propTypes = {
      ...TextInput.propTypes,
      inlineLabel: PropTypes.bool.isRequired
    }
    

    here is my code

    <Form theme={CONFIG.theme}>
          <FieldsContainer theme={CONFIG.theme}>  
              <Fieldset label={LANG.merchant_details} theme={CONFIG.theme} >
                 <FormGroup inlineLabel={false} border={true} theme={CONFIG.theme}                            
                    <Label theme={CONFIG.theme}>{LANG.merchant_name}</Label>
                    <Input theme={CONFIG.theme} placeholder={LANG.merchant_name} onChangeText={this._setMerchantName}/>
                 </FormGroup>
            </Fieldset>
       </FieldsContainer>
    </Form>
    
    
    Environment:
      OS: macOS High Sierra 10.13.2
      Node: 6.12.0
      Yarn: 1.3.2
      npm: 5.6.0
      Watchman: 4.9.0
      Xcode: Xcode 9.2 Build version 9C40b
      Android Studio: 3.0 AI-171.4408382
    
    Packages: (wanted => installed)
      react: 16.2.0 => 16.2.0
      react-native: 0.52.0 => 0.52.0
    

    thank u..

    opened by same07 15
  • Duplicate module name error

    Duplicate module name error

    Hi,

    I m getting Duplicate module name error errors (see below for actual error) when I've installed react-native-clean-form. If I remove this error is not coming. With little Google search, I think library needs to include react and react-native as peerDependency.

    See below: https://github.com/RealOrangeOne/react-native-mock/issues/58 https://github.com/stephy/CalendarPicker/issues/24 https://github.com/facebook/react-native/issues/3558 https://github.com/facebook/react-native/issues/7384

    ...
    This warning is caused by a @providesModule declaration with the same name across two different files.
    jest-haste-map: @providesModule naming collision:
      Duplicate module name: ReactHostOperationHistoryHook
      Paths: C:\Users\kh1015\manikanta\ditcos-work\readymix\node_modules\react-native-clean-form\node_modules\react-native\Libraries\Renderer\src\renderers\shared\hooks\ReactHostOperationHistoryHook.js collides with C:\Users\kh1015\manikanta\ditcos-work\readymix\node_modules\react-native\Libraries\Renderer\src\renderers\shared\hooks\ReactHostOperationHistoryHook.js
    
    This warning is caused by a @providesModule declaration with the same name across two different files.
    jest-haste-map: @providesModule naming collision:
      Duplicate module name: ReactInstanceMap
      Paths: C:\Users\kh1015\manikanta\ditcos-work\readymix\node_modules\react-native-clean-form\node_modules\react-native\Libraries\Renderer\src\renderers\shared\shared\ReactInstanceMap.js collides with C:\Users\kh1015\manikanta\ditcos-work\readymix\node_modules\react-native\Libraries\Renderer\src\renderers\shared\shared\ReactInstanceMap.js
    
    This warning is caused by a @providesModule declaration with the same name across two different files.
    jest-haste-map: @providesModule naming collision:
      Duplicate module name: shouldUpdateReactComponent
      Paths: C:\Users\kh1015\manikanta\ditcos-work\readymix\node_modules\react-native-clean-form\node_modules\react-native\Libraries\Renderer\src\renderers\shared\shared\shouldUpdateReactComponent.js collides with C:\Users\kh1015\manikanta\ditcos-work\readymix\node_modules\react-native\Libraries\Renderer\src\renderers\shared\shared\shouldUpdateReactComponent.js
    
    This warning is caused by a @providesModule declaration with the same name across two different files.
    jest-haste-map: @providesModule naming collision:
      Duplicate module name: ReactErrorUtils
      Paths: C:\Users\kh1015\manikanta\ditcos-work\readymix\node_modules\react-native-clean-form\node_modules\react-native\Libraries\Renderer\src\renderers\shared\utils\ReactErrorUtils.js collides with C:\Users\kh1015\manikanta\ditcos-work\readymix\node_modules\react-native\Libraries\Renderer\src\renderers\shared\utils\ReactErrorUtils.js
    
    This warning is caused by a @providesModule declaration with the same name across two different files.
    jest-haste-map: @providesModule naming collision:
      Duplicate module name: ReactTypeOfWork
      Paths: C:\Users\kh1015\manikanta\ditcos-work\readymix\node_modules\react-native-clean-form\node_modules\react-native\Libraries\Renderer\src\renderers\shared\fiber\ReactTypeOfWork.js collides with C:\Users\kh1015\manikanta\ditcos-work\readymix\node_modules\react-native\Libraries\Renderer\src\renderers\shared\fiber\ReactTypeOfWork.js
    ...
    
    bug duplicate 
    opened by manikantag 11
  • Name Collision

    Name Collision

    Hi,

    Looks like a great package but i cant use it due to a collision. It might be connected to #6 or #8 but it appears to be in a different location

    This is the error im getting

    jest-haste-map: @providesModule naming collision:
      Duplicate module name: react-native
      Paths: project/node_modules/react-native/package.json collides with project/node_modules/react-native-clean-form/node_modules/react-native/package.json
    
    This warning is caused by a @providesModule declaration with the same name across two different files.
    Failed to build DependencyGraph: @providesModule naming collision:
      Duplicate module name: react-native-packager
      Paths: project/node_modules/react-native/packager/package.json collides with project/node_modules/react-native-clean-form/node_modules/react-native/packager/package.json
    
    This error is caused by a @providesModule declaration with the same name across two different files.
    Error: @providesModule naming collision:
      Duplicate module name: react-native-packager
      Paths: project/node_modules/react-native/packager/package.json collides with project/node_modules/react-native-clean-form/node_modules/react-native/packager/package.json
    
    This error is caused by a @providesModule declaration with the same name across two different files.
        at HasteMap._updateHasteMap (project/node_modules/react-native/packager/react-packager/src/node-haste/DependencyGraph/HasteMap.js:158:13)
        at p.getName.then.name (project/node_modules/react-native/packager/react-packager/src/node-haste/DependencyGraph/HasteMap.js:133:31)
    
    bug duplicate 
    opened by talbenbasat 7
  • Change the android app styles

    Change the android app styles

    The style of the android app is not optimal. The most text components are not centered vertically and the input text changes the height depending on the inlineLabel property.

    This commit does not remove the input lines because this is a component property of text-input in react native and can be changed in the general behavior.

    But to change this you also need the pull request 15.

    https://github.com/esbenp/react-native-clean-form/pull/15

    Fixes: #9

    opened by markusguenther 7
  • Can't edit the Email TextInput

    Can't edit the Email TextInput

    "prop-types": "^15.6.0", "react": "16.0.0-beta.5", "react-native": "0.49.1", "react-redux": "^5.0.6", "redux": "^3.7.2", "redux-form": "^7.1.0"

    The React Native - Redux Form Implementation Guide 3. Connect the form fields to the store using the Field wrapper

    Following the guide, when i arrive at this step and add the 'value' property to my InputText, i can't edit it in my iOS Simulator and so my form doesn't work.

    Anyone facing this issue ?

    opened by LouisJS 5
  • Styling

    Styling

    Hi,

    Styled using styled-components. Easily extendible.

    Can you give a example about customising the style? I m not able to get it correct.

    I've tried customing the Label to not occupy half of the screen, but 1/3 of it.

    const Label2 = Label`
      flex: 1
    `
    const Input2 = Input`
      flex: 2
    `
    
    render() {
      return (
        <FormGroup>
          <Label2>First name</Label2>
          <Input2 placeholder="Esben" onChangeText={this.onFirstNameChange} />
        </FormGroup>
      )
    }
    
    

    And the forms look different in Android compared to the one seen in the README. Is it expected? for native look?

    image

    opened by manikantag 5
  • undefined is not an object when importing fresh install

    undefined is not an object when importing fresh install

    Hi! i'm trying to yarn add react-native-clean-form then import it on a component but just by doing

    import { ActionsContainer, Button, FieldsContainer, Fieldset, Form, FormGroup, Input, Label, Switch } from 'react-native-clean-form'

    but I get this message about Button.js:99:28 failing at PropType checking or something like that.. Am I doing something wrong here?

    23439477_10155906959754511_1130212037_n

    opened by dukuo 4
  • Naming collision for react-native-vector-icons

    Naming collision for react-native-vector-icons

    react-native run-ios doesn't work anymore on my project with the error paraphrased below:

    @providesModule declaration with same name across two different files duplicate module name: react-native-vector-icons

    The two paths are the package.json inside of the node module "react-native" and the the same package.json inside of the node module "react-native-clean-form" inside of the node module "react-native" that is nested inside of "react-native-clean-form"

    I solved it by deleting the "react-native" node module that is nested inside of the "react-native-clean-form" node module, but I'm not sure what the proper fix is. Maybe removing react-native from the dependencies list of react-native-clean-form?

    Also since I don't think there was any change in this repo recently, did another dependency change that made this break?

    Also - I did do "react-native link" command and also tried reinstalling without linking and both ways produced the same error

    opened by BookSock 4
  • Failed to parse declaration

    Failed to parse declaration "padding: 12 8"

    Hi, I have cloned the sample app here and it works fine, but when I copied & pasted the code into my project, I get thrown this error. BTW this error only occurs when I declare the UI elements such as Select, Input etc. The containers do not give me this error.

    I am intending to use Form.js as a component within a screen (class-based component). Currently the screen is something like this:

    class EditProfileScreen extends Component { render() { const {navigate} = this.props.navigation; return ( <View> <Form /> </View> ); } }

    As I want to use redux as well, I also included mapstatetoprops and the connect helper at the bottom of my Screen's code.

    Not sure what I am doing wrong :(

    opened by leanminmachine 3
  • react-native Failed to parse declaration padding 12 8

    react-native Failed to parse declaration padding 12 8

    solution:

    Theme.js line 22 change padding : '12 8' paddingTop: 10, paddingRight: 8, paddingBottom:10, paddingLeft: 8,

    Theme.js line 32 change padding: '10 0' to paddingTop: 0, paddingRight: 10, paddingBottom: 0, paddingLeft: 10,

    Fieldset.js line 19 const FieldsetWrapper = styled.ViewborderBottomColor: ${props => props.theme.Fieldset.borderBottomColor }; borderBottomWidth: ${props => props.last ? 0 : props.theme.Fieldset.borderBottomWidth }; paddingTop : ${props => props.theme.Fieldset.paddingTop }; paddingRight : ${props => props.theme.Fieldset.paddingRight }; paddingBottom : ${props => props.theme.Fieldset.paddingBottom }; paddingLeft : ${props => props.theme.Fieldset.paddingLeft }; FormGroup.js line 28 const FormGroupWrapper = styled.Viewalign-items: ${props => props.inlineLabel ? 'center' : 'stretch' }; border-color: ${props => props.error ? props.theme.FormGroup.errorBorderColor : props.theme.FormGroup.borderColor}; border-radius: ${props => props.theme.FormGroup.borderRadius}; border-style: ${props => props.theme.FormGroup.borderStyle}; border-width: ${props => props.border ? props.theme.FormGroup.borderWidth : 0}; flex-direction: ${props => props.inlineLabel ? 'row' : 'column' }; justify-content: flex-start; height: ${props => calculateHeight(props)}; marginBottom: ${props => props.theme.FormGroup.marginBottom}; paddingTop : ${props => props.theme.FormGroup.paddingTop }; paddingRight : ${props => props.theme.FormGroup.paddingRight }; paddingBottom : ${props => props.theme.FormGroup.paddingBottom }; paddingLeft : ${props => props.theme.FormGroup.paddingLeft };

    opened by erdalceylan 3
  • please push 0.3.0 to npm registry, it's still at 0.1.0

    please push 0.3.0 to npm registry, it's still at 0.1.0

    seems like a lot of the duplicate module name errors can be solved by using the latest version of this project instead of the default installed by npm.

    Problem: Using npm install react-native-clean-form installs version 0.1.0

    Workaround: Manually using "react-native-clean-form": "esbenp/react-native-clean-form", in package.json will cause version 0.3.0 to be installed.

    #8, #27, #37

    enhancement 
    opened by clindsey 3
  • InitialValues with redux-form

    InitialValues with redux-form

    I'm trying to add an initial value as I'm doing it with a standard redux-form, but nothing happens. It is not documented, how can I achieve this? Here is the snippet of code:

    function mapStateToProps(state) {
      const firstName = state.auth.firstName;
      const initialValues = {
        firstName
      };
      return {
        initialValues
      };
    }
    
    export default connect(mapStateToProps)(
      reduxForm({ form: "Form" })(Form)
    );
    
    opened by ticketapp 0
  • undefined is not an object (evaluating 'props.theme.Fieldset.borderBottomColor')

    undefined is not an object (evaluating 'props.theme.Fieldset.borderBottomColor')

    I am having this issue and can't fix it. My config is: "react-native-clean-form": "^0.5.0", "react-redux": "^5.0.7", "react": "16.5.0", "react-native": "https://github.com/expo/react-native/archive/sdk-32.0.0.tar.gz",

    error got from command line:

    TypeError: TypeError: undefined is not an object (evaluating 'props.theme.Fieldset.borderBottomColor')

    `This error is located at: in StyledNativeComponent (created by ForwardRef) in Fieldset (at FormView.js:39) in RCTView (at View.js:44) in StyledNativeComponent (created by ForwardRef) in RCTScrollContentView (at ScrollView.js:852) in RCTScrollView (at ScrollView.js:977) in ScrollView (at Form.js:28) in RCTView (at View.js:44) in Form (at FormView.js:37) in FormView (created by Form(FormView)) in Form(FormView) (created by Connect(Form(FormView))) in Connect(Form(FormView)) (created by ReduxForm) in ReduxForm (at DetailsScreen.js:31) in DetailsScreen (created by SceneView) in SceneView (at StackViewLayout.js:793) in RCTView (at View.js:44) in AnimatedComponent (at StackViewCard.js:69) in RCTView (at View.js:44) in AnimatedComponent (at screens.native.js:59) in Screen (at StackViewCard.js:57) in Card (at createPointerEventsContainer.js:27) in Container (at StackViewLayout.js:858) in RCTView (at View.js:44) in ScreenContainer (at StackViewLayout.js:311) in RCTView (at View.js:44) in AnimatedComponent (at StackViewLayout.js:307) in Handler (at StackViewLayout.js:300) in StackViewLayout (at withOrientation.js:30) in withOrientation (at StackView.js:79) in RCTView (at View.js:44) in Transitioner (at StackView.js:22) in StackView (created by Navigator) in Navigator (at createKeyboardAwareNavigator.js:12) in KeyboardAwareNavigator (created by SceneView) in SceneView (at StackViewLayout.js:793) in RCTView (at View.js:44) in AnimatedComponent (at StackViewCard.js:69) in RCTView (at View.js:44) in AnimatedComponent (at screens.native.js:59) in Screen (at StackViewCard.js:57) in Card (at createPointerEventsContainer.js:27) in Container (at StackViewLayout.js:858) in RCTView (at View.js:44) in ScreenContainer (at StackViewLayout.js:311) in RCTView (at View.js:44) in AnimatedComponent (at StackViewLayout.js:307) in Handler (at StackViewLayout.js:300) in StackViewLayout (at withOrientation.js:30) in withOrientation (at StackView.js:79) in RCTView (at View.js:44) in Transitioner (at StackView.js:22) in StackView (created by Navigator) in Navigator (at createKeyboardAwareNavigator.js:12) in KeyboardAwareNavigator (at createAppContainer.js:388) in NavigationContainer (at App.js:55) in RCTView (at View.js:44) in Provider (at App.js:52) in App (at withExpoRoot.js:22) in RootErrorBoundary (at withExpoRoot.js:21) in ExpoRootComponent (at renderApplication.js:34) in RCTView (at View.js:44) in RCTView (at View.js:44) in AppContainer (at renderApplication.js:33)

    opened by GoGaetan 3
  • Use redux-form as clean dependency

    Use redux-form as clean dependency

    Redux-form is included as plain file and not as dependency from https://github.com/erikras/redux-form/

    This should be changed and there will be some adjustments to make it work again.

    enhancement 
    opened by markusguenther 0
  • Introduce semantics-release

    Introduce semantics-release

    It would be so nice to have semantic-release. In combination with commitizen that would automate the release process and enables members of the project to release also in npm.

    Only thing we need is a valid npm_token and need to create a travis project. Could also help with that.

    https://github.com/semantic-release/semantic-release

    https://github.com/commitizen/cz-cli

    enhancement 
    opened by markusguenther 0
Releases(0.5.0)
Angular like reactive forms in React.

React Reactive Forms It's a library inspired by the Angular's Reactive Forms, which allows to create a tree of form control objects in the component c

Kuldeep Saxena 290 Nov 26, 2022
A simple, declarative API for creating cross-platform, native-appearing forms with React Native

React Native Forms Project status I wrote this library several (many?) years ago for a use-case at work, when React Native was still quite young, comp

Michael Helvey 87 Jul 10, 2022
📋 React Hooks for forms validation (Web + React Native)

Version 7 | Version 6 English | 日本語 Features Built with performance, UX and DX in mind Embraces native form validation Out of the box integration with

React Hook Form 32.6k Jan 8, 2023
Forms library for react-native

Notice tcomb-form-native is looking for maintainers. If you're interested in helping, a great way to get started would just be to start weighing-in on

Giulio Canti 3.2k Dec 17, 2022
Generate forms with native look and feel in a breeze

React Native Form Generator Generate forms with native look and feel in a breeze Components Picker DatePicker TimePicker Input Link Separator Switch F

Michael Cereda 375 Dec 7, 2022
Build forms in React, without the tears 😭

Build forms in React, without the tears. Visit https://formik.org to get started with Formik. Organizations and projects using Formik List of organiza

Formium 31.7k Dec 31, 2022
React component for convert the valle screens-api data structure to web component based forms.

valleForm React component for convert the valle screens-api data structure to web component based forms. Write <valleForm tabs = { [...] } but

Valle Sistemas de Gestão 7 Dec 16, 2021
Handle your forms in a smart way

react-native-form-builder Note: If you're looking for a better form management library with more advanced features, Please check out React Reactive Fo

Kuldeep Saxena 117 Jul 24, 2022
📝 Form component for React Native.

Gifted Form Form component for React Native. Example var { GiftedForm, GiftedFormManager } = require('react-native-gifted-form'); var FormComponent =

Farid Safi 1.4k Dec 19, 2022
A simple react-native component to wrap your form fields and get their values with just one single method.

react-native-form A simple react-native component to wrap your form fields and get their values without attaching listeners everywhere. Installation n

Juliano Duarte 145 Nov 11, 2022
Simple form validation library for React Native.

Foect Simple form validation library for React Native. Installing Npm npm i --save foect Yarn yarn add foect Quick Start import { TextInput, Text, V

null 38 Nov 11, 2022
Project using React Router, Styled Components, useEffect, useState and context

Before run do the steps bellow install npm or yarn To run this application you can just use npm or if you want, yarn is another option. Download NPM I

Guilherme Mello 0 Dec 29, 2021
A Formik inspired form library that uses MobX under the hood

Formix A Formik inspired form library that uses MobX under the hood and update only the changed fields. Installation Using npm: npm install @euk-labs/

Shoulders 6 Dec 29, 2021
A simple validation library for react native

react-native-form-validator A simple validation library for react native Installation Run: $ npm i react-native-validation --save Validators: matchReg

Şerafettin Aytekin 14 Mar 25, 2021
CLI tool that makes react boilerplate component. Supports es6 or typescript, css or @emotion/styled, emmet-like syntax.

CLI tool that makes react boilerplate component. Supports es6 or typescript, css or @emotion/styled, emmet-like syntax.

Malakhov Mikhail 4 May 24, 2022
Implementation Angular 13 Form Validation with Submit using Reactive Forms Module and Bootstrap 4.

Implementation Angular 13 Form Validation with Submit using Reactive Forms Module and Bootstrap 4. The form has: Full Name: required Username: require

Meher 1 May 5, 2022
React Hook Form Validation example with react-hook-form 7 and Bootstrap 4

React Hook Form Validation example with react-hook-form 7 and Bootstrap 4 Project setup In the project directory, you can run: npm install # or yarn i

JS-IT 4 Mar 17, 2022
Free-from-jsx.macro - Babel macro that allows you to use a flutter like render syntax

Free-from-jsx.macro - Babel macro that allows you to use a flutter like render syntax

Gabriel Rohden 3 Jul 7, 2022
Syntax highlighting, like what GitHub uses to highlight code, but free and open source and JavaScript

Close up of The Starry Night by Vincent van Gogh (1889) with examples of starry-night over it starry-night Syntax highlighting, like what GitHub uses

Titus 593 Jan 6, 2023
A theme friendly, easy to use react-native toast component built using styled-components and styled-system.

react-native-styled-toast Themeable react-native toast component built using styled-components & styled-system. Features Pure JS implementation Suppor

Jean Verster 292 Dec 22, 2022