diff --git a/README.md b/README.md
index bbd5a6d..2f468a4 100644
--- a/README.md
+++ b/README.md
@@ -1,3 +1,126 @@
-# linear-gradient-taro
+# Linear Gradient Taro
-linear gradient fro taro
+linear gradient fro taro, reference react-native-linear-gradient & react-native-web-linear-gradient add web and miniprogram support. the documentation modified from project react-native-linear-gradient.
+
+## Table of Contents
+
+- [Installation](#installation)
+- [Usage and Examples](#examples)
+- [Props](#props)
+- [Example App](#an-example-app)
+- [Troubleshooting](#troubleshooting)
+- [Other Platforms](#other-platforms)
+
+## Installation
+
+Using Yarn
+
+```sh
+yarn add linear-gradient-taro
+```
+
+Using npm
+
+```sh
+npm install linear-gradient-taro --save
+```
+
+### With React Native >= 0.60
+
+Run `npx pod-install`
+
+### Simple
+
+The following code will produce something like this:
+
+![Example code result](https://raw.githubusercontent.com/react-native-community/react-native-linear-gradient/master/images/example.png)
+
+```javascript
+import LinearGradient from 'linear-gradient-taro';
+
+// Within your render function
+
+
+ Sign in with Facebook
+
+
+```
+
+### Horizontal gradient
+
+Using the styles from above, set `start` and `end` like this to make the gradient go from left to right, instead of from top to bottom:
+
+```javascript
+
+
+ Sign in with Facebook
+
+
+```
+
+### Animated Gradient
+
+Check out [Examples/AnimatedGradient](https://github.com/react-native-linear-gradient/react-native-linear-gradient/blob/master/Examples/AnimatedGradient/App.js) (`git clone` this project, cd into it, npm install, open in Xcode and run) to see how this is done:
+
+![Example with extra props](https://raw.githubusercontent.com/react-native-community/react-native-linear-gradient/master/images/example-animated.gif)
+
+*This gif was created using [licecap](http://www.cockos.com/licecap/) - a great piece of free OSS*
+
+### Transparent Gradient
+
+The use of `transparent` color will most likely not lead to the expected result. `transparent` is actually a transparent black color (`rgba(0, 0, 0, 0)`). If you need a gradient in which the color is "fading", you need to have the same color with changing alpha channel. Example:
+
+```jsx
+// RGBA
+
+
+
+// Hex
+
+
+```
+
+## Props
+
+In addition to regular `View` props, you can also provide additional props to customize your gradient look:
+
+#### colors
+
+An array of at least two color values that represent gradient colors. Example: `['red', 'blue']` sets gradient from red to blue.
+
+#### start
+
+An optional object of the following type: `{ x: number, y: number }`. Coordinates declare the position that the gradient starts at, as a fraction of the overall size of the gradient, starting from the top left corner. Example: `{ x: 0.1, y: 0.1 }` means that the gradient will start 10% from the top and 10% from the left.
+
+#### end
+
+Same as start, but for the end of the gradient.
+
+#### locations
+
+An optional array of numbers defining the location of each gradient color stop, mapping to the color with the same index in `colors` prop. Example: `[0.1, 0.75, 1]` means that first color will take 0% - 10%, second color will take 10% - 75% and finally third color will occupy 75% - 100%.
+
+```javascript
+
+
+ Sign in with Facebook
+
+
+```
+
+![Example with extra props](https://raw.githubusercontent.com/react-native-community/react-native-linear-gradient/master/images/example-other-props.png)
+
+#### useAngle / angle / angleCenter
+
+You may want to achieve an angled gradient effect, similar to those in image editors like Photoshop.
+One issue is that you have to calculate the angle based on the view's size, which only happens asynchronously and will cause unwanted flickr.
+
+In order to do that correctly you can set `{ useAngle: true, angle: 45, angleCenter: { x: 0.5, y: 0.5} }`, to achieve a gradient with a 45 degrees angle, with its center positioned in the view's exact center.
+
+`useAngle` is used to turn on/off angle based calculation (as opposed to `start`/`end`).
+`angle` is the angle in degrees.
+`angleCenter` is the center point of the angle (will control the weight and stretch of the gradient like it does in photoshop.
diff --git a/package.json b/package.json
index 1fae3dc..0bbb7d6 100644
--- a/package.json
+++ b/package.json
@@ -23,6 +23,7 @@
"check-integration-tests": "run-s check-integration-test:*",
"diff-integration-tests": "mkdir -p diff && rm -rf diff/test && cp -r test diff/test && rm -rf diff/test/test-*/.git && cd diff && git init --quiet && git add -A && git commit --quiet --no-verify --allow-empty -m 'WIP' && echo '\\n\\nCommitted most recent integration test output in the \"diff\" directory. Review the changes with \"cd diff && git diff HEAD\" or your preferred git diff viewer.'",
"watch:build": "tsc -p tsconfig.json -w",
+ "watch:buildmodule": "tsc -p tsconfig.module.json -w",
"watch:test": "nyc --silent ava --watch",
"cov": "run-s build test:unit cov:html cov:lcov && open-cli coverage/index.html",
"cov:html": "nyc report --reporter=html",
diff --git a/src/index.ts b/src/index.ts
index 218d542..2836435 100644
--- a/src/index.ts
+++ b/src/index.ts
@@ -7,5 +7,9 @@ if (process.env.TARO_ENV === 'rn') {
} else {
implementation = require('./lib/index')
}
-const linearGradient: ComponentType = implementation.default || implementation
+
+interface ExtendLinearGradientProps extends LinearGradientProps {
+ className?: string
+}
+const linearGradient: ComponentType = implementation.default || implementation
export default linearGradient
diff --git a/src/lib/index.tsx b/src/lib/index.tsx
index 669b884..109868e 100644
--- a/src/lib/index.tsx
+++ b/src/lib/index.tsx
@@ -47,13 +47,13 @@ export default class LinearGradient extends PureComponent {
const { start, end } = this.props
- const direction = getDirction(start, end)
- if(direction) return direction
-
if (this.props.useAngle) {
return this.props.angle + 'deg';
}
+ const direction = getDirction(start, end)
+ if(direction) return direction
+
// Math.atan2 handles Infinity
const angle =
Math.atan2(
@@ -85,18 +85,17 @@ export default class LinearGradient extends PureComponent
{children}