Skip to content

dmapper/babel-plugin-react-native-stylename-to-style

 
 

Repository files navigation

babel-plugin-react-native-stylename-to-style

NPM version Build Status Build status Coverage Status PRs Welcome

Transform JSX styleName property to style property in react-native. The styleName attribute and syntax are based on babel-plugin-react-css-modules.

Usage

Step 1: Install

yarn add --dev babel-plugin-react-native-stylename-to-style

or

npm install --save-dev babel-plugin-react-native-stylename-to-style

Step 2: Configure .babelrc

You must give one or more file extensions inside an array in the plugin options.

{
  "presets": [
    "react-native"
  ],
  "plugins": [
    ["react-native-stylename-to-style", {
      "extensions": ["css"]
    }]
  ]
}

Syntax

Anonymous reference

Anonymous reference can be used when there is only one stylesheet import.

Single class

import "./Button.css";

<View styleName="wrapper">
  <Text>Foo</Text>
</View>;

↓ ↓ ↓ ↓ ↓ ↓

import Button from "./Button.css";

<View style={Button.wrapper}>
  <Text>Foo</Text>
</View>;

Multiple classes

import "./Button.css";

<View styleName="wrapper red-background">
  <Text>Foo</Text>
</View>;

↓ ↓ ↓ ↓ ↓ ↓

import Button from "./Button.css";

<View style={[Button.wrapper, Button["red-background"]]}>
  <Text>Foo</Text>
</View>;

with styleName and style:

import "./Button.css";

<View styleName="wrapper" style={{ height: 10 }}>
  <Text>Foo</Text>
</View>;

↓ ↓ ↓ ↓ ↓ ↓

import Button from "./Button.css";

<View style={[Button.wrapper, { height: 10 }]}>
  <Text>Foo</Text>
</View>;

Named reference

Named reference is used to refer to a specific stylesheet import.

Single class

import foo from "./Button.css";

<View styleName="foo.wrapper">
  <Text>Foo</Text>
</View>;

↓ ↓ ↓ ↓ ↓ ↓

import foo from "./Button.css";

<View style={foo.wrapper}>
  <Text>Foo</Text>
</View>;

Multiple classes

import foo from "./Button.css";
import bar from "./Grid.css";

<View styleName="foo.wrapper bar.column">
  <Text>Foo</Text>
</View>;

↓ ↓ ↓ ↓ ↓ ↓

import foo from "./Button.css";
import bar from "./Grid.css";

<View style={[foo.wrapper, bar.column]}>
  <Text>Foo</Text>
</View>;

About

Transform styleName property to style property in react-native.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • JavaScript 100.0%