Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/richardzcode/a-theme-react

AWS Amplify themes for React
https://github.com/richardzcode/a-theme-react

Last synced: about 1 month ago
JSON representation

AWS Amplify themes for React

Awesome Lists containing this project

README

        

# A Theme React

AWS Amplify UI is theme based. Developers are able to customize UI with theme.

Here we build alternative themes for AWS Amplify.

* [Install](#install)
* [Apply](#apply)
* [Themes](#themes)
- [Bootstrap](#bootstrap)
- [Instagram](#instagram)
* [Example](#example)

## Install

```
npm install --save a-theme-react
```

## Apply

AWS Amplify UI is theme

```
import { Bootstrap } from 'a-theme-react';

```

## Themes

### Bootstrap

A theme base on default Bootstrap theme CSS.

```
import { Bootstrap } from 'a-theme-react';

```

**FontAwsome Icons**

`Bootstrap` theme uses icons from [Font Awesome](http://fontawesome.io/). [react-fontawesome](https://github.com/danawoodman/react-fontawesome) does not include CSS. So you have to include the CSS by yourself. One way is from [CDN](https://www.bootstrapcdn.com/fontawesome/).

For example add this line to HTML file:
```

```

The icons won't display without the CSS file. Everything else is not affected.

### Instagram

A theme imitates [Instagram](https://www.instagram.com)

```
import { Instagram } from 'a-theme-react';

```

**CSS Pseudo-Elements**

One of the limitation in React inline styling is no pseudo-elements.

Among CSS pseudo-elements, `::before` and `::after` are the two most frequent used. AWS Amplify UI is made to support these two.

Here we take benefit of `before` and `after` to make this theme possible.

Example:

```
const beforeImg = (

)

export const FormSection = {
margin: '0 0 10px',
color: '#262626',
backgroundColor: '#fff',
border: '1px solid #e6e6e6',
borderRadius: '1px',
textAlign: 'center',
width: '350px',
display: 'inline-block',
verticalAlign: 'middle',
before: {
content: beforeImg,
display: 'inline-block',
width: '400px',
height: '560px',
verticalAlign: 'middle',
backgroundImage: 'url(' + home_phone + ')',
backgroundSize: '400px 560px'
}
}
```

## Example

`example/` folder is a basic React app with theme

```
git clone https://github.com/richardzcode/a-theme-react.git
cd a-theme-react/example
npm install
npm start
```

Then copy `aws-exports.js` file to `src/` folder for AWS Amplify to work.

**Other themes**

The example uses `Bootstrap` theme. Modify `src/index.js` for other themes.

```
import { Instagram as theme } from 'a-theme-react'
```