npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

rn-md-textinput

v2.2.0

Published

React Native TextInput styled with Material Design.

Downloads

2

Readme

React Native Material Design TextInput

React Native TextInput styled with Material Design.

Original repository: https://github.com/evblurbs/react-native-md-textinput

I just created a new repository because the original author has been inactive for 3 years and there were many unanswered issues and unmerged pull requests.

Feel free to create PRs and issues in here.

demo

Installation

npm install rn-md-textinput

Usage

I'm going to refer to the rn-md-textinput Component as TextField. You can name it whatever you like when importing it.

The most basic usage is to import the TextField Component and render it with the props label and highlightColor. Note that this example uses the ScrollView Component. This allows the keyboard to be dismissed when users tap outside the input and keyboard area.

import TextField from 'rn-md-textinput';

class App extends React.Component {
  render() {
    return (
      <ScrollView>
        <TextField label={'Name'} highlightColor={'#00BCD4'} />
      </ScrollView>
    );
  }
}

TextInput

To customize the TextInput that is rendered inside the TextField Component, simply pass props the TextInput accepts to the TextField Component. You can find the props the TextInput Component accepts here.

Here is an example of how to change the keyboard type to numeric.

import TextField from 'rn-md-textinput';

class App extends React.Component {
  render() {
    return (
      <ScrollView>
        <TextField
          label={'Name'}
          highlightColor={'#00BCD4'}
          keyboardType={'numeric'}
        />
      </ScrollView>
    );
  }
}

Dense Styling

To use the "dense" styling that matches the Material Design Style Guide, you can set the prop dense to true. By default, this prop is set to false.

demo dense

Props

Below are the props you can pass to the React Component to customize the TextInput.

Prop | Type | Default | description -----|------|---------|------------ label | string | | This string appears as the label. highlightColor | string | | This string represents the hex code, rgb, or rgba color of the TextInput label and underline when it is active/focused on. duration | number | 200 | A number representing the duration of floating label and underline animations in milliseconds. labelColor | string | #9E9E9E | This string represents the hex code, rgb, or rgba color of the TextInput label when it is inactive. textColor | string | #000 | This string represents the hex code, rgb, or rgba color of the text entered in the TextInput. Note: If you set textFocusColor or textBlurColor, those colors will override this one during the corresponding state of the TextInput. textFocusColor | string | | This string represents the hex code, rgb, or rgba color of the text entered in the TextInput when it is active/focused on. textBlurColor | string | | This string represents the hex code, rgb, or rgba color of the text entered in the TextInput when it is inactive. borderColor | string | #E0E0E0 | This string represents the hex code, rgb, or rgba color of the TextInput underline when it is inactive. dense | bool | false | If true, it will render the "dense" input field which is smaller in height and has smaller font sizes. You can view more here. multiline | bool | false | If true, it will allow multiline text input height | number | undefined | A number representing the initial height of the textInput autoGrow | bool | false | If true enables autogrow of the textInput underlineColorAndroid | string | rgba(0,0,0,0) | This sets the default underline color on Android to transparent (Issue #1).

Style Overrides

The main purpose of this component is to easily add a TextInput that matches the Material Design Style Guide. With that said, there have been requests (i.e. PR #4) to style the component beyond the Material Design Style Guide. I've added the props below to allow you to do exactly that. DO THIS AT YOUR OWN RISK. Changing the layout requires an understanding of the main elements of this component (i.e. FloatingLabel, the Viewwrapper, and the TextInput), and may cause compatibility issues between Android and iOS (Issue #2). I'll try to support any issues with these props, but they will be treated as second class citizens.

Prop | Type | Default | description -----|------|---------|------------ inputStyle | Object | | Object to override the styles of the TextInput.1 wrapperStyle | Object | | Object to override the styles of the View that wraps the TextInput.1 labelStyle | Object | | Object to override the styles of the Label that animates on focus of the TextInput.1

1: Object to override styles needs to match the format of inline styles. You can find the supported properties here.

TODO

  • [ ] Support multi-line TextInput fields
  • [ ] Support character limit
  • [ ] Add option for dark theme